Plugin Development
MIFY supports a plugin system that lets you extend the platform with custom nodes, adapters, and credentials.
Plugin Types
Section titled “Plugin Types”| Extension Point | What You Can Add |
|---|---|
| Nodes | Custom processing nodes for workflows |
| Adapters | Integrations with external platforms |
| Credentials | Custom credential types for your integrations |
Creating a Plugin
Section titled “Creating a Plugin”1. Initialize
Section titled “1. Initialize”Use the MIFY Plugin CLI:
npx mify-plugin init my-plugincd my-pluginThis creates a plugin project with:
manifest.json— plugin metadata and configurationsrc/— plugin source codetests/— test files
2. Define Your Manifest
Section titled “2. Define Your Manifest”The plugin manifest (v1.4.0) describes your plugin:
{ "name": "my-plugin", "version": "1.0.0", "description": "What my plugin does", "author": "Your Name", "mifyVersion": ">=1.0.0", "extensionPoints": { "nodes": ["src/nodes/MyNode.ts"], "adapters": ["src/adapters/MyAdapter.ts"] }, "permissions": ["network", "storage"], "runtime": "v8"}3. Implement Your Extension
Section titled “3. Implement Your Extension”For a custom node:
export class MyNode implements NodeImplementation { async execute(input: Record<string, unknown>, context: ExecutionContext) { // Your logic here return { result: "processed" }; }}4. Test Locally
Section titled “4. Test Locally”npx mify-plugin dev # Start dev server with hot reloadnpx mify-plugin test # Run testsnpx mify-plugin validate # Check manifest and code5. Publish
Section titled “5. Publish”npx mify-plugin publishPublished plugins appear in the Plugin Marketplace at /plugins/marketplace.
Plugin Marketplace
Section titled “Plugin Marketplace”Browse and install plugins at /plugins/marketplace:
- Search by category and capability
- View ratings and reviews
- One-click install for verified plugins
- Version pinning and channel selection (stable/beta/canary)
Runtime Environments
Section titled “Runtime Environments”Plugins run in sandboxed environments:
| Runtime | Use Case |
|---|---|
| V8 | JavaScript/TypeScript plugins (default) |
| WASM | WebAssembly plugins for performance-critical code |
Plugin Lifecycle
Section titled “Plugin Lifecycle”| Hook | When Called |
|---|---|
onInstall | Plugin first installed |
onUpgrade | Plugin version updated |
onRemove | Plugin uninstalled |
Managing Plugins
Section titled “Managing Plugins”- Install:
/plugins/marketplace/[id]→ Install - Configure:
/plugins/[id]/settings→ Plugin-specific settings - Register custom:
/plugins/register→ Upload your own plugin - Admin:
/admin/plugins→ Manage all installed plugins