refactor: finish declutter - test_flow removal, NOT NULL schema, parametrized tests, smoke harness, docs

This commit is contained in:
Jonas Miederer 2026-10-01 00:11:43 +02:00
parent 696db34c90
commit 92bb3bacba
23 changed files with 552 additions and 1261 deletions

33
docs/flow-authoring.md Normal file
View file

@ -0,0 +1,33 @@
# Flow authoring (Langflow → Webapp)
So kommt ein neuer Flow in die Webapp:
1. **In Langflow entwerfen und speichern** (bestehende Flows sind dort
bereits geladen). Name vergeben, speichern.
2. **Sync-Button in der Verwaltung klicken** ("Aus Langflow
synchronisieren"): holt alle Flows aus Langflow nach
`backend/flows/*.json` und deployed sie danach automatisch (neue
Version nur bei geändertem Inhalt, sonst übersprungen).
3. **Prüfen:** Die Versions-Tabelle zeigt Version, Autor und Status.
Danach erscheint der Flow automatisch auf der Seite Workflows mit
seinem Formular. Flows ohne Formular-Knoten zeigen ein Freitext-Feld.
## Regeln
- Die Datei heißt wie der Flow in Langflow (z. B. `intake_form.json`).
Umbenennen in Langflow erzeugt eine neue Datei; die alte bleibt
bestehen und muss bei Bedarf gelöscht werden.
- Eine gelöschte Datei löscht den Flow inklusive seiner Läufe
(Datei bleibt in Git erhalten).
- Fehler stehen in der Sync-Meldung (z. B. ungültiges Flow-JSON).
Der automatische Beobachter im Hintergrund syncet nur Dateien,
Langflow holt nur dieser Button.
## Formular-Felder
Für ein Web-Formular braucht der Flow einen CustomInputForm-Knoten:
jeder Eintrag dort ist ein Formularfeld (Name = Feld-Key, Anzeigename
= Label). Die Verbindung ChatInput nach `form_values` bitte behalten —
darüber kommen die ausgefüllten Werte an. Unbekannte Feldtypen fallen
automatisch auf ein Textfeld zurück. Details:
`backend/components/kirche/README.md`.