Files
breakpilot-compliance/admin-compliance/app/(admin)/development/sdk-flow/flow-data.ts
Benjamin Admin 5c7c0055ff docs: MkDocs, SDK-Flow und Tests fuer 6 Dokumentations-Module aktualisieren
MkDocs:
- Neue Dokumentationsseite: docs-src/services/sdk-modules/dokumentations-module.md
  Beschreibt alle 6 Module (VVT, Source Policy, Document Generator,
  Audit Checklist, Audit Report, Training Engine) mit API-Endpoints,
  DB-Tabellen, Datenmodell und Besonderheiten
- mkdocs.yml: Neuen Eintrag "Dokumentations-Module (Paket 3+)" ergaenzt

SDK Flow (flow-data.ts):
- VVT: dbTables korrigiert ([] → compliance_vvt_organization/activities/audit_log),
  dbMode: none → read/write, descriptionLong auf Backend-Persistenz aktualisiert
- Training: dbTables ergaenzt (training_modules/assignments/quiz_*/matrix_entries/
  audit_log), dbMode: none → read/write, Beschreibung auf 28 Module aktualisiert
- Source Policy: Tabellennamen korrigiert (compliance_pii_field_rules →
  compliance_pii_rules, compliance_source_policies entfernt,
  compliance_source_operations ergaenzt)
- Document Generator: Beschreibung um PDF-Export (window.print) und
  Fallback-Banner ergaenzt

Tests:
- Neue Datei: tests/test_source_policy_routes.py (35 Tests, alle gruen)
  - Schema-Tests: SourceCreate, SourceUpdate, PIIRuleCreate, PIIRuleUpdate
  - DB-Model-Tests: AllowedSourceDB, PIIRuleDB
  - Filter-Logik: source_type-Filter und category-Filter Unit-Tests
  - Audit-Log-Helper: _log_audit Verhalten verifiziert

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-02 18:48:55 +01:00

838 lines
42 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* SDK Flow Visualization - Step-Definitionen mit Datenfluss
*
* Beschreibt alle SDK-Steps mit:
* - Inputs/Outputs (SDKState-Properties)
* - DB-Tabellen und Modus
* - RAG-Collections und Verwendungszweck
* - Checkpoint-Informationen
* - Detaillierte Beschreibungen
*/
export interface SDKFlowStep {
id: string
name: string
nameShort: string
package: 'vorbereitung' | 'analyse' | 'dokumentation' | 'rechtliche-texte' | 'betrieb'
seq: number
checkpointId?: string
checkpointType?: 'REQUIRED' | 'RECOMMENDED'
checkpointReviewer?: 'NONE' | 'DSB' | 'LEGAL'
// Beschreibung
description: string
descriptionLong: string
legalBasis?: string
// Datenfluss
inputs: string[]
outputs: string[]
prerequisiteSteps: string[]
// Infrastruktur
dbTables: string[]
dbMode: 'read' | 'write' | 'read/write' | 'none'
ragCollections: string[]
ragPurpose?: string
// Generierung
generates?: string[]
isOptional?: boolean
url: string
}
// =============================================================================
// PACKAGE METADATA
// =============================================================================
export const FLOW_PACKAGES = {
vorbereitung: {
name: 'Vorbereitung',
nameShort: 'Vorb.',
icon: '🎯',
color: { bg: '#dbeafe', border: '#3b82f6', text: '#1e40af' },
},
analyse: {
name: 'Analyse',
nameShort: 'Analyse',
icon: '🔍',
color: { bg: '#fef3c7', border: '#f59e0b', text: '#92400e' },
},
dokumentation: {
name: 'Dokumentation',
nameShort: 'Doku',
icon: '📋',
color: { bg: '#ede9fe', border: '#7c3aed', text: '#5b21b6' },
},
'rechtliche-texte': {
name: 'Rechtliche Texte',
nameShort: 'Legal',
icon: '📝',
color: { bg: '#d1fae5', border: '#10b981', text: '#065f46' },
},
betrieb: {
name: 'Betrieb',
nameShort: 'Betrieb',
icon: '⚙️',
color: { bg: '#f1f5f9', border: '#64748b', text: '#334155' },
},
} as const
// =============================================================================
// ALL SDK FLOW STEPS
// =============================================================================
export const SDK_FLOW_STEPS: SDKFlowStep[] = [
// =========================================================================
// PAKET 1: VORBEREITUNG (seq 100-700)
// =========================================================================
{
id: 'company-profile',
name: 'Unternehmensprofil',
nameShort: 'Profil',
package: 'vorbereitung',
seq: 100,
checkpointId: 'CP-PROF',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Erfassung aller Stammdaten des Unternehmens als Grundlage fuer die Compliance-Analyse.',
descriptionLong: 'Hier werden alle relevanten Unternehmensdaten erfasst: Firmenname, Rechtsform, Branche, Mitarbeiterzahl, Standorte, Datenschutzbeauftragter und Verantwortlicher. Diese Daten bilden die Basis fuer alle nachfolgenden Compliance-Schritte, da sie bestimmen, welche Regulierungen anwendbar sind (z.B. DSGVO, NIS2, AI Act). Ohne ein vollstaendiges Unternehmensprofil koennen keine weiteren Schritte durchgefuehrt werden.',
inputs: [],
outputs: ['companyProfile', 'complianceScope'],
prerequisiteSteps: [],
dbTables: ['sdk_states', 'compliance_company_profiles', 'compliance_company_profile_audit'],
dbMode: 'read/write',
ragCollections: [],
isOptional: false,
url: '/sdk/company-profile',
},
{
id: 'compliance-scope',
name: 'Compliance Scope',
nameShort: 'Scope',
package: 'vorbereitung',
seq: 200,
checkpointId: 'CP-SCOPE',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Bestimmung der Compliance-Tiefe und des Umfangs basierend auf Unternehmensprofil.',
descriptionLong: 'Basierend auf dem Unternehmensprofil wird automatisch ermittelt, wie tiefgehend die Compliance-Analyse sein muss. Kleine Unternehmen mit wenig Datenverarbeitung erhalten eine "BASIS"-Tiefe, waehrend grosse Unternehmen mit sensiblen Daten oder KI-Systemen eine "ERWEITERT" oder "VOLLSTAENDIG"-Tiefe erhalten. Der Compliance-Scope bestimmt, welche Module aktiviert werden und wie detailliert die Dokumentation sein muss.',
inputs: ['companyProfile'],
outputs: ['complianceDepthLevel'],
prerequisiteSteps: ['company-profile'],
dbTables: ['sdk_states'],
dbMode: 'read/write',
ragCollections: [],
isOptional: false,
url: '/sdk/compliance-scope',
},
{
id: 'use-case-assessment',
name: 'Anwendungsfall-Erfassung',
nameShort: 'Anwendung',
package: 'vorbereitung',
seq: 300,
checkpointId: 'CP-UC',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Systematische Erfassung aller Datenverarbeitungs- und KI-Anwendungsfaelle.',
descriptionLong: 'In diesem Schritt werden alle konkreten Anwendungsfaelle erfasst, in denen das Unternehmen personenbezogene Daten verarbeitet oder KI-Systeme einsetzt. Fuer jeden Use Case wird ermittelt: Welche Daten werden verarbeitet? Welche Personen sind betroffen (Kunden, Mitarbeiter, Schueler)? Welche Technologien kommen zum Einsatz? Die RAG-Collection bp_compliance_ce wird verwendet, um relevante CE-Regulierungen automatisch den Use Cases zuzuordnen (UCCA - Use Case Compliance Assessment).',
legalBasis: 'Art. 30 DSGVO (Verzeichnis von Verarbeitungstaetigkeiten)',
inputs: ['companyProfile'],
outputs: ['useCases'],
prerequisiteSteps: ['company-profile'],
dbTables: ['ucca_assessments', 'ucca_findings', 'ucca_controls'],
dbMode: 'read/write',
ragCollections: ['bp_compliance_ce'],
ragPurpose: 'CE-Regulierungen fuer Use-Case Matching',
isOptional: false,
url: '/sdk/use-cases',
},
{
id: 'import',
name: 'Dokument-Import',
nameShort: 'Import',
package: 'vorbereitung',
seq: 400,
description: 'Import bestehender Compliance-Dokumente (Datenschutzerklaerungen, TOMs, VVTs).',
descriptionLong: 'Optionaler Schritt zum Import bereits vorhandener Compliance-Dokumente. Der Document Crawler analysiert hochgeladene PDFs, Word-Dokumente oder bestehende Datenschutzerklaerungen und extrahiert automatisch relevante Informationen wie bestehende TOMs, Verarbeitungsverzeichnisse oder Risikoanalysen. Diese importierten Daten werden als Grundlage fuer die nachfolgenden Schritte verwendet, damit nicht alles von Null aufgebaut werden muss.',
inputs: ['useCases'],
outputs: ['importedDocuments'],
prerequisiteSteps: ['use-case-assessment'],
dbTables: ['compliance_imported_documents', 'compliance_gap_analyses'],
dbMode: 'read/write',
ragCollections: [],
isOptional: true,
url: '/sdk/import',
},
{
id: 'screening',
name: 'System Screening',
nameShort: 'Screening',
package: 'vorbereitung',
seq: 500,
checkpointId: 'CP-SCAN',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Technische Analyse der eingesetzten Software, Dienste und deren Abhaengigkeiten.',
descriptionLong: 'Das System Screening analysiert die technische Infrastruktur des Unternehmens. Es werden alle eingesetzten Software-Systeme, Cloud-Dienste, APIs und deren Abhaengigkeiten erfasst. Dabei wird auch eine SBOM (Software Bill of Materials) erstellt, die alle Drittanbieter-Komponenten und deren Lizenzen dokumentiert. Das Screening identifiziert potenzielle Compliance-Risiken wie Datentransfers in Drittlaender, unsichere Abhaengigkeiten oder fehlende Verschluesselung.',
inputs: ['useCases'],
outputs: ['screening', 'sbom'],
prerequisiteSteps: ['use-case-assessment'],
dbTables: ['compliance_screenings', 'compliance_security_issues'],
dbMode: 'read/write',
ragCollections: [],
isOptional: false,
url: '/sdk/screening',
},
{
id: 'modules',
name: 'Compliance Modules',
nameShort: 'Module',
package: 'vorbereitung',
seq: 600,
checkpointId: 'CP-MOD',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Aktivierung der relevanten Compliance-Module basierend auf Screening-Ergebnissen.',
descriptionLong: 'Basierend auf dem Unternehmensprofil und den Screening-Ergebnissen werden die relevanten Compliance-Module aktiviert. Module umfassen z.B. DSGVO-Grundschutz, AI Act, NIS2, ePrivacy, Whistleblower-Richtlinie usw. Die RAG-Collection bp_compliance_gesetze wird verwendet, um aktuelle Gesetzestexte den Modulen zuzuordnen. Nur aktivierte Module erzeugen in den nachfolgenden Schritten Anforderungen, Controls und Dokumentation.',
inputs: ['companyProfile', 'screening'],
outputs: ['modules'],
prerequisiteSteps: ['screening'],
dbTables: ['compliance_service_modules', 'sdk_states'],
dbMode: 'read/write',
ragCollections: ['bp_compliance_gesetze'],
ragPurpose: 'Regulierungen den Modulen zuordnen',
isOptional: false,
url: '/sdk/modules',
},
{
id: 'source-policy',
name: 'Source Policy',
nameShort: 'Quellen',
package: 'vorbereitung',
seq: 700,
checkpointId: 'CP-SPOL',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Festlegung der Rechtsquellen und Normen fuer die Compliance-Analyse.',
descriptionLong: 'Die Source Policy definiert, welche Rechtsquellen und Normen fuer die Compliance-Analyse herangezogen werden. Dies umfasst EU-Verordnungen (DSGVO, AI Act, NIS2), nationale Gesetze (BDSG, TTDSG), Branchenstandards (ISO 27001, BSI Grundschutz) und interne Richtlinien. Die Source Policy stellt sicher, dass alle nachfolgenden Schritte konsistent auf denselben Rechtsgrundlagen basieren.',
inputs: ['modules'],
outputs: ['sourcePolicy'],
prerequisiteSteps: ['modules'],
dbTables: ['compliance_allowed_sources', 'compliance_pii_rules', 'compliance_source_operations', 'compliance_source_policy_audit'],
dbMode: 'read/write',
ragCollections: [],
isOptional: false,
url: '/sdk/source-policy',
},
// =========================================================================
// PAKET 2: ANALYSE (seq 1000-1600)
// =========================================================================
{
id: 'requirements',
name: 'Requirements',
nameShort: 'Anforderungen',
package: 'analyse',
seq: 1000,
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).',
legalBasis: 'Art. 5, 24, 25 DSGVO (Rechenschaftspflicht)',
inputs: ['modules', 'sourcePolicy'],
outputs: ['requirements'],
prerequisiteSteps: ['source-policy'],
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)',
isOptional: false,
url: '/sdk/requirements',
},
{
id: 'controls',
name: 'Controls',
nameShort: 'Controls',
package: 'analyse',
seq: 1100,
checkpointId: 'CP-CTRL',
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.',
legalBasis: 'Art. 32 DSGVO (Sicherheit der Verarbeitung)',
inputs: ['requirements'],
outputs: ['controls'],
prerequisiteSteps: ['requirements'],
dbTables: ['compliance_controls'],
dbMode: 'read/write',
ragCollections: [],
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,
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.',
legalBasis: 'Art. 35 DSGVO (Datenschutz-Folgenabschaetzung)',
inputs: ['controls', 'modules'],
outputs: ['risks'],
prerequisiteSteps: ['evidence'],
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,
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'],
outputs: ['checklist'],
prerequisiteSteps: ['ai-act'],
dbTables: ['compliance_audit_sessions', 'compliance_audit_signoffs'],
dbMode: 'read/write',
ragCollections: [],
isOptional: false,
url: '/sdk/audit-checklist',
},
{
id: 'audit-report',
name: 'Audit Report',
nameShort: 'Report',
package: 'analyse',
seq: 1600,
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'],
outputs: ['auditReport'],
prerequisiteSteps: ['audit-checklist'],
dbTables: ['compliance_audit_sessions'],
dbMode: 'write',
ragCollections: [],
generates: ['Audit-Report (PDF)'],
isOptional: false,
url: '/sdk/audit-report',
},
// =========================================================================
// PAKET 3: DOKUMENTATION (seq 2000-2400)
// =========================================================================
{
id: 'obligations',
name: 'Pflichtenuebersicht',
nameShort: 'Pflichten',
package: 'dokumentation',
seq: 2000,
checkpointId: 'CP-OBL',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Zusammenfassung aller gesetzlichen Pflichten aus DSGVO, AI Act, NIS2.',
descriptionLong: 'Die Pflichtenuebersicht konsolidiert alle gesetzlichen Pflichten, die sich aus den Requirements, der AI-Act-Klassifizierung und den aktivierten Modulen ergeben. Fuer jede Pflicht wird angegeben: Welches Gesetz (DSGVO, AI Act, NIS2), welcher Artikel, welche Frist, wer verantwortlich ist und welche Massnahmen erforderlich sind. Die RAG-Collection bp_compliance_recht liefert aktuelle Pflichtentexte und Auslegungshinweise.',
legalBasis: 'Art. 5 Abs. 2 DSGVO, Art. 9 AI Act',
inputs: ['requirements', 'aiActClassification', 'modules'],
outputs: ['obligationsOverview'],
prerequisiteSteps: ['audit-report'],
dbTables: [],
dbMode: 'none',
ragCollections: ['bp_compliance_recht'],
ragPurpose: 'NIS2, DSGVO, AI Act Pflichtentexte',
isOptional: false,
url: '/sdk/obligations',
},
{
id: 'dsfa',
name: 'DSFA',
nameShort: 'DSFA',
package: 'dokumentation',
seq: 2100,
checkpointId: 'CP-DSFA',
checkpointType: 'REQUIRED',
checkpointReviewer: 'DSB',
description: 'Datenschutz-Folgenabschaetzung fuer Hochrisiko-Verarbeitungen. Draft-Modus (v1 + v2) nutzt RAG fuer rechtliche Praezision.',
descriptionLong: 'Die Datenschutz-Folgenabschaetzung (DSFA) ist nach Art. 35 DSGVO fuer Verarbeitungen mit hohem Risiko vorgeschrieben. Sie bewertet systematisch die Notwendigkeit, Verhaeltnismaessigkeit und Risiken der Datenverarbeitung. Die DSFA enthaelt: Beschreibung der Verarbeitung, Bewertung der Notwendigkeit, Risikobewertung fuer die Betroffenen, geplante Abhilfemassnahmen. Der DSB muss die DSFA freigeben. Bei verbleibendem Hochrisiko muss die Aufsichtsbehoerde konsultiert werden. Sowohl der v1- als auch der v2-Draft-Modus werden mit rechtlichem Kontext aus dem RAG-Corpus (bp_dsfa_corpus) angereichert. Die shared queryRAG-Utility (rag-query.ts) wird von Chat- und Draft-Pipelines gemeinsam genutzt.',
legalBasis: 'Art. 35, 36 DSGVO (DSFA und vorherige Konsultation)',
inputs: ['risks', 'aiActClassification', 'modules'],
outputs: ['dsfa'],
prerequisiteSteps: ['obligations'],
dbTables: [],
dbMode: 'none',
ragCollections: ['bp_dsfa_corpus'],
ragPurpose: 'DSFA-Vorlagen, Bewertungskriterien und Art. 35 DSGVO Rechtstexte. v1-Pipeline haengt RAG-Kontext an System-Prompt an, v2-Pipeline injiziert ihn pro Block als RECHTSKONTEXT-Referenz.',
generates: ['DSFA-Report'],
isOptional: true,
url: '/sdk/dsfa',
},
{
id: 'tom',
name: 'TOMs',
nameShort: 'TOMs',
package: 'dokumentation',
seq: 2200,
checkpointId: 'CP-TOM',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Dokumentation aller Technisch-Organisatorischen Massnahmen nach Art. 32 DSGVO.',
descriptionLong: 'Die Technisch-Organisatorischen Massnahmen (TOMs) dokumentieren alle Sicherheitsmassnahmen, die zum Schutz personenbezogener Daten implementiert sind. TOMs umfassen: Zutrittskontrolle, Zugangskontrolle, Zugriffskontrolle, Weitergabekontrolle, Eingabekontrolle, Auftragskontrolle, Verfuegbarkeitskontrolle und Trennungsgebot. Jede Massnahme wird mit Implementierungsstatus, Verantwortlichem und Pruefintervall dokumentiert. Die bestehenden Controls werden als Basis verwendet.',
legalBasis: 'Art. 32 DSGVO (Sicherheit der Verarbeitung)',
inputs: ['dsfa', 'controls', 'risks'],
outputs: ['toms'],
prerequisiteSteps: ['obligations'],
dbTables: ['compliance_controls'],
dbMode: 'read',
ragCollections: ['bp_compliance_datenschutz'],
ragPurpose: 'TOM-Massnahmenkataloge',
isOptional: false,
url: '/sdk/tom',
},
{
id: 'loeschfristen',
name: 'Loeschfristen',
nameShort: 'Loeschfristen',
package: 'dokumentation',
seq: 2300,
checkpointId: 'CP-RET',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Festlegung von Aufbewahrungs- und Loeschfristen fuer alle Datenkategorien.',
descriptionLong: 'Fuer jede Datenkategorie werden gesetzliche Aufbewahrungsfristen und Loeschzeitpunkte definiert. Dabei werden gesetzliche Mindestaufbewahrungsfristen (z.B. 10 Jahre Steuerrecht, 6 Jahre Handelsrecht, 3 Jahre Verjaehrung) mit dem Grundsatz der Datenminimierung abgewogen. Das Loeschkonzept definiert: Welche Daten, wann geloescht, wie geloescht (Anonymisierung vs. physische Loeschung) und wer verantwortlich ist.',
legalBasis: 'Art. 5 Abs. 1e DSGVO (Speicherbegrenzung), Art. 17 DSGVO (Recht auf Loeschung)',
inputs: ['vvt', 'dataMapping'],
outputs: ['retentionPolicies'],
prerequisiteSteps: ['tom'],
dbTables: [],
dbMode: 'none',
ragCollections: ['bp_compliance_recht'],
ragPurpose: 'Aufbewahrungsfristen nach Gesetz',
isOptional: false,
url: '/sdk/loeschfristen',
},
{
id: 'vvt',
name: 'Verarbeitungsverzeichnis',
nameShort: 'VVT',
package: 'dokumentation',
seq: 2400,
checkpointId: 'CP-VVT',
checkpointType: 'REQUIRED',
checkpointReviewer: 'DSB',
description: 'Erstellung des Verzeichnisses aller Verarbeitungstaetigkeiten nach Art. 30 DSGVO — vollstaendig backend-persistent.',
descriptionLong: 'Das VVT (Verzeichnis von Verarbeitungstaetigkeiten) ist eine gesetzliche Pflichtdokumentation nach Art. 30 DSGVO. Fuer jede Verarbeitungstaetigkeit wird dokumentiert: Zweck, Rechtsgrundlage, Kategorien betroffener Personen, Datenkategorien, Empfaenger, Drittlandtransfers, Loeschfristen und TOMs. Jede Aktivitaet wird mit einem eindeutigen VVT-ID versehen und in der Datenbank gespeichert (compliance_vvt_activities). Organisationsweite Metadaten (DSB-Kontakt, Branche, Standorte) werden separat verwaltet (compliance_vvt_organization). Alle Aenderungen werden in einem Audit-Log protokolliert (compliance_vvt_audit_log). Das VVT wird via FastAPI-Backend (backend-compliance:8002) persistent gespeichert. Der DSB muss das VVT freigeben.',
legalBasis: 'Art. 30 DSGVO (Verzeichnis von Verarbeitungstaetigkeiten)',
inputs: ['modules', 'toms', 'dataMapping'],
outputs: ['vvt'],
prerequisiteSteps: ['loeschfristen'],
dbTables: ['compliance_vvt_organization', 'compliance_vvt_activities', 'compliance_vvt_audit_log'],
dbMode: 'read/write',
ragCollections: ['bp_compliance_gesetze'],
ragPurpose: 'Art. 30 DSGVO Vorlage',
isOptional: false,
url: '/sdk/vvt',
},
// =========================================================================
// PAKET 4: RECHTLICHE TEXTE (seq 3000-3400)
// =========================================================================
{
id: 'einwilligungen',
name: 'Einwilligungen',
nameShort: 'Einwilligungen',
package: 'rechtliche-texte',
seq: 3000,
checkpointId: 'CP-CONS',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Definition aller erforderlichen Einwilligungserklaerungen fuer Datenverarbeitungen.',
descriptionLong: 'Basierend auf dem VVT und den aktivierten Modulen werden alle Verarbeitungen identifiziert, die eine Einwilligung erfordern (Art. 6 Abs. 1a DSGVO). Fuer jede Einwilligung wird ein rechtskonformer Text generiert, der: den Zweck klar benennt, freiwillig erteilt werden kann, informiert und spezifisch ist. Einwilligungen werden mit Widerrufsmechanismus, Versionierung und Nachweispflicht versehen.',
legalBasis: 'Art. 6 Abs. 1a, Art. 7 DSGVO (Einwilligung)',
inputs: ['vvt', 'modules'],
outputs: ['consents'],
prerequisiteSteps: ['vvt'],
dbTables: [],
dbMode: 'none',
ragCollections: ['bp_compliance_datenschutz'],
ragPurpose: 'Einwilligungsvorlagen DSGVO',
isOptional: false,
url: '/sdk/einwilligungen',
},
{
id: 'consent',
name: 'Rechtliche Vorlagen',
nameShort: 'Vorlagen',
package: 'rechtliche-texte',
seq: 3100,
checkpointId: 'CP-DOC',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Generierung von Datenschutzerklaerung, AGB und Nutzungsbedingungen.',
descriptionLong: 'In diesem Schritt werden die zentralen rechtlichen Dokumente generiert: Datenschutzerklaerung (nach Art. 13/14 DSGVO), AGB, Nutzungsbedingungen und Informationspflichten. Die Dokumente werden aus dem Unternehmensprofil, VVT und den Einwilligungen automatisch zusammengestellt. Die RAG-Collection bp_legal_templates liefert branchenspezifische Vorlagen, die an die spezifischen Verarbeitungen des Unternehmens angepasst werden.',
legalBasis: 'Art. 13, 14 DSGVO (Informationspflichten)',
inputs: ['companyProfile', 'vvt', 'consents'],
outputs: ['documents'],
prerequisiteSteps: ['einwilligungen'],
dbTables: [],
dbMode: 'none',
ragCollections: ['bp_legal_templates'],
ragPurpose: 'AGB, DSE, Nutzungsbedingungen Templates',
generates: ['Datenschutzerklaerung', 'AGB', 'Nutzungsbedingungen'],
isOptional: false,
url: '/sdk/consent',
},
{
id: 'cookie-banner',
name: 'Cookie Banner',
nameShort: 'Cookies',
package: 'rechtliche-texte',
seq: 3200,
checkpointId: 'CP-COOK',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Konfiguration eines rechtskonformen Cookie-Banners mit Consent-Management.',
descriptionLong: 'Der Cookie-Banner wird basierend auf den definierten Einwilligungen und dem Unternehmensprofil konfiguriert. Er unterscheidet zwischen technisch notwendigen Cookies (kein Consent noetig), funktionalen Cookies, Analyse-Cookies und Marketing-Cookies. Der Banner implementiert "Privacy by Default" — nur notwendige Cookies sind vorausgewaehlt. Die Konfiguration umfasst: Kategorien, Zweckbeschreibungen, Anbieter, Laufzeiten und Opt-in/Opt-out-Mechanismen.',
legalBasis: 'Art. 5 Abs. 3 ePrivacy-RL, TTDSG § 25',
inputs: ['consents', 'companyProfile'],
outputs: ['cookieBanner'],
prerequisiteSteps: ['consent'],
dbTables: [],
dbMode: 'none',
ragCollections: ['bp_compliance_datenschutz'],
ragPurpose: 'Cookie-Consent Richtlinien',
isOptional: false,
url: '/sdk/cookie-banner',
},
{
id: 'document-generator',
name: 'Dokumentengenerator',
nameShort: 'Generator',
package: 'rechtliche-texte',
seq: 3300,
checkpointId: 'CP-DOCGEN',
checkpointType: 'RECOMMENDED',
checkpointReviewer: 'NONE',
description: 'Generierung weiterer rechtlicher Dokumente (Impressum, AVV, Auftragsverarbeitung) mit PDF-Export.',
descriptionLong: 'Der Dokumentengenerator erstellt zusaetzliche rechtliche Dokumente, die ueber die Pflichtdokumente hinausgehen: Impressum (nach TMG/DDG), Auftragsverarbeitungsvertraege (AVV nach Art. 28 DSGVO), Vertraulichkeitsvereinbarungen, Betriebsvereinbarungen zum Datenschutz und Datenschutz-Folgenabschaetzungs-Berichte. Die Templates werden aus bp_legal_templates geladen und mit den unternehmensspezifischen Daten befuellt. PDF-Export ist direkt im Browser via window.print() moeglich. Steht der Template-Service (breakpilot-core) nicht bereit, erscheint ein Fallback-Banner mit Hinweis.',
legalBasis: 'Art. 28 DSGVO (Auftragsverarbeitung), DDG § 5 (Impressum)',
inputs: ['companyProfile', 'toms', 'vvt'],
outputs: ['generatedDocuments'],
prerequisiteSteps: ['cookie-banner'],
dbTables: [],
dbMode: 'none',
ragCollections: ['bp_legal_templates'],
ragPurpose: 'Dokumenten-Templates',
generates: ['Impressum', 'Auftragsverarbeitungsvertrag'],
isOptional: true,
url: '/sdk/document-generator',
},
{
id: 'workflow',
name: 'Document Workflow',
nameShort: 'Workflow',
package: 'rechtliche-texte',
seq: 3400,
checkpointId: 'CP-WRKF',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Freigabe-Workflow fuer alle generierten rechtlichen Dokumente.',
descriptionLong: 'Der Document Workflow steuert den Freigabeprozess fuer alle generierten Dokumente. Jedes Dokument durchlaeuft definierte Phasen: Entwurf, Review, Freigabe, Veroeffentlichung. Je nach Dokumenttyp werden unterschiedliche Reviewer zugewiesen (DSB, Rechtsabteilung, Geschaeftsfuehrung). Der Workflow protokolliert alle Aenderungen, Kommentare und Freigaben fuer die Audit-Spur.',
inputs: ['documents', 'generatedDocuments'],
outputs: ['approvedDocuments'],
prerequisiteSteps: ['cookie-banner'],
dbTables: [],
dbMode: 'none',
ragCollections: [],
isOptional: false,
url: '/sdk/workflow',
},
// =========================================================================
// PAKET 5: BETRIEB (seq 4000+)
// =========================================================================
{
id: 'dsr',
name: 'DSR Portal',
nameShort: 'DSR',
package: 'betrieb',
seq: 4000,
checkpointId: 'CP-DSR',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Einrichtung des Portals fuer Betroffenenrechte (Auskunft, Loeschung, Widerspruch).',
descriptionLong: 'Das DSR-Portal (Data Subject Rights) ermoeglicht es betroffenen Personen, ihre Rechte nach Art. 15-22 DSGVO auszuueben: Auskunftsrecht, Berichtigungsrecht, Loeschungsrecht ("Recht auf Vergessenwerden"), Einschraenkung der Verarbeitung, Datenportabilitaet und Widerspruchsrecht. Das Portal generiert automatisch Formulare, verwaltet Fristen (30 Tage) und dokumentiert die Bearbeitung jeder Anfrage fuer die Nachweispflicht.',
legalBasis: 'Art. 15-22 DSGVO (Betroffenenrechte)',
inputs: ['vvt', 'consents'],
outputs: ['dsrConfig'],
prerequisiteSteps: ['workflow'],
dbTables: [],
dbMode: 'none',
ragCollections: ['bp_compliance_recht'],
ragPurpose: 'Art. 15-21 DSGVO Betroffenenrechte',
isOptional: false,
url: '/sdk/dsr',
},
{
id: 'escalations',
name: 'Escalations',
nameShort: 'Eskalationen',
package: 'betrieb',
seq: 4100,
checkpointId: 'CP-ESC',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Definition von Eskalationspfaden bei Compliance-Verstoessen und Datenpannen.',
descriptionLong: 'Das Eskalationsmanagement definiert klare Eskalationspfade fuer verschiedene Szenarien: Datenschutzverletzungen (Art. 33/34 DSGVO), Compliance-Verstoesse, Betroffenen-Beschwerden und Aufsichtsbehoerden-Anfragen. Fuer jedes Szenario werden Verantwortliche, Fristen (72h bei Datenpannen), Kommunikationswege und Massnahmen festgelegt. Die Eskalationspfade basieren auf der Risikomatrix und den definierten Controls.',
legalBasis: 'Art. 33, 34 DSGVO (Meldepflichten bei Datenpannen)',
inputs: ['risks', 'controls'],
outputs: ['escalationWorkflows'],
prerequisiteSteps: ['dsr'],
dbTables: [],
dbMode: 'none',
ragCollections: [],
isOptional: false,
url: '/sdk/escalations',
},
{
id: 'vendor-compliance',
name: 'Vendor Compliance',
nameShort: 'Vendor',
package: 'betrieb',
seq: 4200,
checkpointId: 'CP-VEND',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Pruefung und Verwaltung aller Auftragsverarbeiter und Drittanbieter.',
descriptionLong: 'Vendor Compliance verwaltet alle externen Dienstleister, die im Auftrag personenbezogene Daten verarbeiten (Auftragsverarbeiter nach Art. 28 DSGVO). Fuer jeden Vendor wird geprueft: Gibt es einen AVV? Wo werden Daten gespeichert (EU/Drittland)? Welche TOMs hat der Vendor? Gibt es Subunternehmer? Die Pruefung umfasst auch regelmässige Re-Assessments und die Verwaltung von Standardvertragsklauseln (SCCs) fuer Drittlandtransfers.',
legalBasis: 'Art. 28 DSGVO (Auftragsverarbeiter), Art. 44-49 (Drittlandtransfer)',
inputs: ['modules', 'vvt'],
outputs: ['vendorAssessments'],
prerequisiteSteps: ['escalations'],
dbTables: [],
dbMode: 'none',
ragCollections: ['bp_compliance_recht'],
ragPurpose: 'AVV-Vorlagen und Pruefkataloge',
isOptional: false,
url: '/sdk/vendor-compliance',
},
{
id: 'consent-management',
name: 'Consent Verwaltung',
nameShort: 'Consent Mgmt',
package: 'betrieb',
seq: 4300,
checkpointId: 'CP-CMGMT',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Laufende Verwaltung aller erteilten und widerrufenen Einwilligungen.',
descriptionLong: 'Das Consent Management System verwaltet im laufenden Betrieb alle erteilten Einwilligungen: Wer hat wann welche Einwilligung erteilt? Wurde sie widerrufen? Welche Version der Einwilligungserklaerung wurde akzeptiert? Das System stellt sicher, dass Einwilligungen nachweisbar sind (Art. 7 Abs. 1 DSGVO), Widerrufe sofort wirksam werden und bei geaenderten Zwecken neue Einwilligungen eingeholt werden.',
legalBasis: 'Art. 7 DSGVO (Bedingungen fuer die Einwilligung)',
inputs: ['consents', 'documents'],
outputs: ['consentManagement'],
prerequisiteSteps: ['vendor-compliance'],
dbTables: [],
dbMode: 'none',
ragCollections: [],
isOptional: false,
url: '/sdk/consent-management',
},
{
id: 'notfallplan',
name: 'Notfallplan & Breach Response',
nameShort: 'Notfallplan',
package: 'betrieb',
seq: 4400,
checkpointId: 'CP-NOTF',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Erstellung eines Notfallplans fuer Datenpannen und Sicherheitsvorfaelle.',
descriptionLong: 'Der Notfallplan definiert das Vorgehen bei Datenschutzverletzungen (Data Breaches). Er enthaelt: Sofortmassnahmen zur Schadensbegrenzung, Meldeprozess an die Aufsichtsbehoerde (innerhalb 72h nach Art. 33 DSGVO), Benachrichtigung betroffener Personen (Art. 34 DSGVO), Dokumentation des Vorfalls und Massnahmen zur Verhinderung kuenftiger Vorfaelle. Der Plan wird als PDF exportiert und allen relevanten Mitarbeitern zugaenglich gemacht.',
legalBasis: 'Art. 33, 34 DSGVO (Meldung von Datenpannen)',
inputs: ['risks', 'controls'],
outputs: ['incidentResponsePlan'],
prerequisiteSteps: ['consent-management'],
dbTables: [],
dbMode: 'none',
ragCollections: [],
generates: ['Notfallplan (PDF)'],
isOptional: false,
url: '/sdk/notfallplan',
},
{
id: 'incidents',
name: 'Incident Management',
nameShort: 'Incidents',
package: 'betrieb',
seq: 4500,
checkpointId: 'CP-INC',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Verwaltung und Dokumentation von Datenschutz-Vorfaellen und Sicherheitsereignissen.',
descriptionLong: 'Das Incident Management System ermoeglicht die strukturierte Erfassung, Bewertung und Bearbeitung von Datenschutzvorfaellen. Jeder Vorfall wird klassifiziert (Schweregrad, betroffene Daten, Anzahl Betroffener), der Notfallplan wird aktiviert und alle Massnahmen werden protokolliert. Das System berechnet automatisch, ob eine Meldepflicht an die Aufsichtsbehoerde oder eine Benachrichtigung der Betroffenen erforderlich ist. Historische Vorfaelle werden im Incident Registry archiviert.',
legalBasis: 'Art. 33 DSGVO (Meldung an Aufsichtsbehoerde)',
inputs: ['incidentResponsePlan'],
outputs: ['incidentRegistry'],
prerequisiteSteps: ['notfallplan'],
dbTables: [],
dbMode: 'none',
ragCollections: [],
isOptional: false,
url: '/sdk/incidents',
},
{
id: 'whistleblower',
name: 'Hinweisgebersystem',
nameShort: 'Whistleblower',
package: 'betrieb',
seq: 4600,
checkpointId: 'CP-WB',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Einrichtung eines anonymen Meldekanals nach HinSchG.',
descriptionLong: 'Das Hinweisgebersystem erfuellt die Anforderungen des Hinweisgeberschutzgesetzes (HinSchG). Es bietet Mitarbeitern und externen Personen einen sicheren, anonymen Kanal zur Meldung von Verstoessen gegen Compliance-Regeln, Datenschutzrecht oder andere Vorschriften. Das System schuetzt die Identitaet des Hinweisgebers, dokumentiert den Bearbeitungsprozess und stellt die Einhaltung der gesetzlichen Fristen (7 Tage Eingangsbestaetigung, 3 Monate Rueckmeldung) sicher.',
legalBasis: 'HinSchG (Hinweisgeberschutzgesetz)',
inputs: ['companyProfile'],
outputs: ['whistleblowerConfig'],
prerequisiteSteps: ['incidents'],
dbTables: [],
dbMode: 'none',
ragCollections: [],
isOptional: false,
url: '/sdk/whistleblower',
},
{
id: 'academy',
name: 'Compliance Academy',
nameShort: 'Academy',
package: 'betrieb',
seq: 4700,
checkpointId: 'CP-ACAD',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Erstellung eines Schulungsplans fuer Mitarbeiter zu Datenschutz und Compliance.',
descriptionLong: 'Die Compliance Academy erstellt basierend auf dem Unternehmensprofil und den aktivierten Modulen einen massgeschneiderten Schulungsplan. Verschiedene Mitarbeitergruppen erhalten unterschiedliche Schulungsinhalte: Grundlagen-Datenschutz fuer alle, vertiefte DSGVO-Schulung fuer die IT, AI-Act-Schulung fuer KI-Entwickler, Fuehrungskraefte-Schulung fuer das Management. Der Plan definiert Schulungsintervalle, Pflicht- und Wahlmodule und Erfolgskontrolle.',
inputs: ['companyProfile', 'modules'],
outputs: ['trainingPlan'],
prerequisiteSteps: ['whistleblower'],
dbTables: [],
dbMode: 'none',
ragCollections: [],
isOptional: false,
url: '/sdk/academy',
},
{
id: 'training',
name: 'Training Engine',
nameShort: 'Training',
package: 'betrieb',
seq: 4800,
checkpointId: 'CP-TRAIN',
checkpointType: 'REQUIRED',
checkpointReviewer: 'NONE',
description: 'Durchfuehrung und Tracking von Compliance-Schulungen mit Quizzes und Zertifikaten — vollstaendig backend-persistent.',
descriptionLong: 'Die Training Engine setzt den Schulungsplan der Academy um. Sie bietet interaktive Schulungsmodule (DSGVO, AI Act, ISO 27001 etc.) mit Quizzes, automatisch generierten Inhalten und Zertifikaten. 28 vordefinierte Schulungsmodule sind hinterlegt. Jede abgeschlossene Schulung wird dokumentiert (Teilnehmer, Datum, Ergebnis, Quiz-Versuch) und dient als Evidence fuer Audits. Die Engine ueberwacht Faelligkeiten, sendet Erinnerungen bei ausstehenden Pflichtschulungen und generiert Compliance-Reports ueber den Schulungsstand aller Mitarbeiter. Backend: ai-compliance-sdk (Go, Port 8093) via /sdk/v1/training/*. Schulungsmatrix ordnet Rollen Pflichtmodulen zu.',
inputs: ['trainingPlan', 'modules'],
outputs: ['trainingContent'],
prerequisiteSteps: ['academy'],
dbTables: ['training_modules', 'training_assignments', 'training_quiz_questions', 'training_quiz_attempts', 'training_matrix_entries', 'training_audit_log'],
dbMode: 'read/write',
ragCollections: [],
isOptional: false,
url: '/sdk/training',
},
]
// =============================================================================
// HELPER FUNCTIONS
// =============================================================================
/** Find which step produces a given SDKState property */
export function findProducerStep(property: string): SDKFlowStep | undefined {
return SDK_FLOW_STEPS.find(s => s.outputs.includes(property))
}
/** Get all unique DB tables used across all steps */
export function getAllDbTables(): string[] {
const tables = new Set<string>()
SDK_FLOW_STEPS.forEach(s => s.dbTables.forEach(t => tables.add(t)))
return Array.from(tables)
}
/** Get all unique RAG collections used across all steps */
export function getAllRagCollections(): string[] {
const collections = new Set<string>()
SDK_FLOW_STEPS.forEach(s => s.ragCollections.forEach(c => collections.add(c)))
return Array.from(collections)
}
/** Get steps that use a specific DB table */
export function getStepsUsingTable(table: string): SDKFlowStep[] {
return SDK_FLOW_STEPS.filter(s => s.dbTables.includes(table))
}
/** Get steps that use a specific RAG collection */
export function getStepsUsingRag(collection: string): SDKFlowStep[] {
return SDK_FLOW_STEPS.filter(s => s.ragCollections.includes(collection))
}