refactor(admin): split compliance-scope-types.ts (1738 LOC) into domain modules
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) <noreply@anthropic.com>
This commit is contained in:
File diff suppressed because it is too large
Load Diff
83
admin-compliance/lib/sdk/compliance-scope-types/constants.ts
Normal file
83
admin-compliance/lib/sdk/compliance-scope-types/constants.ts
Normal file
@@ -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<ComplianceDepthLevel, string> = {
|
||||
L1: 'Lean Startup',
|
||||
L2: 'KMU Standard',
|
||||
L3: 'Erweitert',
|
||||
L4: 'Zertifizierungsbereit',
|
||||
};
|
||||
|
||||
/**
|
||||
* Detaillierte Beschreibungen der Compliance-Levels
|
||||
*/
|
||||
export const DEPTH_LEVEL_DESCRIPTIONS: Record<ComplianceDepthLevel, string> = {
|
||||
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<ComplianceDepthLevel, { bg: string; border: string; badge: string; text: string }> = {
|
||||
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<ScopeDocumentType, string> = {
|
||||
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';
|
||||
@@ -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;
|
||||
}
|
||||
111
admin-compliance/lib/sdk/compliance-scope-types/decisions.ts
Normal file
111
admin-compliance/lib/sdk/compliance-scope-types/decisions.ts
Normal file
@@ -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;
|
||||
}
|
||||
@@ -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<Record<ScopeDocumentType, DocumentScopeRequirement>> = {
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -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<Record<ScopeDocumentType, DocumentScopeRequirement>> = {
|
||||
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',
|
||||
},
|
||||
},
|
||||
};
|
||||
84
admin-compliance/lib/sdk/compliance-scope-types/documents.ts
Normal file
84
admin-compliance/lib/sdk/compliance-scope-types/documents.ts
Normal file
@@ -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;
|
||||
}
|
||||
@@ -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[];
|
||||
}
|
||||
10
admin-compliance/lib/sdk/compliance-scope-types/index.ts
Normal file
10
admin-compliance/lib/sdk/compliance-scope-types/index.ts
Normal file
@@ -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';
|
||||
77
admin-compliance/lib/sdk/compliance-scope-types/questions.ts
Normal file
77
admin-compliance/lib/sdk/compliance-scope-types/questions.ts
Normal file
@@ -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[];
|
||||
}
|
||||
22
admin-compliance/lib/sdk/compliance-scope-types/state.ts
Normal file
22
admin-compliance/lib/sdk/compliance-scope-types/state.ts
Normal file
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user