# Copyright (c) 2025 Patrick Motsch # Data manipulation node definitions: aggregate, transform, filter. DATA_NODES = [ { "id": "data.aggregate", "category": "data", "label": "Sammeln", "description": "Ergebnisse aus Schleifen-Iterationen sammeln", "parameters": [ {"name": "mode", "type": "string", "required": False, "frontendType": "select", "frontendOptions": {"options": ["collect", "concat", "sum", "count"]}, "description": "Aggregationsmodus", "default": "collect"}, ], "inputs": 1, "outputs": 1, "inputPorts": {0: {"accepts": ["Transit"]}}, "outputPorts": {0: {"schema": "AggregateResult"}}, "executor": "data", "meta": {"icon": "mdi-playlist-plus", "color": "#607D8B"}, }, { "id": "data.transform", "category": "data", "label": "Umwandeln", "description": "Daten umstrukturieren", "parameters": [ {"name": "mappings", "type": "json", "required": True, "frontendType": "mappingTable", "description": "Feld-Zuordnungen", "default": []}, ], "inputs": 1, "outputs": 1, "inputPorts": {0: {"accepts": ["Transit"]}}, "outputPorts": {0: {"schema": "ActionResult", "dynamic": True, "deriveFrom": "mappings"}}, "executor": "data", "meta": {"icon": "mdi-swap-horizontal-bold", "color": "#607D8B"}, }, { "id": "data.filter", "category": "data", "label": "Filtern", "description": "Elemente nach Bedingung filtern", "parameters": [ {"name": "condition", "type": "string", "required": True, "frontendType": "filterExpression", "description": "Filterbedingung"}, ], "inputs": 1, "outputs": 1, "inputPorts": {0: {"accepts": ["AggregateResult", "FileList", "TaskList", "EmailList", "DocumentList"]}}, "outputPorts": {0: {"schema": "Transit"}}, "executor": "data", "meta": {"icon": "mdi-filter-outline", "color": "#607D8B"}, }, ]