Skip to Content
Low-CodeAPI ReferenceRuntime Extensions Referenz

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

UmgebungsvariableStandardEmpfohlenBeschreibung
NODERED_FLOW_STORAGE_OUTPUT_FORMATjsonyamlAusgabeformat der Flow-Dateien
NODERED_FLOW_STORAGE_SAVE_BY_NODEtruefalseSpeicherung 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: false

Verzeichnisstruktur

$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-Einstellungen

Namenskonventionen

TypSchemaBeispiel
Flow-Verzeichnislabel_idAPI-Bestellungen_12345
Subflow-Verzeichnisname_idValidierung_abcde
Config-Node-Dateitype_name_id.yamlmqtt-broker_Produktion_fghij.yaml
Node-Dateitype_name_id.yamlfunction_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

FeldBeschreibung
statusGesamtstatus: Ok oder NotOk
nodesListe der geprueften Nodes
nodes.<id>.statusStatus der einzelnen Node
nodes.<id>.nodeNameTopic oder Name der Node
nodes.<id>.nodeTypeTyp der Node
nodes.<id>.updatedZeitpunkt des letzten Status-Updates
nodes.<id>.messageStatusnachricht (z.B. “subcribed”, “subscription failed”)

Kubernetes-Integration

# Deployment-Konfiguration spec: containers: - name: lowcode readinessProbe: httpGet: path: /readiness port: 1880 initialDelaySeconds: 10 periodSeconds: 30

Migration 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

ParameterTypBeschreibung
enabledBooleanMigration aktivieren/deaktivieren
driverStringDatenbanktreiber: pg, mysql, mssql
connection.hostStringDatenbank-Hostname
connection.portNumberDatenbank-Port
connection.databaseStringDatenbankname
connection.userStringDatenbankbenutzer
connection.passwordStringPasswort
migrationPatternStringGlob-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

  1. Beim Start prueft das Plugin, ob dbMigration.enabled gesetzt ist
  2. Der konfigurierte Treiber wird geladen
  3. Postgrator prueft die aktuelle Schemaversion in der Datenbank
  4. Fehlende Migrationen werden automatisch ausgefuehrt
  5. 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

UmgebungsvariableBeschreibung
PROCESSCUBE_TRACE_ENABLEDTracing aktivieren (true/false)
PROCESSCUBE_TRACE_OUTPUTAusgabemodus: csv oder db
PROCESSCUBE_TRACE_CSV_PATHPfad fuer CSV-Ausgabe
PROCESSCUBE_TRACE_DB_CONNECTIONDatenbank-Verbindungsstring (bei db-Modus)

docker-compose.yaml:

environment: PROCESSCUBE_TRACE_ENABLED: true PROCESSCUBE_TRACE_OUTPUT: csv PROCESSCUBE_TRACE_CSV_PATH: /data/traces/

Aufgezeichnete Daten

FeldBeschreibung
TimestampZeitpunkt der Ausfuehrung
Node IDID der ausgefuehrten Node
Node TypeTyp der Node
Node NameName der Node
Flow IDID des zugehoerigen Flows
DurationAusfuehrungsdauer in Millisekunden
StatusErfolg oder Fehler

Metrics

Die Metrics Extension stellt Prometheus-kompatible Metriken bereit.

Konfiguration

UmgebungsvariableStandardBeschreibung
PROMETHEUS_COLLECT_DEFAULT_METRICSfalseStandard-Node.js-Metriken sammeln

Wenn aktiviert, werden Node.js-Standardmetriken (Heap-Speicher, Event-Loop-Latenz, etc.) am Prometheus-Endpunkt bereitgestellt.

Endpunkt

GET /metrics

Die Metriken koennen von einem Prometheus-Server gesammelt und in Grafana visualisiert werden. Details zur Einrichtung finden Sie in der Monitoring-Dokumentation.


Weiterführende Informationen