Zum Inhalt

Backlog-Inventur — Kora Platform

Erstellt: 2026-05-10 (Karte B, Backlog-Inventur) Stand: Post-Reorg-3 (Merge 9b05330), Post-Cleanup-Folge-1/2/3, Post-K-Security-Saga Zweck: Single-Source-of-Truth aller offenen Items vor v1.0.0-SaaS-Phase

Diese Seite ist eine aggregierte Bilanz aller Backlog-Quellen — sie ersetzt ad-hoc-Inspektion einzelner Quellen für Planungs- und Priorisierungs- Entscheidungen. Detail-Inhalte zu jedem Item bleiben in den Originalquellen (siehe Quellen-Inventur).


Executive Summary

Klasse Anzahl Items Real-Aufwand-Range
🔴 Blockiert (akut) 4 ~4–6h
🟠 Strategisch (v1.0.0-Voraussetzung) 14 ~130–200h
🟡 Nice-to-have ~12 ~30–60h
🟢 Vertagt (langfristig) ~20 ~700–900h
Total offen ~50 Items ~870–1170h

Karten-Skelette in dieser Inventur: 8 (siehe Karten-Skelette) — alle 🔴-Items plus 5 strategische 🟠-DSGVO-/CI-/Provisioning-Karten.

Nicht in dieser Inventur enthalten:

  • Customer-Handbuch-Inhalt (Karte C — 26 Stub-Pages aus Reorg-3 sind separater Pfad)
  • Tududi-Tasks (Karte D — externe Task-Verwaltung)
  • v1.0.0-SaaS-Sub-Karten ohne strategischen 🟠-Druck (siehe SaaS-Detail-Plan als vollständige Referenz; nur die "klein + kompetenz-foundation"-DSGVO-/CI- Karten haben hier Skelett-Stubs)

Quellen-Inventur

Gescannte Quellen mit Item-Anzahl pro Quelle:

Quelle Pfad Gescannte Items
Offene Technische Schulden audit-trail/offene-todos.md (2731 LoC) 57 offen / 5 erledigt
Roadmap-Backlog roadmap/index.md §Backlog 💭 (Z. 2161+) 15 Backlog-Einträge
Roadmap-Strategie-Pause roadmap/index.md §Strategie-Pause 4 Pfade (A✅/B/C/D✅/E✅)
SaaS-Detail-Plan architektur/v1-0-0-saas-detail-plan.md Phase 1 15 Sub-Karten
Changelog audit-trail/changelog.md (4818 LoC) TODO-Markers stichprobenhaft
Cleanup-Welle Discovery audit-trail/discovery/cleanup-welle-discovery.md D3-Cluster (Sammelbecken vertagter Items)
Drift-Status audit-trail/discovery/drift-status.md 6 Familien, 6 Solo-Items (pre-Block-11)
K-Security-Action-Plan docs/security-hardening/action-plan.md (legacy, AVS-Doku) 6 Followups + 6 Out-of-Scope
Memory ~/.claude/projects/.../memory/ 3 Saga-Memories (K-Prompt/K-Postgres/K-Security)
Code-Marker grep TODO\|FIXME src/kora_platform/ 52 Marker, alle Verweise auf zentrale TODOs (keine neuen Items)

Inventur-Methodik: Aggregat-Klassifikation, nicht TODO-by-TODO-Detail- Übernahme. Detail-Texte bleiben in den Originalquellen. Honesty-over-Coverage: einzelne TODO-Items aus alten Code-Reviews (z.B. Block 7.X-Familien) sind in v1.3.0-Welle bereits konsolidiert oder als D3-Cluster verschoben — die hier genannten Anzahlen sind aktive, nicht historische.


Klassen-Cluster

A. UI-Lücken (Backend existiert, UI fehlt)

Item Quelle Aufwand Akut
Doc-Upload-UI Stub (Block 8.5 Pfad C) roadmap §Strategie-Pause Pfad C, doku-ia-audit ~6h Refined / ~3–5h Real 🔴
Bulk-UI ohne Progress-Indicator TODO-Block-7-4-08 ~1h 🟡

B. Feature-Backlog (komplett neue Features)

Item Quelle Aufwand Zielversion
Lizenz-Server Stufe 2 roadmap §Backlog n/a v1.1.0+
Unsloth Fine-Tuning roadmap §Backlog ~64h v1.1.0+
Custom-LoRA-Adapter-Modul roadmap §Backlog n/a v1.3.0+
VLM Multimodal (Qwen2.5-VL) roadmap §Backlog ~40h v1.2.0
OCR-Preprocessing roadmap §Backlog ~15h v1.1.0+
SharePoint-Konnektor roadmap §Backlog ~80h v1.1.0+
Teams-Konnektor roadmap §Backlog ~80h v1.1.0+
Jira-Konnektor roadmap §Backlog ~50h v1.1.0+
MCP-Konnektor-Source-Type roadmap §Backlog ~40–60h v1.1.0
NVFP4-Quantisierung Benchmark roadmap §Backlog ~4–6h Backlog
Knowledge-Hub-Modul roadmap §Backlog ~170h v2.0.0
Ticket-Eskalation-Integration roadmap §Backlog ~40h (+10–15h Corrective-RAG) v1.1.0+
STT / TTS-Integration roadmap §Backlog ~25h STT + ~15h TTS v1.1.0+
Kubernetes-Migration roadmap §Backlog ~80h v1.x+
Öffentliches Konnektor-SDK Stufe 3 roadmap §Backlog ~200h langfristig

C. v1.0.0-SaaS-Sub-Karten (aus SaaS-Detail-Plan)

Sub-Karte Refined Real-Range Status
B-9 Vendor-UI 24h 12–18h 📋 Scoping
B-10 System-Prompt-Automatismus 16h 8–12h 📋 Scoping
B-12 Provisioning-Automatisierung 14h 9–14h 📋 Scoping
C-19 BGE-M3 (Restphase) 25h 12–18h 📋 in Production-Cutover
C-19.5 Reranker-Upgrade 6h 4–6h 📋 Geplant
C-20 AST-Aware Chunking 13h 7–13h 📋 Scoping
C-13 Konnektor-Framework 57h 28–46h 📋 Scoping (größter Block)
C-13b Confluence-Konnektor 10–25h 8–20h 📋 Scoping
D-14 Deployment-Paket 20h 10–16h 📋 Scoping
D-15 Migration & Go-Live 12h 7–11h 📋 Scoping
D-16 Testing & Doku 30h 15–25h 📋 Scoping
DSGVO-1 Per-Tenant-Audit-Export (NEU) 4–6h 3–5h 📋 Scoping
DSGVO-2 Hard-Delete-Pfad (NEU) 6–8h 5–7h 📋 Scoping
DSGVO-3 Per-Tenant-Daten-Export (NEU) 8–12h 6–10h 📋 Scoping
CI-1 Multi-Tenant-Pentest-Validation (NEU) 4–6h 3–5h 📋 Scoping
E-17 Tenant-SSO-Self-Service 49h n/a ⏳ Post-Launch v1.0.1/v1.1.0
Total v1.0.0-Boden ~249h Refined ~137–222h Real

D. Operational-Schulden

Item Quelle Aufwand Akut
Block-19 Tag-7 Observation-Review + Collection-Cleanup TODO-Block-19-Observation-Window + Cleanup ~30–45min 🔴 (heute Tag 7)
Block-18 Backup-Cleanup TODO-Block-18-Backup-Cleanup ~5min 🔴 (Trigger 2026-05-16)
In-Process-Eval-Runner formalisieren TODO-Block-19-Tooling ~2h 🟡
Operator-Route-Präfix-Vereinheitlichung TODO-Block-7-01 n/a (D3-Cluster) 🟢
KNOWN_ACTIONS-Drift gegen Block 13/14 TODO-Block-7-4-04 ~1h 🟢 (Block-13-Mitnahme)
Pytest-Env-Bootstrap TODO-Platform-11 ~2h 🟢 (Block-14-CI-Pflicht)
Pytest-Profil-Trennung Platform vs. AVS TODO-Platform-12 ~3h 🟢 (Block-14-CI-Pflicht)
Qdrant Backup-Strategie TODO-Block-4b 8–12h 🟢 (Eigener Block)
Tenant-Packages Tier/Limits TODO-Block-7-3-01 12–16h 🟢 (Block 12)

E. Doku-Lücken (zusätzlich zu Karte C Customer-Handbuch)

Item Quelle Aufwand Akut
Konzept §6a.2 + §15 — Block-19-Reranker + Per-Subprocess TODO-Block-19-Reconciliation + Lesson ~1.5h 🟡
Pattern-Reife-Quote-Trendlinie §17.2 TODO-Konzept-02 ~30–45min 🟡
q004 Gold-Label Re-Annotation TODO-Block-18-Followup-03 ~1–2h 🟢

F. K-Security-Saga-Followups (Score <80, deferred)

Item Aufwand Akut
L3-FU-1 Cache-Key-Salt für Pattern-Bumps ~2h 🟡
L3-FU-2 Per-Chatbot Pattern-Override für Meta-Content-Bots ~3h 🟡
L5-FU-1 Defensiver break in _collect_response ~10min 🟡
L5-FU-2 Audit-Flush vor metadata-Emit ~15min 🟡
L5-FU-3 Multi-Language-Pattern (RU/CJK) n/a 🟢 (Pen-Test-Trigger)
L5-FU-4 Smoke G2 Assertion härten ~10min 🟡
Phase-3-2 Stream-Architecture-Hardening (Backlog-Karte) n/a 🟢
Smoke-Helper Correction-Event-Disambiguation (Backlog-Karte) n/a 🟢

G. Code-Drift / vertagte Cleanup-Folge-Karten

Item Quelle Aufwand Akut
Ruff TC001/2/3 strukturelle Imports-Verschiebung Cleanup-Folge-1/3 Out-of-Scope ~1–1.5h 🟢
Ruff N818 Exception-Klassen-Rename Cleanup-Folge-1/3 Out-of-Scope ~1.5h 🟢
EnhancedPDFConverter-Removal TODO-Block-18-Followup-01 ~2h 🟢

H. Out-of-Scope (bewusst nicht in v1.0.0)

Aus K-Security-Saga-Action-Plan §Out-of-Scope und Roadmap-Verweise:

Item Aufwand Akut
Phase 4b avs-Stack-Decommissioning n/a 🟢
K-Postgres-Korpus-Erweiterung ~3–4h 🟢
K-Postgres-Prompt-Domain-Refusal ~1h 🟢
Query-Rewrite Pre-Embedding ~3–5h 🟢
Per-Token-Streaming Output-Filter n/a 🟢

Triage-Updates (Karte D, 2026-05-11)

Aus Saga-Lehren der A1-/A2-/B-/C-Karten hochgestuft bzw. neu angelegt:

Hochstufungen

Tudidi-ID Item Vorher Nachher Begründung
#36 tudidi-MCP-Fork Endpoints (complete_task reliable) 🟢 low 🟠 medium Race-Condition + 404-Bugs verhindern reliable Workflow-Sync zwischen Sessions

Neue Items (Browser-Claude post-Karte-D-Merge in Tudidi anlegen)

Item Project Priority Klasse Aufwand Begründung
TODO-Platform-11/12 (alembic-CLI im API-Container) Operations (8) 🟠 medium 🔧 Infra ~2h A1 brauchte manuellen DB-Bump; bei 5+ Code-Karten kumuliert ~2.5h verschwendet
TODO-Block-19-Tooling (tests-Mount im Container) Operations (8) 🟠 medium 🔧 Infra ~2h Integration-Tests laufen nicht im Production-Image; CI-Drift-Risiko bei v1.0.0-Tag
TODO-Block-19-5 Reranker-Upgrade bge-reranker-v2-m3 Phase C Quality (9) 🟡 low 🎯 Qualität ~4–6h Reranker-Bias dokumentiert (q006/q025, MRR −0.0267); nicht regression-blocking
Phase-5 Edge-Case-Queries q026–q035 Phase C Quality (9) 🟡 low 🎯 Qualität ~2–3h aus Block-19-Tag-7-Bericht freigegeben — Akronyme, §-Querverweise, Compound-Edge-Cases
CI-1-FU-1: RLS-Policy auf platform_audit_log (defense-in-depth) Phase A Security (7) 🟡 low 🛡️ Sicherheit ~2h CI-1 Phase-0-Discovery: Tabelle ist absichtlich operator-only, RLS würde 2. Schutzschicht bei Tenant-API-Bug bieten
CI-1-FU-2: Route-Order-Fix operator_audit /export.csv vs. /{entry_id} Phase A Security (7) 🟡 low 🐛 Bug ~30min CI-1 entdeckt: int-typed /{entry_id} matcht /export.csv vor scope-guard → 422 statt 403; kosmetisch, keine Eskalation
CI-1-FU-3: RLS-Performance-Bench (vertagt aus CI-1) Phase A Security (7) 🟢 low 🎯 Qualität ~3–4h CI-1 Phase-4 vertagt: RLS-Last bei 10 Tenants — eigene Karte, weil Performance-Reorg eigener Pfad ist
CI-1-FU-4: RLS-isolierte Negativ-Tests (Honesty-over-Coverage) Phase A Security (7) 🟠 medium 🛡️ Sicherheit ~2–3h CI-1 Code-Review-Befund: bestehende Suite testet kombinierte App-Layer + RLS Defense; broken RLS bei intaktem App-Check würde nicht erkannt — SQL-Direkt-Assertions via request_scoped_session unter fremdem Tenant-Context
DSGVO-1-FU-1: Tenant-Self-Sichtbarkeit von Operator-Cross-Tenant-Audit-Aktionen Phase A Security (7) 🟠 medium 🛡️ Sicherheit ~2h DSGVO-1 Code-Review: Operator-Export landet als audit-Row mit tenant_id=NULL (write_platform_audit ignoriert ctx-Override) → Target-Tenant sieht in eigenem Self-Service-Export keine Operator-Zugriffe; benötigt force_tenant_id-Override in write_platform_audit oder dedizierten direkten INSERT
DSGVO-1-FU-2: Streaming-Export für >50k Row Audit-Logs Phase A Security (7) 🟢 low 🎯 Qualität ~3–4h DSGVO-1 Code-Review: aktueller 100 000-Cap × 4 KB JSONB = ~400 MB In-Memory worst-case; bei wachsender Audit-Historie StreamingResponse + Server-Side-Cursor nötig
DSGVO-1-FU-3: Guard gegen vergessenen tenant_filter bei AuditService Phase A Security (7) 🟡 low 🛡️ Sicherheit ~1–2h DSGVO-1 Code-Review: ohne RLS auf platform_audit_log ist tenant_filter Pflicht für tenant-konsumierende Reads — Wrapper-Klasse TenantScopedAuditService oder grep-Hook verhindert Vergessen

Akut-Bilanz

Akut-Bucket Anzahl Aufwand-Summe
🔴 Blockiert (akut) 4 ~4–6h
🟠 Strategisch (v1.0.0-Voraussetzung) 14 ~130–200h
🟡 Nice-to-have 12 ~30–60h
🟢 Vertagt (langfristig) 20 ~700–900h

🔴-Items im Detail:

  1. Doc-Upload-UI Stub (~3–5h Real) — Customer-Schmerzpunkt: Admin-Doku (Karte C-2, admin/dokumente.md) kann nicht ehrlich sein ohne UI
  2. Block-19 Tag-7 Observation + Cleanup (~30–45min) — Heute Tag 7 (Cutover 2026-05-03 + 7 = 2026-05-10), Review-Touchpoint + Collection-Delete
  3. Block-18 Backup-Cleanup (~5min) — Trigger 2026-05-16 (in 6 Tagen)
  4. (zusammengefasst in den drei oben — vierter "Akut" ist die Customer- Schwelle der Karte C die ohne Doc-Upload-Stub keinen Sinn ergibt)

Priorisierungs-Tabelle

Empfohlene Reihenfolge nach 🔴-Bucket-Tiefe, dann 🟠-Karten nach Aufwand-zu-Compliance-Hebel-Ratio (kleine Karten mit Pflicht-Charakter zuerst):

# Item Bucket Aufwand Begründung
1 Block-19 Tag-7 Observation + Collection-Cleanup 🔴 ~30–45min Trigger heute (2026-05-10)
2 Block-18 Backup-Cleanup 🔴 ~5min Trigger 2026-05-16
3 Doc-Upload-UI Stub (Block 8.5 Pfad C) 🔴 ~3–5h Karte-C-Voraussetzung, Customer-Schmerzpunkt
4 DSGVO-1 Per-Tenant-Audit-Export 🟠 ~3–5h DSGVO Art. 30-Pflicht, kleinste DSGVO-Karte, Foundation-Reuse hoch
5 CI-1 Multi-Tenant-Pentest-Validation 🟠 ~3–5h Foundation-Reuse hoch (Pentest-Suite v1.0 existing), Compliance-Nachweis
6 DSGVO-2 Hard-Delete-Pfad 🟠 ~5–7h DSGVO Art. 17-Pflicht, mittlerer Aufwand
7 DSGVO-3 Per-Tenant-Daten-Export 🟠 ~6–10h DSGVO Art. 20-Pflicht, Bundle-Schema-Aufwand
8 B-12 Provisioning-Automatisierung 🟠 ~9–14h Blockierend für Migration & Go-Live (D-15)

Karten 1–8 als Skelette in dieser Inventur. Karten 9+ (B-9 Vendor-UI, B-10 System-Prompt-Auto, C-13 Konnektor-Framework, D-14/D-15/D-16, C-19.5, C-20) folgen nach DSGVO-Foundation steht.


Karten-Skelette (Top-8)

Format: Saga-Stil mit Scope / Aufwand / Validation / Stop-Bedingungen.

Karte 1 — Block-19 Tag-7 Observation + Collection-Cleanup

name: block-19-tag-7-observation-cleanup
klasse: Operational
scope: |
  Tag-7-Observation-Review (Cutover 2026-05-03 + 7d = 2026-05-10):
  Grafana-Panels p50/p95/p99 + No-Match-Rate gegen Tag-0-Baseline prüfen,
  Bilanz dokumentieren. Bei grünem Status: alte Collection
  avs_handbuecher löschen (Snapshot bleibt 30d in backups/qdrant/ als
  Recovery-Pfad), Block-19-Phase-5 (Edge-Case-Queries q026-q035) als
  nächste Roadmap-Karte freigeben.
aufwand_schaetzung: 30-45min
abhaengigkeiten: keine (Cutover-Stack ist live)
risiko: niedrig (Read-Review + 1 Curl-Delete, Snapshot bleibt)
saga_lehren_anwendbar: [13 (Cleanup-Disziplin)]
validation:
  - Grafana-Bilanz dokumentiert in offene-todos.md TODO-Block-19-Observation-Window
  - curl DELETE Collection grün
  - Backup-Snapshot vorhanden + 30d-Plan
stop_bedingungen:
  - Drift > Tag-0-Baseline 20% → Diskussion ob Rollback
  - Snapshot nicht auffindbar → STOP, User klären
akut_indikator: 🔴 (Heute Tag 7)

Karte 2 — Block-18 Backup-Cleanup

name: block-18-backup-cleanup
klasse: Operational
scope: |
  Pre-Block-18-Production-Backup-Snapshot löschen, ~2 Wochen nach
  Production-Switch ohne Rollback-Notwendigkeit. rm-Befehl + Status-
  Update in offene-todos.md.
aufwand_schaetzung: 5min
abhaengigkeiten: 2 Wochen Beobachtungs-Window post-Block-18-Switch grün
risiko: niedrig (Backup-Pfad bereits dokumentiert)
saga_lehren_anwendbar: [13]
validation:
  - rm /opt/avs-chatbot/backups/qdrant/avs_handbuecher_pre_block18.snapshot
  - du -sh backups/qdrant/ zeigt -8.2 MB
  - TODO-Block-18-Backup-Cleanup als ✅ markiert
stop_bedingungen:
  - Quality-Issue innerhalb Window aufgetreten → STOP, Snapshot behalten
akut_indikator: 🔴 (Trigger 2026-05-16)

Karte 3 — Doc-Upload-UI Stub (Block 8.5 Pfad C)

name: doc-upload-ui-stub
klasse: UI-Lücke
scope: |
  Fixer Upload-Konnektor ohne BaseConnector-Framework (Brücke v1.2.0 →
  Block 13). UI-Pfad in Tenant-UI auf chatbots/:id/sources mit Upload-
  Form (file picker, validation, Backend-Status-Polling). Stub-Source-
  Routing-Pfad: chatbot_sources Row mit connector_id=upload-stub,
  Volumen kommt mit Block 13 nach.

  Customer-Wert: Admin kann selbst Dokument-Upload triggern statt
  via Backend-CLI. Karte-C-Voraussetzung: admin/dokumente.md-Page
  kann ehrlich befüllt werden.
aufwand_schaetzung: 6h Refined / 3-5h Real
abhaengigkeiten: keine (Stub-Pfad, kein Konnektor-Framework)
risiko: niedrig-mittel (Sunk-Cost-Risiko gegen Block 13)
saga_lehren_anwendbar:
  - 1 (Phase-0-Discovery existing chatbot_sources-Schema)
  - 13 (Aufwands-Cap mit Sub-Phasen)
validation:
  - Admin lädt PDF hoch
  - Upload-Status-Polling zeigt "indexed"
  - Audit-Eintrag chatbot_source.created vorhanden
  - Re-Index-Trigger funktioniert
stop_bedingungen:
  - Block-13-Konnektor-Framework-Scope ändert sich grundlegend (Sunk-Cost)
  - Backend chatbot_sources-Schema fehlt entgegen Discovery
akut_indikator: 🔴 (Customer-Schmerzpunkt, Karte-C-Blocker)

Karte 4 — DSGVO-1 Per-Tenant-Audit-Export

name: dsgvo-1-per-tenant-audit-export
klasse: Compliance (DSGVO Art. 30)
scope: |
  API-Endpoint /api/v1/operator/tenants/{tenant_id}/audit-export der
  fünf Audit-Tabellen (vendor_access_log, platform_audit_log,
  output_filter_audit, history_persist_filter_audit, input_filter_audit)
  für einen Tenant als JSON-Bundle exportiert mit Time-Range-Filter.
aufwand_schaetzung: 4-6h Refined / 3-5h Real
abhaengigkeiten: Block 1 ✅ (Audit-Tabellen)
risiko: niedrig (Read-Only-Operation)
saga_lehren_anwendbar: [13]
validation:
  - Bundle enthält genau Rows mit tenant_id == ?
  - Cross-Tenant-Leak-Test: 0 fremde Rows in Test-Tenant-A-Bundle
  - Bundle-Schema validiert gegen JSON-Schema
stop_bedingungen:
  - Cross-Tenant-Leak in Smoke-Test → STOP, Tenant-Filter prüfen
akut_indikator: 🟠 (DSGVO-Pflicht, kleinste DSGVO-Karte, Foundation-Reuse)

Karte 5 — CI-1 Multi-Tenant-Pentest-Validation

name: ci-1-multi-tenant-pentest-validation
klasse: Compliance (DSGVO Art. 32) + Quality-Gate
scope: |
  Quick-Win-CI-Erweiterung: Pentest-Suite v1.0 läuft für ZWEI Test-
  Tenants (A + B) parallel; Cross-Tenant-Isolation-Stress-Test (200x/0
  in CI); Pattern-Coverage-Threshold pro Tenant; Real-Eval-FP-Sweep
  pro Tenant gegen je-tenant-spezifische Eval-Result-Files.
aufwand_schaetzung: 4-6h Refined / 3-5h Real
abhaengigkeiten:
  - Defense-in-Depth-Saga ✅ (Pentest-Suite-Tag pentest-suite-v1.0)
  - Block 16-Test-Suite-Foundation
risiko: niedrig (additive CI-Erweiterung, nicht Runtime)
saga_lehren_anwendbar: [12 (Pentest-Suite-Hardening)]
validation:
  - CI-Job grün auf neuem Multi-Tenant-Suite
  - Isolation-Stress-Test 0 Cross-Tenant-Leaks bei 200 parallelen Requests
stop_bedingungen:
  - Pentest-Suite-Tag pentest-suite-v1.0 nicht stabil → STOP, Suite-Drift-Audit
akut_indikator: 🟠 (Compliance-Nachweis automatisiert, Foundation-Reuse hoch)

Karte 6 — DSGVO-2 Hard-Delete-Pfad mit Backup-Garantie

name: dsgvo-2-hard-delete-pfad
klasse: Compliance (DSGVO Art. 17)
scope: |
  Hard-Delete-CLI `kora-platform tenant-purge --tenant-id ...` mit
  (a) Postgres-DELETE über alle Tabellen mit tenant_id,
  (b) Qdrant-Collection-Drop, (c) Redis-Cache-Invalidate,
  (d) Keycloak-User-Delete, (e) Backup-Retention-Note dokumentiert.
aufwand_schaetzung: 6-8h Refined / 5-7h Real
abhaengigkeiten: Block 12 (Soft-Delete-Foundation), Block 14 (Backup-Runbook)
risiko: mittel-hoch (Hard-Delete destruktiv)
saga_lehren_anwendbar:
  - 1 (Phase-0-Discovery aller tenant_id-Tabellen)
  - 13 (Cleanup-Disziplin)
validation:
  - Test-Tenant-Delete: 0 verbleibende Rows mit purged-uuid über alle Tabellen
  - Backup-File-Path im CLI-Output
  - Operator-Confirmation-Gate getriggert
stop_bedingungen:
  - Tenant-ID-Spalte fehlt in Tabelle entgegen Discovery → STOP
  - Keycloak-User-Delete-Failure → Rollback-Pfad dokumentieren
akut_indikator: 🟠 (DSGVO-Pflicht, größere Karte)

Karte 7 — DSGVO-3 Per-Tenant-Daten-Export

name: dsgvo-3-per-tenant-daten-export
klasse: Compliance (DSGVO Art. 20)
scope: |
  API-Endpoint /api/v1/tenant/data-export der vollständiges Tenant-
  Bundle als ZIP exportiert: Chatbot-Konfigurationen, hochgeladene
  Dokumente, Feedback-Items, Session-Verläufe, Branding-Assets.
  Format JSON + Files, machine-readable.
aufwand_schaetzung: 8-12h Refined / 6-10h Real
abhaengigkeiten: Block 1 ✅, Block 8 ✅
risiko: mittel (Bundle-Vollständigkeit ist Compliance-Anforderung)
saga_lehren_anwendbar:
  - 1 (Discovery aller pro-Tenant-Datenquellen)
  - 13
validation:
  - Test-Tenant-Export auf 3-Chatbot-Tenant zeigt vollständiges Bundle
  - Bundle-Diff-Test gegen Live-DB: 0 fehlende Entitäten
stop_bedingungen:
  - MinIO-Volumen-Mapping fehlt → STOP, Storage-Audit
akut_indikator: 🟠 (DSGVO-Pflicht, größte DSGVO-Karte)

Karte 8 — B-12 Provisioning-Automatisierung

name: b-12-provisioning-automatisierung
klasse: v1.0.0-Sub-Karte (Phase B, blocker für D-15 Go-Live)
scope: |
  Atomare PG+Keycloak-Transaktion mit Kompensations-Logik bei
  Teilerfolg (§14.1 Fundament), Soft-Delete mit 30-Tage-Grace (§14.4),
  Operator-Alert statt Auto-Retry bei Keycloak-Rollback-Failure.
aufwand_schaetzung: 14h Refined / 9-14h Real
abhaengigkeiten:
  - Block 2 (Keycloak-Admin-API)
  - Block 4 (Qdrant-Collection-Provisioning)
  - Block 7 (Operator-Wizard-UI)
risiko: mittel ("halber Tenant" schlimmer als gar keiner)
saga_lehren_anwendbar:
  - 1 (Phase-0-Discovery Keycloak-Admin-API-Quirks)
  - 13
validation:
  - Forced-Failure-Test bei Keycloak-Group-Anlage löst PG-Rollback aus
  - Resultierender DB-State zeigt 0 Ghost-Tenants
  - Operator-Alert getriggert
stop_bedingungen:
  - Keycloak-Admin-API-Rate-Limit unterhalb Test-Last → STOP, Pause-Strategie
akut_indikator: 🟠 (Migration-Blocker für D-15)

Verweise zu Folge-Karten

  • Karte C (Customer-Handbuch-Plan, ~62–91h) — parallel zu Karten 1–3 möglich
  • Karte D (Tududi-Tasks) — externe Task-Verwaltung
  • Karte E (v1.0.0-SaaS-Sub-Karten) — Karten 4–8 sind Vorzüge daraus

Was diese Inventur nicht ist

  • Keine Roadmap-Ersatzroadmap/index.md bleibt authoritativ für Block-Reihenfolge und Status. Diese Inventur aggregiert nur.
  • Keine Item-Detail-Übernahme — Detail-Texte (Severity, Datei-Pfade, Lösungsvorschläge) bleiben in offene-todos.md und anderen Quellen.
  • Kein vollständiger Code-Review-TODO-Pool — Block-7-X-Familien aus offene-todos.md sind teilweise in v1.3.0-Welle konsolidiert; Detail- Status pro Item siehe Originalquelle.

Quellen: siehe Quellen-Inventur. Pattern: Saga-Lehre 13 (Honesty-over-Coverage). Befüllungs-Plan: 8 Karten-Skelette in dieser Datei, Folge-Implementierungen separat.