Custom plugins

Budibase allows no-code users to build apps quickly, with more functionality available with a little bit of inline code. Despite this, not every conceivable scenario can be covered by default - but that's where custom plugins come in!

Developers can write their own plugins for where custom datasources and components are needed. Some software development experience is required, however, the process for building plugins is designed to be streamlined and sleekly integrated into the Budibase platform.

Importing plugins

An admin user can see a list of your plugins under the Manage section of the Budibase Portal.

You can search for plugins by name and filter by category.

You can import a plugin by pressing the Add plugin button. This will display a dialog box from which you choose a Source.

Source name

Expected input

URL

A URL path to a tarball, e.g. .tar.gz file.

Allows authentication headers to be added if needed.

NPM

The URL of an NPM package of a Budibase plugin

Github

The URL of a Github repository, that has a tarball asset in the latest release.

Allows a Github Token to be added for accessing private repositories.

File Upload

Allows an admin user to directly upload a plugin tarball.

Once your plugin has been imported, you will now be able to make use of it within all of your apps!

In the case of a custom datasource, it will appear as a new datasource at the bottom of the Add datasource dialog and can be used just like any other custom query.

In the case of a custom component, it will appear in the builder components list under the Plugins section.

🚧

Cloud hosting

While custom components can also be imported in the cloud environment, custom datasources can only be used in a self-hosted environment, for security reasons.


Hot reloading (developers only)

You must provide a path to your plugins folder so that Budibase knows where to import the plugins that you update while developing.

There are two main approaches to this, with the handiest being to run Budibase via Docker compose or alternatively running Budibase via the repository locally.

Docker compose

Make sure you have installed the latest Budibase CLI, and initialize Budibase.

Add the plugins directory path (case sensitive!) to the app-service volumes of your docker compose file:

services:
  app-service:
    volumes:
      - /Users/<username>/Documents/MyBudibasePlugins:/MyBudibasePlugins

Next, update your .env file to include the relative plugins directory, e.g. PLUGINS_DIR=/MyBudibasePlugins

📘

The .env file will be hidden within the same folder as your docker-compose.yaml.
Showing hidden files on Windows.
On macOS, press Cmd+Shift+. within the folder.

Finally, run budi hosting --start and then do a yarn watch within your plugin repo.

Budibase repo

Assuming you have cloned the Budibase repo and have it running locally, navigate to packages/server/.env and add the following variable:

PLUGINS_DIR=/Users/<username>/Documents/MyBudibasePlugins

Naturally, you should replace the value with the path to your plugins folder.

If your server is already running, you will need to stop it and then start it with another yarn dev so that the new environment variable is loaded.

You will also need to make sure you have run yarn watch in your plugin repo. See the custom component and datasource pages for more information on development.


Updating a plugin

To update an existing plugin, simply import a plugin with a matching name.

Currently, the versioning must be handled manually, where you can have multiple folders for each version of your plugin.


Deleting a plugin

Click on one of the plugins from the plugins list. This will pop up a dialog from which you can press Delete


Did this page help you?