obligations-document, tom-document, loeschfristen-document, compliance-scope-triggers, sdk-flow/flow-data, processing-activities, loeschfristen-baseline-catalog, catalog-registry, dsfa mitigation-library + risk-catalog, vvt-baseline-catalog, vendor contract-review checklists + findings, demo-data, tom-compliance. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
261 lines
15 KiB
TypeScript
261 lines
15 KiB
TypeScript
/**
|
||
* 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,
|
||
},
|
||
]
|