diff --git a/admin-compliance/lib/sdk/types.ts b/admin-compliance/lib/sdk/types.ts index cb6923d..2057b7d 100644 --- a/admin-compliance/lib/sdk/types.ts +++ b/admin-compliance/lib/sdk/types.ts @@ -618,7 +618,13 @@ export const SDK_STEPS: SDKStep[] = [ url: '/sdk/dsfa', checkpointId: 'CP-DSFA', prerequisiteSteps: ['obligations'], - isOptional: false, + isOptional: true, + visibleWhen: (state) => { + const level = state.complianceScope?.decision?.determinedLevel + if (level && ['L2', 'L3', 'L4'].includes(level)) return true + const triggers = state.complianceScope?.decision?.triggeredHardTriggers || [] + return triggers.some(t => t.rule.dsfaRequired) + }, }, { id: 'tom', diff --git a/docs-src/index.md b/docs-src/index.md index 081fa1b..0c7f28c 100644 --- a/docs-src/index.md +++ b/docs-src/index.md @@ -50,7 +50,9 @@ Module die Compliance-Kunden im SDK sehen und nutzen: | **Audit Report** | Audit-Berichte mit PDF-Export | /sdk/audit-report | | **Consent Management** | Einwilligungs-Verwaltung | /sdk/einwilligungen | | **DSR** | Betroffenenrechte (Art. 15-21 DSGVO) | /sdk/dsr | +| **E-Mail-Templates** | Benachrichtigungs-Vorlagen (DSR, Incidents, Schulungen) | /sdk/email-templates | | **Academy** | Datenschutz-Schulungen mit PDF-Zertifikaten | /sdk/academy | +| **Training Engine** | KI-generierte Schulungen, Quiz, Rollenmatrix, TTS-Video | /sdk/training | | **Whistleblower** | Hinweisgebersystem (HinSchG) | /sdk/whistleblower | | **Incidents** | Datenschutz-Vorfaelle (Art. 33/34 DSGVO) | /sdk/incidents | | **Vendors** | Auftragsverarbeiter-Management | /sdk/vendor-compliance | @@ -105,7 +107,9 @@ Interne Tools fuer die BreakPilot-Plattformverwaltung: | https://macmini:3007/sdk/dsfa | DSFA | | https://macmini:3007/sdk/vvt | VVT | | https://macmini:3007/sdk/loeschfristen | Loeschfristen | +| https://macmini:3007/sdk/email-templates | E-Mail-Templates | | https://macmini:3007/sdk/academy | Academy | +| https://macmini:3007/sdk/training | Training Engine | | https://macmini:3007/sdk/whistleblower | Whistleblower | | https://macmini:3007/sdk/incidents | Incidents | | https://macmini:3007/sdk/reporting | Reporting | diff --git a/docs-src/services/sdk-modules/training.md b/docs-src/services/sdk-modules/training.md new file mode 100644 index 0000000..d5ed72b --- /dev/null +++ b/docs-src/services/sdk-modules/training.md @@ -0,0 +1,165 @@ +# Training Engine (CP-TRAIN) + +KI-generierte Schulungsinhalte, Rollenmatrix, Quiz-Engine und Zertifikatsverwaltung für Compliance-Schulungen. + +**Prefix:** `CP-TRAIN` · **seq:** 4800 · **Frontend:** `https://macmini:3007/sdk/training` +**Service:** `ai-compliance-sdk` (Go/Gin, Port 8093) +**Proxy:** `/api/sdk/v1/training/[[...path]]` → `ai-compliance-sdk:8090/sdk/v1/training/...` + +--- + +## Features + +- Rollenbasierte Schulungsmatrix (Wer muss was absolvieren?) +- KI-generierte Schulungsinhalte (Text, Audio, Video via TTS-Service) +- Quiz-Engine mit automatischer Auswertung +- Deadline-Tracking und Eskalation bei Überziehung +- Aufgabenzuweisung (Assignments) mit Fortschrittstracking +- Unveränderliches Audit-Log für Compliance-Nachweise +- Bulk-Content-Generierung für alle Module auf einmal + +--- + +## Rechtsgrundlage + +| Artikel | Bezug | +|---------|-------| +| Art. 39 Abs. 1b DSGVO | DSB-Aufgabe: Sensibilisierung und Schulung | +| Art. 5 AI Act | Schulungspflicht für verbotene KI-Praktiken | +| Art. 4 Abs. 2 AI Act | Schulung für KI-Alphabetisierung | + +--- + +## Tabs / Ansichten + +| Tab | Inhalt | +|-----|--------| +| `overview` | Statistiken, Deadline-Warnung, Eskalation-Check | +| `modules` | CRUD aller Schulungsmodule mit Filter (Status, Regulierung) | +| `matrix` | Rollen-Modul-Matrix — wer muss welche Schulung absolvieren | +| `assignments` | Zugewiesene Schulungen mit Fortschritt und Deadline | +| `content` | KI-generierter Inhalt pro Modul + Audio/Video-Player | +| `audit` | Unveränderliches Audit-Log aller Schulungsaktivitäten | + +--- + +## API Endpoints + +### Module + +| Methode | Pfad | Beschreibung | +|---------|------|--------------| +| `GET` | `/sdk/v1/training/modules` | Alle Module (`status`, `regulation` Filter) | +| `GET` | `/sdk/v1/training/modules/:id` | Modul-Detail | +| `POST` | `/sdk/v1/training/modules` | Modul erstellen | +| `PUT` | `/sdk/v1/training/modules/:id` | Modul aktualisieren | +| `DELETE` | `/sdk/v1/training/modules/:id` | Modul löschen | + +### Rollenmatrix + +| Methode | Pfad | Beschreibung | +|---------|------|--------------| +| `GET` | `/sdk/v1/training/matrix` | Vollständige Rollenmatrix | +| `GET` | `/sdk/v1/training/matrix/role/:role` | Matrix für eine Rolle | +| `POST` | `/sdk/v1/training/matrix` | Eintrag hinzufügen | +| `DELETE` | `/sdk/v1/training/matrix/:role/:moduleId` | Eintrag entfernen | + +### Assignments + +| Methode | Pfad | Beschreibung | +|---------|------|--------------| +| `GET` | `/sdk/v1/training/assignments` | Alle Zuweisungen (Filter: `status`, `role`, `moduleId`) | +| `GET` | `/sdk/v1/training/assignments/:id` | Zuweisung-Detail | +| `POST` | `/sdk/v1/training/assignments/compute` | Zuweisungen aus Matrix berechnen | +| `POST` | `/sdk/v1/training/assignments/:id/start` | Schulung starten | +| `PUT` | `/sdk/v1/training/assignments/:id` | Deadline aktualisieren | +| `POST` | `/sdk/v1/training/assignments/:id/complete` | Schulung abschließen | + +### KI-Inhalt + +| Methode | Pfad | Beschreibung | +|---------|------|--------------| +| `GET` | `/sdk/v1/training/modules/:id/content` | Aktueller Inhalt | +| `POST` | `/sdk/v1/training/modules/:id/generate` | Inhalt KI-generieren (Skript, Audio, Video) | +| `POST` | `/sdk/v1/training/content/generate-all` | Alle Module bulk-generieren | +| `POST` | `/sdk/v1/training/content/:id/publish` | Inhalt freigeben | + +### Quiz + +| Methode | Pfad | Beschreibung | +|---------|------|--------------| +| `GET` | `/sdk/v1/training/modules/:id/quiz` | Quiz-Fragen | +| `POST` | `/sdk/v1/training/modules/:id/quiz/generate` | Quiz KI-generieren | +| `POST` | `/sdk/v1/training/modules/:id/quiz/generate-all` | Alle Quizzes bulk-generieren | +| `POST` | `/sdk/v1/training/modules/:id/quiz/submit` | Antworten einreichen | +| `GET` | `/sdk/v1/training/assignments/:id/attempts` | Quiz-Versuche | + +### Deadlines & Eskalation + +| Methode | Pfad | Beschreibung | +|---------|------|--------------| +| `GET` | `/sdk/v1/training/deadlines` | Bevorstehende Deadlines | +| `GET` | `/sdk/v1/training/deadlines/overdue` | Überfällige Deadlines | +| `POST` | `/sdk/v1/training/escalations/check` | Eskalation auslösen | + +### Statistiken & Audit + +| Methode | Pfad | Beschreibung | +|---------|------|--------------| +| `GET` | `/sdk/v1/training/stats` | Überblick-Statistiken | +| `GET` | `/sdk/v1/training/audit` | Audit-Log (Filter: `action`, `moduleId`, `userId`) | + +--- + +## SDK-Workflow Position + +``` +seq 4700: Academy (Compliance Academy — manuelle Schulungen) +seq 4800: Training Engine (KI-generierte Schulungen, Matrix, Quiz) +``` + +Das Training-Modul erweitert die Academy um KI-generierte Inhalte. Während die Academy einfache Schulungseinheiten verwaltet, bietet die Training Engine automatische Inhaltsgenerierung, eine Rollenmatrix und eine vollständige Quiz-Engine. + +--- + +## Media (TTS-Service) + +KI-generierte Inhalte werden via `compliance-tts-service` (Port 8095) in Audio und Video umgewandelt: + +- **Audio:** Piper TTS → MP3 (Modell: `de_DE-thorsten-high.onnx`) +- **Video:** FFmpeg → MP4 (Skript + Stimme + Untertitel) +- **Storage:** MinIO (`bp-core-minio:9000`) + +``` +AudioPlayer → /sdk/v1/training/modules/:id/media (audio) +VideoPlayer → /sdk/v1/training/modules/:id/media (video) +``` + +--- + +## Frontend + +**URL:** `https://macmini:3007/sdk/training` + +6-Tab-Oberfläche mit: +- Statistik-Dashboard (Abschlussquote, offene Schulungen, Deadlines) +- Modul-CRUD mit Regulierungs-Badges +- Interaktive Rollenmatrix (Checkboxen) +- Fortschritts-Balken pro Assignment +- Eingebetteter Audio/Video-Player für KI-generierte Inhalte + +--- + +## Datenbankschema (Go — ai-compliance-sdk) + +Die Training Engine verwendet eigene Tabellen im `compliance` Schema: + +```sql +training_modules -- Schulungsmodule (title, regulation, frequency, ...) +training_matrix -- Rollen-Modul-Zuordnungen +training_assignments -- Zuweisungen (user, module, status, progress, deadline) +training_content -- KI-generierter Inhalt (script, audio_url, video_url, ...) +training_quiz -- Quiz-Fragen pro Modul +training_quiz_attempts -- Eingereichter Antworten + Score +training_audit_log -- Unveränderliches Audit-Log +``` diff --git a/mkdocs.yml b/mkdocs.yml index d04dfd4..f8cb513 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -91,6 +91,7 @@ nav: - Industry Compliance Ingestion: services/sdk-modules/industry-compliance-ingestion.md - IACE (CE-Risikobeurteilung): services/sdk-modules/iace.md - Obligations v2 (CP-OBL): services/sdk-modules/obligations.md + - Training Engine (CP-TRAIN): services/sdk-modules/training.md - Entwicklung: - Testing: development/testing.md - Dokumentation: development/documentation.md