Skip to content

Adding a plugin ​

Open Settings → Plugins in your project and choose Add plugin. You need the Creator role. Every way ends the same: the plugin is listed as Pending approval until a creator approves it (next step).

Nothing in the package is run while you add it. Fluxify only reads its description and checks that the package is well formed.

The four ways ​

WayWhat you giveGood for
UploadThe .tgz file the plugin's author builtA plugin you were sent or built yourself
npmA package name and an exact version, like @acme/[email protected]A plugin published to npm
LinkAn https:// link to a .tgz, on a trusted domainA plugin hosted on your own file server
FolderPick a plugin from the instance's plugins folderSelf-hosted setups where the plugin is copied onto the server

Upload ​

Choose the .tgz and press Upload. To upgrade a plugin later, upload its new version the same way (upgrading).

Limits: 25 MB for the file, 100 MB unpacked, and 2,000 files.

npm ​

Type the package and the exact version. Ranges (^1.0.0) and tags (latest) are refused, because an approval is for one exact version. If the project has a package release-age rule (Settings → npm Packages), a release younger than that is refused until it is old enough.

Adding a plugin from a link takes two steps, so nothing is downloaded by surprise:

  1. Paste the link and press Request. Fluxify records it and downloads nothing.
  2. In the list below, press Allow fetch. Fluxify downloads the file and checks it like an upload. A failed download stays in the list with its reason, and you can try again.

Only links on a trusted domain work, and only https:// links without a user name or password. Redirects to another host are checked too.

Folder ​

The Folder tab lists the plugins found in the instance's plugins folder. Pick one and press Add. The folder must be set up by whoever runs your Fluxify, and every worker must see it: see Kit, Docker production or Kubernetes. The folder holds one subfolder per built plugin.

If a folder plugin's files change after it was approved, workers refuse the changed copy. Add it again from the Folder tab and approve it.

Trusted domains ​

Links only work for hosts on the trusted domains list. This is an instance-wide setting, so only an instance admin can change it. The list is empty at first, which means the link way is off.

EntryMatches
plugins.example.comThat host only
*.example.comAny subdomain, however deep (a.example.com, a.b.example.com)
example.comOnly when listed itself: *.example.com does not cover it

Entries are lowercase host names, up to 100 of them. Today the list is changed through the instance settings API rather than a screen: send a PUT to /v1/instance-settings as an instance admin, with the body:

json
{
  "key": "plugins",
  "category": "plugins",
  "value": { "trustedDomains": ["plugins.example.com", "*.example.org"] }
}

Common messages ​

Fluxify shows the reason a plugin was refused exactly as written. These are the ones you are most likely to meet.

MessageWhat it means and what to do
The plugin has no fluxify.jsonThe package was not built with the Fluxify CLI. Ask the author to run blocks build and share the new .tgz.
<name>@<version> is not a Fluxify plugin: it has no fluxify.jsonThe npm package exists but is not a Fluxify plugin.
bun.lock is missing or empty: run bun install and commit itThe plugin needs outside packages but its lockfile is empty or absent. The author fixes it and rebuilds. A plugin with no outside packages needs no lockfile.
bun.lock does not pin ...The lockfile is out of date. The author runs bun install again and rebuilds.
@fluxify/sdk is in "dependencies": move it to "peerDependencies"Fluxify provides the SDK itself. The author moves it, and zod, to peerDependencies.
The plugin needs @fluxify/sdk <range>, but this Fluxify provides <version>The plugin was built for a different Fluxify version. Use a plugin version that supports yours, or update Fluxify.
Give an exact version, like ...npm entries need a fixed version number, not a range or tag.
<host> is not a trusted domain...Ask an instance admin to add the host to the trusted domains.
No trusted domains are set, so no plugin can be fetched from a URLSame, and the list is empty.
Only https:// URLs are acceptedUse a secure link.
No plugins directory is set...The folder way is not set up on this Fluxify.
package.json says the plugin is '...' but fluxify.json says '...'The package is inconsistent. The author rebuilds it.
This is plugin <new>, not <old>. A plugin's name never changes...An upgrade must be the same plugin. A different name is a different plugin, so add it separately.
... was published less than N days agoThe project's release-age rule is holding back a very new npm release. Wait, or change the rule in the npm Packages settings.
The archive holds an unsafe path or ... is truncatedThe .tgz is damaged or unsafe. Get a fresh copy.
the plugins folder is not mounted on this workerA folder plugin installed, but a worker cannot see the folder. Whoever runs Fluxify must mount it on every worker (see the deployment pages above).

TIP

Adding the same version again, with identical contents, changes nothing. Adding the same version with different contents is treated as a new build and goes back to pending.

Released under the Apache License 2.0. Enterprise features are under the Fluxify Enterprise Edition License.