/** * SDK Flow Steps — Paket 3: Dokumentation (seq 2000–2500) * + Paket 4: Rechtliche Texte (seq 3000–3400) */ import type { SDKFlowStep } from './types' export const STEPS_DOKUMENTATION: SDKFlowStep[] = [ { id: 'obligations', name: 'Pflichtenuebersicht', nameShort: 'Pflichten', package: 'dokumentation', seq: 2000, checkpointId: 'CP-OBL', checkpointType: 'REQUIRED', checkpointReviewer: 'NONE', description: 'Zusammenfassung aller gesetzlichen Pflichten aus DSGVO, AI Act, NIS2.', descriptionLong: 'Die Pflichtenuebersicht konsolidiert alle gesetzlichen Pflichten, die sich aus den Requirements, der AI-Act-Klassifizierung und den aktivierten Modulen ergeben. Wenn applicableRegulations aus dem Scope-Profiling vorliegen, werden diese direkt als Vorfilter verwendet. Fuer jede Pflicht wird angegeben: Welches Gesetz (DSGVO, AI Act, NIS2), welcher Artikel, welche Frist, wer verantwortlich ist und welche Massnahmen erforderlich sind. Die RAG-Collection bp_compliance_recht liefert aktuelle Pflichtentexte und Auslegungshinweise.', legalBasis: 'Art. 5 Abs. 2 DSGVO, Art. 9 AI Act', inputs: ['requirements', 'aiActClassification', 'modules', 'applicableRegulations'], outputs: ['obligationsOverview'], prerequisiteSteps: ['audit-report'], dbTables: ['compliance_obligations'], dbMode: 'read/write', ragCollections: ['bp_compliance_recht'], ragPurpose: 'NIS2, DSGVO, AI Act Pflichtentexte', isOptional: false, url: '/sdk/obligations', }, { id: 'dsfa', name: 'DSFA', nameShort: 'DSFA', package: 'dokumentation', seq: 2100, checkpointId: 'CP-DSFA', checkpointType: 'REQUIRED', checkpointReviewer: 'DSB', description: 'Datenschutz-Folgenabschaetzung fuer Hochrisiko-Verarbeitungen. Draft-Modus (v1 + v2) nutzt RAG fuer rechtliche Praezision.', descriptionLong: 'Die Datenschutz-Folgenabschaetzung (DSFA) ist nach Art. 35 DSGVO fuer Verarbeitungen mit hohem Risiko vorgeschrieben. Sie bewertet systematisch die Notwendigkeit, Verhaeltnismaessigkeit und Risiken der Datenverarbeitung. Die DSFA enthaelt: Beschreibung der Verarbeitung, Bewertung der Notwendigkeit, Risikobewertung fuer die Betroffenen, geplante Abhilfemassnahmen. Der DSB muss die DSFA freigeben. Bei verbleibendem Hochrisiko muss die Aufsichtsbehoerde konsultiert werden. Sowohl der v1- als auch der v2-Draft-Modus werden mit rechtlichem Kontext aus dem RAG-Corpus (bp_dsfa_corpus) angereichert. Die shared queryRAG-Utility (rag-query.ts) wird von Chat- und Draft-Pipelines gemeinsam genutzt.', legalBasis: 'Art. 35, 36 DSGVO (DSFA und vorherige Konsultation)', inputs: ['risks', 'aiActClassification', 'modules'], outputs: ['dsfa'], prerequisiteSteps: ['obligations'], dbTables: [], dbMode: 'none', ragCollections: ['bp_dsfa_corpus'], ragPurpose: 'DSFA-Vorlagen, Bewertungskriterien und Art. 35 DSGVO Rechtstexte. v1-Pipeline haengt RAG-Kontext an System-Prompt an, v2-Pipeline injiziert ihn pro Block als RECHTSKONTEXT-Referenz.', generates: ['DSFA-Report'], isOptional: true, url: '/sdk/dsfa', }, { id: 'tom', name: 'TOMs', nameShort: 'TOMs', package: 'dokumentation', seq: 2200, checkpointId: 'CP-TOM', checkpointType: 'REQUIRED', checkpointReviewer: 'NONE', description: 'Dokumentation aller Technisch-Organisatorischen Massnahmen nach Art. 32 DSGVO.', descriptionLong: 'Die Technisch-Organisatorischen Massnahmen (TOMs) dokumentieren alle Sicherheitsmassnahmen, die zum Schutz personenbezogener Daten implementiert sind. TOMs umfassen: Zutrittskontrolle, Zugangskontrolle, Zugriffskontrolle, Weitergabekontrolle, Eingabekontrolle, Auftragskontrolle, Verfuegbarkeitskontrolle und Trennungsgebot. Jede Massnahme wird mit Implementierungsstatus, Verantwortlichem und Pruefintervall dokumentiert. Die bestehenden Controls werden als Basis verwendet.', legalBasis: 'Art. 32 DSGVO (Sicherheit der Verarbeitung)', inputs: ['dsfa', 'controls', 'risks'], outputs: ['toms'], prerequisiteSteps: ['obligations'], dbTables: ['compliance_controls'], dbMode: 'read', ragCollections: ['bp_compliance_datenschutz'], ragPurpose: 'TOM-Massnahmenkataloge', isOptional: false, url: '/sdk/tom', }, { id: 'loeschfristen', name: 'Loeschfristen', nameShort: 'Loeschfristen', package: 'dokumentation', seq: 2300, checkpointId: 'CP-RET', checkpointType: 'REQUIRED', checkpointReviewer: 'NONE', description: 'Festlegung von Aufbewahrungs- und Loeschfristen fuer alle Datenkategorien.', descriptionLong: 'Fuer jede Datenkategorie werden gesetzliche Aufbewahrungsfristen und Loeschzeitpunkte definiert. Dabei werden gesetzliche Mindestaufbewahrungsfristen (z.B. 10 Jahre Steuerrecht, 6 Jahre Handelsrecht, 3 Jahre Verjaehrung) mit dem Grundsatz der Datenminimierung abgewogen. Das Loeschkonzept definiert: Welche Daten, wann geloescht, wie geloescht (Anonymisierung vs. physische Loeschung) und wer verantwortlich ist.', legalBasis: 'Art. 5 Abs. 1e DSGVO (Speicherbegrenzung), Art. 17 DSGVO (Recht auf Loeschung)', inputs: ['vvt', 'dataMapping'], outputs: ['retentionPolicies'], prerequisiteSteps: ['tom'], dbTables: ['compliance_loeschfristen'], dbMode: 'read/write', ragCollections: ['bp_compliance_recht'], ragPurpose: 'Aufbewahrungsfristen nach Gesetz', isOptional: false, url: '/sdk/loeschfristen', }, { id: 'vvt', name: 'Verarbeitungsverzeichnis', nameShort: 'VVT', package: 'dokumentation', seq: 2400, checkpointId: 'CP-VVT', checkpointType: 'REQUIRED', checkpointReviewer: 'DSB', description: 'Erstellung des Verzeichnisses aller Verarbeitungstaetigkeiten nach Art. 30 DSGVO — vollstaendig backend-persistent.', descriptionLong: 'Das VVT (Verzeichnis von Verarbeitungstaetigkeiten) ist eine gesetzliche Pflichtdokumentation nach Art. 30 DSGVO. Fuer jede Verarbeitungstaetigkeit wird dokumentiert: Zweck, Rechtsgrundlage, Kategorien betroffener Personen, Datenkategorien, Empfaenger, Drittlandtransfers, Loeschfristen und TOMs. Jede Aktivitaet wird mit einem eindeutigen VVT-ID versehen und in der Datenbank gespeichert (compliance_vvt_activities). Organisationsweite Metadaten (DSB-Kontakt, Branche, Standorte) werden separat verwaltet (compliance_vvt_organization). Alle Aenderungen werden in einem Audit-Log protokolliert (compliance_vvt_audit_log). Das VVT wird via FastAPI-Backend (backend-compliance:8002) persistent gespeichert. Der DSB muss das VVT freigeben.', legalBasis: 'Art. 30 DSGVO (Verzeichnis von Verarbeitungstaetigkeiten)', inputs: ['modules', 'toms', 'dataMapping'], outputs: ['vvt'], prerequisiteSteps: ['loeschfristen'], dbTables: ['compliance_vvt_organization', 'compliance_vvt_activities', 'compliance_vvt_audit_log'], dbMode: 'read/write', ragCollections: ['bp_compliance_gesetze'], ragPurpose: 'Art. 30 DSGVO Vorlage', isOptional: false, url: '/sdk/vvt', }, { id: 'vendor-compliance', name: 'Vendor Compliance', nameShort: 'Vendor', package: 'dokumentation', seq: 2500, checkpointId: 'CP-VEND', checkpointType: 'REQUIRED', checkpointReviewer: 'NONE', description: 'Pruefung und Verwaltung aller Auftragsverarbeiter und Drittanbieter — Cross-Modul-Integration mit VVT, Obligations, TOM und Loeschfristen.', descriptionLong: 'Vendor Compliance verwaltet alle externen Dienstleister, die im Auftrag personenbezogene Daten verarbeiten (Auftragsverarbeiter nach Art. 28 DSGVO). Fuer jeden Vendor wird geprueft: Gibt es einen AVV? Wo werden Daten gespeichert (EU/Drittland)? Welche TOMs hat der Vendor? Gibt es Subunternehmer? Cross-Modul-Integration: VVT-Processor-Tab liest Vendors mit role=PROCESSOR direkt aus der Vendor-API, Obligations und Loeschfristen verknuepfen Vendors ueber linked_vendor_ids (JSONB), TOM zeigt Vendor-Controls als Querverweis.', legalBasis: 'Art. 28 DSGVO (Auftragsverarbeiter), Art. 44-49 (Drittlandtransfer)', inputs: ['modules', 'vvt'], outputs: ['vendorAssessments', 'vendorControlInstances'], prerequisiteSteps: ['vvt'], dbTables: ['vendor_vendors', 'vendor_contracts', 'vendor_findings', 'vendor_control_instances', 'compliance_templates'], dbMode: 'read/write', ragCollections: ['bp_compliance_recht'], ragPurpose: 'AVV-Vorlagen und Pruefkataloge', isOptional: false, url: '/sdk/vendor-compliance', completion: 100, }, ] export const STEPS_RECHTLICHE_TEXTE: SDKFlowStep[] = [ { id: 'einwilligungen', name: 'Einwilligungen', nameShort: 'Einwilligungen', package: 'rechtliche-texte', seq: 3000, checkpointId: 'CP-CONS', checkpointType: 'REQUIRED', checkpointReviewer: 'NONE', 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: ['compliance_einwilligungen_catalog', 'compliance_einwilligungen_company', 'compliance_einwilligungen_consents', 'compliance_einwilligungen_cookies'], dbMode: 'read/write', ragCollections: ['bp_compliance_datenschutz'], ragPurpose: 'Einwilligungsvorlagen DSGVO', isOptional: false, url: '/sdk/einwilligungen', completion: 100, }, { id: 'consent', name: 'Rechtliche Vorlagen', nameShort: 'Vorlagen', package: 'rechtliche-texte', seq: 3100, checkpointId: 'CP-DOC', checkpointType: 'REQUIRED', checkpointReviewer: 'NONE', 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: ['compliance_legal_documents', 'compliance_legal_document_versions'], dbMode: 'read/write', ragCollections: ['bp_legal_templates'], ragPurpose: 'AGB, DSE, Nutzungsbedingungen Templates', generates: ['Datenschutzerklaerung', 'AGB', 'Nutzungsbedingungen'], isOptional: false, url: '/sdk/consent', completion: 100, }, { id: 'cookie-banner', name: 'Cookie Banner', nameShort: 'Cookies', package: 'rechtliche-texte', seq: 3200, checkpointId: 'CP-COOK', checkpointType: 'REQUIRED', checkpointReviewer: 'NONE', 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: ['compliance_einwilligungen_cookies'], dbMode: 'read/write', ragCollections: ['bp_compliance_datenschutz'], ragPurpose: 'Cookie-Consent Richtlinien', isOptional: false, url: '/sdk/cookie-banner', completion: 100, }, { id: 'document-generator', name: 'Dokumentengenerator', nameShort: 'Generator', package: 'rechtliche-texte', seq: 3300, checkpointId: 'CP-DOCGEN', checkpointType: 'RECOMMENDED', checkpointReviewer: 'NONE', description: 'Generierung weiterer rechtlicher Dokumente (Impressum, AVV, Auftragsverarbeitung) mit PDF-Export.', descriptionLong: 'Der Dokumentengenerator erstellt zusaetzliche rechtliche Dokumente, die ueber die Pflichtdokumente hinausgehen: Impressum (nach TMG/DDG), Auftragsverarbeitungsvertraege (AVV nach Art. 28 DSGVO), Vertraulichkeitsvereinbarungen, Betriebsvereinbarungen zum Datenschutz und Datenschutz-Folgenabschaetzungs-Berichte. Die Templates werden aus bp_legal_templates geladen und mit den unternehmensspezifischen Daten befuellt. PDF-Export ist direkt im Browser via window.print() moeglich. Steht der Template-Service (breakpilot-core) nicht bereit, erscheint ein Fallback-Banner mit Hinweis.', legalBasis: 'Art. 28 DSGVO (Auftragsverarbeitung), DDG § 5 (Impressum)', inputs: ['companyProfile', 'toms', 'vvt'], outputs: ['generatedDocuments'], prerequisiteSteps: ['cookie-banner'], dbTables: [], dbMode: 'none', ragCollections: ['bp_legal_templates'], ragPurpose: 'Dokumenten-Templates', generates: ['Impressum', 'Auftragsverarbeitungsvertrag'], isOptional: true, url: '/sdk/document-generator', completion: 100, }, { id: 'workflow', name: 'Document Workflow', nameShort: 'Workflow', package: 'rechtliche-texte', seq: 3400, checkpointId: 'CP-WRKF', checkpointType: 'REQUIRED', checkpointReviewer: 'NONE', 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: ['compliance_legal_documents', 'compliance_legal_document_versions', 'compliance_legal_document_approvals'], dbMode: 'read/write', ragCollections: [], isOptional: false, url: '/sdk/workflow', completion: 100, }, ]