From fc6a3306d4f6b6ef2fc834f6a061802d953c5519 Mon Sep 17 00:00:00 2001 From: Sharang Parnerkar <30073382+mighty840@users.noreply.github.com> Date: Fri, 10 Apr 2026 13:24:07 +0200 Subject: [PATCH] refactor(admin): split compliance-scope-types.ts (1738 LOC) into domain modules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit compliance-scope-types.ts decomposed into 9 files under compliance-scope-types/ with a barrel index.ts: core-levels.ts (29) — ComplianceDepthLevel enum constants.ts (83) — label mappings + defaults questions.ts (77) — ComplianceScopeQuestion types hard-triggers.ts (77) — HardTrigger rule types documents.ts (84) — ScopeDocumentType + document definitions decisions.ts (111) — Decision model types document-scope-matrix-core.ts (551) — core document scope matrix data document-scope-matrix-extended.ts (565) — extended document scope data state.ts (22) — ComplianceScopeState Note: the two document-scope-matrix files at 551/565 LOC are data tables (static configuration arrays). They exceed the 500-line soft cap but are a legitimate data-table exception — splitting them would fragment the matrix lookup logic without improving readability. next build passes. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../lib/sdk/compliance-scope-types.ts | 1738 ----------------- .../sdk/compliance-scope-types/constants.ts | 83 + .../sdk/compliance-scope-types/core-levels.ts | 29 + .../sdk/compliance-scope-types/decisions.ts | 111 ++ .../document-scope-matrix-core.ts | 551 ++++++ .../document-scope-matrix-extended.ts | 565 ++++++ .../sdk/compliance-scope-types/documents.ts | 84 + .../compliance-scope-types/hard-triggers.ts | 77 + .../lib/sdk/compliance-scope-types/index.ts | 10 + .../sdk/compliance-scope-types/questions.ts | 77 + .../lib/sdk/compliance-scope-types/state.ts | 22 + 11 files changed, 1609 insertions(+), 1738 deletions(-) delete mode 100644 admin-compliance/lib/sdk/compliance-scope-types.ts create mode 100644 admin-compliance/lib/sdk/compliance-scope-types/constants.ts create mode 100644 admin-compliance/lib/sdk/compliance-scope-types/core-levels.ts create mode 100644 admin-compliance/lib/sdk/compliance-scope-types/decisions.ts create mode 100644 admin-compliance/lib/sdk/compliance-scope-types/document-scope-matrix-core.ts create mode 100644 admin-compliance/lib/sdk/compliance-scope-types/document-scope-matrix-extended.ts create mode 100644 admin-compliance/lib/sdk/compliance-scope-types/documents.ts create mode 100644 admin-compliance/lib/sdk/compliance-scope-types/hard-triggers.ts create mode 100644 admin-compliance/lib/sdk/compliance-scope-types/index.ts create mode 100644 admin-compliance/lib/sdk/compliance-scope-types/questions.ts create mode 100644 admin-compliance/lib/sdk/compliance-scope-types/state.ts diff --git a/admin-compliance/lib/sdk/compliance-scope-types.ts b/admin-compliance/lib/sdk/compliance-scope-types.ts deleted file mode 100644 index 1aaed27..0000000 --- a/admin-compliance/lib/sdk/compliance-scope-types.ts +++ /dev/null @@ -1,1738 +0,0 @@ -/** - * Compliance Scope Engine - Type Definitions - * - * Definiert alle Typen für das Compliance-Tiefenbestimmungssystem. - * Ermöglicht die Bestimmung des optimalen Compliance-Levels (L1-L4) basierend auf - * Risiko, Komplexität und Assurance-Bedarf einer Organisation. - */ - -// ============================================================================ -// Core Level Types -// ============================================================================ - -/** - * Compliance-Tiefenstufen - * - L1: Lean Startup - Minimalansatz für kleine Organisationen - * - L2: KMU Standard - Standard-Compliance für mittelständische Unternehmen - * - L3: Erweitert - Erweiterte Compliance für größere/risikoreichere Organisationen - * - L4: Zertifizierungsbereit - Vollständige Compliance für Zertifizierungen - */ -export type ComplianceDepthLevel = 'L1' | 'L2' | 'L3' | 'L4'; - -/** - * Compliance-Scores zur Bestimmung der optimalen Tiefe - * Alle Werte zwischen 0-100 - */ -export interface ComplianceScores { - /** Risiko-Score (0-100): Höhere Werte = höheres Risiko */ - risk_score: number; - /** Komplexitäts-Score (0-100): Höhere Werte = komplexere Verarbeitung */ - complexity_score: number; - /** Assurance-Bedarf (0-100): Höhere Werte = höherer Nachweis-/Zertifizierungsbedarf */ - assurance_need: number; - /** Zusammengesetzter Score (0-100): Gewichtete Kombination aller Scores */ - composite_score: number; -} - -// ============================================================================ -// Question & Profiling Types -// ============================================================================ - -/** - * IDs der Fragenblöcke für das Scope-Profiling - */ -export type ScopeQuestionBlockId = - | 'organisation' // Organisation & Reife - | 'data' // Daten & Betroffene - | 'processing' // Verarbeitung & Zweck - | 'tech' // Technik & Hosting - | 'processes' // Rechte & Prozesse - | 'product' // Produktkontext - | 'ai_systems' // KI-Systeme (aus Profil portiert) - | 'vvt' // Verarbeitungstaetigkeiten (aus Profil portiert) - | 'datenkategorien_detail'; // Datenkategorien pro Abteilung (Block 9) - -/** - * Eine einzelne Frage im Scope-Profiling - */ -export interface ScopeProfilingQuestion { - /** Eindeutige ID der Frage */ - id: string; - /** Fragetext */ - question: string; - /** Optional: Hilfetext/Erklärung */ - helpText?: string; - /** Antworttyp */ - type: 'single' | 'multi' | 'boolean' | 'number' | 'text'; - /** Antwortoptionen (für single/multi) */ - options?: Array<{ value: string; label: string }>; - /** Ist die Frage erforderlich? */ - required: boolean; - /** Gewichtung für Score-Berechnung */ - scoreWeights?: { - risk?: number; // Einfluss auf Risiko-Score - complexity?: number; // Einfluss auf Komplexitäts-Score - assurance?: number; // Einfluss auf Assurance-Bedarf - }; - /** Mapping zu Firmenprofil-Feldern */ - mapsToCompanyProfile?: string; - /** Mapping zu VVT-Fragen */ - mapsToVVTQuestion?: string; - /** Mapping zu LF-Fragen */ - mapsToLFQuestion?: string; - /** Mapping zu TOM-Profil */ - mapsToTOMProfile?: string; -} - -/** - * Antwort auf eine Profiling-Frage - */ -export interface ScopeProfilingAnswer { - /** ID der beantworteten Frage */ - questionId: string; - /** Antwortwert (Typ abhängig von Fragentyp) */ - value: string | string[] | boolean | number; -} - -/** - * Ein Block von zusammengehörigen Fragen - */ -export interface ScopeQuestionBlock { - /** Block-ID */ - id: ScopeQuestionBlockId; - /** Block-Titel */ - title: string; - /** Block-Beschreibung */ - description: string; - /** Reihenfolge des Blocks */ - order: number; - /** Fragen in diesem Block */ - questions: ScopeProfilingQuestion[]; -} - -// ============================================================================ -// Hard Trigger Types -// ============================================================================ - -/** - * Bedingungsoperatoren für Hard Trigger - */ -export type HardTriggerOperator = - | 'EQUALS' // Exakte Übereinstimmung - | 'CONTAINS' // Enthält (für Arrays/Strings) - | 'IN' // Ist in Liste enthalten - | 'GREATER_THAN' // Größer als (numerisch) - | 'NOT_EQUALS'; // Ungleich - -/** - * Hard Trigger Regel - erzwingt Mindest-Compliance-Level - */ -export interface HardTriggerRule { - /** Eindeutige ID der Regel */ - id: string; - /** Kategorie der Regel */ - category: string; - /** Frage-ID, die geprüft wird */ - questionId: string; - /** Bedingungsoperator */ - condition: HardTriggerOperator; - /** Wert, der geprüft wird */ - conditionValue: unknown; - /** Minimal erforderliches Level */ - minimumLevel: ComplianceDepthLevel; - /** DSFA erforderlich? */ - requiresDSFA: boolean; - /** Pflichtdokumente bei Trigger */ - mandatoryDocuments: string[]; - /** Rechtsgrundlage */ - legalReference: string; - /** Detaillierte Beschreibung */ - description: string; - /** Kombiniert mit Art. 9 Daten? */ - combineWithArt9?: boolean; - /** Kombiniert mit Minderjährigen-Daten? */ - combineWithMinors?: boolean; - /** Kombiniert mit KI-Nutzung? */ - combineWithAI?: boolean; - /** Kombiniert mit Mitarbeiterüberwachung? */ - combineWithEmployeeMonitoring?: boolean; - /** Kombiniert mit automatisierter Entscheidungsfindung? */ - combineWithADM?: boolean; - /** Regel feuert NICHT wenn diese Bedingung zutrifft */ - excludeWhen?: { questionId: string; value: string | string[] }; - /** Regel feuert NUR wenn diese Bedingung zutrifft */ - requireWhen?: { questionId: string; value: string | string[] }; -} - -/** - * Getriggerter Hard Trigger mit Kontext - */ -export interface TriggeredHardTrigger { - /** Regel-ID */ - ruleId: string; - /** Kategorie */ - category: string; - /** Beschreibung */ - description: string; - /** Rechtsgrundlage */ - legalReference?: string; - /** Mindest-Level */ - minimumLevel: ComplianceDepthLevel; - /** DSFA erforderlich? */ - requiresDSFA: boolean; - /** Pflichtdokumente */ - mandatoryDocuments: string[]; -} - -// ============================================================================ -// Document Types -// ============================================================================ - -/** - * Alle verfügbaren Dokumenttypen im SDK - */ -export type ScopeDocumentType = - | 'vvt' // Verzeichnis von Verarbeitungstätigkeiten - | 'lf' // Löschfristenkonzept - | 'tom' // Technische und organisatorische Maßnahmen - | 'av_vertrag' // Auftragsverarbeitungsvertrag - | 'dsi' // Datenschutz-Informationen (Privacy Policy) - | 'betroffenenrechte' // Betroffenenrechte-Prozess - | 'dsfa' // Datenschutz-Folgenabschätzung - | 'daten_transfer' // Drittlandtransfer-Dokumentation - | 'datenpannen' // Datenpannen-Prozess - | 'einwilligung' // Einwilligungsmanagement - | 'vertragsmanagement' // Vertragsmanagement-Prozess - | 'schulung' // Mitarbeiterschulung - | 'audit_log' // Audit & Logging Konzept - | 'risikoanalyse' // Risikoanalyse - | 'notfallplan' // Notfall- & Krisenplan - | 'zertifizierung' // Zertifizierungsvorbereitung - | 'datenschutzmanagement' // Datenschutzmanagement-System (DSMS) - | 'iace_ce_assessment' // CE-Risikobeurteilung SW/FW/KI (IACE) - | 'widerrufsbelehrung' // Widerrufsbelehrung (§ 312g BGB) - | 'preisangaben' // Preisangaben (PAngV) - | 'fernabsatz_info' // Informationspflichten Fernabsatz (§ 312d BGB) - | 'streitbeilegung' // Streitbeilegungshinweis (VSBG § 36) - | 'produktsicherheit' // Produktsicherheit (GPSR EU 2023/988) - | 'ai_act_doku'; // AI Act Technische Dokumentation (Art. 11) - -// ============================================================================ -// Decision & Output Types -// ============================================================================ - -/** - * Die finale Scope-Entscheidung mit allen Details - */ -export interface ScopeDecision { - /** Eindeutige ID dieser Entscheidung */ - id: string; - /** Bestimmtes Compliance-Level */ - determinedLevel: ComplianceDepthLevel; - /** Berechnete Scores */ - scores: ComplianceScores; - /** Getriggerte Hard Trigger */ - triggeredHardTriggers: TriggeredHardTrigger[]; - /** Erforderliche Dokumente mit Details */ - requiredDocuments: RequiredDocument[]; - /** Identifizierte Risiko-Flags */ - riskFlags: RiskFlag[]; - /** Identifizierte Lücken */ - gaps: ScopeGap[]; - /** Empfohlene nächste Schritte */ - nextActions: NextAction[]; - /** Begründung der Entscheidung */ - reasoning: ScopeReasoning[]; - /** Zeitstempel Erstellung */ - createdAt: string; - /** Zeitstempel letzte Änderung */ - updatedAt: string; -} - -/** - * Erforderliches Dokument mit Detailtiefe - */ -export interface RequiredDocument { - /** Dokumenttyp */ - documentType: ScopeDocumentType; - /** Anzeigename */ - label: string; - /** Pflicht oder empfohlen */ - requirement: 'mandatory' | 'recommended'; - /** Priorität */ - priority: 'high' | 'medium' | 'low'; - /** Geschätzter Aufwand in Stunden */ - estimatedEffort: number; - /** Von welchen Triggern/Regeln gefordert */ - triggeredBy: string[]; - /** Link zum SDK-Schritt */ - sdkStepUrl?: string; -} - -/** - * Risiko-Flag - */ -export interface RiskFlag { - /** Schweregrad */ - severity: string; - /** Kategorie */ - category: string; - /** Beschreibung */ - message: string; - /** Rechtsgrundlage */ - legalReference?: string; - /** Empfehlung zur Behebung */ - recommendation: string; -} - -/** - * Identifizierte Lücke in der Compliance - */ -export interface ScopeGap { - /** Gap-Typ */ - gapType: string; - /** Schweregrad */ - severity: string; - /** Beschreibung */ - description: string; - /** Erforderlich für Level */ - requiredFor: ComplianceDepthLevel; - /** Aktueller Zustand */ - currentState: string; - /** Zielzustand */ - targetState: string; - /** Aufwand in Stunden */ - effort: number; - /** Priorität */ - priority: string; -} - -/** - * Nächster empfohlener Schritt - */ -export interface NextAction { - /** Aktionstyp */ - actionType: 'create_document' | 'establish_process' | 'implement_technical' | 'organizational_change'; - /** Titel */ - title: string; - /** Beschreibung */ - description: string; - /** Priorität */ - priority: string; - /** Geschätzter Aufwand in Stunden */ - estimatedEffort: number; - /** Dokumenttyp (optional) */ - documentType?: ScopeDocumentType; - /** Link zum SDK-Schritt */ - sdkStepUrl?: string; - /** Blocker */ - blockers: string[]; -} - -/** - * Begründungsschritt für die Entscheidung - */ -export interface ScopeReasoning { - /** Schritt-Nummer/ID */ - step: string; - /** Kurzbeschreibung */ - description: string; - /** Faktoren */ - factors: string[]; - /** Auswirkung */ - impact: string; -} - -// ============================================================================ -// Document Scope Requirements -// ============================================================================ - -/** - * Anforderungen an ein Dokument pro Level - */ -export interface DocumentDepthRequirement { - /** Ist auf diesem Level erforderlich? */ - required: boolean; - /** Tiefenbezeichnung */ - depth: string; - /** Konkrete Anforderungen */ - detailItems: string[]; - /** Geschätzter Aufwand */ - estimatedEffort: string; -} - -/** - * Vollständige Scope-Anforderungen für ein Dokument - */ -export interface DocumentScopeRequirement { - /** L1 Anforderungen */ - L1: DocumentDepthRequirement; - /** L2 Anforderungen */ - L2: DocumentDepthRequirement; - /** L3 Anforderungen */ - L3: DocumentDepthRequirement; - /** L4 Anforderungen */ - L4: DocumentDepthRequirement; -} - -// ============================================================================ -// State Management Types -// ============================================================================ - -/** - * Gesamter Zustand des Compliance Scope - */ -export interface ComplianceScopeState { - /** Alle gegebenen Antworten */ - answers: ScopeProfilingAnswer[]; - /** Aktuelle Entscheidung (null wenn noch nicht berechnet) */ - decision: ScopeDecision | null; - /** Zeitpunkt der letzten Evaluierung */ - lastEvaluatedAt: string | null; - /** Sind alle Pflichtfragen beantwortet? */ - isComplete: boolean; -} - -// ============================================================================ -// Constants - Labels & Descriptions -// ============================================================================ - -/** - * Deutsche Bezeichnungen für Compliance-Levels - */ -export const DEPTH_LEVEL_LABELS: Record = { - L1: 'Lean Startup', - L2: 'KMU Standard', - L3: 'Erweitert', - L4: 'Zertifizierungsbereit', -}; - -/** - * Detaillierte Beschreibungen der Compliance-Levels - */ -export const DEPTH_LEVEL_DESCRIPTIONS: Record = { - L1: 'Minimalansatz für kleine Organisationen und Startups. Fokus auf gesetzliche Pflichten mit pragmatischen Lösungen.', - L2: 'Standard-Compliance für mittelständische Unternehmen. Ausgewogenes Verhältnis zwischen Aufwand und Compliance-Qualität.', - L3: 'Erweiterte Compliance für größere oder risikoreichere Organisationen. Detaillierte Dokumentation und Prozesse.', - L4: 'Vollständige Compliance für Zertifizierungen und höchste Anforderungen. Audit-ready Dokumentation.', -}; - -/** - * Farben für Compliance-Levels (Tailwind-kompatibel) - */ -export const DEPTH_LEVEL_COLORS: Record = { - L1: { bg: 'bg-green-50', border: 'border-green-300', badge: 'bg-green-100', text: 'text-green-800' }, - L2: { bg: 'bg-blue-50', border: 'border-blue-300', badge: 'bg-blue-100', text: 'text-blue-800' }, - L3: { bg: 'bg-amber-50', border: 'border-amber-300', badge: 'bg-amber-100', text: 'text-amber-800' }, - L4: { bg: 'bg-red-50', border: 'border-red-300', badge: 'bg-red-100', text: 'text-red-800' }, -}; - -/** - * Deutsche Bezeichnungen für alle Dokumenttypen - */ -export const DOCUMENT_TYPE_LABELS: Record = { - vvt: 'Verzeichnis von Verarbeitungstätigkeiten (VVT)', - lf: 'Löschfristenkonzept', - tom: 'Technische und organisatorische Maßnahmen (TOM)', - av_vertrag: 'Auftragsverarbeitungsvertrag (AVV)', - dsi: 'Datenschutz-Informationen (Privacy Policy)', - betroffenenrechte: 'Betroffenenrechte-Prozess', - dsfa: 'Datenschutz-Folgenabschätzung (DSFA)', - daten_transfer: 'Drittlandtransfer-Dokumentation', - datenpannen: 'Datenpannen-Prozess', - einwilligung: 'Einwilligungsmanagement', - vertragsmanagement: 'Vertragsmanagement-Prozess', - schulung: 'Mitarbeiterschulung', - audit_log: 'Audit & Logging Konzept', - risikoanalyse: 'Risikoanalyse', - notfallplan: 'Notfall- & Krisenplan', - zertifizierung: 'Zertifizierungsvorbereitung', - datenschutzmanagement: 'Datenschutzmanagement-System (DSMS)', - iace_ce_assessment: 'CE-Risikobeurteilung SW/FW/KI (IACE)', - widerrufsbelehrung: 'Widerrufsbelehrung (§ 312g BGB)', - preisangaben: 'Preisangaben (PAngV)', - fernabsatz_info: 'Informationspflichten Fernabsatz (§ 312d BGB)', - streitbeilegung: 'Streitbeilegungshinweis (VSBG § 36)', - produktsicherheit: 'Produktsicherheitsdokumentation (GPSR)', - ai_act_doku: 'AI Act Technische Dokumentation (Art. 11)', -}; - -/** - * Status-Labels für Scope-Zustand - */ -export const SCOPE_STATUS_LABELS = { - NOT_STARTED: 'Nicht begonnen', - IN_PROGRESS: 'In Bearbeitung', - COMPLETE: 'Abgeschlossen', - NEEDS_UPDATE: 'Aktualisierung erforderlich', -}; - -/** - * LocalStorage Key für Scope State - */ -export const STORAGE_KEY = 'bp_compliance_scope'; - -// ============================================================================ -// Document Scope Matrix -// ============================================================================ - -/** - * Vollständige Matrix aller Dokumentanforderungen pro Level - */ -export const DOCUMENT_SCOPE_MATRIX: Record = { - vvt: { - L1: { - required: true, - depth: 'Basis', - detailItems: [ - 'Liste aller Verarbeitungstätigkeiten', - 'Grundlegende Angaben zu Zweck und Rechtsgrundlage', - 'Kategorien betroffener Personen und Daten', - 'Einfache Tabellenform ausreichend', - ], - estimatedEffort: '2-4 Stunden', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'Alle L1-Anforderungen', - 'Detaillierte Beschreibung der Verarbeitungszwecke', - 'Empfängerkategorien', - 'Speicherfristen', - 'TOM-Referenzen', - 'Strukturiertes Format', - ], - estimatedEffort: '4-8 Stunden', - }, - L3: { - required: true, - depth: 'Detailliert', - detailItems: [ - 'Alle L2-Anforderungen', - 'Vollständige Rechtsgrundlagen mit Begründung', - 'Detaillierte Datenkategorien', - 'Verknüpfung mit DSFA wo relevant', - 'Versionierung und Änderungshistorie', - 'Freigabeprozess dokumentiert', - ], - estimatedEffort: '8-16 Stunden', - }, - L4: { - required: true, - depth: 'Audit-Ready', - detailItems: [ - 'Alle L3-Anforderungen', - 'Vollständige Nachweiskette für alle Angaben', - 'Integration mit Risikobewertung', - 'Regelmäßige Review-Zyklen dokumentiert', - 'Audit-Trail für alle Änderungen', - 'Compliance-Nachweise für jede Verarbeitung', - ], - estimatedEffort: '16-24 Stunden', - }, - }, - lf: { - L1: { - required: true, - depth: 'Basis', - detailItems: [ - 'Grundlegende Löschfristen für Hauptdatenkategorien', - 'Einfache Tabelle oder Liste', - 'Bezug auf gesetzliche Aufbewahrungsfristen', - ], - estimatedEffort: '1-2 Stunden', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'Alle L1-Anforderungen', - 'Detaillierte Löschfristen pro Verarbeitungstätigkeit', - 'Begründung der Fristen', - 'Technischer Löschprozess beschrieben', - 'Verantwortlichkeiten festgelegt', - ], - estimatedEffort: '3-6 Stunden', - }, - L3: { - required: true, - depth: 'Detailliert', - detailItems: [ - 'Alle L2-Anforderungen', - 'Ausnahmen und Sonderfälle dokumentiert', - 'Automatisierte Löschprozesse beschrieben', - 'Nachweis regelmäßiger Löschungen', - 'Eskalationsprozess bei Problemen', - ], - estimatedEffort: '6-10 Stunden', - }, - L4: { - required: true, - depth: 'Audit-Ready', - detailItems: [ - 'Alle L3-Anforderungen', - 'Vollständiger Audit-Trail aller Löschvorgänge', - 'Regelmäßige Audits dokumentiert', - 'Compliance-Nachweise für alle Löschfristen', - 'Integration mit Backup-Konzept', - ], - estimatedEffort: '10-16 Stunden', - }, - }, - tom: { - L1: { - required: true, - depth: 'Basis', - detailItems: [ - 'Grundlegende technische Maßnahmen aufgelistet', - 'Organisatorische Grundmaßnahmen', - 'Einfache Checkliste oder Tabelle', - ], - estimatedEffort: '2-3 Stunden', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'Alle L1-Anforderungen', - 'Detaillierte Beschreibung aller TOM', - 'Zuordnung zu Art. 32 DSGVO Kategorien', - 'Verantwortlichkeiten und Umsetzungsstatus', - 'Einfache Wirksamkeitsbewertung', - ], - estimatedEffort: '4-8 Stunden', - }, - L3: { - required: true, - depth: 'Detailliert', - detailItems: [ - 'Alle L2-Anforderungen', - 'Risikobewertung für jede Maßnahme', - 'Nachweis der Umsetzung', - 'Regelmäßige Überprüfungszyklen', - 'Verbesserungsmaßnahmen dokumentiert', - 'Verknüpfung mit VVT', - ], - estimatedEffort: '8-12 Stunden', - }, - L4: { - required: true, - depth: 'Audit-Ready', - detailItems: [ - 'Alle L3-Anforderungen', - 'Vollständige Wirksamkeitsnachweise', - 'Externe Audits dokumentiert', - 'Compliance-Matrix zu Standards (ISO 27001, etc.)', - 'Kontinuierliches Monitoring nachgewiesen', - ], - estimatedEffort: '12-20 Stunden', - }, - }, - av_vertrag: { - L1: { - required: false, - depth: 'Basis', - detailItems: [ - 'Standard-AVV-Vorlage verwenden', - 'Grundlegende Angaben zu Auftragsverarbeiter', - 'Wesentliche Pflichten aufgeführt', - ], - estimatedEffort: '1-2 Stunden pro Vertrag', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'Alle L1-Anforderungen', - 'Detaillierte Beschreibung der Verarbeitung', - 'TOM des Auftragsverarbeiters geprüft', - 'Unterschriebene Verträge vollständig', - 'Register aller AVV geführt', - ], - estimatedEffort: '2-4 Stunden pro Vertrag', - }, - L3: { - required: true, - depth: 'Detailliert', - detailItems: [ - 'Alle L2-Anforderungen', - 'Risikobewertung für jeden Auftragsverarbeiter', - 'Regelmäßige Überprüfungen dokumentiert', - 'Sub-Auftragsverarbeiter erfasst', - 'Audit-Rechte vereinbart und dokumentiert', - ], - estimatedEffort: '4-6 Stunden pro Vertrag', - }, - L4: { - required: true, - depth: 'Audit-Ready', - detailItems: [ - 'Alle L3-Anforderungen', - 'Regelmäßige Audits durchgeführt und dokumentiert', - 'Compliance-Nachweise vom Auftragsverarbeiter', - 'Vollständiges Vertragsmanagement-System', - 'Eskalations- und Kündigungsprozesse dokumentiert', - ], - estimatedEffort: '6-10 Stunden pro Vertrag', - }, - }, - dsi: { - L1: { - required: true, - depth: 'Basis', - detailItems: [ - 'Datenschutzerklärung auf Website', - 'Pflichtangaben nach Art. 13/14 DSGVO', - 'Verständliche Sprache', - 'Kontaktdaten DSB/Verantwortlicher', - ], - estimatedEffort: '2-4 Stunden', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'Alle L1-Anforderungen', - 'Detaillierte Beschreibung aller Verarbeitungen', - 'Rechtsgrundlagen erklärt', - 'Informationen zu Betroffenenrechten', - 'Cookie-/Tracking-Informationen', - 'Regelmäßige Aktualisierung', - ], - estimatedEffort: '4-8 Stunden', - }, - L3: { - required: true, - depth: 'Detailliert', - detailItems: [ - 'Alle L2-Anforderungen', - 'Mehrsprachige Versionen wo erforderlich', - 'Layered Notices (mehrstufige Informationen)', - 'Spezifische Informationen für verschiedene Verarbeitungen', - 'Versionierung und Änderungshistorie', - 'Consent Management Integration', - ], - estimatedEffort: '8-12 Stunden', - }, - L4: { - required: true, - depth: 'Audit-Ready', - detailItems: [ - 'Alle L3-Anforderungen', - 'Vollständige Nachweiskette für alle Informationen', - 'Audit-Trail für Änderungen', - 'Compliance mit internationalen Standards', - 'Regelmäßige rechtliche Reviews dokumentiert', - ], - estimatedEffort: '12-16 Stunden', - }, - }, - betroffenenrechte: { - L1: { - required: true, - depth: 'Basis', - detailItems: [ - 'Prozess für Auskunftsanfragen definiert', - 'Kontaktmöglichkeit bereitgestellt', - 'Grundlegende Fristen bekannt', - 'Einfaches Formular oder E-Mail-Vorlage', - ], - estimatedEffort: '1-2 Stunden', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'Alle L1-Anforderungen', - 'Prozesse für alle Betroffenenrechte (Auskunft, Löschung, Berichtigung, etc.)', - 'Verantwortlichkeiten festgelegt', - 'Standardvorlagen für Antworten', - 'Tracking von Anfragen', - ], - estimatedEffort: '3-6 Stunden', - }, - L3: { - required: true, - depth: 'Detailliert', - detailItems: [ - 'Alle L2-Anforderungen', - 'Detaillierte Prozessbeschreibungen', - 'Eskalationsprozesse bei komplexen Fällen', - 'Schulung der Mitarbeiter dokumentiert', - 'Audit-Trail aller Anfragen', - 'Nachweis der Fristeneinhaltung', - ], - estimatedEffort: '6-10 Stunden', - }, - L4: { - required: true, - depth: 'Audit-Ready', - detailItems: [ - 'Alle L3-Anforderungen', - 'Vollständiges Ticket-/Case-Management-System', - 'Regelmäßige Audits der Prozesse', - 'Compliance-Kennzahlen und Reporting', - 'Integration mit allen relevanten Systemen', - ], - estimatedEffort: '10-16 Stunden', - }, - }, - dsfa: { - L1: { - required: false, - depth: 'Nicht erforderlich', - detailItems: ['Nur bei Hard Trigger erforderlich'], - estimatedEffort: 'N/A', - }, - L2: { - required: false, - depth: 'Bei Bedarf', - detailItems: [ - 'DSFA-Schwellwertanalyse durchführen', - 'Bei Erforderlichkeit: Basis-DSFA', - 'Risiken identifiziert und bewertet', - 'Maßnahmen zur Risikominimierung', - ], - estimatedEffort: '4-8 Stunden pro DSFA', - }, - L3: { - required: false, - depth: 'Standard', - detailItems: [ - 'Alle L2-Anforderungen', - 'Detaillierte Risikobewertung', - 'Konsultation der Betroffenen wo sinnvoll', - 'Dokumentation der Entscheidungsprozesse', - 'Regelmäßige Überprüfung', - ], - estimatedEffort: '8-16 Stunden pro DSFA', - }, - L4: { - required: true, - depth: 'Vollständig', - detailItems: [ - 'Alle L3-Anforderungen', - 'Strukturierter DSFA-Prozess etabliert', - 'Vorabkonsultation der Aufsichtsbehörde wo erforderlich', - 'Vollständige Dokumentation aller Schritte', - 'Integration in Projektmanagement', - ], - estimatedEffort: '16-24 Stunden pro DSFA', - }, - }, - daten_transfer: { - L1: { - required: false, - depth: 'Basis', - detailItems: [ - 'Liste aller Drittlandtransfers', - 'Grundlegende Rechtsgrundlage identifiziert', - 'Standard-Vertragsklauseln wo nötig', - ], - estimatedEffort: '1-2 Stunden', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'Alle L1-Anforderungen', - 'Detaillierte Dokumentation aller Transfers', - 'Angemessenheitsbeschlüsse oder geeignete Garantien', - 'Informationen an Betroffene bereitgestellt', - 'Register geführt', - ], - estimatedEffort: '3-6 Stunden', - }, - L3: { - required: true, - depth: 'Detailliert', - detailItems: [ - 'Alle L2-Anforderungen', - 'Transfer Impact Assessment (TIA) durchgeführt', - 'Zusätzliche Schutzmaßnahmen dokumentiert', - 'Regelmäßige Überprüfung der Rechtsgrundlagen', - 'Risikobewertung für jedes Zielland', - ], - estimatedEffort: '6-12 Stunden', - }, - L4: { - required: true, - depth: 'Audit-Ready', - detailItems: [ - 'Alle L3-Anforderungen', - 'Vollständige TIA-Dokumentation', - 'Regelmäßige Reviews dokumentiert', - 'Rechtliche Expertise nachgewiesen', - 'Compliance-Nachweise für alle Transfers', - ], - estimatedEffort: '12-20 Stunden', - }, - }, - datenpannen: { - L1: { - required: true, - depth: 'Basis', - detailItems: [ - 'Grundlegender Prozess für Datenpannen', - 'Kontakt zur Aufsichtsbehörde bekannt', - 'Verantwortlichkeiten grob definiert', - 'Einfache Checkliste', - ], - estimatedEffort: '1-2 Stunden', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'Alle L1-Anforderungen', - 'Detaillierter Incident-Response-Plan', - 'Bewertungskriterien für Meldepflicht', - 'Vorlagen für Meldungen (Behörde & Betroffene)', - 'Dokumentationspflichten klar definiert', - ], - estimatedEffort: '3-6 Stunden', - }, - L3: { - required: true, - depth: 'Detailliert', - detailItems: [ - 'Alle L2-Anforderungen', - 'Incident-Management-System etabliert', - 'Regelmäßige Übungen durchgeführt', - 'Eskalationsprozesse dokumentiert', - 'Post-Incident-Review-Prozess', - 'Lessons Learned dokumentiert', - ], - estimatedEffort: '6-10 Stunden', - }, - L4: { - required: true, - depth: 'Audit-Ready', - detailItems: [ - 'Alle L3-Anforderungen', - 'Vollständiges Breach-Log geführt', - 'Integration mit IT-Security-Incident-Response', - 'Regelmäßige Audits des Prozesses', - 'Compliance-Nachweise für alle Vorfälle', - ], - estimatedEffort: '10-16 Stunden', - }, - }, - einwilligung: { - L1: { - required: false, - depth: 'Basis', - detailItems: [ - 'Einwilligungsformulare DSGVO-konform', - 'Opt-in statt Opt-out', - 'Widerrufsmöglichkeit bereitgestellt', - ], - estimatedEffort: '1-2 Stunden', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'Alle L1-Anforderungen', - 'Granulare Einwilligungen', - 'Nachweisbarkeit der Einwilligung', - 'Dokumentation des Einwilligungsprozesses', - 'Regelmäßige Überprüfung', - ], - estimatedEffort: '3-6 Stunden', - }, - L3: { - required: true, - depth: 'Detailliert', - detailItems: [ - 'Alle L2-Anforderungen', - 'Consent-Management-System implementiert', - 'Vollständiger Audit-Trail', - 'A/B-Testing dokumentiert', - 'Integration mit allen Datenverarbeitungen', - 'Regelmäßige Revalidierung', - ], - estimatedEffort: '6-12 Stunden', - }, - L4: { - required: true, - depth: 'Audit-Ready', - detailItems: [ - 'Alle L3-Anforderungen', - 'Enterprise Consent Management Platform', - 'Vollständige Nachweiskette für alle Einwilligungen', - 'Compliance-Dashboard', - 'Regelmäßige externe Audits', - ], - estimatedEffort: '12-20 Stunden', - }, - }, - vertragsmanagement: { - L1: { - required: false, - depth: 'Basis', - detailItems: [ - 'Einfaches Register wichtiger Verträge', - 'Ablage datenschutzrelevanter Verträge', - ], - estimatedEffort: '1-2 Stunden', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'Alle L1-Anforderungen', - 'Vollständiges Vertragsregister', - 'Datenschutzklauseln in Standardverträgen', - 'Überprüfungsprozess für neue Verträge', - 'Ablaufdaten und Kündigungsfristen getrackt', - ], - estimatedEffort: '3-6 Stunden Setup', - }, - L3: { - required: true, - depth: 'Detailliert', - detailItems: [ - 'Alle L2-Anforderungen', - 'Vertragsmanagement-System implementiert', - 'Automatische Erinnerungen für Reviews', - 'Risikobewertung für Vertragspartner', - 'Compliance-Checks vor Vertragsabschluss', - ], - estimatedEffort: '6-12 Stunden Setup', - }, - L4: { - required: true, - depth: 'Audit-Ready', - detailItems: [ - 'Alle L3-Anforderungen', - 'Enterprise Contract Management System', - 'Vollständiger Audit-Trail', - 'Integration mit Procurement', - 'Regelmäßige Compliance-Audits', - ], - estimatedEffort: '12-20 Stunden Setup', - }, - }, - schulung: { - L1: { - required: false, - depth: 'Basis', - detailItems: [ - 'Grundlegende Datenschutz-Awareness', - 'Informationsblatt für Mitarbeiter', - 'Kontaktperson benannt', - ], - estimatedEffort: '1-2 Stunden Vorbereitung', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'Alle L1-Anforderungen', - 'Jährliche Datenschutzschulung', - 'Schulungsunterlagen erstellt', - 'Teilnahme dokumentiert', - 'Rollenspezifische Inhalte', - ], - estimatedEffort: '4-8 Stunden Vorbereitung', - }, - L3: { - required: true, - depth: 'Detailliert', - detailItems: [ - 'Alle L2-Anforderungen', - 'E-Learning-Plattform oder strukturiertes Schulungsprogramm', - 'Wissenstests durchgeführt', - 'Auffrischungsschulungen', - 'Spezialschulungen für Schlüsselpersonal', - 'Schulungsplan erstellt', - ], - estimatedEffort: '8-16 Stunden Vorbereitung', - }, - L4: { - required: true, - depth: 'Audit-Ready', - detailItems: [ - 'Alle L3-Anforderungen', - 'Umfassendes Schulungsprogramm', - 'Externe Schulungen wo erforderlich', - 'Zertifizierungen für Schlüsselpersonal', - 'Vollständige Dokumentation aller Schulungen', - 'Wirksamkeitsmessung', - ], - estimatedEffort: '16-24 Stunden Vorbereitung', - }, - }, - audit_log: { - L1: { - required: false, - depth: 'Basis', - detailItems: [ - 'Grundlegendes Logging aktiviert', - 'Zugriffsprotokolle für kritische Systeme', - ], - estimatedEffort: '2-4 Stunden', - }, - L2: { - required: false, - depth: 'Standard', - detailItems: [ - 'Alle L1-Anforderungen', - 'Strukturiertes Logging-Konzept', - 'Aufbewahrungsfristen definiert', - 'Zugriffskontrolle auf Logs', - 'Regelmäßige Überprüfung', - ], - estimatedEffort: '4-8 Stunden', - }, - L3: { - required: true, - depth: 'Detailliert', - detailItems: [ - 'Alle L2-Anforderungen', - 'Zentralisiertes Logging-System', - 'Automatische Alerts bei Anomalien', - 'Audit-Trail für alle datenschutzrelevanten Vorgänge', - 'Compliance-Reporting', - ], - estimatedEffort: '8-16 Stunden', - }, - L4: { - required: true, - depth: 'Audit-Ready', - detailItems: [ - 'Alle L3-Anforderungen', - 'Enterprise SIEM-System', - 'Vollständige Nachvollziehbarkeit aller Zugriffe', - 'Regelmäßige Log-Audits dokumentiert', - 'Integration mit Incident Response', - ], - estimatedEffort: '16-24 Stunden', - }, - }, - risikoanalyse: { - L1: { - required: false, - depth: 'Basis', - detailItems: [ - 'Grundlegende Risikoidentifikation', - 'Einfache Bewertung nach Eintrittswahrscheinlichkeit und Auswirkung', - ], - estimatedEffort: '2-4 Stunden', - }, - L2: { - required: false, - depth: 'Standard', - detailItems: [ - 'Alle L1-Anforderungen', - 'Strukturierte Risikoanalyse', - 'Risikomatrix erstellt', - 'Maßnahmen zur Risikominimierung definiert', - 'Jährliche Überprüfung', - ], - estimatedEffort: '4-8 Stunden', - }, - L3: { - required: true, - depth: 'Detailliert', - detailItems: [ - 'Alle L2-Anforderungen', - 'Umfassende Risikoanalyse nach Standard-Framework', - 'Integration mit VVT und DSFA', - 'Risikomanagement-Prozess etabliert', - 'Regelmäßige Reviews', - 'Risiko-Dashboard', - ], - estimatedEffort: '8-16 Stunden', - }, - L4: { - required: true, - depth: 'Audit-Ready', - detailItems: [ - 'Alle L3-Anforderungen', - 'Enterprise Risk Management System', - 'Vollständige Integration mit ISMS', - 'Kontinuierliche Risikoüberwachung', - 'Regelmäßige externe Assessments', - ], - estimatedEffort: '16-24 Stunden', - }, - }, - notfallplan: { - L1: { - required: false, - depth: 'Basis', - detailItems: [ - 'Grundlegende Notfallkontakte definiert', - 'Einfacher Backup-Prozess', - ], - estimatedEffort: '1-2 Stunden', - }, - L2: { - required: false, - depth: 'Standard', - detailItems: [ - 'Alle L1-Anforderungen', - 'Notfall- und Krisenplan erstellt', - 'Business Continuity Grundlagen', - 'Backup und Recovery dokumentiert', - 'Verantwortlichkeiten festgelegt', - ], - estimatedEffort: '3-6 Stunden', - }, - L3: { - required: true, - depth: 'Detailliert', - detailItems: [ - 'Alle L2-Anforderungen', - 'Detaillierter Business Continuity Plan', - 'Disaster Recovery Plan', - 'Regelmäßige Tests durchgeführt', - 'Eskalationsprozesse dokumentiert', - 'Externe Kommunikation geplant', - ], - estimatedEffort: '6-12 Stunden', - }, - L4: { - required: true, - depth: 'Audit-Ready', - detailItems: [ - 'Alle L3-Anforderungen', - 'ISO 22301 konformes BCMS', - 'Regelmäßige Übungen und Audits', - 'Vollständige Dokumentation', - 'Integration mit IT-Disaster-Recovery', - ], - estimatedEffort: '12-20 Stunden', - }, - }, - zertifizierung: { - L1: { - required: false, - depth: 'Nicht relevant', - detailItems: ['Keine Zertifizierung erforderlich'], - estimatedEffort: 'N/A', - }, - L2: { - required: false, - depth: 'Nicht relevant', - detailItems: ['Keine Zertifizierung erforderlich'], - estimatedEffort: 'N/A', - }, - L3: { - required: false, - depth: 'Optional', - detailItems: [ - 'Evaluierung möglicher Zertifizierungen', - 'Gap-Analyse durchgeführt', - 'Entscheidung für/gegen Zertifizierung dokumentiert', - ], - estimatedEffort: '4-8 Stunden', - }, - L4: { - required: true, - depth: 'Vollständig', - detailItems: [ - 'Zertifizierungsvorbereitung (ISO 27001, ISO 27701, etc.)', - 'Gap-Analyse abgeschlossen', - 'Maßnahmenplan erstellt', - 'Interne Audits durchgeführt', - 'Dokumentation audit-ready', - 'Zertifizierungsstelle ausgewählt', - ], - estimatedEffort: '40-80 Stunden', - }, - }, - datenschutzmanagement: { - L1: { - required: false, - depth: 'Nicht erforderlich', - detailItems: ['Kein formales DSMS notwendig'], - estimatedEffort: 'N/A', - }, - L2: { - required: false, - depth: 'Basis', - detailItems: [ - 'Grundlegendes Datenschutzmanagement', - 'Verantwortlichkeiten definiert', - 'Regelmäßige Reviews geplant', - ], - estimatedEffort: '2-4 Stunden', - }, - L3: { - required: true, - depth: 'Standard', - detailItems: [ - 'Alle L2-Anforderungen', - 'Strukturiertes DSMS etabliert', - 'Datenschutz-Policy erstellt', - 'Regelmäßige Management-Reviews', - 'KPIs für Datenschutz definiert', - 'Verbesserungsprozess etabliert', - ], - estimatedEffort: '8-16 Stunden', - }, - L4: { - required: true, - depth: 'Vollständig', - detailItems: [ - 'Alle L3-Anforderungen', - 'ISO 27701 oder vergleichbares DSMS', - 'Integration mit ISMS', - 'Vollständige Dokumentation aller Prozesse', - 'Regelmäßige interne und externe Audits', - 'Kontinuierliche Verbesserung nachgewiesen', - ], - estimatedEffort: '24-40 Stunden', - }, - }, - iace_ce_assessment: { - L1: { - required: false, - depth: 'Minimal', - detailItems: [ - 'Regulatorischer Quick-Check fuer SW/FW/KI', - 'Grundlegende Identifikation relevanter Vorschriften', - ], - estimatedEffort: '2 Stunden', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'CE-Risikobeurteilung fuer SW/FW-Komponenten', - 'Hazard Log mit S×E×P Bewertung', - 'CRA-Konformitaetspruefung', - 'Grundlegende Massnahmendokumentation', - ], - estimatedEffort: '8 Stunden', - }, - L3: { - required: true, - depth: 'Detailliert', - detailItems: [ - 'Alle L2-Anforderungen', - 'Vollstaendige CE-Akte inkl. KI-Dossier', - 'AI Act High-Risk Konformitaetsbewertung', - 'Maschinenverordnung Anhang III Nachweis', - 'Verifikationsplan mit Akzeptanzkriterien', - 'Evidence-Management fuer Testnachweise', - ], - estimatedEffort: '16 Stunden', - }, - L4: { - required: true, - depth: 'Audit-Ready', - detailItems: [ - 'Alle L3-Anforderungen', - 'Zertifizierungsfertige CE-Dokumentation', - 'Benannte-Stelle-tauglicher Nachweis', - 'Revisionssichere Audit Trails', - 'Post-Market Monitoring Plan', - 'Continuous Compliance Framework', - ], - estimatedEffort: '24 Stunden', - }, - }, - widerrufsbelehrung: { - L1: { - required: false, - depth: 'Nicht relevant', - detailItems: ['Nur bei B2C-Fernabsatz erforderlich'], - estimatedEffort: '0', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'Muster-Widerrufsbelehrung nach EGBGB Anlage 1', - 'Muster-Widerrufsformular nach EGBGB Anlage 2', - 'Integration in Bestellprozess', - '14-Tage Widerrufsfrist korrekt dargestellt', - ], - estimatedEffort: '2-4 Stunden', - }, - L3: { - required: true, - depth: 'Erweitert', - detailItems: [ - 'Wie L2 + digitale Inhalte (§ 356 Abs. 5 BGB)', - 'Ausnahmen dokumentiert (§ 312g Abs. 2 BGB)', - ], - estimatedEffort: '4-6 Stunden', - }, - L4: { - required: true, - depth: 'Vollstaendig', - detailItems: [ - 'Wie L3 + automatisierte Pruefung', - 'Mehrsprachig bei EU-Verkauf', - ], - estimatedEffort: '6-8 Stunden', - }, - }, - preisangaben: { - L1: { - required: false, - depth: 'Nicht relevant', - detailItems: ['Nur bei B2C-Preisauszeichnung erforderlich'], - estimatedEffort: '0', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'Gesamtpreisangabe inkl. MwSt (§ 1 PAngV)', - 'Grundpreisangabe bei Mengenware (§ 4 PAngV)', - 'Versandkosten deutlich angegeben', - ], - estimatedEffort: '2-3 Stunden', - }, - L3: { - required: true, - depth: 'Erweitert', - detailItems: [ - 'Wie L2 + Preishistorie bei Rabattaktionen (Omnibus-RL)', - 'Streichpreise korrekt dargestellt', - ], - estimatedEffort: '3-5 Stunden', - }, - L4: { - required: true, - depth: 'Vollstaendig', - detailItems: [ - 'Wie L3 + automatisierte Pruefung', - 'Mehrwaehrungsunterstuetzung', - ], - estimatedEffort: '5-8 Stunden', - }, - }, - fernabsatz_info: { - L1: { - required: false, - depth: 'Nicht relevant', - detailItems: ['Nur bei Fernabsatzvertraegen erforderlich'], - estimatedEffort: '0', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'Pflichtinformationen nach § 312d BGB i.V.m. Art. 246a EGBGB', - 'Wesentliche Eigenschaften der Ware/Dienstleistung', - 'Identitaet und Anschrift des Unternehmers', - 'Zahlungs-, Liefer- und Leistungsbedingungen', - ], - estimatedEffort: '3-5 Stunden', - }, - L3: { - required: true, - depth: 'Erweitert', - detailItems: [ - 'Wie L2 + Informationen zu digitalen Inhalten/Diensten', - 'Funktionalitaet und Interoperabilitaet (§ 327 BGB)', - ], - estimatedEffort: '5-8 Stunden', - }, - L4: { - required: true, - depth: 'Vollstaendig', - detailItems: [ - 'Wie L3 + mehrsprachige Informationspflichten', - 'Automatisierte Vollstaendigkeitspruefung', - ], - estimatedEffort: '8-12 Stunden', - }, - }, - streitbeilegung: { - L1: { - required: false, - depth: 'Nicht relevant', - detailItems: ['Nur bei B2C-Handel erforderlich'], - estimatedEffort: '0', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'Hinweis auf OS-Plattform der EU-Kommission (Art. 14 ODR-VO)', - 'Erklaerung zur Teilnahmebereitschaft an Streitbeilegung (§ 36 VSBG)', - 'Link zur OS-Plattform im Impressum/AGB', - ], - estimatedEffort: '1-2 Stunden', - }, - L3: { - required: true, - depth: 'Erweitert', - detailItems: [ - 'Wie L2 + Benennung zustaendiger Verbraucherschlichtungsstelle', - 'Prozess fuer Streitbeilegungsanfragen dokumentiert', - ], - estimatedEffort: '2-3 Stunden', - }, - L4: { - required: true, - depth: 'Vollstaendig', - detailItems: [ - 'Wie L3 + Eskalationsprozess dokumentiert', - 'Regelmaessige Auswertung von Beschwerden', - ], - estimatedEffort: '3-4 Stunden', - }, - }, - produktsicherheit: { - L1: { - required: false, - depth: 'Minimal', - detailItems: ['Grundlegende Produktkennzeichnung pruefen'], - estimatedEffort: '1 Stunde', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'Produktsicherheitsbewertung nach GPSR (EU 2023/988)', - 'CE-Kennzeichnung und Konformitaetserklaerung', - 'Wirtschaftsakteur-Angaben auf Produkt/Verpackung', - 'Technische Dokumentation fuer Marktaufsicht', - ], - estimatedEffort: '8-12 Stunden', - }, - L3: { - required: true, - depth: 'Erweitert', - detailItems: [ - 'Wie L2 + Risikoanalyse fuer alle Produktvarianten', - 'Rueckrufplan und Marktbeobachtungspflichten', - 'Supply-Chain-Dokumentation', - ], - estimatedEffort: '16-24 Stunden', - }, - L4: { - required: true, - depth: 'Vollstaendig', - detailItems: [ - 'Wie L3 + vollstaendige GPSR-Konformitaetsakte', - 'Post-Market-Surveillance System', - 'Audit-Trail fuer alle Sicherheitsbewertungen', - ], - estimatedEffort: '24-40 Stunden', - }, - }, - ai_act_doku: { - L1: { - required: false, - depth: 'Minimal', - detailItems: ['KI-Risikokategorisierung (Art. 6 AI Act)'], - estimatedEffort: '2 Stunden', - }, - L2: { - required: true, - depth: 'Standard', - detailItems: [ - 'Technische Dokumentation nach Art. 11 AI Act', - 'Transparenzpflichten (Art. 52 AI Act)', - 'Risikomanagement-Grundlagen (Art. 9 AI Act)', - 'Menschliche Aufsicht dokumentiert (Art. 14 AI Act)', - ], - estimatedEffort: '8-12 Stunden', - }, - L3: { - required: true, - depth: 'Erweitert', - detailItems: [ - 'Wie L2 + Datenqualitaetsmanagement (Art. 10 AI Act)', - 'Genauigkeits- und Robustheitstests (Art. 15 AI Act)', - 'Vollstaendige Konformitaetsbewertung fuer Hochrisiko-KI', - ], - estimatedEffort: '16-24 Stunden', - }, - L4: { - required: true, - depth: 'Audit-Ready', - detailItems: [ - 'Wie L3 + Zertifizierungsfertige AI Act Dokumentation', - 'EU-Datenbank-Registrierung (Art. 60 AI Act)', - 'Post-Market Monitoring fuer KI-Systeme', - 'Continuous Compliance Framework fuer KI', - ], - estimatedEffort: '24-40 Stunden', - }, - }, -}; - -// ============================================================================ -// Document to SDK Step URL Mapping -// ============================================================================ - -/** - * Mapping von Dokumenttypen zu SDK-Schritt-URLs - */ -export const DOCUMENT_SDK_STEP_MAP: Partial> = { - vvt: '/sdk/vvt', - lf: '/sdk/loeschfristen', - tom: '/sdk/tom', - av_vertrag: '/sdk/vendor-compliance', - dsi: '/sdk/consent', - betroffenenrechte: '/sdk/dsr', - dsfa: '/sdk/dsfa', - daten_transfer: '/sdk/vendor-compliance', - datenpannen: '/sdk/incidents', - einwilligung: '/sdk/einwilligungen', - vertragsmanagement: '/sdk/workflow', - schulung: '/sdk/training', - audit_log: '/sdk/audit-checklist', - risikoanalyse: '/sdk/risks', - notfallplan: '/sdk/notfallplan', - zertifizierung: '/sdk/iace', - datenschutzmanagement: '/sdk/dsms', - iace_ce_assessment: '/sdk/iace', - widerrufsbelehrung: '/sdk/policy-generator', - preisangaben: '/sdk/policy-generator', - fernabsatz_info: '/sdk/policy-generator', - streitbeilegung: '/sdk/policy-generator', - produktsicherheit: '/sdk/iace', - ai_act_doku: '/sdk/ai-act', -}; - -// ============================================================================ -// Helper Functions -// ============================================================================ - -/** - * Erstellt einen leeren Scope State - */ -export function createEmptyScopeState(): ComplianceScopeState { - return { - answers: [], - decision: null, - lastEvaluatedAt: null, - isComplete: false, - }; -} - -/** - * Erstellt eine leere Scope Decision mit Default-Werten - */ -export function createEmptyScopeDecision(): ScopeDecision { - return { - id: `decision_${Date.now()}`, - determinedLevel: 'L1', - scores: { - risk_score: 0, - complexity_score: 0, - assurance_need: 0, - composite_score: 0, - }, - triggeredHardTriggers: [], - requiredDocuments: [], - riskFlags: [], - gaps: [], - nextActions: [], - reasoning: [], - createdAt: new Date().toISOString(), - updatedAt: new Date().toISOString(), - }; -} - -/** - * Gibt das höhere von zwei Depth Levels zurück - */ -export function maxDepthLevel( - a: ComplianceDepthLevel, - b: ComplianceDepthLevel -): ComplianceDepthLevel { - const levels: ComplianceDepthLevel[] = ['L1', 'L2', 'L3', 'L4']; - const indexA = levels.indexOf(a); - const indexB = levels.indexOf(b); - return levels[Math.max(indexA, indexB)]; -} - -/** - * Konvertiert Depth Level zu numerischem Wert (1-4) - */ -export function getDepthLevelNumeric(level: ComplianceDepthLevel): number { - const map: Record = { - L1: 1, - L2: 2, - L3: 3, - L4: 4, - }; - return map[level]; -} - -/** - * Konvertiert numerischen Wert (1-4) zu Depth Level - */ -export function depthLevelFromNumeric(n: number): ComplianceDepthLevel { - const map: Record = { - 1: 'L1', - 2: 'L2', - 3: 'L3', - 4: 'L4', - }; - return map[Math.max(1, Math.min(4, Math.round(n)))] || 'L1'; -} - -// ============================================================================ -// Regulation Assessment Types (from Go AI SDK /assess-from-scope) -// ============================================================================ - -/** - * Eine anwendbare Regulierung (aus Go SDK ApplicableRegulation) - */ -export interface ApplicableRegulation { - id: string - name: string - classification: string - reason: string - obligation_count: number - control_count: number -} - -/** - * Ergebnis der Regulierungs-Bewertung vom Go AI SDK - */ -export interface RegulationAssessmentResult { - applicable_regulations: ApplicableRegulation[] - obligations: RegulationObligation[] - executive_summary: { - total_regulations: number - total_obligations: number - critical_obligations: number - compliance_score: number - key_risks: string[] - recommended_actions: string[] - } -} - -/** - * Einzelne Pflicht aus dem Go SDK - */ -export interface RegulationObligation { - id: string - regulation_id: string - title: string - description: string - category: string - responsible: string - priority: string - legal_basis?: Array<{ article: string; name: string }> - how_to_implement?: string - breakpilot_feature?: string -} - -/** - * Aufsichtsbehoerden-Ergebnis - */ -export interface SupervisoryAuthorityInfo { - domain: string - authority: { - name: string - abbreviation: string - url: string - } -} diff --git a/admin-compliance/lib/sdk/compliance-scope-types/constants.ts b/admin-compliance/lib/sdk/compliance-scope-types/constants.ts new file mode 100644 index 0000000..a159441 --- /dev/null +++ b/admin-compliance/lib/sdk/compliance-scope-types/constants.ts @@ -0,0 +1,83 @@ +/** + * Compliance Scope Engine - Constants + * + * Labels, Beschreibungen und Farben für Compliance-Levels und Dokumenttypen. + */ + +import type { ComplianceDepthLevel } from './core-levels' +import type { ScopeDocumentType } from './documents' + +/** + * Deutsche Bezeichnungen für Compliance-Levels + */ +export const DEPTH_LEVEL_LABELS: Record = { + L1: 'Lean Startup', + L2: 'KMU Standard', + L3: 'Erweitert', + L4: 'Zertifizierungsbereit', +}; + +/** + * Detaillierte Beschreibungen der Compliance-Levels + */ +export const DEPTH_LEVEL_DESCRIPTIONS: Record = { + L1: 'Minimalansatz für kleine Organisationen und Startups. Fokus auf gesetzliche Pflichten mit pragmatischen Lösungen.', + L2: 'Standard-Compliance für mittelständische Unternehmen. Ausgewogenes Verhältnis zwischen Aufwand und Compliance-Qualität.', + L3: 'Erweiterte Compliance für größere oder risikoreichere Organisationen. Detaillierte Dokumentation und Prozesse.', + L4: 'Vollständige Compliance für Zertifizierungen und höchste Anforderungen. Audit-ready Dokumentation.', +}; + +/** + * Farben für Compliance-Levels (Tailwind-kompatibel) + */ +export const DEPTH_LEVEL_COLORS: Record = { + L1: { bg: 'bg-green-50', border: 'border-green-300', badge: 'bg-green-100', text: 'text-green-800' }, + L2: { bg: 'bg-blue-50', border: 'border-blue-300', badge: 'bg-blue-100', text: 'text-blue-800' }, + L3: { bg: 'bg-amber-50', border: 'border-amber-300', badge: 'bg-amber-100', text: 'text-amber-800' }, + L4: { bg: 'bg-red-50', border: 'border-red-300', badge: 'bg-red-100', text: 'text-red-800' }, +}; + +/** + * Deutsche Bezeichnungen für alle Dokumenttypen + */ +export const DOCUMENT_TYPE_LABELS: Record = { + vvt: 'Verzeichnis von Verarbeitungstätigkeiten (VVT)', + lf: 'Löschfristenkonzept', + tom: 'Technische und organisatorische Maßnahmen (TOM)', + av_vertrag: 'Auftragsverarbeitungsvertrag (AVV)', + dsi: 'Datenschutz-Informationen (Privacy Policy)', + betroffenenrechte: 'Betroffenenrechte-Prozess', + dsfa: 'Datenschutz-Folgenabschätzung (DSFA)', + daten_transfer: 'Drittlandtransfer-Dokumentation', + datenpannen: 'Datenpannen-Prozess', + einwilligung: 'Einwilligungsmanagement', + vertragsmanagement: 'Vertragsmanagement-Prozess', + schulung: 'Mitarbeiterschulung', + audit_log: 'Audit & Logging Konzept', + risikoanalyse: 'Risikoanalyse', + notfallplan: 'Notfall- & Krisenplan', + zertifizierung: 'Zertifizierungsvorbereitung', + datenschutzmanagement: 'Datenschutzmanagement-System (DSMS)', + iace_ce_assessment: 'CE-Risikobeurteilung SW/FW/KI (IACE)', + widerrufsbelehrung: 'Widerrufsbelehrung (§ 312g BGB)', + preisangaben: 'Preisangaben (PAngV)', + fernabsatz_info: 'Informationspflichten Fernabsatz (§ 312d BGB)', + streitbeilegung: 'Streitbeilegungshinweis (VSBG § 36)', + produktsicherheit: 'Produktsicherheitsdokumentation (GPSR)', + ai_act_doku: 'AI Act Technische Dokumentation (Art. 11)', +}; + +/** + * Status-Labels für Scope-Zustand + */ +export const SCOPE_STATUS_LABELS = { + NOT_STARTED: 'Nicht begonnen', + IN_PROGRESS: 'In Bearbeitung', + COMPLETE: 'Abgeschlossen', + NEEDS_UPDATE: 'Aktualisierung erforderlich', +}; + +/** + * LocalStorage Key für Scope State + */ +export const STORAGE_KEY = 'bp_compliance_scope'; diff --git a/admin-compliance/lib/sdk/compliance-scope-types/core-levels.ts b/admin-compliance/lib/sdk/compliance-scope-types/core-levels.ts new file mode 100644 index 0000000..c61e395 --- /dev/null +++ b/admin-compliance/lib/sdk/compliance-scope-types/core-levels.ts @@ -0,0 +1,29 @@ +/** + * Compliance Scope Engine - Core Level Types + * + * Definiert die grundlegenden Compliance-Tiefenstufen und Score-Typen. + */ + +/** + * Compliance-Tiefenstufen + * - L1: Lean Startup - Minimalansatz für kleine Organisationen + * - L2: KMU Standard - Standard-Compliance für mittelständische Unternehmen + * - L3: Erweitert - Erweiterte Compliance für größere/risikoreichere Organisationen + * - L4: Zertifizierungsbereit - Vollständige Compliance für Zertifizierungen + */ +export type ComplianceDepthLevel = 'L1' | 'L2' | 'L3' | 'L4'; + +/** + * Compliance-Scores zur Bestimmung der optimalen Tiefe + * Alle Werte zwischen 0-100 + */ +export interface ComplianceScores { + /** Risiko-Score (0-100): Höhere Werte = höheres Risiko */ + risk_score: number; + /** Komplexitäts-Score (0-100): Höhere Werte = komplexere Verarbeitung */ + complexity_score: number; + /** Assurance-Bedarf (0-100): Höhere Werte = höherer Nachweis-/Zertifizierungsbedarf */ + assurance_need: number; + /** Zusammengesetzter Score (0-100): Gewichtete Kombination aller Scores */ + composite_score: number; +} diff --git a/admin-compliance/lib/sdk/compliance-scope-types/decisions.ts b/admin-compliance/lib/sdk/compliance-scope-types/decisions.ts new file mode 100644 index 0000000..3b724e3 --- /dev/null +++ b/admin-compliance/lib/sdk/compliance-scope-types/decisions.ts @@ -0,0 +1,111 @@ +/** + * Compliance Scope Engine - Decision & Output Types + * + * Definiert die finale Scope-Entscheidung und zugehörige Ausgabetypen. + */ + +import type { ComplianceDepthLevel, ComplianceScores } from './core-levels' +import type { TriggeredHardTrigger } from './hard-triggers' +import type { RequiredDocument, ScopeDocumentType } from './documents' + +/** + * Die finale Scope-Entscheidung mit allen Details + */ +export interface ScopeDecision { + /** Eindeutige ID dieser Entscheidung */ + id: string; + /** Bestimmtes Compliance-Level */ + determinedLevel: ComplianceDepthLevel; + /** Berechnete Scores */ + scores: ComplianceScores; + /** Getriggerte Hard Trigger */ + triggeredHardTriggers: TriggeredHardTrigger[]; + /** Erforderliche Dokumente mit Details */ + requiredDocuments: RequiredDocument[]; + /** Identifizierte Risiko-Flags */ + riskFlags: RiskFlag[]; + /** Identifizierte Lücken */ + gaps: ScopeGap[]; + /** Empfohlene nächste Schritte */ + nextActions: NextAction[]; + /** Begründung der Entscheidung */ + reasoning: ScopeReasoning[]; + /** Zeitstempel Erstellung */ + createdAt: string; + /** Zeitstempel letzte Änderung */ + updatedAt: string; +} + +/** + * Risiko-Flag + */ +export interface RiskFlag { + /** Schweregrad */ + severity: string; + /** Kategorie */ + category: string; + /** Beschreibung */ + message: string; + /** Rechtsgrundlage */ + legalReference?: string; + /** Empfehlung zur Behebung */ + recommendation: string; +} + +/** + * Identifizierte Lücke in der Compliance + */ +export interface ScopeGap { + /** Gap-Typ */ + gapType: string; + /** Schweregrad */ + severity: string; + /** Beschreibung */ + description: string; + /** Erforderlich für Level */ + requiredFor: ComplianceDepthLevel; + /** Aktueller Zustand */ + currentState: string; + /** Zielzustand */ + targetState: string; + /** Aufwand in Stunden */ + effort: number; + /** Priorität */ + priority: string; +} + +/** + * Nächster empfohlener Schritt + */ +export interface NextAction { + /** Aktionstyp */ + actionType: 'create_document' | 'establish_process' | 'implement_technical' | 'organizational_change'; + /** Titel */ + title: string; + /** Beschreibung */ + description: string; + /** Priorität */ + priority: string; + /** Geschätzter Aufwand in Stunden */ + estimatedEffort: number; + /** Dokumenttyp (optional) */ + documentType?: ScopeDocumentType; + /** Link zum SDK-Schritt */ + sdkStepUrl?: string; + /** Blocker */ + blockers: string[]; +} + +/** + * Begründungsschritt für die Entscheidung + */ +export interface ScopeReasoning { + /** Schritt-Nummer/ID */ + step: string; + /** Kurzbeschreibung */ + description: string; + /** Faktoren */ + factors: string[]; + /** Auswirkung */ + impact: string; +} diff --git a/admin-compliance/lib/sdk/compliance-scope-types/document-scope-matrix-core.ts b/admin-compliance/lib/sdk/compliance-scope-types/document-scope-matrix-core.ts new file mode 100644 index 0000000..0ceaec3 --- /dev/null +++ b/admin-compliance/lib/sdk/compliance-scope-types/document-scope-matrix-core.ts @@ -0,0 +1,551 @@ +/** + * Compliance Scope Engine - Document Scope Matrix (Core Documents) + * + * Anforderungen pro Level fuer Kern-DSGVO-Dokumente: + * vvt, lf, tom, av_vertrag, dsi, betroffenenrechte, dsfa, + * daten_transfer, datenpannen, einwilligung, vertragsmanagement. + */ + +import type { ScopeDocumentType } from './documents' +import type { DocumentScopeRequirement } from './documents' + +/** + * Scope-Matrix fuer Kern-DSGVO-Dokumente + */ +export const DOCUMENT_SCOPE_MATRIX_CORE: Partial> = { + vvt: { + L1: { + required: true, + depth: 'Basis', + detailItems: [ + 'Liste aller Verarbeitungstätigkeiten', + 'Grundlegende Angaben zu Zweck und Rechtsgrundlage', + 'Kategorien betroffener Personen und Daten', + 'Einfache Tabellenform ausreichend', + ], + estimatedEffort: '2-4 Stunden', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'Alle L1-Anforderungen', + 'Detaillierte Beschreibung der Verarbeitungszwecke', + 'Empfängerkategorien', + 'Speicherfristen', + 'TOM-Referenzen', + 'Strukturiertes Format', + ], + estimatedEffort: '4-8 Stunden', + }, + L3: { + required: true, + depth: 'Detailliert', + detailItems: [ + 'Alle L2-Anforderungen', + 'Vollständige Rechtsgrundlagen mit Begründung', + 'Detaillierte Datenkategorien', + 'Verknüpfung mit DSFA wo relevant', + 'Versionierung und Änderungshistorie', + 'Freigabeprozess dokumentiert', + ], + estimatedEffort: '8-16 Stunden', + }, + L4: { + required: true, + depth: 'Audit-Ready', + detailItems: [ + 'Alle L3-Anforderungen', + 'Vollständige Nachweiskette für alle Angaben', + 'Integration mit Risikobewertung', + 'Regelmäßige Review-Zyklen dokumentiert', + 'Audit-Trail für alle Änderungen', + 'Compliance-Nachweise für jede Verarbeitung', + ], + estimatedEffort: '16-24 Stunden', + }, + }, + lf: { + L1: { + required: true, + depth: 'Basis', + detailItems: [ + 'Grundlegende Löschfristen für Hauptdatenkategorien', + 'Einfache Tabelle oder Liste', + 'Bezug auf gesetzliche Aufbewahrungsfristen', + ], + estimatedEffort: '1-2 Stunden', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'Alle L1-Anforderungen', + 'Detaillierte Löschfristen pro Verarbeitungstätigkeit', + 'Begründung der Fristen', + 'Technischer Löschprozess beschrieben', + 'Verantwortlichkeiten festgelegt', + ], + estimatedEffort: '3-6 Stunden', + }, + L3: { + required: true, + depth: 'Detailliert', + detailItems: [ + 'Alle L2-Anforderungen', + 'Ausnahmen und Sonderfälle dokumentiert', + 'Automatisierte Löschprozesse beschrieben', + 'Nachweis regelmäßiger Löschungen', + 'Eskalationsprozess bei Problemen', + ], + estimatedEffort: '6-10 Stunden', + }, + L4: { + required: true, + depth: 'Audit-Ready', + detailItems: [ + 'Alle L3-Anforderungen', + 'Vollständiger Audit-Trail aller Löschvorgänge', + 'Regelmäßige Audits dokumentiert', + 'Compliance-Nachweise für alle Löschfristen', + 'Integration mit Backup-Konzept', + ], + estimatedEffort: '10-16 Stunden', + }, + }, + tom: { + L1: { + required: true, + depth: 'Basis', + detailItems: [ + 'Grundlegende technische Maßnahmen aufgelistet', + 'Organisatorische Grundmaßnahmen', + 'Einfache Checkliste oder Tabelle', + ], + estimatedEffort: '2-3 Stunden', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'Alle L1-Anforderungen', + 'Detaillierte Beschreibung aller TOM', + 'Zuordnung zu Art. 32 DSGVO Kategorien', + 'Verantwortlichkeiten und Umsetzungsstatus', + 'Einfache Wirksamkeitsbewertung', + ], + estimatedEffort: '4-8 Stunden', + }, + L3: { + required: true, + depth: 'Detailliert', + detailItems: [ + 'Alle L2-Anforderungen', + 'Risikobewertung für jede Maßnahme', + 'Nachweis der Umsetzung', + 'Regelmäßige Überprüfungszyklen', + 'Verbesserungsmaßnahmen dokumentiert', + 'Verknüpfung mit VVT', + ], + estimatedEffort: '8-12 Stunden', + }, + L4: { + required: true, + depth: 'Audit-Ready', + detailItems: [ + 'Alle L3-Anforderungen', + 'Vollständige Wirksamkeitsnachweise', + 'Externe Audits dokumentiert', + 'Compliance-Matrix zu Standards (ISO 27001, etc.)', + 'Kontinuierliches Monitoring nachgewiesen', + ], + estimatedEffort: '12-20 Stunden', + }, + }, + av_vertrag: { + L1: { + required: false, + depth: 'Basis', + detailItems: [ + 'Standard-AVV-Vorlage verwenden', + 'Grundlegende Angaben zu Auftragsverarbeiter', + 'Wesentliche Pflichten aufgeführt', + ], + estimatedEffort: '1-2 Stunden pro Vertrag', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'Alle L1-Anforderungen', + 'Detaillierte Beschreibung der Verarbeitung', + 'TOM des Auftragsverarbeiters geprüft', + 'Unterschriebene Verträge vollständig', + 'Register aller AVV geführt', + ], + estimatedEffort: '2-4 Stunden pro Vertrag', + }, + L3: { + required: true, + depth: 'Detailliert', + detailItems: [ + 'Alle L2-Anforderungen', + 'Risikobewertung für jeden Auftragsverarbeiter', + 'Regelmäßige Überprüfungen dokumentiert', + 'Sub-Auftragsverarbeiter erfasst', + 'Audit-Rechte vereinbart und dokumentiert', + ], + estimatedEffort: '4-6 Stunden pro Vertrag', + }, + L4: { + required: true, + depth: 'Audit-Ready', + detailItems: [ + 'Alle L3-Anforderungen', + 'Regelmäßige Audits durchgeführt und dokumentiert', + 'Compliance-Nachweise vom Auftragsverarbeiter', + 'Vollständiges Vertragsmanagement-System', + 'Eskalations- und Kündigungsprozesse dokumentiert', + ], + estimatedEffort: '6-10 Stunden pro Vertrag', + }, + }, + dsi: { + L1: { + required: true, + depth: 'Basis', + detailItems: [ + 'Datenschutzerklärung auf Website', + 'Pflichtangaben nach Art. 13/14 DSGVO', + 'Verständliche Sprache', + 'Kontaktdaten DSB/Verantwortlicher', + ], + estimatedEffort: '2-4 Stunden', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'Alle L1-Anforderungen', + 'Detaillierte Beschreibung aller Verarbeitungen', + 'Rechtsgrundlagen erklärt', + 'Informationen zu Betroffenenrechten', + 'Cookie-/Tracking-Informationen', + 'Regelmäßige Aktualisierung', + ], + estimatedEffort: '4-8 Stunden', + }, + L3: { + required: true, + depth: 'Detailliert', + detailItems: [ + 'Alle L2-Anforderungen', + 'Mehrsprachige Versionen wo erforderlich', + 'Layered Notices (mehrstufige Informationen)', + 'Spezifische Informationen für verschiedene Verarbeitungen', + 'Versionierung und Änderungshistorie', + 'Consent Management Integration', + ], + estimatedEffort: '8-12 Stunden', + }, + L4: { + required: true, + depth: 'Audit-Ready', + detailItems: [ + 'Alle L3-Anforderungen', + 'Vollständige Nachweiskette für alle Informationen', + 'Audit-Trail für Änderungen', + 'Compliance mit internationalen Standards', + 'Regelmäßige rechtliche Reviews dokumentiert', + ], + estimatedEffort: '12-16 Stunden', + }, + }, + betroffenenrechte: { + L1: { + required: true, + depth: 'Basis', + detailItems: [ + 'Prozess für Auskunftsanfragen definiert', + 'Kontaktmöglichkeit bereitgestellt', + 'Grundlegende Fristen bekannt', + 'Einfaches Formular oder E-Mail-Vorlage', + ], + estimatedEffort: '1-2 Stunden', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'Alle L1-Anforderungen', + 'Prozesse für alle Betroffenenrechte (Auskunft, Löschung, Berichtigung, etc.)', + 'Verantwortlichkeiten festgelegt', + 'Standardvorlagen für Antworten', + 'Tracking von Anfragen', + ], + estimatedEffort: '3-6 Stunden', + }, + L3: { + required: true, + depth: 'Detailliert', + detailItems: [ + 'Alle L2-Anforderungen', + 'Detaillierte Prozessbeschreibungen', + 'Eskalationsprozesse bei komplexen Fällen', + 'Schulung der Mitarbeiter dokumentiert', + 'Audit-Trail aller Anfragen', + 'Nachweis der Fristeneinhaltung', + ], + estimatedEffort: '6-10 Stunden', + }, + L4: { + required: true, + depth: 'Audit-Ready', + detailItems: [ + 'Alle L3-Anforderungen', + 'Vollständiges Ticket-/Case-Management-System', + 'Regelmäßige Audits der Prozesse', + 'Compliance-Kennzahlen und Reporting', + 'Integration mit allen relevanten Systemen', + ], + estimatedEffort: '10-16 Stunden', + }, + }, + dsfa: { + L1: { + required: false, + depth: 'Nicht erforderlich', + detailItems: ['Nur bei Hard Trigger erforderlich'], + estimatedEffort: 'N/A', + }, + L2: { + required: false, + depth: 'Bei Bedarf', + detailItems: [ + 'DSFA-Schwellwertanalyse durchführen', + 'Bei Erforderlichkeit: Basis-DSFA', + 'Risiken identifiziert und bewertet', + 'Maßnahmen zur Risikominimierung', + ], + estimatedEffort: '4-8 Stunden pro DSFA', + }, + L3: { + required: false, + depth: 'Standard', + detailItems: [ + 'Alle L2-Anforderungen', + 'Detaillierte Risikobewertung', + 'Konsultation der Betroffenen wo sinnvoll', + 'Dokumentation der Entscheidungsprozesse', + 'Regelmäßige Überprüfung', + ], + estimatedEffort: '8-16 Stunden pro DSFA', + }, + L4: { + required: true, + depth: 'Vollständig', + detailItems: [ + 'Alle L3-Anforderungen', + 'Strukturierter DSFA-Prozess etabliert', + 'Vorabkonsultation der Aufsichtsbehörde wo erforderlich', + 'Vollständige Dokumentation aller Schritte', + 'Integration in Projektmanagement', + ], + estimatedEffort: '16-24 Stunden pro DSFA', + }, + }, + daten_transfer: { + L1: { + required: false, + depth: 'Basis', + detailItems: [ + 'Liste aller Drittlandtransfers', + 'Grundlegende Rechtsgrundlage identifiziert', + 'Standard-Vertragsklauseln wo nötig', + ], + estimatedEffort: '1-2 Stunden', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'Alle L1-Anforderungen', + 'Detaillierte Dokumentation aller Transfers', + 'Angemessenheitsbeschlüsse oder geeignete Garantien', + 'Informationen an Betroffene bereitgestellt', + 'Register geführt', + ], + estimatedEffort: '3-6 Stunden', + }, + L3: { + required: true, + depth: 'Detailliert', + detailItems: [ + 'Alle L2-Anforderungen', + 'Transfer Impact Assessment (TIA) durchgeführt', + 'Zusätzliche Schutzmaßnahmen dokumentiert', + 'Regelmäßige Überprüfung der Rechtsgrundlagen', + 'Risikobewertung für jedes Zielland', + ], + estimatedEffort: '6-12 Stunden', + }, + L4: { + required: true, + depth: 'Audit-Ready', + detailItems: [ + 'Alle L3-Anforderungen', + 'Vollständige TIA-Dokumentation', + 'Regelmäßige Reviews dokumentiert', + 'Rechtliche Expertise nachgewiesen', + 'Compliance-Nachweise für alle Transfers', + ], + estimatedEffort: '12-20 Stunden', + }, + }, + datenpannen: { + L1: { + required: true, + depth: 'Basis', + detailItems: [ + 'Grundlegender Prozess für Datenpannen', + 'Kontakt zur Aufsichtsbehörde bekannt', + 'Verantwortlichkeiten grob definiert', + 'Einfache Checkliste', + ], + estimatedEffort: '1-2 Stunden', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'Alle L1-Anforderungen', + 'Detaillierter Incident-Response-Plan', + 'Bewertungskriterien für Meldepflicht', + 'Vorlagen für Meldungen (Behörde & Betroffene)', + 'Dokumentationspflichten klar definiert', + ], + estimatedEffort: '3-6 Stunden', + }, + L3: { + required: true, + depth: 'Detailliert', + detailItems: [ + 'Alle L2-Anforderungen', + 'Incident-Management-System etabliert', + 'Regelmäßige Übungen durchgeführt', + 'Eskalationsprozesse dokumentiert', + 'Post-Incident-Review-Prozess', + 'Lessons Learned dokumentiert', + ], + estimatedEffort: '6-10 Stunden', + }, + L4: { + required: true, + depth: 'Audit-Ready', + detailItems: [ + 'Alle L3-Anforderungen', + 'Vollständiges Breach-Log geführt', + 'Integration mit IT-Security-Incident-Response', + 'Regelmäßige Audits des Prozesses', + 'Compliance-Nachweise für alle Vorfälle', + ], + estimatedEffort: '10-16 Stunden', + }, + }, + einwilligung: { + L1: { + required: false, + depth: 'Basis', + detailItems: [ + 'Einwilligungsformulare DSGVO-konform', + 'Opt-in statt Opt-out', + 'Widerrufsmöglichkeit bereitgestellt', + ], + estimatedEffort: '1-2 Stunden', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'Alle L1-Anforderungen', + 'Granulare Einwilligungen', + 'Nachweisbarkeit der Einwilligung', + 'Dokumentation des Einwilligungsprozesses', + 'Regelmäßige Überprüfung', + ], + estimatedEffort: '3-6 Stunden', + }, + L3: { + required: true, + depth: 'Detailliert', + detailItems: [ + 'Alle L2-Anforderungen', + 'Consent-Management-System implementiert', + 'Vollständiger Audit-Trail', + 'A/B-Testing dokumentiert', + 'Integration mit allen Datenverarbeitungen', + 'Regelmäßige Revalidierung', + ], + estimatedEffort: '6-12 Stunden', + }, + L4: { + required: true, + depth: 'Audit-Ready', + detailItems: [ + 'Alle L3-Anforderungen', + 'Enterprise Consent Management Platform', + 'Vollständige Nachweiskette für alle Einwilligungen', + 'Compliance-Dashboard', + 'Regelmäßige externe Audits', + ], + estimatedEffort: '12-20 Stunden', + }, + }, + vertragsmanagement: { + L1: { + required: false, + depth: 'Basis', + detailItems: [ + 'Einfaches Register wichtiger Verträge', + 'Ablage datenschutzrelevanter Verträge', + ], + estimatedEffort: '1-2 Stunden', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'Alle L1-Anforderungen', + 'Vollständiges Vertragsregister', + 'Datenschutzklauseln in Standardverträgen', + 'Überprüfungsprozess für neue Verträge', + 'Ablaufdaten und Kündigungsfristen getrackt', + ], + estimatedEffort: '3-6 Stunden Setup', + }, + L3: { + required: true, + depth: 'Detailliert', + detailItems: [ + 'Alle L2-Anforderungen', + 'Vertragsmanagement-System implementiert', + 'Automatische Erinnerungen für Reviews', + 'Risikobewertung für Vertragspartner', + 'Compliance-Checks vor Vertragsabschluss', + ], + estimatedEffort: '6-12 Stunden Setup', + }, + L4: { + required: true, + depth: 'Audit-Ready', + detailItems: [ + 'Alle L3-Anforderungen', + 'Enterprise Contract Management System', + 'Vollständiger Audit-Trail', + 'Integration mit Procurement', + 'Regelmäßige Compliance-Audits', + ], + estimatedEffort: '12-20 Stunden Setup', + }, + }, +}; diff --git a/admin-compliance/lib/sdk/compliance-scope-types/document-scope-matrix-extended.ts b/admin-compliance/lib/sdk/compliance-scope-types/document-scope-matrix-extended.ts new file mode 100644 index 0000000..9da8464 --- /dev/null +++ b/admin-compliance/lib/sdk/compliance-scope-types/document-scope-matrix-extended.ts @@ -0,0 +1,565 @@ +/** + * Compliance Scope Engine - Document Scope Matrix (Extended Documents) + * + * Anforderungen pro Level fuer erweiterte Dokumente: + * schulung, audit_log, risikoanalyse, notfallplan, zertifizierung, + * datenschutzmanagement, iace_ce_assessment, widerrufsbelehrung, + * preisangaben, fernabsatz_info, streitbeilegung, produktsicherheit, + * ai_act_doku. + */ + +import type { ScopeDocumentType } from './documents' +import type { DocumentScopeRequirement } from './documents' + +/** + * Scope-Matrix fuer erweiterte Dokumente + */ +export const DOCUMENT_SCOPE_MATRIX_EXTENDED: Partial> = { + schulung: { + L1: { + required: false, + depth: 'Basis', + detailItems: [ + 'Grundlegende Datenschutz-Awareness', + 'Informationsblatt für Mitarbeiter', + 'Kontaktperson benannt', + ], + estimatedEffort: '1-2 Stunden Vorbereitung', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'Alle L1-Anforderungen', + 'Jährliche Datenschutzschulung', + 'Schulungsunterlagen erstellt', + 'Teilnahme dokumentiert', + 'Rollenspezifische Inhalte', + ], + estimatedEffort: '4-8 Stunden Vorbereitung', + }, + L3: { + required: true, + depth: 'Detailliert', + detailItems: [ + 'Alle L2-Anforderungen', + 'E-Learning-Plattform oder strukturiertes Schulungsprogramm', + 'Wissenstests durchgeführt', + 'Auffrischungsschulungen', + 'Spezialschulungen für Schlüsselpersonal', + 'Schulungsplan erstellt', + ], + estimatedEffort: '8-16 Stunden Vorbereitung', + }, + L4: { + required: true, + depth: 'Audit-Ready', + detailItems: [ + 'Alle L3-Anforderungen', + 'Umfassendes Schulungsprogramm', + 'Externe Schulungen wo erforderlich', + 'Zertifizierungen für Schlüsselpersonal', + 'Vollständige Dokumentation aller Schulungen', + 'Wirksamkeitsmessung', + ], + estimatedEffort: '16-24 Stunden Vorbereitung', + }, + }, + audit_log: { + L1: { + required: false, + depth: 'Basis', + detailItems: [ + 'Grundlegendes Logging aktiviert', + 'Zugriffsprotokolle für kritische Systeme', + ], + estimatedEffort: '2-4 Stunden', + }, + L2: { + required: false, + depth: 'Standard', + detailItems: [ + 'Alle L1-Anforderungen', + 'Strukturiertes Logging-Konzept', + 'Aufbewahrungsfristen definiert', + 'Zugriffskontrolle auf Logs', + 'Regelmäßige Überprüfung', + ], + estimatedEffort: '4-8 Stunden', + }, + L3: { + required: true, + depth: 'Detailliert', + detailItems: [ + 'Alle L2-Anforderungen', + 'Zentralisiertes Logging-System', + 'Automatische Alerts bei Anomalien', + 'Audit-Trail für alle datenschutzrelevanten Vorgänge', + 'Compliance-Reporting', + ], + estimatedEffort: '8-16 Stunden', + }, + L4: { + required: true, + depth: 'Audit-Ready', + detailItems: [ + 'Alle L3-Anforderungen', + 'Enterprise SIEM-System', + 'Vollständige Nachvollziehbarkeit aller Zugriffe', + 'Regelmäßige Log-Audits dokumentiert', + 'Integration mit Incident Response', + ], + estimatedEffort: '16-24 Stunden', + }, + }, + risikoanalyse: { + L1: { + required: false, + depth: 'Basis', + detailItems: [ + 'Grundlegende Risikoidentifikation', + 'Einfache Bewertung nach Eintrittswahrscheinlichkeit und Auswirkung', + ], + estimatedEffort: '2-4 Stunden', + }, + L2: { + required: false, + depth: 'Standard', + detailItems: [ + 'Alle L1-Anforderungen', + 'Strukturierte Risikoanalyse', + 'Risikomatrix erstellt', + 'Maßnahmen zur Risikominimierung definiert', + 'Jährliche Überprüfung', + ], + estimatedEffort: '4-8 Stunden', + }, + L3: { + required: true, + depth: 'Detailliert', + detailItems: [ + 'Alle L2-Anforderungen', + 'Umfassende Risikoanalyse nach Standard-Framework', + 'Integration mit VVT und DSFA', + 'Risikomanagement-Prozess etabliert', + 'Regelmäßige Reviews', + 'Risiko-Dashboard', + ], + estimatedEffort: '8-16 Stunden', + }, + L4: { + required: true, + depth: 'Audit-Ready', + detailItems: [ + 'Alle L3-Anforderungen', + 'Enterprise Risk Management System', + 'Vollständige Integration mit ISMS', + 'Kontinuierliche Risikoüberwachung', + 'Regelmäßige externe Assessments', + ], + estimatedEffort: '16-24 Stunden', + }, + }, + notfallplan: { + L1: { + required: false, + depth: 'Basis', + detailItems: [ + 'Grundlegende Notfallkontakte definiert', + 'Einfacher Backup-Prozess', + ], + estimatedEffort: '1-2 Stunden', + }, + L2: { + required: false, + depth: 'Standard', + detailItems: [ + 'Alle L1-Anforderungen', + 'Notfall- und Krisenplan erstellt', + 'Business Continuity Grundlagen', + 'Backup und Recovery dokumentiert', + 'Verantwortlichkeiten festgelegt', + ], + estimatedEffort: '3-6 Stunden', + }, + L3: { + required: true, + depth: 'Detailliert', + detailItems: [ + 'Alle L2-Anforderungen', + 'Detaillierter Business Continuity Plan', + 'Disaster Recovery Plan', + 'Regelmäßige Tests durchgeführt', + 'Eskalationsprozesse dokumentiert', + 'Externe Kommunikation geplant', + ], + estimatedEffort: '6-12 Stunden', + }, + L4: { + required: true, + depth: 'Audit-Ready', + detailItems: [ + 'Alle L3-Anforderungen', + 'ISO 22301 konformes BCMS', + 'Regelmäßige Übungen und Audits', + 'Vollständige Dokumentation', + 'Integration mit IT-Disaster-Recovery', + ], + estimatedEffort: '12-20 Stunden', + }, + }, + zertifizierung: { + L1: { + required: false, + depth: 'Nicht relevant', + detailItems: ['Keine Zertifizierung erforderlich'], + estimatedEffort: 'N/A', + }, + L2: { + required: false, + depth: 'Nicht relevant', + detailItems: ['Keine Zertifizierung erforderlich'], + estimatedEffort: 'N/A', + }, + L3: { + required: false, + depth: 'Optional', + detailItems: [ + 'Evaluierung möglicher Zertifizierungen', + 'Gap-Analyse durchgeführt', + 'Entscheidung für/gegen Zertifizierung dokumentiert', + ], + estimatedEffort: '4-8 Stunden', + }, + L4: { + required: true, + depth: 'Vollständig', + detailItems: [ + 'Zertifizierungsvorbereitung (ISO 27001, ISO 27701, etc.)', + 'Gap-Analyse abgeschlossen', + 'Maßnahmenplan erstellt', + 'Interne Audits durchgeführt', + 'Dokumentation audit-ready', + 'Zertifizierungsstelle ausgewählt', + ], + estimatedEffort: '40-80 Stunden', + }, + }, + datenschutzmanagement: { + L1: { + required: false, + depth: 'Nicht erforderlich', + detailItems: ['Kein formales DSMS notwendig'], + estimatedEffort: 'N/A', + }, + L2: { + required: false, + depth: 'Basis', + detailItems: [ + 'Grundlegendes Datenschutzmanagement', + 'Verantwortlichkeiten definiert', + 'Regelmäßige Reviews geplant', + ], + estimatedEffort: '2-4 Stunden', + }, + L3: { + required: true, + depth: 'Standard', + detailItems: [ + 'Alle L2-Anforderungen', + 'Strukturiertes DSMS etabliert', + 'Datenschutz-Policy erstellt', + 'Regelmäßige Management-Reviews', + 'KPIs für Datenschutz definiert', + 'Verbesserungsprozess etabliert', + ], + estimatedEffort: '8-16 Stunden', + }, + L4: { + required: true, + depth: 'Vollständig', + detailItems: [ + 'Alle L3-Anforderungen', + 'ISO 27701 oder vergleichbares DSMS', + 'Integration mit ISMS', + 'Vollständige Dokumentation aller Prozesse', + 'Regelmäßige interne und externe Audits', + 'Kontinuierliche Verbesserung nachgewiesen', + ], + estimatedEffort: '24-40 Stunden', + }, + }, + iace_ce_assessment: { + L1: { + required: false, + depth: 'Minimal', + detailItems: [ + 'Regulatorischer Quick-Check fuer SW/FW/KI', + 'Grundlegende Identifikation relevanter Vorschriften', + ], + estimatedEffort: '2 Stunden', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'CE-Risikobeurteilung fuer SW/FW-Komponenten', + 'Hazard Log mit S×E×P Bewertung', + 'CRA-Konformitaetspruefung', + 'Grundlegende Massnahmendokumentation', + ], + estimatedEffort: '8 Stunden', + }, + L3: { + required: true, + depth: 'Detailliert', + detailItems: [ + 'Alle L2-Anforderungen', + 'Vollstaendige CE-Akte inkl. KI-Dossier', + 'AI Act High-Risk Konformitaetsbewertung', + 'Maschinenverordnung Anhang III Nachweis', + 'Verifikationsplan mit Akzeptanzkriterien', + 'Evidence-Management fuer Testnachweise', + ], + estimatedEffort: '16 Stunden', + }, + L4: { + required: true, + depth: 'Audit-Ready', + detailItems: [ + 'Alle L3-Anforderungen', + 'Zertifizierungsfertige CE-Dokumentation', + 'Benannte-Stelle-tauglicher Nachweis', + 'Revisionssichere Audit Trails', + 'Post-Market Monitoring Plan', + 'Continuous Compliance Framework', + ], + estimatedEffort: '24 Stunden', + }, + }, + widerrufsbelehrung: { + L1: { + required: false, + depth: 'Nicht relevant', + detailItems: ['Nur bei B2C-Fernabsatz erforderlich'], + estimatedEffort: '0', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'Muster-Widerrufsbelehrung nach EGBGB Anlage 1', + 'Muster-Widerrufsformular nach EGBGB Anlage 2', + 'Integration in Bestellprozess', + '14-Tage Widerrufsfrist korrekt dargestellt', + ], + estimatedEffort: '2-4 Stunden', + }, + L3: { + required: true, + depth: 'Erweitert', + detailItems: [ + 'Wie L2 + digitale Inhalte (§ 356 Abs. 5 BGB)', + 'Ausnahmen dokumentiert (§ 312g Abs. 2 BGB)', + ], + estimatedEffort: '4-6 Stunden', + }, + L4: { + required: true, + depth: 'Vollstaendig', + detailItems: [ + 'Wie L3 + automatisierte Pruefung', + 'Mehrsprachig bei EU-Verkauf', + ], + estimatedEffort: '6-8 Stunden', + }, + }, + preisangaben: { + L1: { + required: false, + depth: 'Nicht relevant', + detailItems: ['Nur bei B2C-Preisauszeichnung erforderlich'], + estimatedEffort: '0', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'Gesamtpreisangabe inkl. MwSt (§ 1 PAngV)', + 'Grundpreisangabe bei Mengenware (§ 4 PAngV)', + 'Versandkosten deutlich angegeben', + ], + estimatedEffort: '2-3 Stunden', + }, + L3: { + required: true, + depth: 'Erweitert', + detailItems: [ + 'Wie L2 + Preishistorie bei Rabattaktionen (Omnibus-RL)', + 'Streichpreise korrekt dargestellt', + ], + estimatedEffort: '3-5 Stunden', + }, + L4: { + required: true, + depth: 'Vollstaendig', + detailItems: [ + 'Wie L3 + automatisierte Pruefung', + 'Mehrwaehrungsunterstuetzung', + ], + estimatedEffort: '5-8 Stunden', + }, + }, + fernabsatz_info: { + L1: { + required: false, + depth: 'Nicht relevant', + detailItems: ['Nur bei Fernabsatzvertraegen erforderlich'], + estimatedEffort: '0', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'Pflichtinformationen nach § 312d BGB i.V.m. Art. 246a EGBGB', + 'Wesentliche Eigenschaften der Ware/Dienstleistung', + 'Identitaet und Anschrift des Unternehmers', + 'Zahlungs-, Liefer- und Leistungsbedingungen', + ], + estimatedEffort: '3-5 Stunden', + }, + L3: { + required: true, + depth: 'Erweitert', + detailItems: [ + 'Wie L2 + Informationen zu digitalen Inhalten/Diensten', + 'Funktionalitaet und Interoperabilitaet (§ 327 BGB)', + ], + estimatedEffort: '5-8 Stunden', + }, + L4: { + required: true, + depth: 'Vollstaendig', + detailItems: [ + 'Wie L3 + mehrsprachige Informationspflichten', + 'Automatisierte Vollstaendigkeitspruefung', + ], + estimatedEffort: '8-12 Stunden', + }, + }, + streitbeilegung: { + L1: { + required: false, + depth: 'Nicht relevant', + detailItems: ['Nur bei B2C-Handel erforderlich'], + estimatedEffort: '0', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'Hinweis auf OS-Plattform der EU-Kommission (Art. 14 ODR-VO)', + 'Erklaerung zur Teilnahmebereitschaft an Streitbeilegung (§ 36 VSBG)', + 'Link zur OS-Plattform im Impressum/AGB', + ], + estimatedEffort: '1-2 Stunden', + }, + L3: { + required: true, + depth: 'Erweitert', + detailItems: [ + 'Wie L2 + Benennung zustaendiger Verbraucherschlichtungsstelle', + 'Prozess fuer Streitbeilegungsanfragen dokumentiert', + ], + estimatedEffort: '2-3 Stunden', + }, + L4: { + required: true, + depth: 'Vollstaendig', + detailItems: [ + 'Wie L3 + Eskalationsprozess dokumentiert', + 'Regelmaessige Auswertung von Beschwerden', + ], + estimatedEffort: '3-4 Stunden', + }, + }, + produktsicherheit: { + L1: { + required: false, + depth: 'Minimal', + detailItems: ['Grundlegende Produktkennzeichnung pruefen'], + estimatedEffort: '1 Stunde', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'Produktsicherheitsbewertung nach GPSR (EU 2023/988)', + 'CE-Kennzeichnung und Konformitaetserklaerung', + 'Wirtschaftsakteur-Angaben auf Produkt/Verpackung', + 'Technische Dokumentation fuer Marktaufsicht', + ], + estimatedEffort: '8-12 Stunden', + }, + L3: { + required: true, + depth: 'Erweitert', + detailItems: [ + 'Wie L2 + Risikoanalyse fuer alle Produktvarianten', + 'Rueckrufplan und Marktbeobachtungspflichten', + 'Supply-Chain-Dokumentation', + ], + estimatedEffort: '16-24 Stunden', + }, + L4: { + required: true, + depth: 'Vollstaendig', + detailItems: [ + 'Wie L3 + vollstaendige GPSR-Konformitaetsakte', + 'Post-Market-Surveillance System', + 'Audit-Trail fuer alle Sicherheitsbewertungen', + ], + estimatedEffort: '24-40 Stunden', + }, + }, + ai_act_doku: { + L1: { + required: false, + depth: 'Minimal', + detailItems: ['KI-Risikokategorisierung (Art. 6 AI Act)'], + estimatedEffort: '2 Stunden', + }, + L2: { + required: true, + depth: 'Standard', + detailItems: [ + 'Technische Dokumentation nach Art. 11 AI Act', + 'Transparenzpflichten (Art. 52 AI Act)', + 'Risikomanagement-Grundlagen (Art. 9 AI Act)', + 'Menschliche Aufsicht dokumentiert (Art. 14 AI Act)', + ], + estimatedEffort: '8-12 Stunden', + }, + L3: { + required: true, + depth: 'Erweitert', + detailItems: [ + 'Wie L2 + Datenqualitaetsmanagement (Art. 10 AI Act)', + 'Genauigkeits- und Robustheitstests (Art. 15 AI Act)', + 'Vollstaendige Konformitaetsbewertung fuer Hochrisiko-KI', + ], + estimatedEffort: '16-24 Stunden', + }, + L4: { + required: true, + depth: 'Audit-Ready', + detailItems: [ + 'Wie L3 + Zertifizierungsfertige AI Act Dokumentation', + 'EU-Datenbank-Registrierung (Art. 60 AI Act)', + 'Post-Market Monitoring fuer KI-Systeme', + 'Continuous Compliance Framework fuer KI', + ], + estimatedEffort: '24-40 Stunden', + }, + }, +}; diff --git a/admin-compliance/lib/sdk/compliance-scope-types/documents.ts b/admin-compliance/lib/sdk/compliance-scope-types/documents.ts new file mode 100644 index 0000000..91d2c94 --- /dev/null +++ b/admin-compliance/lib/sdk/compliance-scope-types/documents.ts @@ -0,0 +1,84 @@ +/** + * Compliance Scope Engine - Document Types + * + * Definiert Dokumenttypen und deren Anforderungen pro Compliance-Level. + */ + +import type { ComplianceDepthLevel } from './core-levels' + +/** + * Alle verfügbaren Dokumenttypen im SDK + */ +export type ScopeDocumentType = + | 'vvt' // Verzeichnis von Verarbeitungstätigkeiten + | 'lf' // Löschfristenkonzept + | 'tom' // Technische und organisatorische Maßnahmen + | 'av_vertrag' // Auftragsverarbeitungsvertrag + | 'dsi' // Datenschutz-Informationen (Privacy Policy) + | 'betroffenenrechte' // Betroffenenrechte-Prozess + | 'dsfa' // Datenschutz-Folgenabschätzung + | 'daten_transfer' // Drittlandtransfer-Dokumentation + | 'datenpannen' // Datenpannen-Prozess + | 'einwilligung' // Einwilligungsmanagement + | 'vertragsmanagement' // Vertragsmanagement-Prozess + | 'schulung' // Mitarbeiterschulung + | 'audit_log' // Audit & Logging Konzept + | 'risikoanalyse' // Risikoanalyse + | 'notfallplan' // Notfall- & Krisenplan + | 'zertifizierung' // Zertifizierungsvorbereitung + | 'datenschutzmanagement' // Datenschutzmanagement-System (DSMS) + | 'iace_ce_assessment' // CE-Risikobeurteilung SW/FW/KI (IACE) + | 'widerrufsbelehrung' // Widerrufsbelehrung (§ 312g BGB) + | 'preisangaben' // Preisangaben (PAngV) + | 'fernabsatz_info' // Informationspflichten Fernabsatz (§ 312d BGB) + | 'streitbeilegung' // Streitbeilegungshinweis (VSBG § 36) + | 'produktsicherheit' // Produktsicherheit (GPSR EU 2023/988) + | 'ai_act_doku'; // AI Act Technische Dokumentation (Art. 11) + +/** + * Erforderliches Dokument mit Detailtiefe + */ +export interface RequiredDocument { + /** Dokumenttyp */ + documentType: ScopeDocumentType; + /** Anzeigename */ + label: string; + /** Pflicht oder empfohlen */ + requirement: 'mandatory' | 'recommended'; + /** Priorität */ + priority: 'high' | 'medium' | 'low'; + /** Geschätzter Aufwand in Stunden */ + estimatedEffort: number; + /** Von welchen Triggern/Regeln gefordert */ + triggeredBy: string[]; + /** Link zum SDK-Schritt */ + sdkStepUrl?: string; +} + +/** + * Anforderungen an ein Dokument pro Level + */ +export interface DocumentDepthRequirement { + /** Ist auf diesem Level erforderlich? */ + required: boolean; + /** Tiefenbezeichnung */ + depth: string; + /** Konkrete Anforderungen */ + detailItems: string[]; + /** Geschätzter Aufwand */ + estimatedEffort: string; +} + +/** + * Vollständige Scope-Anforderungen für ein Dokument + */ +export interface DocumentScopeRequirement { + /** L1 Anforderungen */ + L1: DocumentDepthRequirement; + /** L2 Anforderungen */ + L2: DocumentDepthRequirement; + /** L3 Anforderungen */ + L3: DocumentDepthRequirement; + /** L4 Anforderungen */ + L4: DocumentDepthRequirement; +} diff --git a/admin-compliance/lib/sdk/compliance-scope-types/hard-triggers.ts b/admin-compliance/lib/sdk/compliance-scope-types/hard-triggers.ts new file mode 100644 index 0000000..25e48a3 --- /dev/null +++ b/admin-compliance/lib/sdk/compliance-scope-types/hard-triggers.ts @@ -0,0 +1,77 @@ +/** + * Compliance Scope Engine - Hard Trigger Types + * + * Definiert Typen für regelbasierte Mindest-Compliance-Level-Erzwingung. + */ + +import type { ComplianceDepthLevel } from './core-levels' + +/** + * Bedingungsoperatoren für Hard Trigger + */ +export type HardTriggerOperator = + | 'EQUALS' // Exakte Übereinstimmung + | 'CONTAINS' // Enthält (für Arrays/Strings) + | 'IN' // Ist in Liste enthalten + | 'GREATER_THAN' // Größer als (numerisch) + | 'NOT_EQUALS'; // Ungleich + +/** + * Hard Trigger Regel - erzwingt Mindest-Compliance-Level + */ +export interface HardTriggerRule { + /** Eindeutige ID der Regel */ + id: string; + /** Kategorie der Regel */ + category: string; + /** Frage-ID, die geprüft wird */ + questionId: string; + /** Bedingungsoperator */ + condition: HardTriggerOperator; + /** Wert, der geprüft wird */ + conditionValue: unknown; + /** Minimal erforderliches Level */ + minimumLevel: ComplianceDepthLevel; + /** DSFA erforderlich? */ + requiresDSFA: boolean; + /** Pflichtdokumente bei Trigger */ + mandatoryDocuments: string[]; + /** Rechtsgrundlage */ + legalReference: string; + /** Detaillierte Beschreibung */ + description: string; + /** Kombiniert mit Art. 9 Daten? */ + combineWithArt9?: boolean; + /** Kombiniert mit Minderjährigen-Daten? */ + combineWithMinors?: boolean; + /** Kombiniert mit KI-Nutzung? */ + combineWithAI?: boolean; + /** Kombiniert mit Mitarbeiterüberwachung? */ + combineWithEmployeeMonitoring?: boolean; + /** Kombiniert mit automatisierter Entscheidungsfindung? */ + combineWithADM?: boolean; + /** Regel feuert NICHT wenn diese Bedingung zutrifft */ + excludeWhen?: { questionId: string; value: string | string[] }; + /** Regel feuert NUR wenn diese Bedingung zutrifft */ + requireWhen?: { questionId: string; value: string | string[] }; +} + +/** + * Getriggerter Hard Trigger mit Kontext + */ +export interface TriggeredHardTrigger { + /** Regel-ID */ + ruleId: string; + /** Kategorie */ + category: string; + /** Beschreibung */ + description: string; + /** Rechtsgrundlage */ + legalReference?: string; + /** Mindest-Level */ + minimumLevel: ComplianceDepthLevel; + /** DSFA erforderlich? */ + requiresDSFA: boolean; + /** Pflichtdokumente */ + mandatoryDocuments: string[]; +} diff --git a/admin-compliance/lib/sdk/compliance-scope-types/index.ts b/admin-compliance/lib/sdk/compliance-scope-types/index.ts new file mode 100644 index 0000000..382e153 --- /dev/null +++ b/admin-compliance/lib/sdk/compliance-scope-types/index.ts @@ -0,0 +1,10 @@ +// Barrel re-export — split from the monolithic compliance-scope-types.ts +export * from './core-levels'; +export * from './constants'; +export * from './questions'; +export * from './hard-triggers'; +export * from './documents'; +export * from './decisions'; +export * from './document-scope-matrix-core'; +export * from './document-scope-matrix-extended'; +export * from './state'; diff --git a/admin-compliance/lib/sdk/compliance-scope-types/questions.ts b/admin-compliance/lib/sdk/compliance-scope-types/questions.ts new file mode 100644 index 0000000..c78145f --- /dev/null +++ b/admin-compliance/lib/sdk/compliance-scope-types/questions.ts @@ -0,0 +1,77 @@ +/** + * Compliance Scope Engine - Question & Profiling Types + * + * Definiert Typen für das Scope-Profiling-Fragebogensystem. + */ + +/** + * IDs der Fragenblöcke für das Scope-Profiling + */ +export type ScopeQuestionBlockId = + | 'organisation' // Organisation & Reife + | 'data' // Daten & Betroffene + | 'processing' // Verarbeitung & Zweck + | 'tech' // Technik & Hosting + | 'processes' // Rechte & Prozesse + | 'product' // Produktkontext + | 'ai_systems' // KI-Systeme (aus Profil portiert) + | 'vvt' // Verarbeitungstaetigkeiten (aus Profil portiert) + | 'datenkategorien_detail'; // Datenkategorien pro Abteilung (Block 9) + +/** + * Eine einzelne Frage im Scope-Profiling + */ +export interface ScopeProfilingQuestion { + /** Eindeutige ID der Frage */ + id: string; + /** Fragetext */ + question: string; + /** Optional: Hilfetext/Erklärung */ + helpText?: string; + /** Antworttyp */ + type: 'single' | 'multi' | 'boolean' | 'number' | 'text'; + /** Antwortoptionen (für single/multi) */ + options?: Array<{ value: string; label: string }>; + /** Ist die Frage erforderlich? */ + required: boolean; + /** Gewichtung für Score-Berechnung */ + scoreWeights?: { + risk?: number; // Einfluss auf Risiko-Score + complexity?: number; // Einfluss auf Komplexitäts-Score + assurance?: number; // Einfluss auf Assurance-Bedarf + }; + /** Mapping zu Firmenprofil-Feldern */ + mapsToCompanyProfile?: string; + /** Mapping zu VVT-Fragen */ + mapsToVVTQuestion?: string; + /** Mapping zu LF-Fragen */ + mapsToLFQuestion?: string; + /** Mapping zu TOM-Profil */ + mapsToTOMProfile?: string; +} + +/** + * Antwort auf eine Profiling-Frage + */ +export interface ScopeProfilingAnswer { + /** ID der beantworteten Frage */ + questionId: string; + /** Antwortwert (Typ abhängig von Fragentyp) */ + value: string | string[] | boolean | number; +} + +/** + * Ein Block von zusammengehörigen Fragen + */ +export interface ScopeQuestionBlock { + /** Block-ID */ + id: ScopeQuestionBlockId; + /** Block-Titel */ + title: string; + /** Block-Beschreibung */ + description: string; + /** Reihenfolge des Blocks */ + order: number; + /** Fragen in diesem Block */ + questions: ScopeProfilingQuestion[]; +} diff --git a/admin-compliance/lib/sdk/compliance-scope-types/state.ts b/admin-compliance/lib/sdk/compliance-scope-types/state.ts new file mode 100644 index 0000000..91d5985 --- /dev/null +++ b/admin-compliance/lib/sdk/compliance-scope-types/state.ts @@ -0,0 +1,22 @@ +/** + * Compliance Scope Engine - State Management Types + * + * Definiert den Gesamtzustand des Compliance Scope. + */ + +import type { ScopeProfilingAnswer } from './questions' +import type { ScopeDecision } from './decisions' + +/** + * Gesamter Zustand des Compliance Scope + */ +export interface ComplianceScopeState { + /** Alle gegebenen Antworten */ + answers: ScopeProfilingAnswer[]; + /** Aktuelle Entscheidung (null wenn noch nicht berechnet) */ + decision: ScopeDecision | null; + /** Zeitpunkt der letzten Evaluierung */ + lastEvaluatedAt: string | null; + /** Sind alle Pflichtfragen beantwortet? */ + isComplete: boolean; +}