Runtime Extensions Referenz
Die Runtime Extensions erweitern die Node-RED-Runtime um Funktionen, die fuer den
produktiven Betrieb von LowCode erforderlich sind. Sie sind Teil des
Pakets @5minds/node-red-contrib-processcube-runtime-extensions.
Storage Extension
Die Storage Extension ersetzt das Standard-Storage-Modul von Node-RED und speichert Flows in einer strukturierten Verzeichnisstruktur, die fuer Git-Versionskontrolle optimiert ist.
Konfiguration
| Umgebungsvariable | Standard | Empfohlen | Beschreibung |
|---|---|---|---|
NODERED_FLOW_STORAGE_OUTPUT_FORMAT | json | yaml | Ausgabeformat der Flow-Dateien |
NODERED_FLOW_STORAGE_SAVE_BY_NODE | true | false | Speicherung pro Node (true) oder pro Tab (false) |
docker-compose.yaml:
services:
lowcode:
environment:
NODERED_FLOW_STORAGE_OUTPUT_FORMAT: yaml
NODERED_FLOW_STORAGE_SAVE_BY_NODE: falseVerzeichnisstruktur
$NODE_RED_HOME/
├── flowStorageDir/
│ ├── flows/
│ │ └── <Tab-Name>_<ID>/
│ │ ├── flow.yaml # Flow-Metadaten (ID, Label)
│ │ ├── positions.yaml # Node-Positionen (x, y)
│ │ └── <Node-Dateien> # Einzelne Nodes (bei SAVE_BY_NODE=true)
│ ├── subflows/
│ │ └── <Subflow-Name>_<ID>/
│ │ ├── subflow.yaml # Subflow-Metadaten
│ │ └── positions.yaml # Node-Positionen
│ ├── configs/
│ │ └── <Typ>_<Name>_<ID>.yaml # Config Nodes
│ └── credentials.json # Verschluesselte Anmeldedaten
├── .config.nodes.json # Node-Registry
├── .config.users.json # Benutzer-Einstellungen
├── .config.projects.json # Projekt-Einstellungen
├── .config.modules.json # Installierte Module
└── .config.runtime.json # Runtime-EinstellungenNamenskonventionen
| Typ | Schema | Beispiel |
|---|---|---|
| Flow-Verzeichnis | label_id | API-Bestellungen_12345 |
| Subflow-Verzeichnis | name_id | Validierung_abcde |
| Config-Node-Datei | type_name_id.yaml | mqtt-broker_Produktion_fghij.yaml |
| Node-Datei | type_name_id.yaml | function_Email-validieren_67890.yaml |
ArtifactShipper-Endpunkt
Die Storage Extension stellt einen HTTP-Endpunkt bereit, ueber den der ArtifactShipper
Flow-Archive hochladen und deployen kann. Das Archiv muss die gleiche Verzeichnisstruktur
wie flowStorageDir enthalten und wird als .tar.gz-Datei uebertragen.
Readiness Probe
Die Readiness Probe stellt einen HTTP-Endpunkt fuer Kubernetes-Health-Checks bereit.
Sie prueft den Status aller registrierten Nodes (insbesondere externaltask-input Nodes).
Konfiguration
In der settings.js:
httpReadiness: {
enabled: true, // Standard: true
url: '/readiness', // Standard: '/readiness'
},Response
Erfolgreiche Pruefung (HTTP 200):
{
"status": "Ok",
"nodes": {
"77d330f852fce2c3": {
"status": "Ok",
"nodeName": "topic: pdf-erstellen",
"nodeType": "externaltask-input",
"updated": "2025-03-03T18:29:49.583Z",
"message": "subcribed"
}
}
}Fehlgeschlagene Pruefung:
{
"status": "NotOk",
"nodes": {
"bab96347016331d5": {
"status": "NotOk",
"nodeName": "topic: ",
"nodeType": "externaltask-input",
"updated": "2025-03-03T22:17:07.696Z",
"message": "subscription failed (0)"
}
}
}Response-Felder
| Feld | Beschreibung |
|---|---|
status | Gesamtstatus: Ok oder NotOk |
nodes | Liste der geprueften Nodes |
nodes.<id>.status | Status der einzelnen Node |
nodes.<id>.nodeName | Topic oder Name der Node |
nodes.<id>.nodeType | Typ der Node |
nodes.<id>.updated | Zeitpunkt des letzten Status-Updates |
nodes.<id>.message | Statusnachricht (z.B. “subcribed”, “subscription failed”) |
Kubernetes-Integration
# Deployment-Konfiguration
spec:
containers:
- name: lowcode
readinessProbe:
httpGet:
path: /readiness
port: 1880
initialDelaySeconds: 10
periodSeconds: 30Migration Extension
Die Migration Extension ermoeglicht automatische Datenbank-Migrationen beim Start von Node-RED. Sie basiert auf Postgrator und unterstuetzt PostgreSQL, MySQL und MSSQL.
Konfiguration
In der settings.js:
module.exports = {
dbMigration: {
enabled: true,
driver: 'pg', // Unterstuetzte Treiber: "pg", "mysql", "mssql"
connection: {
host: 'localhost',
port: 5432,
database: 'mydb',
user: 'dbuser',
password: 'securepass',
},
migrationPattern: '/data/migrations/*.do.sql',
},
};Konfigurationsparameter
| Parameter | Typ | Beschreibung |
|---|---|---|
enabled | Boolean | Migration aktivieren/deaktivieren |
driver | String | Datenbanktreiber: pg, mysql, mssql |
connection.host | String | Datenbank-Hostname |
connection.port | Number | Datenbank-Port |
connection.database | String | Datenbankname |
connection.user | String | Datenbankbenutzer |
connection.password | String | Passwort |
migrationPattern | String | Glob-Pattern fuer SQL-Dateien |
Migrations-Dateien
Migrations-Dateien folgen einem nummerischen Namensschema:
/data/migrations/
├── 001.do.sql # Migration vorwaerts
├── 001.undo.sql # Migration rueckwaerts
├── 002.do.sql
├── 002.undo.sql
└── ...Beispiel — 001.do.sql:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
email TEXT UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);Beispiel — 001.undo.sql:
DROP TABLE users;Funktionsweise
- Beim Start prueft das Plugin, ob
dbMigration.enabledgesetzt ist - Der konfigurierte Treiber wird geladen
- Postgrator prueft die aktuelle Schemaversion in der Datenbank
- Fehlende Migrationen werden automatisch ausgefuehrt
- Bereits ausgefuehrte Migrationen werden uebersprungen
Trace Execution
Die Trace Execution Extension zeichnet die Ausfuehrung von Flow-Nodes auf. Sie unterstuetzt die Ausgabe als CSV-Datei oder in eine Datenbank.
Konfiguration
| Umgebungsvariable | Beschreibung |
|---|---|
PROCESSCUBE_TRACE_ENABLED | Tracing aktivieren (true/false) |
PROCESSCUBE_TRACE_OUTPUT | Ausgabemodus: csv oder db |
PROCESSCUBE_TRACE_CSV_PATH | Pfad fuer CSV-Ausgabe |
PROCESSCUBE_TRACE_DB_CONNECTION | Datenbank-Verbindungsstring (bei db-Modus) |
docker-compose.yaml:
environment:
PROCESSCUBE_TRACE_ENABLED: true
PROCESSCUBE_TRACE_OUTPUT: csv
PROCESSCUBE_TRACE_CSV_PATH: /data/traces/Aufgezeichnete Daten
| Feld | Beschreibung |
|---|---|
| Timestamp | Zeitpunkt der Ausfuehrung |
| Node ID | ID der ausgefuehrten Node |
| Node Type | Typ der Node |
| Node Name | Name der Node |
| Flow ID | ID des zugehoerigen Flows |
| Duration | Ausfuehrungsdauer in Millisekunden |
| Status | Erfolg oder Fehler |
Metrics
Die Metrics Extension stellt Prometheus-kompatible Metriken bereit.
Konfiguration
| Umgebungsvariable | Standard | Beschreibung |
|---|---|---|
PROMETHEUS_COLLECT_DEFAULT_METRICS | false | Standard-Node.js-Metriken sammeln |
Wenn aktiviert, werden Node.js-Standardmetriken (Heap-Speicher, Event-Loop-Latenz, etc.) am Prometheus-Endpunkt bereitgestellt.
Endpunkt
GET /metricsDie Metriken koennen von einem Prometheus-Server gesammelt und in Grafana visualisiert werden. Details zur Einrichtung finden Sie in der Monitoring-Dokumentation.
Weiterführende Informationen
- Konfiguration — Alle Konfigurationsoptionen
- Deployment — Kubernetes-Deployment
- Migration & Versionierung — Git-Workflow