Go to file
Peter Clement a4c0328c53
REST file handling and SMTP automation block attachments (#13403)
* handle files in rest connector

* fetch presigned url and return

* further updates to handle files in rest connector

* remove unused important and fix extension bug

* wrong expiry param

* tests

* add const for temp bucket

* handle ttl on bucket

* more bucket ttl work

* split out fileresponse and xmlresponse into utils

* lint

* remove log

* fix tests

* some pr comments

* update function naming and lint

* adding back needed response for frontend

* use fsp

* handle different content-disposition and potential path traversal

* add test container for s3 / minio

* add test case for filename* and ascii filenames

* move tests into separate describe

* remove log

* up timeout

* switch to minio image instead of localstack

* use minio image instead of s3 for testing

* stream file upload instead

* use streamUpload and update signatures

* update bucketcreate return

* throw real error

* tidy up

* pro

* pro ref fix?

* pro fix

* pro fix?

* move minio test provider to backend-core

* update email builder to allow attachments

* testing for sending files via smtp

* use backend-core minio test container in server

* handle different types of url

* fix minio test provider

* test with container host

* lint

* try different hostname?

* Revert "try different hostname?"

This reverts commit cfefdb8ded.

* fix issue with fetching of signed url with test minio

* update autoamtion attachments to take filename and url

* fix tests

* pro ref

* fix parsing of url object

* pr comments and linting

* pro ref

* fix pro again

* fix pro

* account-portal

* fix null issue

* fix ref

* ref

* When sending a file attachment in email fetch it directly from our object store

* add more checks to ensure we're working with a signed url

* update test to account for direct object store read

* formatting

* fix time issues within test

* update bucket and path extraction to regex

* use const in regex

* pro

* Updating TTL handling in upload functions (#13539)

* Updating TTL handling in upload functions

* describe ttl type

* account for ttl creation in existing buckets and update types

* fix tests

* pro

* pro
2024-04-22 15:30:57 +00:00
.github Updating if statement. 2024-04-11 16:24:11 +01:00
.husky Revert "Merge pull request #10367 from Budibase/revert-10267-chore/pro_as_submodule" 2023-04-20 19:48:29 +01:00
.vscode Allow a displayName to be passed when creating admin user (#13516) 2024-04-18 12:52:00 +00:00
charts/budibase Merge branch 'master' into allow-extra-volumes 2024-04-12 12:23:07 +01:00
docs Removing contributing documentation which is out of date, the main CONTRIBUTING document covers everything required. 2024-01-29 17:15:01 +00:00
eslint-local-rules fix all cases of lint rule 2024-04-10 17:39:12 +01:00
examples/nextjs-api-sales Unify packages 2023-10-18 10:49:15 +02:00
hosting Removing CouchDB SQS image for now. 2024-04-12 16:29:48 +01:00
i18n docs: README Korean version added (#13144) 2024-02-29 18:55:21 +00:00
packages REST file handling and SMTP automation block attachments (#13403) 2024-04-22 15:30:57 +00:00
scripts Add message 2024-04-18 10:53:58 +02:00
.dockerignore Remove packageNames file usages 2023-10-13 13:59:42 +02:00
.eslintignore Un-revert Skeleton Loader PR (#13180) 2024-03-25 16:39:42 +00:00
.eslintrc.json Merge branch 'master' of github.com:Budibase/budibase into fix-oidc-error-logging 2024-04-19 13:29:21 +01:00
.gitignore remove QA core 2024-04-02 17:24:30 +01:00
.gitmodules Change account portal to packages 2023-10-18 10:49:15 +02:00
.nvmrc Update node refs to 20 2023-12-22 14:55:22 +01:00
.nxignore
.prettierignore Ignore bundles from prettier 2024-02-06 10:31:03 +01:00
.prettierrc.json
.python-version
.tool-versions Update node refs to 20 2023-12-22 14:55:22 +01:00
.yarnrc Increase timeout 2023-10-03 20:27:22 +02:00
CODEOWNERS Move CODEOWNERS to the root to see if that fixes it. 2023-11-30 11:34:11 +00:00
LICENSE Updating license to cover SQS functionality being used. 2023-12-08 16:03:26 +00:00
README.md Removing references to old docs. 2024-01-29 17:20:27 +00:00
SECURITY.md
SQS_LICENSE Updating license to cover SQS functionality being used. 2023-12-08 16:03:26 +00:00
artifacthub-repo.yml
babel.config.json Linting improvements (#11119) 2023-07-05 18:00:50 +01:00
globalSetup.ts Get SQS plumbing working in tests. 2024-04-09 15:31:32 +01:00
index.yaml
lerna.json Bump version to 2.23.11 2024-04-22 14:14:24 +00:00
nx.json Add all scripts as nx cache inputs 2024-04-18 10:49:22 +02:00
package.json Prevent dev:docker running for oss 2024-04-18 10:53:23 +02:00
pull_request_template.md Add launchcontrol header in pr template 2024-02-22 18:00:15 +02:00
yarn.lock REST file handling and SMTP automation block attachments (#13403) 2024-04-22 15:30:57 +00:00

README.md

Budibase

Budibase

The low code platform you'll enjoy using

Budibase is an open-source low-code platform that saves engineers 100s of hours building forms, portals, and approval apps, securely.

🤖 🎨 🚀


Budibase design ui

GitHub all releases GitHub release (latest by date) Follow @budibase Code of conduct

Get started - we host (Budibase Cloud) · Get started - you host (Docker, K8s, DO) · Docs · Feature request · Report a bug · Support: Discussions



Features

Build and ship real software

Unlike other platforms, with Budibase you build and ship single page applications. Budibase applications have performance baked in and can be designed responsively, providing users with a great experience.

Open source and extensible

Budibase is open-source - licensed as GPL v3. This should fill you with confidence that Budibase will always be around. You can also code against Budibase or fork it and make changes as you please, providing a developer-friendly experience.

Load data or start from scratch

Budibase pulls data from multiple sources, including MongoDB, CouchDB, PostgreSQL, MySQL, Airtable, S3, DynamoDB, or a REST API. And unlike other platforms, with Budibase you can start from scratch and create business apps with no data sources. Request new datasources.

Budibase data



Design and build apps with powerful pre-made components

Budibase comes out of the box with beautifully designed, powerful components which you can use like building blocks to build your UI. We also expose many of your favourite CSS styling options so you can go that extra creative mile. Request new component.

Budibase design



Automate processes, integrate with other tools and connect to webhooks

Save time by automating manual processes and workflows. From connecting to webhooks to automating emails, simply tell Budibase what to do and let it work for you. You can easily create new automations for Budibase here or Request new automation.

Integrate with your favorite tools

Budibase integrates with a number of popular tools allowing you to build apps that perfectly fit your stack.

Budibase integrations



Deploy with confidence and security

Budibase is made to scale. With Budibase, you can self-host on your own infrastructure and globally manage users, onboarding, SMTP, apps, groups, theming and more. You can also provide users/groups with an app portal and disseminate user management to the group manager.




Budibase Public API

As with anything that we build in Budibase, our new public API is simple to use, flexible, and introduces new extensibility. To summarize, the Budibase API enables:

  • Budibase as a backend
  • Interoperability

Docs

You can learn more about the Budibase API at the following places:



🏁 Get started

Deploy Budibase using Docker, Kubernetes, and Digital Ocean on your existing infrastructure. Or use Budibase Cloud if you don't need to self-host and would like to get started quickly.

Get started with self-hosting Budibase

Get started with Budibase Cloud



🎓 Learning Budibase

The Budibase documentation lives here.



💬 Community

If you have a question or would like to talk with other Budibase users and join our community, please hop over to Github discussions




Code of conduct

Budibase is dedicated to providing everyone a welcoming, diverse, and harassment-free experience. We expect everyone in the Budibase community to abide by our Code of Conduct. Please read it.



🙌 Contributing to Budibase

From opening a bug report to creating a pull request: every contribution is appreciated and welcomed. If you're planning to implement a new feature or change the API, please create an issue first. This way, we can ensure your work is not in vain. Environment setup instructions are available here.

Not Sure Where to Start?

A good place to start contributing is the First time issues project.

How the repository is organized

Budibase is a monorepo managed by lerna. Lerna manages the building and publishing of the budibase packages. At a high level, here are the packages that make up Budibase.

  • packages/builder - contains code for the budibase builder client-side svelte application.

  • packages/client - A module that runs in the browser responsible for reading JSON definition and creating living, breathing web apps from it.

  • packages/server - The budibase server. This Koa app is responsible for serving the JS for the builder and budibase apps, as well as providing the API for interaction with the database and file system.

For more information, see CONTRIBUTING.md



📝 License

Budibase is open-source, licensed as GPL v3. The client and component libraries are licensed as MPL - so the apps you build can be licensed however you like.



Stargazers over time

Stargazers over time

If you are having issues between updates of the builder, please use the guide here to clear down your environment.



Contributors

Thanks goes to these wonderful people (emoji key):

Made with contrib.rocks.