wiki/c-work/4-done/2026-04-automation-central-admin.md
2026-04-13 00:38:44 +02:00

83 lines
4.3 KiB
Markdown

<!-- status: validate -->
<!-- started: 2026-04-12 -->
<!-- component: gateway | frontend-nyla -->
# Automatisierung — Zentrale Administration aller Workflows
## Beschreibung und Kontext
Die Seite "Automatisierung" in "Meine Sicht" zeigt aktuell nur ein Dashboard mit Workflow-Run-Metriken und einer Runs-Tabelle. Was fehlt, ist eine zentrale Verwaltung ALLER Workflows, auf die der User gemäss RBAC Zugriff hat — über alle Mandanten und Feature-Instanzen hinweg.
**Business-Treiber:** Admins und Power-User brauchen eine Übersicht über alle Workflows ohne in jede einzelne graphicalEditor-Instanz navigieren zu müssen. Berechtigungen (View/Edit/Delete/Execute) sollen pro Workflow-Zeile sichtbar sein.
**Abhängigkeiten:**
- `routeWorkflowDashboard.py` — bestehender System-Dashboard-Endpunkt (nur Runs)
- `GraphicalEditorWorkflowsPage.tsx` — Referenz-Implementierung für Instanz-Workflows
- `FormGeneratorTable` — Backend-driven Table mit Paginierung
- `Tabs`-Komponente — existiert bereits
**Risiko bei Nicht-Umsetzung:** Admins müssen manuell durch jede Instanz navigieren, um Workflows zu finden/verwalten. Keine zentrale Kontrolle.
## Fokus und kritische Details
- RBAC-Scoping muss konsistent mit bestehender `_scopedRunFilter`-Logik sein
- Dashboard-Tabelle nutzt aktuell KEINE Backend-Paginierung (nur Client-seitig) — muss korrigiert werden
- AutoWorkflow hat `mandateId` + `featureInstanceId` — Enrichment mit Labels nötig
- Per-Workflow RBAC-Permissions (`canEdit`, `canDelete`, `canExecute`) müssen vom Backend geliefert werden
- `t()` konsequent für alle Sprachtexte
## Ziel und Nicht-Ziele
- Ziel: 2 Tabs auf der Automatisierung-Seite (Dashboard + Workflows), zentraler Workflow-Manager mit RBAC
- Ziel: Dashboard-Tabelle auf saubere Backend-Paginierung via `hookData`
- Explizit NICHT: Workflow-Editor in der zentralen Ansicht (Edit navigiert zur Instanz)
- Explizit NICHT: Neue Workflows erstellen aus der zentralen Ansicht
## Betroffene Module
- Gateway: `routeWorkflowDashboard.py` — Endpunkt `GET /api/system/workflow-runs/workflows`
- Frontend: `AutomationsDashboardPage.tsx` — Tabs, Backend-Paginierung, WorkflowsTab
- DB-Migration: nein
- Andere Komponenten: keine
## Entscheidungen
| Datum | Entscheidung | Begründung |
|-------|-------------|------------|
| 2026-04-12 | Neuer Endpunkt unter bestehendem Router `/api/system/workflow-runs` als `/api/system/workflow-runs/workflows` | Konsistenz mit bestehendem Prefix, kein neuer Router nötig |
| 2026-04-12 | RBAC-Permissions pro Workflow-Row vom Backend | Frontend muss nicht selbst RBAC-Logik duplizieren |
| 2026-04-12 | Bestehende `Tabs`-Komponente verwenden | Bereits vorhanden und getestet |
## Umsetzungs-Checkliste
- [x] API-Endpunkt: `GET /api/system/workflow-runs/workflows`
- [x] DB-Schema / Migration: nicht nötig (keine Änderung)
- [x] Frontend: Tabs-Struktur in AutomationsDashboardPage
- [x] Frontend: Dashboard-Tab mit Backend-Paginierung
- [x] Frontend: WorkflowsTab mit zentraler Workflow-Verwaltung
- [x] RBAC / Permissions: Scoping + per-row Permissions
- [x] Neutralisierung betroffen? Nein
- [x] Navigation / Routing: keine Änderung (Route `/automations` unverändert)
- [x] Billing-Impact? Nein
## Akzeptanzkriterien
| # | Kriterium (Given-When-Then) | Prio |
|---|---------------------------|------|
| 1 | Given User auf /automations, When Seite lädt, Then 2 Tabs sichtbar (Dashboard, Workflows) | must |
| 2 | Given Dashboard-Tab aktiv, When Daten laden, Then Metriken + Runs-Tabelle mit Backend-Paginierung | must |
| 3 | Given Workflows-Tab aktiv, When Daten laden, Then alle RBAC-berechtigten Workflows mit Mandant/Instanz-Spalten | must |
| 4 | Given Workflow mit Edit-Recht, When Zeile angezeigt, Then Edit/Delete/Rename/Execute-Aktionen sichtbar | must |
| 5 | Given Workflow ohne Edit-Recht, When Zeile angezeigt, Then nur View-Icon, keine Mutationsaktionen | must |
| 6 | Given Filter "Aktiv" gewählt, When Tabelle aktualisiert, Then nur aktive Workflows | should |
## Links
- PR: ...
- Issue: ...
## Abschluss
- [x] b-reference/ aktualisiert — [`b-reference/gateway/automation.md`](../../b-reference/gateway/automation.md) (Abschnitt System-Automatisierung)
- [x] TOPICS.md — Verweis unter „Aktive Arbeiten“ ergänzt
- [ ] Dieses Dokument → `z-archive/` verschieben (nach Abnahme / wenn kein offenes Follow-up)