“We are going through the process where software will automate software, automation will automate automation.”
- Mark Cuban
Welcome to Budibase Automations! This repo contains all the installable automations that are currently available to Budibase apps. We welcome contributions of new ways of creating automated processes within our users' apps, and we've tried to make it as easy as possible to do so.
The process of creating a new automation is quite simple. The easiest method to do this is to run yarn new
at the
top level directory. This will walk you through the steps of creating a new automation in the command line. It should be
noted that all of the information provided can be easily changed, and will be put into an automate
section in the new automation's
package.json
. This scipt will generate the boilerplate configuration required for new your automation.
The process will appear as such (example is for the Integromat Automation):
Once you've ran through this process the package will exist under packages/<Package Name>
.
The next step is to develop your automation, using src/index.js
as your entry point. You can add as many
dependencies as you require - they'll be automatically bundled with your automation.
Your automation must export an async function with takes a single object parameter of format:
{
inputs: {
// ...configured inputs
},
instanceId: <CUSTOMER INSTANCE ID>
}
The runner must also return an object in the correct format based on the outputs specified. Check out some of the existing automations if you need further clarification.
Once you've finished developing, make sure to update your README
to describe what your automation does and what the inputs
and outputs are, so that app builders know how to use your automation.
To build all automations, run the following couple of scripts.
yarn install
yarn run build
Now dist/automations.tar.gz
and dist/manifest.json
are ready for publishing.
Individial automations are built and available for publishing under dist/automations
.
Publishing pushes all built automations, as well as the manifest and tar bundle, to an AWS S3 bucket.
Publishing can be tested via yarn run publish
, which will publish them to a newly created S3 bucket
called budibase-automations-[random-extension]
. When running inside CI it will remove the random extension and
publish them to a bucket name determined by environment variables.
Authentication is attempted via both environment variables (such as when running in CI) and via an AWS credentials file (such as when running locally).
If the target S3 bucket does not exist when publishing then it will be created for you. Whether the bucket exists or not, a new bucket policy will be set so that all files uploaded have default public read access. This ensures that the bundles about to be uploaded will be publicly available without any further configuration.