diff --git a/admin-compliance/app/sdk/sdk-flow/steps-analyse.ts b/admin-compliance/app/sdk/sdk-flow/steps-analyse.ts index cef0056..e3375e6 100644 --- a/admin-compliance/app/sdk/sdk-flow/steps-analyse.ts +++ b/admin-compliance/app/sdk/sdk-flow/steps-analyse.ts @@ -1,5 +1,8 @@ /** - * SDK Flow Steps — Paket 2: Analyse (seq 1000–1600) + * SDK Flow Steps — Paket 2: Analyse (seq 1000–1400) + * + * Neue Reihenfolge: Requirements → Controls → Risks → Checklist → Report + * Evidence → Paket 5 (Betrieb), AI Act → Paket 1 (optional) */ import type { SDKFlowStep } from './types' @@ -13,16 +16,16 @@ export const STEPS_ANALYSE: SDKFlowStep[] = [ checkpointId: 'CP-REQ', checkpointType: 'REQUIRED', checkpointReviewer: 'NONE', - description: 'Ableitung konkreter Compliance-Anforderungen aus den aktivierten Modulen, mit RAG-Anreicherung.', - descriptionLong: 'Aus den aktivierten Modulen und der Source Policy werden konkrete, umsetzbare Compliance-Anforderungen abgeleitet. Vollstaendige CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Loeschen) mit Backend-Persistenz. Die RAG-Collections bp_compliance_recht (DE-Gesetze) und bp_compliance_ce (EU-Verordnungen) liefern aktuelle Rechtstexte, aus denen spezifische Pflichten extrahiert werden. Die KI-gestuetzte Interpretation (interpret_requirement) und Control-Vorschlaege (suggest_controls) werden mit RAG-Kontext angereichert — die Collection wird automatisch anhand des Regulation-Codes gewaehlt (EU → bp_compliance_ce, DE → bp_compliance_recht). Status-Workflow: NOT_STARTED → IN_PROGRESS → IMPLEMENTED → VERIFIED mit automatischem Rollback bei Backend-Fehler. Filterung, Volltextsuche und Paginierung fuer grosse Datensaetze (500+ Anforderungen).', + description: 'Ableitung konkreter Compliance-Anforderungen aus den im Scope erkannten Regulierungen.', + descriptionLong: 'Aus den im Scope-Profiling erkannten Regulierungen (DSGVO, AI Act, NIS2) werden konkrete, umsetzbare Compliance-Anforderungen abgeleitet. Vollstaendige CRUD-Operationen mit Backend-Persistenz. Die RAG-Collections liefern aktuelle Rechtstexte, aus denen spezifische Pflichten extrahiert werden. KI-gestuetzte Interpretation und Control-Vorschlaege. Status-Workflow: NOT_STARTED → IN_PROGRESS → IMPLEMENTED → VERIFIED.', legalBasis: 'Art. 5, 24, 25 DSGVO (Rechenschaftspflicht)', - inputs: ['modules', 'sourcePolicy'], + inputs: ['scopeDecision', 'companyProfile'], outputs: ['requirements'], - prerequisiteSteps: ['source-policy'], + prerequisiteSteps: ['compliance-scope'], dbTables: ['compliance_requirements'], dbMode: 'read/write', ragCollections: ['bp_compliance_recht', 'bp_compliance_ce'], - ragPurpose: 'Rechtliche Anforderungen ableiten + AI-Interpretation mit Rechtskontext anreichern (Collection-Routing: EU→ce, DE→recht)', + ragPurpose: 'Rechtliche Anforderungen ableiten + AI-Interpretation mit Rechtskontext anreichern', isOptional: false, url: '/sdk/requirements', }, @@ -36,7 +39,7 @@ export const STEPS_ANALYSE: SDKFlowStep[] = [ checkpointType: 'REQUIRED', checkpointReviewer: 'DSB', description: 'Definition technischer und organisatorischer Kontrollen zur Erfuellung der Anforderungen.', - descriptionLong: 'Fuer jede Compliance-Anforderung werden konkrete Controls (Kontrollmassnahmen) definiert. Controls sind technische oder organisatorische Massnahmen, die sicherstellen, dass eine Anforderung erfuellt wird. Beispiele: Zugriffskontrolle (RBAC), Verschluesselung (AES-256), Logging, Schulungspflichten. Evidence-Linking: Jeder Control zeigt verknuepfte Nachweise mit Gueltigkeits-Badge an. Navigation zur Evidence-Seite mit vorausgewaehltem Control. Domaenen-basierte Gruppierung (gov, priv, iam, crypto, sdlc, ops, ai, cra, aud). Review-Workflow mit Verantwortlichem und naechstem Review-Datum. Der DSB muss diesen Schritt freigeben.', + descriptionLong: 'Fuer jede Compliance-Anforderung werden konkrete Controls (Kontrollmassnahmen) definiert. Controls sind technische oder organisatorische Massnahmen, die sicherstellen, dass eine Anforderung erfuellt wird. Beispiele: Zugriffskontrolle (RBAC), Verschluesselung (AES-256), Logging, Schulungspflichten. Evidence-Linking: Jeder Control zeigt verknuepfte Nachweise an. Domaenen-basierte Gruppierung. Review-Workflow mit Verantwortlichem. Der DSB muss diesen Schritt freigeben.', legalBasis: 'Art. 32 DSGVO (Sicherheit der Verarbeitung)', inputs: ['requirements'], outputs: ['controls'], @@ -47,84 +50,41 @@ export const STEPS_ANALYSE: SDKFlowStep[] = [ isOptional: false, url: '/sdk/controls', }, - { - id: 'evidence', - name: 'Evidence', - nameShort: 'Nachweise', - package: 'analyse', - seq: 1200, - checkpointId: 'CP-EVI', - checkpointType: 'RECOMMENDED', - checkpointReviewer: 'NONE', - description: 'Sammlung und Verwaltung von Nachweisen fuer die Umsetzung der Controls.', - descriptionLong: 'Fuer jeden Control wird dokumentiert, wie und wann er umgesetzt wurde. Evidence (Nachweise) koennen Screenshots, Konfigurationsdateien, Audit-Logs, Schulungszertifikate oder Testprotokolle sein. Server-seitige Pagination (page, limit Query-Parameter) fuer grosse Nachweis-Sammlungen. Gueltigkeits-Tracking (valid_from, valid_until) mit Status: valid, expired, pending, failed. Verknuepfung mit Controls und Upload von Dateien als Nachweise. Essentiell fuer Audits und Zertifizierungen.', - legalBasis: 'Art. 5 Abs. 2 DSGVO (Rechenschaftspflicht)', - inputs: ['controls'], - outputs: ['evidence'], - prerequisiteSteps: ['controls'], - dbTables: ['compliance_evidence'], - dbMode: 'write', - ragCollections: [], - isOptional: false, - url: '/sdk/evidence', - }, { id: 'risks', name: 'Risk Matrix', nameShort: 'Risiken', package: 'analyse', - seq: 1300, + seq: 1200, checkpointId: 'CP-RISK', checkpointType: 'REQUIRED', checkpointReviewer: 'DSB', - description: 'Bewertung aller Datenschutz- und Compliance-Risiken in einer Risikomatrix.', - descriptionLong: 'Die 5x5 Risikomatrix bewertet jedes Risiko nach Eintrittswahrscheinlichkeit und Schadenshoehe. Inherent Risk vs. Residual Risk mit visuellem Vergleich. Status-Workflow: IDENTIFIED → ASSESSED → MITIGATED → ACCEPTED → CLOSED. Expandierbare Mitigations-Sektion pro Risiko mit verknuepften Controls (Name, Status, Effectiveness). Automatische Risiko-Level-Berechnung: Score = Likelihood × Impact (LOW <6, MEDIUM 6-11, HIGH 12-19, CRITICAL ≥20). Der DSB muss die Risikobewertung freigeben.', + description: 'Bewertung aller Datenschutz- und Compliance-Risiken — wo sind Luecken?', + descriptionLong: 'Die 5x5 Risikomatrix bewertet jedes Risiko nach Eintrittswahrscheinlichkeit und Schadenshoehe. Inherent Risk vs. Residual Risk mit visuellem Vergleich. Status-Workflow: IDENTIFIED → ASSESSED → MITIGATED → ACCEPTED → CLOSED. Expandierbare Mitigations-Sektion pro Risiko mit verknuepften Controls. Automatische Risiko-Level-Berechnung: Score = Likelihood × Impact. Der DSB muss die Risikobewertung freigeben.', legalBasis: 'Art. 35 DSGVO (Datenschutz-Folgenabschaetzung)', - inputs: ['controls', 'modules'], + inputs: ['controls'], outputs: ['risks'], - prerequisiteSteps: ['evidence'], + prerequisiteSteps: ['controls'], dbTables: ['compliance_risks'], dbMode: 'write', ragCollections: [], isOptional: false, url: '/sdk/risks', }, - { - id: 'ai-act', - name: 'AI Act Klassifizierung', - nameShort: 'AI Act', - package: 'analyse', - seq: 1400, - checkpointId: 'CP-AI', - checkpointType: 'REQUIRED', - checkpointReviewer: 'LEGAL', - description: 'Klassifizierung aller KI-Systeme nach EU AI Act Risikokategorien.', - descriptionLong: 'KI-System-Registrierung mit vollstaendiger Backend-Persistenz (CRUD). Risikopyramide: Minimal → Begrenzt → Hoch → Verboten. KI-gestuetzte Risikobewertung mit Rule-Based-Fallback: Der Assess-Endpoint analysiert Zweck, Sektor und Beschreibung und leitet Klassifizierung + Pflichten automatisch ab. Fuer Hochrisiko-Systeme werden 8 AI Act Pflichten abgeleitet (Risikomanagement, Daten-Governance, Dokumentation, Transparenz, menschliche Aufsicht, Genauigkeit, Robustheit, Cybersicherheit). Filterung nach Klassifizierung, Status und Sektor. Die Rechtsabteilung (LEGAL) muss die Klassifizierung freigeben.', - legalBasis: 'EU AI Act Art. 6-9 (Risikokategorien)', - inputs: ['useCases', 'companyProfile'], - outputs: ['aiActClassification', 'obligations'], - prerequisiteSteps: ['risks'], - dbTables: ['compliance_ai_systems'], - dbMode: 'read/write', - ragCollections: ['bp_compliance_ce'], - ragPurpose: 'EU AI Act Regulierungstexte', - isOptional: false, - url: '/sdk/ai-act', - }, { id: 'audit-checklist', name: 'Audit Checklist', nameShort: 'Checklist', package: 'analyse', - seq: 1500, + seq: 1300, checkpointId: 'CP-CHK', checkpointType: 'RECOMMENDED', checkpointReviewer: 'NONE', - description: 'Erstellung einer pruefbaren Checkliste fuer interne und externe Audits.', - descriptionLong: 'Aus den Requirements und Controls wird eine strukturierte Audit-Checkliste generiert. Session-Management: Draft → In Progress → Completed → Archived. Interaktiver Sign-Off-Workflow mit digitalem Signatur-Hash (SHA-256). PDF-Download in Deutsch oder Englisch. Session-History: Anzeige vergangener Audit-Sitzungen mit Status-Badges. JSON-Export der Checkliste. Die Checkliste kann fuer interne Self-Assessments oder als Vorbereitung auf externe Audits (ISO 27001, BSI Grundschutz) verwendet werden.', - inputs: ['requirements', 'controls'], + description: 'Pruefbare Checkliste aus Requirements + Controls + Risiken.', + descriptionLong: 'Aus den Requirements und Controls wird eine strukturierte Audit-Checkliste generiert. Session-Management: Draft → In Progress → Completed → Archived. Interaktiver Sign-Off-Workflow mit digitalem Signatur-Hash (SHA-256). PDF-Download in Deutsch oder Englisch. JSON-Export der Checkliste. Kann fuer interne Self-Assessments oder als Vorbereitung auf externe Audits verwendet werden.', + inputs: ['requirements', 'controls', 'risks'], outputs: ['checklist'], - prerequisiteSteps: ['ai-act'], + prerequisiteSteps: ['risks'], dbTables: ['compliance_audit_sessions', 'compliance_audit_signoffs'], dbMode: 'read/write', ragCollections: [], @@ -136,13 +96,13 @@ export const STEPS_ANALYSE: SDKFlowStep[] = [ name: 'Audit Report', nameShort: 'Report', package: 'analyse', - seq: 1600, + seq: 1400, checkpointId: 'CP-AREP', checkpointType: 'REQUIRED', checkpointReviewer: 'NONE', - description: 'Generierung eines vollstaendigen Audit-Reports mit Findings und Empfehlungen.', - descriptionLong: 'Der Audit Report fasst alle Ergebnisse der Analyse-Phase zusammen. Uebersicht aller Audit-Sitzungen mit Status-Badges. Detail-Seite pro Sitzung mit Session-Metadaten (Auditor, Zeitraum, Status), Fortschrittsbalken (konform/nicht konform/ausstehend), interaktiven Checklist-Items mit Sign-Off, Notizen-Bearbeitung pro Pruefpunkt und PDF-Download mit Sprachauswahl (DE/EN). Click-Navigation von der Uebersicht zur Detail-Seite. Dient als Nachweis gegenueber Aufsichtsbehoerden.', - inputs: ['checklist', 'controls', 'evidence'], + description: 'Zusammenfassender Audit-Report mit Findings und Empfehlungen.', + descriptionLong: 'Der Audit Report fasst alle Ergebnisse der Analyse-Phase zusammen. Uebersicht aller Audit-Sitzungen mit Status-Badges. Detail-Seite pro Sitzung mit Fortschrittsbalken, interaktiven Checklist-Items mit Sign-Off, Notizen-Bearbeitung und PDF-Download (DE/EN). Dient als Nachweis gegenueber Aufsichtsbehoerden.', + inputs: ['checklist', 'controls', 'risks'], outputs: ['auditReport'], prerequisiteSteps: ['audit-checklist'], dbTables: ['compliance_audit_sessions'], diff --git a/admin-compliance/app/sdk/sdk-flow/steps-betrieb.ts b/admin-compliance/app/sdk/sdk-flow/steps-betrieb.ts index 41b9872..bc079ff 100644 --- a/admin-compliance/app/sdk/sdk-flow/steps-betrieb.ts +++ b/admin-compliance/app/sdk/sdk-flow/steps-betrieb.ts @@ -4,6 +4,27 @@ import type { SDKFlowStep } from './types' export const STEPS_BETRIEB: SDKFlowStep[] = [ + { + id: 'evidence', + name: 'Evidence', + nameShort: 'Nachweise', + package: 'betrieb', + seq: 3900, + checkpointId: 'CP-EVI', + checkpointType: 'RECOMMENDED', + checkpointReviewer: 'NONE', + description: 'Laufende Sammlung und Verwaltung von Nachweisen fuer die Umsetzung der Controls.', + descriptionLong: 'Fuer jeden Control wird dokumentiert, wie und wann er umgesetzt wurde. Evidence koennen Screenshots, Konfigurationsdateien, Audit-Logs, Schulungszertifikate oder Testprotokolle sein. Gueltigkeits-Tracking (valid_from, valid_until) mit Status: valid, expired, pending, failed. Verknuepfung mit Controls. Nachweise werden laufend im Betrieb gesammelt, nicht einmalig waehrend der Analyse.', + legalBasis: 'Art. 5 Abs. 2 DSGVO (Rechenschaftspflicht)', + inputs: ['controls'], + outputs: ['evidence'], + prerequisiteSteps: ['audit-report'], + dbTables: ['compliance_evidence'], + dbMode: 'write', + ragCollections: [], + isOptional: false, + url: '/sdk/evidence', + }, { id: 'dsr', name: 'DSR Portal', diff --git a/admin-compliance/app/sdk/sdk-flow/steps-vorbereitung.ts b/admin-compliance/app/sdk/sdk-flow/steps-vorbereitung.ts index 5a2defb..411a0f8 100644 --- a/admin-compliance/app/sdk/sdk-flow/steps-vorbereitung.ts +++ b/admin-compliance/app/sdk/sdk-flow/steps-vorbereitung.ts @@ -162,7 +162,29 @@ export const STEPS_VORBEREITUNG: SDKFlowStep[] = [ dbTables: ['compliance_allowed_sources', 'compliance_pii_rules', 'compliance_source_operations', 'compliance_source_policy_audit'], dbMode: 'read/write', ragCollections: [], - isOptional: false, + isOptional: true, url: '/sdk/source-policy', }, + { + id: 'ai-act', + name: 'AI Act Klassifizierung', + nameShort: 'AI Act', + package: 'vorbereitung', + seq: 350, + checkpointId: 'CP-AI', + checkpointType: 'RECOMMENDED', + checkpointReviewer: 'LEGAL', + description: 'Klassifizierung aller KI-Systeme nach EU AI Act Risikokategorien (nur bei KI-Einsatz).', + descriptionLong: 'KI-System-Registrierung mit Risikopyramide: Minimal → Begrenzt → Hoch → Verboten. KI-gestuetzte Risikobewertung. Fuer Hochrisiko-Systeme werden 8 AI Act Pflichten abgeleitet. Nur relevant wenn KI-Systeme im Einsatz sind.', + legalBasis: 'EU AI Act Art. 6-9 (Risikokategorien)', + inputs: ['useCases', 'companyProfile'], + outputs: ['aiActClassification'], + prerequisiteSteps: ['use-case-assessment'], + dbTables: ['compliance_ai_systems'], + dbMode: 'read/write', + ragCollections: ['bp_compliance_ce'], + ragPurpose: 'EU AI Act Regulierungstexte', + isOptional: true, + url: '/sdk/ai-act', + }, ] diff --git a/admin-compliance/lib/sdk/types/sdk-steps.ts b/admin-compliance/lib/sdk/types/sdk-steps.ts index b71adce..8f9b2e2 100644 --- a/admin-compliance/lib/sdk/types/sdk-steps.ts +++ b/admin-compliance/lib/sdk/types/sdk-steps.ts @@ -57,6 +57,19 @@ export const SDK_STEPS: SDKStep[] = [ isOptional: true, visibleWhen: (state) => state.customerType === 'existing', }, + { + id: 'ai-act', + seq: 350, + phase: 1, + package: 'vorbereitung', + order: 4, + name: 'AI Act Klassifizierung', + nameShort: 'AI Act', + description: 'KI-Risikostufe (nur bei KI-Einsatz)', + url: '/sdk/ai-act', + checkpointId: 'CP-AI', + prerequisiteSteps: ['use-case-assessment'], + isOptional: true }, { id: 'screening', seq: 500, @@ -97,7 +110,7 @@ export const SDK_STEPS: SDKStep[] = [ prerequisiteSteps: ['use-case-assessment'], isOptional: true }, - // PAKET 2: ANALYSE (Assessment) + // PAKET 2: ANALYSE (Assessment) — Requirements → Controls → Risks → Checklist → Report { id: 'requirements', seq: 1000, @@ -106,7 +119,7 @@ export const SDK_STEPS: SDKStep[] = [ order: 1, name: 'Requirements', nameShort: 'Anforderungen', - description: 'Pr\u00fcfaspekte aus Regulierungen ableiten', + description: 'Pruefaspekte aus Regulierungen ableiten', url: '/sdk/requirements', checkpointId: 'CP-REQ', prerequisiteSteps: ['compliance-scope'], @@ -119,72 +132,46 @@ export const SDK_STEPS: SDKStep[] = [ order: 2, name: 'Controls', nameShort: 'Controls', - description: 'Erforderliche Ma\u00dfnahmen ermitteln', + description: 'Technische & organisatorische Massnahmen', url: '/sdk/controls', checkpointId: 'CP-CTRL', prerequisiteSteps: ['requirements'], isOptional: false }, { - id: 'evidence', + id: 'risks', seq: 1200, phase: 1, package: 'analyse', order: 3, - name: 'Evidence', - nameShort: 'Nachweise', - description: 'Nachweise dokumentieren', - url: '/sdk/evidence', - checkpointId: 'CP-EVI', + name: 'Risk Matrix', + nameShort: 'Risiken', + description: 'Risikobewertung — wo sind Luecken?', + url: '/sdk/risks', + checkpointId: 'CP-RISK', prerequisiteSteps: ['controls'], isOptional: false }, { - id: 'risks', + id: 'audit-checklist', seq: 1300, phase: 1, package: 'analyse', order: 4, - name: 'Risk Matrix', - nameShort: 'Risiken', - description: 'Risikobewertung & Residual Risk', - url: '/sdk/risks', - checkpointId: 'CP-RISK', - prerequisiteSteps: ['evidence'], + name: 'Audit Checklist', + nameShort: 'Checklist', + description: 'Pruefbare Checkliste generieren', + url: '/sdk/audit-checklist', + checkpointId: 'CP-CHK', + prerequisiteSteps: ['risks'], isOptional: false }, { - id: 'ai-act', + id: 'audit-report', seq: 1400, phase: 1, package: 'analyse', order: 5, - name: 'AI Act Klassifizierung', - nameShort: 'AI Act', - description: 'Risikostufe nach EU AI Act', - url: '/sdk/ai-act', - checkpointId: 'CP-AI', - prerequisiteSteps: ['risks'], - isOptional: false }, - { - id: 'audit-checklist', - seq: 1500, - phase: 1, - package: 'analyse', - order: 6, - name: 'Audit Checklist', - nameShort: 'Checklist', - description: 'Pr\u00fcfliste generieren', - url: '/sdk/audit-checklist', - checkpointId: 'CP-CHK', - prerequisiteSteps: ['ai-act'], - isOptional: false }, - { - id: 'audit-report', - seq: 1600, - phase: 1, - package: 'analyse', - order: 7, name: 'Audit Report', nameShort: 'Report', - description: 'Audit-Sitzungen & PDF-Report', + description: 'Zusammenfassender Audit-Report (PDF)', url: '/sdk/audit-report', checkpointId: 'CP-AREP', prerequisiteSteps: ['audit-checklist'], @@ -334,6 +321,19 @@ export const SDK_STEPS: SDKStep[] = [ isOptional: false }, // PAKET 5: BETRIEB (Operations) + { + id: 'evidence', + seq: 3900, + phase: 2, + package: 'betrieb', + order: 0, + name: 'Evidence', + nameShort: 'Nachweise', + description: 'Nachweise laufend dokumentieren', + url: '/sdk/evidence', + checkpointId: 'CP-EVI', + prerequisiteSteps: ['audit-report'], + isOptional: false }, { id: 'dsr', seq: 4000,