feat: Betrieb-Module → 100% — Echte CRUD-Flows, kein Mock-Data
All checks were successful
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Successful in 37s
CI / test-python-backend-compliance (push) Successful in 34s
CI / test-python-document-crawler (push) Successful in 22s
CI / test-python-dsms-gateway (push) Successful in 18s

Alle 7 Betrieb-Module von 30–75% auf 100% gebracht:

**Gruppe 1 — UI-Ergänzungen (Backend bereits vorhanden):**
- incidents/page.tsx: IncidentCreateModal + IncidentDetailDrawer (Status-Transitions)
- whistleblower/page.tsx: WhistleblowerCreateModal + CaseDetailPanel (Kommentare, Zuweisung)
- dsr/page.tsx: DSRCreateModal + DSRDetailPanel (Workflow-Timeline, Status-Buttons)
- vendor-compliance/page.tsx: VendorCreateModal + "Neuer Vendor" Button

**Gruppe 2 — Escalations Full Stack:**
- Migration 011: compliance_escalations Tabelle
- Backend: escalation_routes.py (7 Endpoints: list/create/get/update/status/stats/delete)
- Proxy: /api/sdk/v1/escalations/[[...path]] → backend:8002
- Frontend: Mock-Array komplett ersetzt durch echte API + EscalationCreateModal + EscalationDetailDrawer

**Gruppe 2 — Consent Templates:**
- Migration 010: compliance_consent_email_templates + compliance_consent_gdpr_processes (7+7 Seed-Einträge)
- Backend: consent_template_routes.py (GET/POST/PUT/DELETE Templates + GET/PUT GDPR-Prozesse)
- Proxy: /api/sdk/v1/consent-templates/[[...path]]
- Frontend: consent-management/page.tsx lädt Templates + Prozesse aus DB (ApiTemplateEditor, ApiGdprProcessEditor)

**Gruppe 3 — Notfallplan:**
- Migration 012: 4 Tabellen (contacts, scenarios, checklists, exercises)
- Backend: notfallplan_routes.py (vollständiges CRUD + /stats)
- Proxy: /api/sdk/v1/notfallplan/[[...path]]
- Frontend: notfallplan/page.tsx — DB-backed Kontakte + Szenarien + Übungen, ContactCreateModal + ScenarioCreateModal

**Infrastruktur:**
- __init__.py: escalation_router + consent_template_router + notfallplan_router registriert
- Deploy-Skripte: apply_escalations_migration.sh, apply_consent_templates_migration.sh, apply_notfallplan_migration.sh
- Tests: 40 neue Tests (test_escalation_routes.py, test_consent_template_routes.py, test_notfallplan_routes.py)
- flow-data.ts: Completion aller 7 Module auf 100% gesetzt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-03-03 12:48:43 +01:00
parent 79b423e549
commit b19fc11737
24 changed files with 5472 additions and 529 deletions

View File

@@ -639,7 +639,7 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [
ragPurpose: 'Art. 15-21 DSGVO Betroffenenrechte',
isOptional: false,
url: '/sdk/dsr',
completion: 65,
completion: 100,
},
{
id: 'escalations',
@@ -650,18 +650,18 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [
checkpointId: 'CP-ESC',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Definition von Eskalationspfaden bei Compliance-Verstoessen und Datenpannen.',
descriptionLong: 'Das Eskalationsmanagement definiert klare Eskalationspfade fuer verschiedene Szenarien: Datenschutzverletzungen (Art. 33/34 DSGVO), Compliance-Verstoesse, Betroffenen-Beschwerden und Aufsichtsbehoerden-Anfragen. Fuer jedes Szenario werden Verantwortliche, Fristen (72h bei Datenpannen), Kommunikationswege und Massnahmen festgelegt. Die Eskalationspfade basieren auf der Risikomatrix und den definierten Controls.',
description: 'Definition von Eskalationspfaden bei Compliance-Verstoessen und Datenpannen — vollstaendig backend-persistent.',
descriptionLong: 'Das Eskalationsmanagement definiert klare Eskalationspfade fuer verschiedene Szenarien: Datenschutzverletzungen (Art. 33/34 DSGVO), Compliance-Verstoesse, Betroffenen-Beschwerden und Aufsichtsbehoerden-Anfragen. Fuer jedes Szenario werden Verantwortliche, Fristen (72h bei Datenpannen), Kommunikationswege und Massnahmen festgelegt. Eskalationen koennen aus DSR, Incidents und Whistleblower-Modulen heraus erstellt werden. Alle Daten werden in compliance_escalations gespeichert.',
legalBasis: 'Art. 33, 34 DSGVO (Meldepflichten bei Datenpannen)',
inputs: ['risks', 'controls'],
outputs: ['escalationWorkflows'],
prerequisiteSteps: ['dsr'],
dbTables: [],
dbMode: 'none',
dbTables: ['compliance_escalations'],
dbMode: 'read/write',
ragCollections: [],
isOptional: false,
url: '/sdk/escalations',
completion: 30,
completion: 100,
},
{
id: 'vendor-compliance',
@@ -684,7 +684,7 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [
ragPurpose: 'AVV-Vorlagen und Pruefkataloge',
isOptional: false,
url: '/sdk/vendor-compliance',
completion: 35,
completion: 100,
},
{
id: 'consent-management',
@@ -695,18 +695,18 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [
checkpointId: 'CP-CMGMT',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Laufende Verwaltung aller erteilten und widerrufenen Einwilligungen.',
descriptionLong: 'Das Consent Management System verwaltet im laufenden Betrieb alle erteilten Einwilligungen: Wer hat wann welche Einwilligung erteilt? Wurde sie widerrufen? Welche Version der Einwilligungserklaerung wurde akzeptiert? Das System stellt sicher, dass Einwilligungen nachweisbar sind (Art. 7 Abs. 1 DSGVO), Widerrufe sofort wirksam werden und bei geaenderten Zwecken neue Einwilligungen eingeholt werden.',
description: 'Laufende Verwaltung aller erteilten und widerrufenen Einwilligungen — E-Mail-Templates + DSGVO-Prozesse aus DB.',
descriptionLong: 'Das Consent Management System verwaltet im laufenden Betrieb alle erteilten Einwilligungen. E-Mail-Templates (Bestaetigungen, DSR-Antworten, etc.) und DSGVO-Prozesse (Art. 15-21) werden in der Datenbank gespeichert und koennen inline bearbeitet werden. Das System stellt sicher, dass Einwilligungen nachweisbar sind (Art. 7 Abs. 1 DSGVO), Widerrufe sofort wirksam werden und bei geaenderten Zwecken neue Einwilligungen eingeholt werden.',
legalBasis: 'Art. 7 DSGVO (Bedingungen fuer die Einwilligung)',
inputs: ['consents', 'documents'],
outputs: ['consentManagement'],
prerequisiteSteps: ['vendor-compliance'],
dbTables: [],
dbMode: 'none',
dbTables: ['compliance_consent_email_templates', 'compliance_consent_gdpr_processes'],
dbMode: 'read/write',
ragCollections: [],
isOptional: false,
url: '/sdk/consent-management',
completion: 75,
completion: 100,
},
{
id: 'notfallplan',
@@ -717,19 +717,19 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [
checkpointId: 'CP-NOTF',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Erstellung eines Notfallplans fuer Datenpannen und Sicherheitsvorfaelle.',
descriptionLong: 'Der Notfallplan definiert das Vorgehen bei Datenschutzverletzungen (Data Breaches). Er enthaelt: Sofortmassnahmen zur Schadensbegrenzung, Meldeprozess an die Aufsichtsbehoerde (innerhalb 72h nach Art. 33 DSGVO), Benachrichtigung betroffener Personen (Art. 34 DSGVO), Dokumentation des Vorfalls und Massnahmen zur Verhinderung kuenftiger Vorfaelle. Der Plan wird als PDF exportiert und allen relevanten Mitarbeitern zugaenglich gemacht.',
description: 'Erstellung eines Notfallplans fuer Datenpannen und Sicherheitsvorfaelle — vollstaendig backend-persistent.',
descriptionLong: 'Der Notfallplan definiert das Vorgehen bei Datenschutzverletzungen (Data Breaches). Er enthaelt: Sofortmassnahmen zur Schadensbegrenzung, Meldeprozess an die Aufsichtsbehoerde (innerhalb 72h nach Art. 33 DSGVO), Benachrichtigung betroffener Personen (Art. 34 DSGVO), Dokumentation des Vorfalls und Massnahmen zur Verhinderung kuenftiger Vorfaelle. Alle Szenarien, Notfallkontakte, Checklisten und Uebungen werden in der Datenbank gespeichert — kein Mock-Data mehr.',
legalBasis: 'Art. 33, 34 DSGVO (Meldung von Datenpannen)',
inputs: ['risks', 'controls'],
outputs: ['incidentResponsePlan'],
prerequisiteSteps: ['consent-management'],
dbTables: [],
dbMode: 'none',
dbTables: ['compliance_notfallplan_scenarios', 'compliance_notfallplan_contacts', 'compliance_notfallplan_checklists', 'compliance_notfallplan_exercises'],
dbMode: 'read/write',
ragCollections: [],
generates: ['Notfallplan (PDF)'],
isOptional: false,
url: '/sdk/notfallplan',
completion: 50,
completion: 100,
},
{
id: 'incidents',
@@ -751,7 +751,7 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [
ragCollections: [],
isOptional: false,
url: '/sdk/incidents',
completion: 55,
completion: 100,
},
{
id: 'whistleblower',
@@ -773,7 +773,7 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [
ragCollections: [],
isOptional: false,
url: '/sdk/whistleblower',
completion: 60,
completion: 100,
},
{
id: 'academy',