This guide explains how to manually install a Fluxnova Modeler plugin and verify that it loads successfully.
Before following the platform-specific installation steps, make sure you have a plugin build ready. See the Plugin Build Sources section for CI artifacts, releases, and local build options.
Fluxnova Modeler discovers plugins by scanning the resources/plugins directory when the application starts.
Each plugin must:
- Reside in its own folder under
resources/plugins - Contain an
index.jsentry point - Be copied into the plugin directory before the Modeler is launched
Expected directory structure:
resources/
└── plugins/
└── my-plugin/
├── index.js
├── package.json
└── ...
Example index.js entry point:
"use strict";
module.exports = {
script: "./dist/client.js",
style: "./dist/style.css",
menu: "./dist/backend/main.js",
name: "Code Editor Plugin",
};In this example, script loads frontend behavior, style loads plugin CSS, menu loads backend/menu integration, and name is the display name.
Before installing a plugin:
- Have a plugin build ready.
- Verify the plugin folder contains an
index.jsfile. - Close any running instance of Fluxnova Modeler.
You can obtain plugin builds from CI artifacts, GitHub Releases, or by building locally when CI coverage is unavailable.
Prebuilt plugin builds are published in two places:
- Development builds are available as artifacts from individual CI workflow runs
- Released builds are available in GitHub Releases
Use CI run artifacts for short-lived validation and testing, and use GitHub Releases for stable installation targets and long-term retrieval.
Note: CI artifacts are ephemeral and may expire based on repository retention settings.
If CI does not support automated builds for the plugin you need, build it locally from source.
Example local build flow for code-editor-plugin:
git clone https://github.com/finos/fluxnova-modeler-plugins.git
cd fluxnova-modeler-plugins/plugins/code-editor-plugin
npm install
npm run buildAfter building, plugin output is available in the dist directory. To install manually, create a code-editor-plugin folder in the Modeler plugins directory and copy:
code-editor-plugin/distcode-editor-plugin/index.js
Expected structure in the Modeler installation:
resources/
└── plugins/
└── code-editor-plugin/
├── index.js
└── dist/
Use the plugin directory that matches your Fluxnova Modeler installation:
- macOS:
/Applications/Fluxnova Modeler.app/Contents/MacOS/resources/plugins - Windows:
C:\Program Files\Fluxnova Modeler\resources\plugins
Find the appropriate resources/plugins directory for your platform.
If the plugins directory does not already exist, create it under resources.
Expected layout:
resources/
└── plugins/
Copy the plugin into the plugins directory so that index.js is a direct child of the plugin folder.
Example:
resources/
└── plugins/
└── my-plugin/
└── index.js
Close and reopen the application.
After restarting Fluxnova Modeler, verify the plugin was loaded successfully.
Depending on the plugin, you may observe:
- Additional menu items
- New toolbar buttons
- BPMN palette extensions
- Custom property panels
- Validation or linting enhancements
- Other UI components
Confirm the plugin exists directly beneath the plugins folder:
resources/
└── plugins/
└── my-plugin/
└── index.js
Correct:
plugins/
└── my-plugin/
└── index.js
Incorrect:
plugins/
└── my-plugin-main/
└── my-plugin/
└── index.js
The folder containing index.js must be a direct child of plugins.
Verify that:
- The plugin folder was copied into
resources/plugins. - The plugin contains an
index.jsfile. - The plugin directory structure is correct.
- Fluxnova Modeler was restarted after installation.
If the application fails to start after installing a plugin:
- Remove the plugin folder from
resources/plugins. - Restart Fluxnova Modeler.
- Verify the application starts normally.
- Review plugin logs or console output for errors.
Fluxnova Modeler/
└── resources/
└── plugins/
├── plugin-a/
│ └── index.js
└── plugin-b/
└── index.js
On startup, Fluxnova Modeler scans the resources/plugins directory and loads all valid plugins that contain an index.js entry point.