From 4e6977ef9609432efd80ac67216a9f1d59cf9e44 Mon Sep 17 00:00:00 2001 From: ValueOn AG Date: Mon, 13 Apr 2026 00:38:44 +0200 Subject: [PATCH] progress --- TOPICS.md | 5 +- b-reference/gateway/automation.md | 25 ++- ...26-04-customer-trustee-demo-enablement.md} | 0 ...rustee-quick-actions-feature-dashboard.md} | 0 .../2026-04-investor-demo-tuesday.md | 145 ++++++++---------- .../2026-04-automation-central-admin.md | 18 +-- 6 files changed, 99 insertions(+), 94 deletions(-) rename c-work/1-plan/{2026-04-customer-demo-enablement.md => 2026-04-customer-trustee-demo-enablement.md} (100%) rename c-work/{1-plan/2026-04-quick-actions-feature-dashboard.md => 2-build/2026-04-customer-trustee-quick-actions-feature-dashboard.md} (100%) rename c-work/{1-plan => 2-build}/2026-04-investor-demo-tuesday.md (78%) rename c-work/{1-plan => 4-done}/2026-04-automation-central-admin.md (85%) diff --git a/TOPICS.md b/TOPICS.md index 84ff188..93c99b9 100644 --- a/TOPICS.md +++ b/TOPICS.md @@ -1,5 +1,5 @@  - + # Themen-Index für AI-Kontext @@ -21,7 +21,7 @@ Lade immer zuerst diese Datei. Dann gezielt die passende(n) Referenz-Datei(en). | Gateway-Architektur | b-reference/gateway/architecture.md | Backend-Module, Services, Interfaces | | AI Agent & Tools | b-reference/gateway/ai-agent.md | Agent-Verhalten, Tool-Registrierung, RAG | | Workflow-Engine | b-reference/gateway/workflow.md | Methoden, Aktionen, WorkflowManager | -| Automation | b-reference/gateway/automation.md | Automation v1+v2, Templates, Flow-Editor | +| Automation | b-reference/gateway/automation.md | Graphical Editor, Scheduler, System-Automatisierung (`/automations`, `/api/system/workflow-runs/*`) | | Billing & Subscriptions | b-reference/gateway/billing.md | Abrechnung, Prepaid, State Machine | | Frontend Nyla | b-reference/frontend-nyla/architecture.md | UI-Seiten, Komponenten, Hooks, Routing | | Private LLM | b-reference/private-llm/architecture.md | Internes LLM, Neutralisierung | @@ -42,6 +42,7 @@ Lade immer zuerst diese Datei. Dann gezielt die passende(n) Referenz-Datei(en). | Thema | Datei | Wann laden | |-------|-------|------------| | Automation Unification | c-work/1-plan/2026-04-automation-unification.md | Refactoring v1/v2/Workspace | +| Zentrale Workflow-Admin (Meine Sicht) | c-work/1-plan/2026-04-automation-central-admin.md | `/automations` Tabs Dashboard + Workflows, `GET .../workflow-runs/workflows` | | Web Image Search | c-work/1-plan/2026-03-web-image-search.md | WEB_SEARCH_MEDIA Feature | | UI i18n / Sprachsets (done) | c-work/3-validate/2026-04-ui-i18n-dynamic-language-sets.md | Mehrsprachigkeit, `t()`, Sprachset-API, Admin-UI, AI-Übersetzung | | Gateway i18n Unified | c-work/3-validate/2026-04 gateway-i18n-unified.md | `@i18nModel`, `t()` Backend, Boot-Sync, TextMultilingual dynamisch | diff --git a/b-reference/gateway/automation.md b/b-reference/gateway/automation.md index bb53623..e7a116e 100644 --- a/b-reference/gateway/automation.md +++ b/b-reference/gateway/automation.md @@ -1,5 +1,5 @@ - + # Automation (Graphical Editor) @@ -182,6 +182,28 @@ Rollen werden beim Feature-Start via `_syncTemplateRolesToDb()` synchronisiert ( --- +## System-Automatisierung (Meine Sicht) + +Mandatsuebergreifende Uebersicht im Frontend: Route **`/automations`** (`frontend_nyla` → `AutomationsDashboardPage`), Eintrag unter **Meine Sicht** in der Navigation. + +| Tab | Inhalt | +|-----|--------| +| **Dashboard** | Metriken (`GET /api/system/workflow-runs/metrics`), Runs-Tabelle mit Backend-Paginierung (`GET /api/system/workflow-runs`) | +| **Workflows** | Liste aller nicht-Template-Workflows aus der Greenfield-DB, gefiltert nach Mandatszugehoerigkeit; Enrichment mit Mandats- und Instanz-Label; pro Zeile **`canEdit` / `canDelete` / `canExecute`** (Sysadmin: alles; Mandats-Admin fuer betroffenes Mandat: alles; sonst keine Mutationsaktionen im UI) | + +**Gateway:** `routes/routeWorkflowDashboard.py`, Router-Prefix **`/api/system/workflow-runs`**. + +| Methode | Pfad | Beschreibung | +|---------|------|--------------| +| GET | `/api/system/workflow-runs` | Runs (offset/limit, RBAC) | +| GET | `/api/system/workflow-runs/metrics` | Aggregierte Kennzahlen | +| GET | `/api/system/workflow-runs/{runId}/steps` | Step-Logs fuer einen Run | +| GET | `/api/system/workflow-runs/workflows` | Workflows mandatsuebergreifend (Query: `active`, `mandateId`, `pagination` als JSON) | + +Instanzspezifische Verwaltung unveraendert unter **`/api/workflows/{instanceId}/...`** (`routeFeatureGraphicalEditor.py`). + +--- + ## Schluessel-Dateien | Bereich | Pfade (`gateway/modules/`) | @@ -192,6 +214,7 @@ Rollen werden beim Feature-Start via `_syncTemplateRolesToDb()` synchronisiert ( | Datenmodell | `features/graphicalEditor/datamodelFeatureGraphicalEditor.py` | | Node-Definitionen | `features/graphicalEditor/nodeDefinitions/` | | Execution Engine | `workflows/automation2/executionEngine.py` | +| System-Runs / zentrale Workflow-Liste | `routes/routeWorkflowDashboard.py` | | Scheduler | `workflows/scheduler/mainScheduler.py` | | Toolbox Registry | `serviceCenter/services/serviceAgent/toolboxRegistry.py` | | Action Library | `workflows/methods/`, `workflows/processing/` (`ActionExecutor`, `methodDiscovery`) | diff --git a/c-work/1-plan/2026-04-customer-demo-enablement.md b/c-work/1-plan/2026-04-customer-trustee-demo-enablement.md similarity index 100% rename from c-work/1-plan/2026-04-customer-demo-enablement.md rename to c-work/1-plan/2026-04-customer-trustee-demo-enablement.md diff --git a/c-work/1-plan/2026-04-quick-actions-feature-dashboard.md b/c-work/2-build/2026-04-customer-trustee-quick-actions-feature-dashboard.md similarity index 100% rename from c-work/1-plan/2026-04-quick-actions-feature-dashboard.md rename to c-work/2-build/2026-04-customer-trustee-quick-actions-feature-dashboard.md diff --git a/c-work/1-plan/2026-04-investor-demo-tuesday.md b/c-work/2-build/2026-04-investor-demo-tuesday.md similarity index 78% rename from c-work/1-plan/2026-04-investor-demo-tuesday.md rename to c-work/2-build/2026-04-investor-demo-tuesday.md index 7c530e4..cca1795 100644 --- a/c-work/1-plan/2026-04-investor-demo-tuesday.md +++ b/c-work/2-build/2026-04-investor-demo-tuesday.md @@ -45,7 +45,7 @@ | UC1 | **Treuhand: Automatisierte Spesenverarbeitung** | 6 Min | Beleg → OCR → Kontierung → Export in Sekunden | Trustee-Feature, Graph-Editor Workflow, SharePoint-Nodes | | UC2 | **Immobilien: Automatisierte Machbarkeitsstudie** | 4 Min | Grundstück eingeben → 6 Min statt 4 Std. Recherche | RealEstate-Feature, Agent + webSearch + readUrl | | UC3 | **Enterprise: AI Knowledge Chatbot** | 4 Min | Frage stellen → sofortige Antwort mit Quellenangabe | Chatbot-Feature, RAG, Neutralisierung | -| UC4 | **Sprach-Deployment: Neue Sprache in 5 Minuten** | 3 Min | Sprache anlegen → AI übersetzt → UI sofort mehrsprachig | i18n-System, AI-Batch-Translation, Admin-UI | +| UC4 | **Sprach-Deployment: Neue Sprache in 5 Minuten** | 3 Min | Sprache anlegen → AI uebersetzt → UI sofort mehrsprachig | i18n-System, AI-Batch-Translation, Admin-UI | | UC5 | **Integrationen: Architektur-Visualisierung** | 1 Min | Komplette Integrationslandschaft auf einen Blick | Neue Systemseite, Custom React-Komponente | | — | **Neutralisierung (Querschnitt)** | 3 Min | PII live entfernen + Re-Personalisierung | Neutralisierung-Feature, Private LLM | @@ -78,10 +78,11 @@ ## Betroffene Module -- **Gateway:** `modules/bootstrap/bootstrapDemo.py` (neu), `modules/system/mainSystem.py` (Nav-Eintrag), `features/trustee/`, `features/realestate/`, `features/chatbot/`, `features/neutralization/`, `features/workspace/`, `features/graphicalEditor/` -- **Frontend:** `pages/system/IntegrationsOverviewPage.tsx` (neu), `config/pageRegistry.tsx` (Eintrag) +- **Gateway:** `modules/demoConfigs/` (neu — Demo-Config-System), `modules/routes/routeAdminDemoConfig.py` (neu), `modules/system/mainSystem.py` (Nav-Eintrag), `features/trustee/`, `features/chatbot/`, `features/neutralization/`, `features/workspace/`, `features/graphicalEditor/` +- **Frontend:** `pages/admin/AdminDemoConfigPage.tsx` (neu), `IntegrationsOverviewPage.tsx` (erledigt), `config/pageRegistry.tsx` (Eintrag), `App.tsx` (Route) - **DB-Migration:** nein (nur Daten-Seeding) -- **Andere Komponenten:** Testdaten (PDF, Excel, CSV), Demo-Skript (Markdown), Test-Suite (pytest) +- **Config:** `gateway/config.ini` (Demo_RMA_* Credentials) +- **Andere Komponenten:** Testdaten (PDF, Excel, CSV) in `gateway/demoData/`, Demo-Skript (Markdown), Test-Suite (pytest) --- @@ -111,37 +112,39 @@ - [ ] **Demo-Storyline abstimmen:** Reihenfolge, Übergänge, wer was sagt - [ ] **Fallback-Strategie:** Was wenn ein UC live hängt? (→ vorbereitete Screenshots/Video) -### Phase 1: Bootstrap-Modul `demo` (Mo Vormittag) +### Phase 0.5: Demo-Config System (erledigt ✅) -- [ ] **`gateway/modules/bootstrap/bootstrapDemo.py`** erstellen - - Funktion `bootstrapDemoEnvironment(db)` — idempotent, aufgerufen via CLI-Flag oder API - - Erstellt Demo-Mandant "PowerON Demo" mit allen nötigen Feature-Instanzen - - Seeded Demo-User: `demo@poweron.ch` (Admin), `treuhänder@demo.ch` (Rolle: Mandant) - - Aktiviert Features: workspace, trustee, realestate, chatbot, neutralization, graphicalEditor - - Lädt Demo-Testdaten (PDFs, Excel) in den Workspace - - Konfiguriert Neutralisierung (enabled=true, Demo-Mappings) - - Erstellt Graph-Editor Demo-Workflows aus System-Templates - - Setzt Demo-Billing (Trial-Modus mit genügend Credits) +- [x] **`gateway/modules/demoConfigs/`** — Modulares Demo-Config-System + - `_baseDemoConfig.py` — Abstrakte Basisklasse mit `load()` / `remove()` + - `__init__.py` — Auto-Discovery aller Config-Files im Ordner + - `investorDemo2026.py` — Investor-Demo Konfiguration: + - Mandant **HappyLife AG** (`happylife`): workspace, trustee(RMA), graphicalEditor, chatbot, neutralization + - Mandant **Alpina Treuhand AG** (`alpina-treuhand`): workspace, trustee(RMA), graphicalEditor, neutralization + - User **Patrick Helvetia** (`p.motsch@poweron.swiss`): SysAdmin, Mitglied beider Mandanten + - RMA-Credentials aus `config.ini` (Demo_RMA_*) + - Billing, Neutralization-Config automatisch +- [x] **Admin UI** unter `/admin/demo-config` (SysAdmin-only) + - Listet alle verfuegbaren Demo-Configs + - Pro Config: "Load" + "Remove" Buttons + - API: `GET/POST /api/admin/demo-config` +- [x] **`gateway/demoData/`** — Ordnerstruktur fuer Testdaten (Files manuell bereitstellen) + - `invoices/`, `expenses/`, `knowledge-base/` -- [ ] **CLI-Einstiegspunkt** in `app.py` oder separates Script `scripts/bootstrapDemo.py` - ``` - python -m scripts.bootstrapDemo --env int --reset - ``` - - `--reset` löscht bestehenden Demo-Mandant und baut neu auf - - `--env` wählt Zielumgebung (local, int) +### Phase 1: Demo-Daten vorbereiten (Mo Vormittag) -- [ ] **Demo-Testdaten vorbereiten** (Ordner `gateway/demoData/`) - - `invoices/` — 3 Muster-Rechnungen (PDF): Handwerker, Büromaterial, Versicherung +- [ ] **RMA-Credentials** in `gateway/config.ini` eintragen (Demo_RMA_ApiBaseUrl, Demo_RMA_ClientName, Demo_RMA_ApiKey) +- [ ] **Demo-Config laden** via Admin UI → `/admin/demo-config` → "Load" +- [ ] **Demo-Testdaten** in `gateway/demoData/` bereitstellen: + - `invoices/` — 3 Muster-Rechnungen (PDF): Handwerker, Bueromaterial, Versicherung - `expenses/` — 2 Spesenbelege (PDF): Reisekosten, Bewirtung - - `tenant-dossier.pdf` — Fiktives Mieterdossier (Name, Adresse, Mietzins) für Neutralisierung - - `knowledge-base/` — 3-4 Firmen-Dokumente (Handbuch, FAQ, Prozessbeschreibung) für RAG - - `budget-2026.xlsx` — Budget-Soll-Werte für Trustee-Vergleich + - `tenant-dossier.pdf` — Fiktives Mieterdossier fuer Neutralisierung + - `knowledge-base/` — 3-4 Firmen-Dokumente (Handbuch, FAQ, Prozessbeschreibung) fuer RAG ### Phase 2: Demo-Konfiguration pro Use Case (Mo Nachmittag) #### UC1: Treuhand — Spesenverarbeitung -- [ ] **Trustee-Instanz konfigurieren** (Connector: Bexio-Sandbox oder Mock) +- [ ] **Trustee-Instanz konfigurieren** (Connector: RMA — Credentials via Demo-Config Bootstrap) - [ ] **Graph-Editor Workflow erstellen/aktivieren:** Trigger (manual) → SharePoint listFiles → Loop → downloadFile → extractFromFiles → processDocuments → syncToAccounting (System-Template "Treuhand: PDF-Klassifizierung & Trustee-Import" als Basis nutzen) @@ -168,47 +171,23 @@ - [ ] **Neutralisierung aktivieren** und in einer Frage live demonstrieren - [ ] **Erwartetes Ergebnis dokumentieren:** Frage → Antwort mit Quellenangabe + Audit-Trail -#### UC5: Integrationen — Architektur-Visualisierung (neue Seite) +#### UC5: Integrationen — Architektur-Visualisierung (erledigt ✅) -- [ ] **Neue Systemseite `page.system.integrations`** erstellen - - Route: `/integrations` (unter "Meine Sicht" / System-Block) - - Navigation-Eintrag in `mainSystem.py` → `NAVIGATION_SECTIONS` - - Page-Registry-Eintrag in `pageRegistry.tsx` → Icon: `FaProjectDiagram` oder `FaCubes` - -- [ ] **React-Komponente `IntegrationsOverviewPage.tsx`** bauen - - **3-Schichten-Layout (vertikal, von unten nach oben):** - - **Schicht 1 (unten): Datenquellen** - - Box pro OAuth-Connection (Microsoft-Icon, Google-Icon) → persönliche Daten - - Box pro System-Connector (Abacus-Instanz, Bexio-Instanz, RMA, SharePoint, etc.) - - Daten kommen von `GET /api/connections` + Feature-Instanz-Configs - - **Schicht 2 (Mitte): PORTA (PowerON)** - - Zentrale Box mit PowerON-Logo - - Darin: Sub-Boxes für jeden aktiven Workflow (System-Templates + Custom-Workflows) - - Daten kommen von `GET /api/workflows` (Graph-Editor Workflows) - - **Schicht 3 (oben): Services / Mandanten** - - Box pro Mandant mit den aktivierten Features/Services darin - - Daten kommen von Navigation-API (`GET /api/navigation` → dynamic block) - - **Verbindungslinien** zwischen den Schichten (CSS/SVG, kein Canvas) - - **Rendering-Technologie:** Custom React mit CSS Grid + `framer-motion` Animationen - - Kein Mermaid (zu statisch, schwer zu stylen) - - Kein xyflow (Overkill, neue Dependency) - - Bestehende Libs nutzen: `react-icons` (Connector-Icons), `framer-motion` (Hover/Enter-Animationen) - -- [ ] **API-Endpoint `GET /api/system/integrations-overview`** (optional) - - Aggregiert: Connections, Feature-Instanzen, Workflows, Mandanten - - Oder: Frontend aggregiert aus bestehenden APIs (einfacher, weniger Backend-Aufwand) - -- [ ] **Demo-Daten sicherstellen:** Mindestens 2 Connections (Microsoft, Google), 2 System-Connectors (Abacus, Bexio), 3 Workflows, 2 Mandanten mit Features +- [x] **Systemseite `page.system.integrations`** implementiert + - Route: `/integrations`, Navigation in `mainSystem.py`, Icon `FaProjectDiagram` +- [x] **`IntegrationsOverviewPage.tsx`** mit 3-Schichten-Layout (Daten, PORTA, Organisation) +- [x] **API `GET /api/system/integrations-overview`** aggregiert alle Daten +- [ ] **Demo-Daten sicherstellen:** Mindestens 2 Connections, 2 System-Connectors, 3 Workflows, 2 Mandanten #### UC4: Sprach-Deployment — Neue Sprache in 5 Minuten - [ ] **Sicherstellen:** i18n Admin-UI erreichbar unter `/admin/languages` -- [ ] **Bestehende Sprachen prüfen:** DE, EN, FR vorhanden und vollständig -- [ ] **Demo-Sprache vorbereiten:** Italienisch (it) NICHT vorinstalliert lassen — wird live angelegt -- [ ] **AI-Übersetzungs-Pipeline testen:** `POST /api/i18n/sets` mit `code: "it"` → async Translation → Ergebnis in <5 Min -- [ ] **Sprachwechsel im UI testen:** Nach Anlage → Sprachselektor zeigt "it" → UI komplett auf Italienisch +- [ ] **Bestehende Sprachen pruefen:** DE, EN, FR vorhanden und vollstaendig +- [ ] **Demo-Sprache vorbereiten:** Spanisch (es) NICHT vorinstalliert lassen — wird live angelegt +- [ ] **AI-Uebersetzungs-Pipeline testen:** `POST /api/i18n/sets` mit `code: "es"` → async Translation → Ergebnis in <5 Min +- [ ] **Sprachwechsel im UI testen:** Nach Anlage → Sprachselektor zeigt "es" → UI komplett auf Spanisch - [ ] **Fallback:** Falls AI-Translation zu lang dauert → Sprache vorher anlegen, live nur den Wechsel zeigen -- [ ] **Billing sicherstellen:** Demo-Mandant hat genügend Credits für AI-Batch-Translation +- [ ] **Billing sicherstellen:** Demo-Mandant hat genuegend Credits fuer AI-Batch-Translation #### Querschnitt: Neutralisierung @@ -250,9 +229,11 @@ ### Szene 0: Setup (vor der Demo, nicht sichtbar) -- Browser auf: PORTA Dashboard (Demo-Mandant eingeloggt als `demo@poweron.ch`) +- Demo-Config geladen via Admin UI (`/admin/demo-config` → "Investor Demo April 2026" → Load) +- Browser auf: PORTA Dashboard (eingeloggt als `p.motsch@poweron.swiss` / `patrick.helvetia`) +- Mandanten: HappyLife AG + Alpina Treuhand AG - Tabs vorbereitet: Dashboard, Workspace, Graph-Editor, Trustee, Chatbot -- SharePoint-Demo-Ordner mit Belegen befüllt +- SharePoint-Demo-Ordner mit Belegen befuellt - Neutralisierung aktiviert - Knowledge-Base indexiert @@ -340,19 +321,19 @@ ### Szene 6: UC4 — Sprach-Deployment live (17:00 – 20:00) -**Was zeigen:** Neue Sprache in Minuten — AI übersetzt das komplette UI automatisch +**Was zeigen:** Neue Sprache in Minuten — AI uebersetzt das komplette UI automatisch **Talking Points:** -- "Europäische Kunden brauchen Mehrsprachigkeit. Deutsch, Französisch, Englisch — und morgen vielleicht Italienisch oder Portugiesisch." -- "Bei PowerON legen Sie eine neue Sprache an, die AI übersetzt alle UI-Texte, und in 5 Minuten ist das System komplett in der neuen Sprache verfügbar. Ohne Code-Änderung, ohne Redeploy." -- "Das ist kein Google Translate. Die AI versteht den Kontext — 'Offen' als Status vs. 'Offen' als Zustand wird korrekt übersetzt." +- "European customers need multi-language support. German, French, English — and tomorrow maybe Spanish or Portuguese." +- "With PowerON you create a new language, AI translates all UI texts, and in 5 minutes the system is fully available in the new language. No code change, no redeploy." +- "This is not Google Translate. The AI understands context — 'Open' as status vs. 'Open' as action is translated correctly." **Klick-Sequenz:** -1. Administration → System → UI-Sprachen öffnen → bestehende Sprachen zeigen (DE, EN, FR) -2. "Neue Sprache anlegen" klicken → z.B. **Italienisch** (it) wählen -3. AI-Übersetzung startet → Fortschritt zeigen (Batch-Pipeline) -4. Sprache wechseln → komplettes UI ist sofort auf Italienisch -5. "Das hat gerade 5 Minuten gedauert. Für eine komplette Enterprise-Plattform. Kein Entwickler nötig." -6. Optional: "Update All" zeigen — scannt die Codebase, synchronisiert neue Keys, übersetzt automatisch +1. Administration → System → UI-Sprachen oeffnen → bestehende Sprachen zeigen (DE, EN, FR) +2. "Neue Sprache anlegen" klicken → **Spanisch** (es) waehlen +3. AI-Uebersetzung startet → Fortschritt zeigen (Batch-Pipeline) +4. Sprache wechseln → komplettes UI ist sofort auf Spanisch +5. "That just took 5 minutes. For an entire enterprise platform. No developer needed." +6. Optional: "Update All" zeigen — scannt die Codebase, synchronisiert neue Keys, uebersetzt automatisch **Transition:** "Das war PowerON PORTA — zurück zu den Zahlen." @@ -444,17 +425,17 @@ Then Antwort zeigt an, dass keine relevante Quelle gefunden wurde (kein Halluz ``` Given Demo-Mandant mit i18n Admin-Zugriff und bestehenden Sprachen DE, EN, FR - AND Sprache "it" (Italienisch) existiert NICHT -When POST /api/i18n/sets mit code "it" ausgeführt wird + AND Sprache "es" (Spanisch) existiert NICHT +When POST /api/i18n/sets mit code "es" ausgefuehrt wird Then AI-Batch-Translation startet - AND nach Abschluss enthält das it-Set alle Keys aus dem de-Master-Set - AND Übersetzungen sind kontextuell korrekt (Stichprobe: "Speichern" → "Salva", "Abbrechen" → "Annulla") + AND nach Abschluss enthaelt das es-Set alle Keys aus dem de-Master-Set + AND Uebersetzungen sind kontextuell korrekt (Stichprobe: "Speichern" -> "Guardar", "Abbrechen" -> "Cancelar") AND Gesamtdauer < 5 Minuten -Given Sprache "it" vollständig übersetzt -When User die Sprache im UI auf "it" wechselt -Then alle UI-Elemente zeigen italienische Texte - AND kein Fallback auf deutsche Keys sichtbar (ausser bei fehlenden Übersetzungen) +Given Sprache "es" vollstaendig uebersetzt +When User die Sprache im UI auf "es" wechselt +Then alle UI-Elemente zeigen spanische Texte + AND kein Fallback auf deutsche Keys sichtbar (ausser bei fehlenden Uebersetzungen) ``` #### T-NEU: Neutralisierung @@ -502,7 +483,7 @@ pytest tests/demo/ -v -m "" | 3 | Given Workspace mit Agent, When Machbarkeitsstudie-Prompt, Then strukturierte Analyse mit Quellen in <2 Min | must | | 4 | Given Chatbot mit Knowledge-Base, When Frage gestellt, Then Antwort mit Quellenangabe in <15s | must | | 5 | Given Mieterdossier-PDF, When Neutralisierung aktiv + AI-Analyse, Then PII nie an LLM gesendet + Re-Personalisierung korrekt | must | -| 6 | Given i18n Admin-UI, When neue Sprache "it" angelegt wird, Then AI übersetzt alle Keys in <5 Min und UI zeigt Italienisch nach Sprachwechsel | must | +| 6 | Given i18n Admin-UI, When neue Sprache "es" angelegt wird, Then AI uebersetzt alle Keys in <5 Min und UI zeigt Spanisch nach Sprachwechsel | must | | 7 | Given komplettes Drehbuch, When Demo komplett durchgespielt, Then Timing ≤ 20 Min mit Puffer | must | | 8 | Given pytest-Suite, When `pytest tests/demo/` ausgeführt, Then alle Tests grün (ohne expensive: Bootstrap + Struktur; mit expensive: Live AI) | should | diff --git a/c-work/1-plan/2026-04-automation-central-admin.md b/c-work/4-done/2026-04-automation-central-admin.md similarity index 85% rename from c-work/1-plan/2026-04-automation-central-admin.md rename to c-work/4-done/2026-04-automation-central-admin.md index 2197819..9729b6a 100644 --- a/c-work/1-plan/2026-04-automation-central-admin.md +++ b/c-work/4-done/2026-04-automation-central-admin.md @@ -1,4 +1,4 @@ - + @@ -35,7 +35,7 @@ Die Seite "Automatisierung" in "Meine Sicht" zeigt aktuell nur ein Dashboard mit ## Betroffene Module -- Gateway: `routeWorkflowDashboard.py` — neuer Endpunkt `GET /api/system/workflows` +- Gateway: `routeWorkflowDashboard.py` — Endpunkt `GET /api/system/workflow-runs/workflows` - Frontend: `AutomationsDashboardPage.tsx` — Tabs, Backend-Paginierung, WorkflowsTab - DB-Migration: nein - Andere Komponenten: keine @@ -51,14 +51,14 @@ Die Seite "Automatisierung" in "Meine Sicht" zeigt aktuell nur ein Dashboard mit ## Umsetzungs-Checkliste - [x] API-Endpunkt: `GET /api/system/workflow-runs/workflows` -- [ ] DB-Schema / Migration: nicht nötig +- [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 -- [ ] Neutralisierung betroffen? Nein -- [ ] Navigation / Routing: keine Änderung (bestehende Route `/automations`) -- [ ] Billing-Impact? Nein +- [x] Neutralisierung betroffen? Nein +- [x] Navigation / Routing: keine Änderung (Route `/automations` unverändert) +- [x] Billing-Impact? Nein ## Akzeptanzkriterien @@ -78,6 +78,6 @@ Die Seite "Automatisierung" in "Meine Sicht" zeigt aktuell nur ein Dashboard mit ## Abschluss -- [ ] b-reference/ aktualisiert (welche Seite?) -- [ ] TOPICS.md aktualisiert (falls neues Thema) -- [ ] Dieses Dokument → z-archive/ verschoben +- [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)