Skip to main content

Module Manager

Install, manage, and configure EdgeFlow modules and extensions

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

+ Install Module ↻ Refresh
12
Total Modules
8
Loaded
10
Enabled
45
Total Nodes
All Core Network Hardware Database Messaging AI Industrial
telegram-bot v2.1.0
Loaded

Telegram bot integration for EdgeFlow

send-message receive-message
⚡ 12MB 💾 4MB
influxdb v1.5.2
Not Loaded

InfluxDB time-series database nodes

write query
⚡ 8MB 💾 2MB

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
Search Upload URL / NPM
🔍 Search for modules...
node-red-contrib-telegram
Telegram bot nodes for automation
⭐ 156 | ⬇ 12.4k/week
Install

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.json with node-red configuration
  • Package naming: node-red-contrib-* or node-red-node-*
  • Automatic format conversion during installation

n8n Compatible

  • Manifest: package.json with n8n configuration
  • 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 Module Protection

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)
💡 Raspberry Pi Tip

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:

  1. Install the new version using any installation method
  2. EdgeFlow automatically creates a backup of the existing version
  3. The new version replaces the old one
  4. 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