Overview
The Module Manager allows you to extend EdgeFlow with additional functionality by installing third-party modules. It supports modules from multiple ecosystems including npm, Node-RED, n8n, and GitHub repositories.
Module Manager
Telegram bot integration for EdgeFlow
InfluxDB time-series database nodes
Module Card Details
Each installed module displays the following information:
| Element | Description |
|---|---|
| Name & Version | Module identifier and semantic version number |
| Status Badge | Current state: Loaded, Loading, Not Loaded, Unloading, or Error |
| Description | Brief description of module functionality |
| Nodes | Color-coded list of nodes provided by the module |
| Resources | Memory usage (⚡) and disk space (💾) requirements |
| Dependencies | Other modules this module depends on |
Module Status
| Status | Color | Description |
|---|---|---|
| Loaded | Green | Nodes registered and ready for use in flows |
| Loading | Blue | Module is being initialized |
| Not Loaded | Gray | Installed but nodes not registered |
| Unloading | Amber | Nodes being unregistered |
| Error | Red | Failed during validation or loading |
| Disabled | Gray (dimmed) | Manually disabled by user |
Installing Modules
Click the + Install Module button to open the marketplace dialog. There are three ways to install modules:
1. Search Marketplace
Search across multiple registries to find and install modules:
- npm - Node Package Manager registry
- Node-RED - Node-RED flow library catalog
- GitHub - GitHub repositories
2. Upload File
Upload a module package directly from your computer. Supported formats:
.zip- ZIP archive.tgz- npm package format.tar.gz- Gzipped tarball
Drag and drop module file here
or click to browse (.zip, .tgz, .tar.gz)
3. URL / NPM / GitHub
Install directly by entering a URL, npm package name, or GitHub repository:
| Source | Format | Example |
|---|---|---|
| URL | Direct download link | https://example.com/module.zip |
| npm | package@version | node-red-contrib-telegram@1.2.0 |
| npm (scoped) | @scope/package@version | @company/custom-nodes@latest |
| GitHub | owner/repo@branch | edgeflow/gpio-nodes@main |
Supported Module Formats
EdgeFlow supports modules from multiple ecosystems:
EdgeFlow Native
- Manifest file:
edgeflow.json - JavaScript or TypeScript node implementations
- Optional platform-specific binaries
- Full access to EdgeFlow APIs
Node-RED Compatible
- Manifest:
package.jsonwithnode-redconfiguration - Package naming:
node-red-contrib-*ornode-red-node-* - Automatic format conversion during installation
n8n Compatible
- Manifest:
package.jsonwithn8nconfiguration - Package naming:
n8n-nodes-* - TypeScript node definitions supported
Module Actions
Right-click a module card or use the action menu to access these operations:
| Action | Description |
|---|---|
| Load | Register module nodes so they appear in the node palette |
| Unload | Unregister nodes (won't affect running flows using them) |
| Reload | Unload and load again to pick up changes |
| Enable | Re-enable a disabled module |
| Disable | Prevent module from loading on startup |
| Uninstall | Remove module from the system |
| View License | Display module license information |
Core modules (like gpio, mqtt, inject) cannot be unloaded or disabled as they provide essential functionality.
Module Validation
Before installation, modules undergo security and compatibility validation:
Security Checks
- Obfuscated code detection - Blocks hex/unicode escape sequences
- Dynamic code execution - Flags eval(), Function constructor
- Process manipulation - Detects process/global access attempts
- Size limits - Maximum 50MB total, 10MB per file
License Analysis
EdgeFlow analyzes module licenses for compatibility:
| License Type | Examples | Status |
|---|---|---|
| Permissive | MIT, Apache-2.0, BSD, ISC | ✓ Compatible |
| Copyleft | GPL-2.0, GPL-3.0, LGPL, MPL-2.0 | ⚠ Warning |
| Network Copyleft | AGPL-3.0 | ⚠ Strong Warning |
| Fair-Code | n8n Sustainable Use, Elastic, SSPL | ⚠ Commercial Restrictions |
| Proprietary | Closed source, custom | ✗ Rejected |
Validation Score
Each module receives a safety score from 0-100 based on the validation checks. Modules with critical errors cannot be installed. Warnings are displayed but don't prevent installation.
Resource Monitoring
The module manager displays system resources to help you manage module usage:
- Memory - RAM usage by loaded modules
- Disk - Storage space used by installed modules
- CPU - Processor usage (on supported platforms)
On resource-constrained devices, only load modules you actively need. Unload unused modules to free memory for running flows.
Module Storage
Installed modules are stored in the modules/ directory within your
EdgeFlow installation. The module manifest is saved to modules/modules.json
for persistence across restarts.
Manifest Contents
- Module metadata (name, version, description)
- Installation timestamp
- Enable/disable status
- Current status (installed, loaded, error)
- Loaded node types
- License attribution information
Updating Modules
To update a module to a newer version:
- Install the new version using any installation method
- EdgeFlow automatically creates a backup of the existing version
- The new version replaces the old one
- If installation fails, the backup is restored automatically
Troubleshooting
Module Won't Install
- Check the validation errors in the installation dialog
- Verify the module format is supported (EdgeFlow, Node-RED, or n8n)
- Ensure the archive is not corrupted
- Check if the module exceeds size limits (50MB)
Nodes Not Appearing
- Ensure the module is loaded (green status badge)
- Check if the module is enabled
- Try reloading the module
- Refresh the flow editor page
Module Errors
- Click the module card to view error details
- Check for missing dependencies
- Verify the module is compatible with your EdgeFlow version
- Review the module's documentation for requirements
API Reference
The Module Manager exposes a REST API for programmatic control:
| Endpoint | Method | Description |
|---|---|---|
/api/v1/modules/ | GET | List all installed modules |
/api/v1/modules/:name | GET | Get module details |
/api/v1/modules/install | POST | Install from URL/npm/GitHub |
/api/v1/modules/upload | POST | Upload and install module file |
/api/v1/modules/:name | DELETE | Uninstall module |
/api/v1/modules/:name/load | POST | Load module nodes |
/api/v1/modules/:name/unload | POST | Unload module nodes |
/api/v1/modules/:name/enable | POST | Enable module |
/api/v1/modules/:name/disable | POST | Disable module |
/api/v1/modules/search/npm | GET | Search npm registry |
/api/v1/modules/search/nodered | GET | Search Node-RED catalog |
/api/v1/modules/search/github | GET | Search GitHub repositories |