feat: Package 4 Phase 3 — Finale Fixes + Dokumentation (MkDocs, SDK Flow, StepHeader)
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 48s
CI / test-python-backend-compliance (push) Successful in 40s
CI / test-python-document-crawler (push) Successful in 23s
CI / test-python-dsms-gateway (push) Successful in 18s

Finale Fixes (5 Bugs):
- workflow/page.tsx: Array-Format-Fix fuer loadVersions — Array.isArray statt data.versions
- einwilligungen_routes.py: ip_address + user_agent in GET /consents Response ergaenzt
- consent/page.tsx: Bearbeiten/Vorschau/Veroeffentlichen + Quick Actions verdrahtet (useRouter + Preview Modal)
- cookie-banner/page.tsx: BannerTexts State + Controlled Inputs + DB-Persistenz (banner_texts)
- embed-code/route.ts: In-Memory configStorage → DB-fetch aus Backend, embed_code Key korrigiert

Dokumentation:
- docs-src/services/sdk-modules/rechtliche-texte.md: Neue MkDocs-Seite fuer Paket 4
  (Einwilligungen, Rechtliche Vorlagen, Cookie Banner, Document Workflow)
- mkdocs.yml: Nav-Eintrag 'Rechtliche Texte (Paket 4)' ergaenzt
- dokumentations-module.md: Datenfluss-Diagramm um Paket-4-Module erweitert
- flow-data.ts: Paket-4-Steps mit korrekten dbTables/dbMode und aktualisierten Beschreibungen
- StepHeader.tsx: cookie-banner + workflow STEP_EXPLANATIONS auf Persistenz und Funktionsumfang aktualisiert

Tests: 24/24 bestanden (test_einwilligungen_routes.py)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-03-03 10:37:41 +01:00
parent 3570dd10ea
commit c0b179510d
10 changed files with 491 additions and 88 deletions

View File

@@ -506,14 +506,14 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [
checkpointId: 'CP-CONS',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Definition aller erforderlichen Einwilligungserklaerungen fuer Datenverarbeitungen.',
descriptionLong: 'Basierend auf dem VVT und den aktivierten Modulen werden alle Verarbeitungen identifiziert, die eine Einwilligung erfordern (Art. 6 Abs. 1a DSGVO). Fuer jede Einwilligung wird ein rechtskonformer Text generiert, der: den Zweck klar benennt, freiwillig erteilt werden kann, informiert und spezifisch ist. Einwilligungen werden mit Widerrufsmechanismus, Versionierung und Nachweispflicht versehen.',
description: 'Definition aller Einwilligungserklaerungen — vollstaendig backend-persistent mit Nachweis-Tracking.',
descriptionLong: 'Basierend auf dem VVT und den aktivierten Modulen werden alle Verarbeitungen identifiziert, die eine Einwilligung erfordern (Art. 6 Abs. 1a DSGVO). Der Datenkatalog definiert einwilligungspflichtige Datenpunkte. Erteilte und widerrufene Einwilligungen werden mit vollstaendigem Audit-Trail gespeichert: Zeitpunkt, Version, IP-Adresse, User-Agent, Quelle. Widerruf setzt `revoked_at` ohne den urspruenglichen Eintrag zu loeschen (Nachweispflicht). Cookie-Banner-Konfiguration ist ebenfalls hier zentral verwaltet.',
legalBasis: 'Art. 6 Abs. 1a, Art. 7 DSGVO (Einwilligung)',
inputs: ['vvt', 'modules'],
outputs: ['consents'],
prerequisiteSteps: ['vvt'],
dbTables: [],
dbMode: 'none',
dbTables: ['compliance_einwilligungen_catalog', 'compliance_einwilligungen_company', 'compliance_einwilligungen_consents', 'compliance_einwilligungen_cookies'],
dbMode: 'read/write',
ragCollections: ['bp_compliance_datenschutz'],
ragPurpose: 'Einwilligungsvorlagen DSGVO',
isOptional: false,
@@ -528,14 +528,14 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [
checkpointId: 'CP-DOC',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Generierung von Datenschutzerklaerung, AGB und Nutzungsbedingungen.',
descriptionLong: 'In diesem Schritt werden die zentralen rechtlichen Dokumente generiert: Datenschutzerklaerung (nach Art. 13/14 DSGVO), AGB, Nutzungsbedingungen und Informationspflichten. Die Dokumente werden aus dem Unternehmensprofil, VVT und den Einwilligungen automatisch zusammengestellt. Die RAG-Collection bp_legal_templates liefert branchenspezifische Vorlagen, die an die spezifischen Verarbeitungen des Unternehmens angepasst werden.',
description: 'Verwaltung von Datenschutzerklaerung, AGB und Nutzungsbedingungen — vollstaendig backend-persistent.',
descriptionLong: 'In diesem Schritt werden die zentralen rechtlichen Dokumente verwaltet: Datenschutzerklaerung (Art. 13/14 DSGVO), AGB, Cookie-Richtlinie, Impressum und AVV. Jedes Dokument wird in `compliance_legal_documents` gespeichert. Ueber den Vorschau-Button kann die aktuell veroffentlichte HTML-Version im Browser angezeigt werden. Per Bearbeiten-Button gelangt man direkt in den Document Workflow. Schnellaktionen navigieren zum Dokumentengenerator fuer KI-gestuetzte Template-Generierung.',
legalBasis: 'Art. 13, 14 DSGVO (Informationspflichten)',
inputs: ['companyProfile', 'vvt', 'consents'],
outputs: ['documents'],
prerequisiteSteps: ['einwilligungen'],
dbTables: [],
dbMode: 'none',
dbTables: ['compliance_legal_documents', 'compliance_legal_document_versions'],
dbMode: 'read/write',
ragCollections: ['bp_legal_templates'],
ragPurpose: 'AGB, DSE, Nutzungsbedingungen Templates',
generates: ['Datenschutzerklaerung', 'AGB', 'Nutzungsbedingungen'],
@@ -551,14 +551,14 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [
checkpointId: 'CP-COOK',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Konfiguration eines rechtskonformen Cookie-Banners mit Consent-Management.',
descriptionLong: 'Der Cookie-Banner wird basierend auf den definierten Einwilligungen und dem Unternehmensprofil konfiguriert. Er unterscheidet zwischen technisch notwendigen Cookies (kein Consent noetig), funktionalen Cookies, Analyse-Cookies und Marketing-Cookies. Der Banner implementiert "Privacy by Default" nur notwendige Cookies sind vorausgewaehlt. Die Konfiguration umfasst: Kategorien, Zweckbeschreibungen, Anbieter, Laufzeiten und Opt-in/Opt-out-Mechanismen.',
description: 'Konfiguration eines rechtskonformen Cookie-Banners — Texte und Kategorien persistent in DB.',
descriptionLong: 'Der Cookie-Banner wird basierend auf den definierten Einwilligungen konfiguriert. Alle Einstellungen (Position, Stil, Farbe, Texte) und Kategorien werden in `compliance_einwilligungen_cookies` gespeichert. Banner-Texte (Ueberschrift, Beschreibung, Datenschutz-Link) sind Controlled Inputs und werden beim Speichern persistiert. Die Live-Vorschau aktualisiert sich in Echtzeit. Der Embed-Code wird beim Export aus der DB-Konfiguration generiert — kein In-Memory-Speicher, kein Datenverlust bei Neustart. Implementiert "Privacy by Default": nur notwendige Cookies sind vorausgewaehlt.',
legalBasis: 'Art. 5 Abs. 3 ePrivacy-RL, TTDSG § 25',
inputs: ['consents', 'companyProfile'],
outputs: ['cookieBanner'],
prerequisiteSteps: ['consent'],
dbTables: [],
dbMode: 'none',
dbTables: ['compliance_einwilligungen_cookies'],
dbMode: 'read/write',
ragCollections: ['bp_compliance_datenschutz'],
ragPurpose: 'Cookie-Consent Richtlinien',
isOptional: false,
@@ -596,13 +596,13 @@ export const SDK_FLOW_STEPS: SDKFlowStep[] = [
checkpointId: 'CP-WRKF',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Freigabe-Workflow fuer alle generierten rechtlichen Dokumente.',
descriptionLong: 'Der Document Workflow steuert den Freigabeprozess fuer alle generierten Dokumente. Jedes Dokument durchlaeuft definierte Phasen: Entwurf, Review, Freigabe, Veroeffentlichung. Je nach Dokumenttyp werden unterschiedliche Reviewer zugewiesen (DSB, Rechtsabteilung, Geschaeftsfuehrung). Der Workflow protokolliert alle Aenderungen, Kommentare und Freigaben fuer die Audit-Spur.',
description: 'Freigabe-Workflow fuer alle rechtlichen Dokumente — vollstaendig backend-persistent mit Versionierung.',
descriptionLong: 'Der Document Workflow steuert den Freigabeprozess fuer alle rechtlichen Dokumente. Split-View-Editor: linkes Panel zeigt die veroffentlichte Version, rechtes Panel den Entwurf. Status-Workflow: draft → review → approved → published (oder rejected). Alle Versionen werden in `compliance_legal_document_versions` gespeichert. Der Versions-Endpoint gibt ein direktes JSON-Array zurueck. DOCX-Import via multipart/form-data moeglich. Freigabe-Historie wird in `compliance_legal_document_approvals` protokolliert (Zeitstempel, Benutzer, Kommentar). Veroeffentlichte Versionen sind unveraenderlich — Aenderungen erzeugen stets eine neue Version.',
inputs: ['documents', 'generatedDocuments'],
outputs: ['approvedDocuments'],
prerequisiteSteps: ['cookie-banner'],
dbTables: [],
dbMode: 'none',
dbTables: ['compliance_legal_documents', 'compliance_legal_document_versions', 'compliance_legal_document_approvals'],
dbMode: 'read/write',
ragCollections: [],
isOptional: false,
url: '/sdk/workflow',