Dokumentation: Flowy-Objekte
Flowy-Objekte
Flowy basiert auf den folgenden Objekten:
- Triggers: bieten die Möglichkeit, Events zu erzeugen, entweder wenn bestimmte Bedingungen erfüllt sind oder durch externe Aufrufe; Details finden Sie auf der Trigger-Seite
- Events: Details dazu, welche Eigenschaften Events haben und in welcher Reihenfolge sie ausgeführt werden
- Processes: legen die Geschäftslogik fest, einschließlich der Aktionen und Reaktionen, mit denen sie umgesetzt wird
- Steps: Steps sind der kleinste Baustein; sie können entweder bestimmte Aktionen ausführen (z. B. eine E-Mail senden oder eine CSV-Datei erzeugen) oder sogar benutzerdefinierten Code ausführen; Details finden Sie auf der Steps-Seite
- Credentials: ermöglichen den Zugriff auf externe Systeme, entweder im Klartext, verschlüsselt oder als Mischform aus beidem
- Entities: ermöglichen die Definition von Datenstrukturen und ihrer Beziehungen untereinander sowie die Generierung von Objekten
- Templates & Translations: bieten Templating- und Lokalisierungsfunktionen
- Validations: bieten eine effiziente Möglichkeit, grundlegende Prüfungen von Parametern vor der Verarbeitung durchzuführen
- Plugins: ermöglichen die Definition von Plugins, die in Prozessen verwendet werden können
- Static Resources: bieten eine einfache und effiziente Möglichkeit, statische Ressourcen zu verwenden
- Storage: bietet eine prozessspezifische, temporäre Datenisolation mit eindeutigen Schlüsseln und kontrolliertem Zugriff
- Module: ermöglichen das Gruppieren von Flowy-Objekten für eine einfachere Handhabung
- Libraries: bieten eine zentrale Lösung zur Verwaltung von Softwarebibliotheken und optimieren so die Ausführung von JavaScript- und Groovy-Steps
- Settings: ermöglichen die Definition von Parametern
- History: informieren über die Versionierungsfunktionen von Flowy
Namen müssen pro Objekttyp eindeutig sein.
Flowy-Objekte werden automatisch versioniert, mit der bewussten Ausnahme von Credentials; mehr dazu unter Versionierung in Flowy.
Events
In Flowy führt das Auslösen von Triggern zu Events, was die Nachvollziehbarkeit des Systems verbessert. Jeder Trigger-Typ hat einen eigenen Event-Typ, der unterschiedliche Auslöser erfasst.
Jedes Event besteht aus den Eingabedaten, die es ausgelöst haben, und gegebenenfalls einem Ausgabeergebnis. Events protokollieren außerdem Fehler, die beim Auslösen des Triggers auftreten, für die Fehlersuche und die Verfeinerung von Prozessen. Entscheidend ist, dass Events persistiert und für spätere Analysen oder Audits gespeichert werden und Beginn und Ende jeder Ausführung markieren. Das liefert Einblicke in die Aktivierungen des Systems und hilft, den Lebenszyklus von Prozessen zu verstehen.
Zur Steuerung der Ausführungsreihenfolge von Events verfügt jedes Event über die Eigenschaft priority. Sie enthält einen numerischen Wert von 1 bis 128, wobei 64 der Standardwert ist.
Events werden anhand von zwei Hauptkriterien ausgeführt:
- Prioritätswert: Niedrigere numerische Werte haben Vorrang. Ein Event mit der Priorität 5 wird beispielsweise vor einem Event mit der Priorität 65 ausgeführt.
- Erstellungszeitstempel: Haben zwei Events dieselbe Priorität, bestimmt das System anhand des Zeitstempels
createdOndie Reihenfolge. Das früher erstellte Event wird zuerst ausgeführt.
Events können intern innerhalb eines Workflows (z. B. über einen Execute-Process-Step) oder extern von anderen Systemen, Benutzern oder Diensten durch die Ausführung eines Triggers ausgelöst werden.
Die Events von Flowy sind daher entscheidend für die Funktionsweise des Systems und verbessern Transparenz, Nachvollziehbarkeit und Performance.
Processes
Flowy-Prozesse sind Sammlungen von Steps. Jeder Step erfüllt eine bestimmte Aufgabe. Details finden Sie auf der Prozess-Seite.
Credentials
Credentials dienen zur Speicherung systemspezifischer Konfigurationen. Sie stehen in direktem Zusammenhang mit dem jeweiligen Step, sodass z. B. SMTP-Credentials nur im Step email verwendet werden können.
Details finden Sie auf der Credentials-Seite.
Entities
Entities sind zentral für die Definition von Datenstrukturen und die Abgrenzung ihrer Beziehungen untereinander und unterstützen zusätzlich die Versionierung, sowohl für die Entities selbst als auch für ihre Persistenzschichten über ihren gesamten Lebenszyklus. Dadurch lassen sich Änderungen an den Entity-Definitionen und -Strukturen präzise nachverfolgen und verwalten.
Flowy unterstützt die Generierung der Persistenzschicht, die an verschiedene Zielsysteme angepasst werden kann. Darüber hinaus erleichtert Flowy die Erstellung anpassbarer Trigger, Validations und Prozesse für CRUD-Operationen (Create, Read, Update und Delete). Diese Funktion soll Standardaufgaben vereinfachen und den manuellen Aufwand verringern, indem Routineprozesse automatisiert werden, bei gleichbleibend konsistentem Vorgehen in Bezug auf Entity-Integrität und betriebliche Effizienz.
Flowy kann automatisch einen standardisierten Satz unterstützender Ressourcen generieren - mitunter als „Shadow Objects" bezeichnet -, um eine sofort nutzbare CRUD-Schnittstelle bereitzustellen und die Konsistenz von Validierung und Logik sicherzustellen. Zu diesen Ressourcen gehören: REST-Trigger, Prozesse und Validations.
Diese generierten Ressourcen folgen einer einheitlichen Namenskonvention, die sich aus dem Entity-Namen, einem optionalen Namespace- oder Scope-Bezeichner und einem beschreibenden Suffix zusammensetzt.
Jedes generierte Objekt ist bearbeitbar und kann anhand projektspezifischer Anforderungen erweitert oder angepasst werden. Wenn Sie die Ressourcen für dieselbe Entity jedoch erneut generieren, werden alle zuvor generierten Objekte mit denselben Namen überschrieben.
HINWEIS
Wenn Sie für das Feld
Primary Keyden Datentyp BigInt oder Integer festlegen, werden dessen Werte automatisch hochgezählt und vergeben. Bei einemPrimary Keymit anderen Datentypen muss der Wert gesetzt werden.
Flowy-Entities sind flexibel konzipiert und technisch mit einer Vielzahl von Datenbanksystemen kompatibel, darunter (aber nicht beschränkt auf) ClickHouse, Derby, DuckDB, Firebird, H2, HSQLDB, MariaDB, MySQL, PostgreSQL, SQLite, Trino und YugabyteDB.
Aus Gründen der Stabilität, der Performance-Optimierung und eines schlanken Supports ist die offizielle Unterstützung für Flowy-Entities derzeit jedoch auf PostgreSQL und MySQL beschränkt. Andere Datenbanken können Sie nach eigenem Ermessen verwenden, bitte beachten Sie jedoch, dass wir außerhalb der offiziell unterstützten Systeme weder die volle Funktionalität garantieren noch Unterstützung bei der Fehlerbehebung leisten können.
Templates & Translations
Templates können verwendet werden, um die Darstellung von den eigentlichen Daten zu trennen. Sie sind über verschiedene Steps nutzbar und ermöglichen eine zentrale Verwaltung.
Translations können sowohl in Templates eingebettet als auch separat verwaltet werden.
Details finden Sie auf der Seite zu Templates & Translations.

Validations
Stellen Sie mithilfe von Validations auf einfache Weise korrekte Eingabedaten sicher. Diese leistungsfähigen Werkzeuge prüfen Daten nicht nur auf korrekte Struktur und Datentypen, sondern ermöglichen auch die Umsetzung zusätzlicher Regeln, etwa Mindest- und Höchstwerte oder Längenvorgaben.
Details finden Sie auf der Validations-Seite.
Plugins
Plugins ermöglichen die Verwendung von selbst erstelltem Code direkt in regulären Flowy-Prozessen. Sie können außerdem als Teil von Modulen weitergegeben werden. Wenn Plugins aus unsicheren Quellen stammen, muss die Vertrauenswürdigkeit sichergestellt werden.
Static Resources
Flowy unterstützt die folgenden Arten von statischen Ressourcen:
- CSS
- Fonts
- JavaScript
- Images
Diese Ressourcen können zentral verwaltet und in Templates verwendet werden.
Hinweis: JavaScript-Dateien werden von Flowy selbst nicht ausgeführt, können jedoch je nach Konfiguration von den rendernden Clients ausgeführt werden.
Storage
Storage ist als effizientes, temporäres Repository für Daten konzipiert. Es dient dem besonderen Zweck, jeden Dateneintrag einem eindeutigen Prozess zuzuordnen und sicherzustellen, dass der Eintrag ausschließlich im Rahmen dieses Prozesses zugänglich ist.
Zur Identifizierung der Einträge im Storage wird jedem Eintrag ein eindeutiger Schlüssel zugewiesen. Diese Schlüssel müssen im Kontext jedes Prozesses eindeutig sein, sodass jeder Prozess einen eigenen Namensraum für seine Einträge besitzt. Es ist jedoch zulässig, Schlüssel prozessübergreifend wiederzuverwenden. Eine solche Wiederverwendung führt zu getrennten Storage-Einträgen, wodurch die Datensätze trotz gleicher Schlüsselbezeichnung effektiv voneinander isoliert sind.
Der Zugriff auf einen Storage-Eintrag unterliegt strikt den Berechtigungseinstellungen des Prozesses, dem er zugeordnet ist. Berechtigungen müssen ausdrücklich definiert werden, um eine ordnungsgemäße Zugriffskontrolle sicherzustellen, die Daten vor unbefugtem Zugriff zu schützen und die Integrität des prozessspezifischen Datenspeichers zu wahren.
Modules
Module bieten eine einfache und effektive Möglichkeit, beliebige Kombinationen von Flowy-Objekten zu sammeln. Als Module lassen sie sich einfach exportieren, importieren und über die Hub-Funktion weitergeben.
Local Modules
Local Modules sind ein leistungsfähiges Organisationswerkzeug in Flowy und ermöglichen es Benutzern, beliebige Mischungen von Objekten zu bündeln. Diese Funktion ist besonders hilfreich, um den Export und Import von Workflows zu vereinfachen. Außerdem erleichtert sie die automatische Generierung von Swagger-Dateien für REST-Trigger.
Indem zusammengehörige Objekte in einem einzelnen Modul zusammengefasst werden, können Entwickler die Modularität und Wiederverwendbarkeit in ihren Projekten verbessern und die Verwaltung komplexer Workflows vereinfachen.
Standardmäßig werden jeder generierten Swagger-Datei die folgenden Endpunkte hinzugefügt:
/static-resource/system/login-by-password/system/logout/system/login/system/user/whoami
Für diese Endpunkte muss der Header X-Tenant-Id verwendet werden, um zwischen Mandanten (Tenants) zu unterscheiden.
Module Hub Functionality
Über die individuelle Nutzung hinaus führt Flowy die Funktion Module Hub ein. Sie ermöglicht es Benutzern, ihre Module hochzuladen und so einem breiteren Publikum zugänglich zu machen. Der Module Hub fungiert als zentrales Repository, in dem Benutzer ihre Arbeit teilen oder von anderen erstellte Module in ihre Projekte übernehmen können.
Access and Sharing through the Module Hub
Der Module Hub steht Benutzern zur Verfügung, die ein oder mehrere Credentials vom Typ Flowy konfiguriert haben. Diese Credentials sind das Tor zu einem reibungslosen Austausch von Modulen und ermöglichen sowohl das Hochladen als auch das Herunterladen von Modulen auf bzw. von entfernten Instanzen.
Der Module Hub steht für das Engagement der Plattform, Zusammenarbeit und Wissensaustausch zu fördern. Er ermöglicht es Benutzern, Flowy-Objekte nicht nur innerhalb ihrer Organisation, sondern auch mit der breiteren Flowy-Community zu teilen. Diese kollaborative Funktion steigert den Nutzen und die Dynamik von Flowy erheblich und ebnet den Weg für ein stärker vernetztes und ressourcenreicheres Benutzererlebnis.
Gefahr
Die Verwendung von Modulen aus unbekannten oder nicht vertrauenswürdigen Quellen im Module Hub von Flowy kann Sicherheitsrisiken wie Datenschutzverletzungen oder unbefugten Systemzugriff mit sich bringen. Wir fordern Benutzer dringend auf, Vorsicht walten zu lassen und Module vor der Verwendung auf Sicherheit zu prüfen. Flowy haftet nicht für Schäden, die aus der Verwendung extern bezogener Module entstehen. Benutzern wird empfohlen, die Authentizität von Modulen zu überprüfen, sie in sicheren Umgebungen zu testen und sich über Sicherheitspraktiken auf dem Laufenden zu halten. Die Verwendung von Modulen erfolgt auf eigenes Risiko.
Libraries
Libraries sind ein leistungsfähiges Werkzeug und bieten eine zentrale Lösung zur Verwaltung von Softwarebibliotheken, wodurch die Ausführung von JavaScript- und Groovy-Steps optimiert wird. Neben der Verwaltung erleichtern sie auch das mühelose Laden vorhandener Bibliotheken.
Warnung
Groovy-Bibliotheken können derzeit nicht entladen werden. Diese Einschränkung wird in einem zukünftigen Release behoben.
Settings
Settings stellen Konfigurationswerte dar. Sie sind bewusst von den Prozessen getrennt, um eine klare Abgrenzung zu schaffen.
Flowy unterstützt mehrere Arten von Settings:
- Frontend: wird derzeit ausschließlich vom Flowy-Frontend verwendet, daher wird nur ein Eintrag mit dem Namen
DEFAULT FRONTENDbenötigt. - Instance: ermöglicht die Konfiguration instanzbezogener Settings. Dadurch können innerhalb derselben Umgebung Server mit unterschiedlicher Kapazität eingesetzt werden.
- Process: auf dieses Setting kann dynamisch aus Prozessen heraus mit dem Step
Process Settingszugegriffen werden. So lassen sich bequem z. B. unterschiedliche Einstellungen für Entwicklungs-, Test- und Produktionsumgebungen verwenden, während derselbe Prozess zum Einsatz kommt. - Plugin: ermöglicht die Konfiguration von Settings für Plugins. Bitte beachten Sie, dass derzeit weder nach Name noch nach Typ zwischen Plugins unterschieden wird.
Bitte beachten Sie, dass Setting-Werte nicht verschlüsselt werden können.
Frontend settings
Frontend-Settings ermöglichen die flexible Konfiguration der Admin-Oberfläche. Sie gelten für alle Admin-Benutzer.
Instance settings
Instance-Settings müssen für jede laufende Flowy-Instanz definiert werden. Sie werden über den Name referenziert, der mit der in der Konfigurationsdatei definierten flowy.core.instance-id übereinstimmen muss.
Admin-Instanzen benötigen lediglich die Eigenschaft Name; weitere Settings sind derzeit nicht konfigurierbar.
Für Verarbeitungsinstanzen müssen die folgenden Werte konfiguriert werden:
Max Processing Threads: legt die Anzahl der Threads für Prozessausführungen im Thread-Pool festMax Trigger Http Threads: legt die Anzahl der Threads fest, die REST-Trigger-Aufrufe verarbeitenMax Trigger Http Processing DurationundUnit: legen die maximale Ausführungsdauer fest
Process settings
Diese Settings ermöglichen die Trennung von Workflow und Konfiguration. Mit ihnen kann derselbe Prozess in verschiedenen Umgebungen mit unterschiedlichen Parametern ausgeführt werden.
Plugin settings
Plugin-Settings ermöglichen es, die Plugin-Konfiguration sauber vom eigentlichen Prozess zu trennen.
User and role management
Flowy unterstützt sowohl nicht authentifizierte als auch authentifizierte Benutzer. Details finden Sie im Abschnitt Berechtigungen.
History
Das Berechtigungsmodell für den Zugriff auf Objekte funktioniert wie folgt:
- Sind dem History-Eintrag Rollen zugeordnet, gelten diese Berechtigungen.
- Sind in den oben genannten Fällen keine Rollen vorhanden, können nur Benutzer mit der Rolle „SUPER_USER" auf die History zugreifen.
Detaillierte Informationen zu den einzelnen Rollen und Berechtigungen finden Sie auf der Seite Berechtigungen.
Bitte beachten Sie, dass die History standardmäßig nach 90 Tagen gelöscht wird. Die entsprechende Einstellung kann unter Global Settings / Admin angepasst werden.

