# Dokumentations-Module (Paket 3 + ergänzende Module)

Diese Seite beschreibt die sechs Module, die die Compliance-Dokumentation vervollständigen:
**VVT**, **Training**, **Source Policy**, **Document Generator**, **Audit Checklist** und **Audit Report**.
Alle Module sind vollständig backend-persistent und bieten CRUD-Operationen über die REST-API.

---

## Übersicht

| Modul | SDK-Route | Paket | Checkpoint | Status |
|-------|-----------|-------|-----------|--------|
| [VVT](#vvt) | `/sdk/vvt` | Dokumentation | CP-VVT (REQUIRED / DSB) | 100% |
| [DSFA](dsfa.md) | `/sdk/dsfa` | Dokumentation | CP-DSFA (REQUIRED / DSB) | 100% |
| [Source Policy](#source-policy) | `/sdk/source-policy` | Vorbereitung | CP-SPOL (REQUIRED) | 100% |
| [Document Generator](#document-generator) | `/sdk/document-generator` | Rechtliche Texte | CP-DOCGEN (RECOMMENDED) | 100% |
| [Audit Checklist](#audit-checklist) | `/sdk/audit-checklist` | Analyse | CP-CHK (RECOMMENDED) | 100% |
| [Audit Report](#audit-report) | `/sdk/audit-report` | Analyse | CP-AREP (REQUIRED) | 100% |
| [Training Engine](#training-engine) | `/sdk/training` | Betrieb | CP-TRAIN (REQUIRED) | 100% |

---

## VVT

**Route:** `/sdk/vvt` | **Backend:** `backend-compliance:8002` | **Rechtsgrundlage:** Art. 30 DSGVO

### Funktionen

- Anlegen, Bearbeiten und Löschen von Verarbeitungstätigkeiten (CRUD)
- Eindeutiger VVT-ID pro Tätigkeit (z.B. `VVT-001`)
- Vollständige Dokumentation je Tätigkeit: Zweck, Rechtsgrundlage, Datenkategorien, Empfänger, Drittlandtransfers, Löschfristen, TOMs
- Organisationsweite Metadaten: DSB-Kontakt, Branche, Standorte, Mitarbeiterzahl
- Audit-Log für alle Änderungen (CREATE / UPDATE / DELETE)
- Statistik-Endpoint: Gesamt, nach Status, nach Geschäftsfunktion, DSFA-pflichtige Tätigkeiten
- JSON-Export aller Aktivitäten
- Status-Workflow: `DRAFT` → `REVIEW` → `APPROVED` → `ARCHIVED`
- Schutzstufenklassifizierung: `LOW` / `MEDIUM` / `HIGH` / `CRITICAL`
- Profiling-Assistent (UI-seitig) zur Vorbefüllung

### API-Endpoints

| Methode | Pfad | Beschreibung |
|---------|------|--------------|
| `GET` | `/api/compliance/vvt/organization` | Organisationsheader laden |
| `PUT` | `/api/compliance/vvt/organization` | Organisationsheader speichern |
| `GET` | `/api/compliance/vvt/activities` | Alle Tätigkeiten (Filter: status, business_function) |
| `POST` | `/api/compliance/vvt/activities` | Neue Tätigkeit anlegen |
| `GET` | `/api/compliance/vvt/activities/{id}` | Einzelne Tätigkeit |
| `PUT` | `/api/compliance/vvt/activities/{id}` | Tätigkeit aktualisieren |
| `DELETE` | `/api/compliance/vvt/activities/{id}` | Tätigkeit löschen |
| `GET` | `/api/compliance/vvt/audit-log` | Änderungshistorie |
| `GET` | `/api/compliance/vvt/export` | JSON-Export aller Tätigkeiten |
| `GET` | `/api/compliance/vvt/stats` | Statistiken |

### DB-Tabellen

| Tabelle | Modus | Beschreibung |
|---------|-------|--------------|
| `compliance_vvt_organization` | read/write | Organisationsweite Metadaten |
| `compliance_vvt_activities` | read/write | Verarbeitungstätigkeiten |
| `compliance_vvt_audit_log` | write | Änderungsprotokoll |

### Datenmodell (Aktivität)

```json
{
  "vvt_id": "VVT-001",
  "name": "Gehaltsabrechnung",
  "purposes": ["Vertragserfüllung"],
  "legal_bases": ["Art. 6 Abs. 1b DSGVO"],
  "data_subject_categories": ["Mitarbeiter"],
  "personal_data_categories": ["Bankdaten", "Steuer-ID"],
  "recipient_categories": ["Steuerberater"],
  "third_country_transfers": [],
  "retention_period": {"years": 10, "basis": "§ 257 HGB"},
  "protection_level": "HIGH",
  "dpia_required": false,
  "status": "APPROVED"
}
```

---

## Source Policy

**Route:** `/sdk/source-policy` | **Backend:** `backend-compliance:8002` | **Rechtsgrundlage:** Art. 5 DSGVO

### Funktionen

- Verwaltung erlaubter Compliance-Rechtsquellen (Gesetze, Leitlinien, Standards)
- Filter nach Quelltyp (`legal`, `guidance`, `template`, `technical`, `other`) und Lizenz
- PII-Regelwerk: Definition sensibler Datenkategorien (E-Mail, IBAN, Personalausweis, etc.)
- Filter nach PII-Kategorie (pii, financial, health, id, location, other)
- Quell-Operations-Matrix: Welche Operationen auf welchen Quellen sind erlaubt
- Policy-Audit-Log: Nachvollziehbare Protokollierung aller Policy-Änderungen
- Policy-Statistiken: Zusammenfassung des Compliance-Status
- Compliance-Report: Gesamtübersicht aller aktiven Quellen und Regeln

### API-Endpoints

| Methode | Pfad | Beschreibung |
|---------|------|--------------|
| `GET` | `/api/source-policy/sources` | Quellen (Filter: source_type, license, active_only) |
| `POST` | `/api/source-policy/sources` | Neue Quelle anlegen |
| `PUT` | `/api/source-policy/sources/{id}` | Quelle aktualisieren |
| `DELETE` | `/api/source-policy/sources/{id}` | Quelle löschen |
| `GET` | `/api/source-policy/pii-rules` | PII-Regeln (Filter: category) |
| `POST` | `/api/source-policy/pii-rules` | Neue PII-Regel |
| `PUT` | `/api/source-policy/pii-rules/{id}` | PII-Regel aktualisieren |
| `DELETE` | `/api/source-policy/pii-rules/{id}` | PII-Regel löschen |
| `GET` | `/api/source-policy/operations-matrix` | Operations-Matrix |
| `GET` | `/api/source-policy/policy-stats` | Statistiken |
| `GET` | `/api/source-policy/compliance-report` | Compliance-Report |

### DB-Tabellen

| Tabelle | Modus | Beschreibung |
|---------|-------|--------------|
| `compliance_allowed_sources` | read/write | Erlaubte Rechtsquellen |
| `compliance_pii_rules` | read/write | PII-Erkennungsregeln |
| `compliance_source_operations` | read/write | Operations-Matrix |
| `compliance_source_policy_audit` | write | Audit-Trail |

---

## Document Generator

**Route:** `/sdk/document-generator` | **Backend:** breakpilot-core (Template-Service) | **Rechtsgrundlage:** Art. 28 DSGVO, DDG § 5

### Funktionen

- Generierung rechtlicher Dokumente aus Templates: Impressum, AVV, Datenschutzrichtlinie, NDA
- Templates werden aus `bp_legal_templates` (RAG-Collection) geladen
- Unternehmensspezifische Befüllung aus Company Profile
- **PDF-Export** direkt im Browser via `window.print()` — kein Server-seitiger Service erforderlich
- Fallback-Banner: Wenn der Template-Service (breakpilot-core) nicht erreichbar ist, erscheint ein informativer Hinweis
- Attributionsnachweis: Verwendete Rechtsquellen werden im Dokument aufgeführt

### Generierte Dokumente

| Dokument | Rechtsgrundlage | Format |
|----------|-----------------|--------|
| Impressum | DDG § 5 (ehemals TMG) | HTML / PDF |
| Auftragsverarbeitungsvertrag (AVV) | Art. 28 DSGVO | HTML / PDF |
| Datenschutzerklärung | Art. 13, 14 DSGVO | HTML / PDF |
| NDA / Vertraulichkeitsvereinbarung | GeschGehG | HTML / PDF |

### PDF-Export

Der PDF-Export öffnet ein neues Browser-Fenster mit dem vollständig formatierten Dokument
und löst automatisch den Browser-Druckdialog aus (`window.print()`). Keine zusätzliche
Server-Dependency erforderlich.

```
[Als PDF exportieren] → window.open() → Dokument-HTML → window.print() → Browser-PDF-Dialog
```

---

## Audit Checklist

**Route:** `/sdk/audit-checklist` | **Backend:** `backend-compliance:8002` | **Rechtsgrundlage:** Art. 5 Abs. 2 DSGVO (Rechenschaftspflicht)

### Funktionen

- Session-Management: Neue Audit-Sitzung erstellen (Name, Auditor, Scope)
- Status-Workflow: `draft` → `in_progress` → `completed` → `archived`
- Automatische Befüllung der Checkliste aus Requirements und Controls
- Interaktiver Sign-Off-Workflow: Konform / Teilweise / Nicht konform / Nicht geprüft
- Digitale Signatur-Hash (SHA-256) pro Prüfpunkt für Unveränderlichkeitsnachweis
- Notizen-Bearbeitung je Prüfpunkt
- **PDF-Download** in Deutsch oder Englisch (`GET /sessions/{id}/report/pdf`)
- JSON-Export der gesamten Checkliste
- Session-History: Übersicht vergangener Audit-Sitzungen

### API-Endpoints

| Methode | Pfad | Beschreibung |
|---------|------|--------------|
| `GET` | `/api/compliance/audit/sessions` | Alle Sitzungen |
| `POST` | `/api/compliance/audit/sessions` | Neue Sitzung |
| `PUT` | `/api/compliance/audit/sessions/{id}` | Sitzung aktualisieren (Status) |
| `GET` | `/api/compliance/audit/checklist/{sessionId}` | Checkliste laden |
| `PUT` | `/api/compliance/audit/checklist/{sessionId}/items/{reqId}/sign-off` | Prüfpunkt abzeichnen |
| `GET` | `/api/compliance/audit/sessions/{sessionId}/report/pdf` | PDF-Report (lang=de/en) |

!!! warning "Korrekter PDF-Endpunkt"
    Der PDF-Download-Endpunkt lautet `/sessions/{id}/**report**/pdf`, nicht `/sessions/{id}/pdf`.
    Dieser Fehler war in früheren Versionen vorhanden und wurde behoben.

### DB-Tabellen

| Tabelle | Modus | Beschreibung |
|---------|-------|--------------|
| `compliance_audit_sessions` | read/write | Audit-Sitzungen |
| `compliance_audit_signoffs` | write | Prüfpunkt-Abzeichnungen mit Signatur-Hash |
| `compliance_requirements` | read | Prüfpunkte aus Requirements |

### PDF-Generierung

Die PDF-Reports werden serverseitig mit **ReportLab 4.2.5** generiert und enthalten:
- Deckblatt mit Audit-Metadaten
- Zusammenfassung mit Ampelstatus
- Statistik-Kreisdiagramm (konform / nicht konform / ausstehend)
- Prüfpunkt-Details mit Notizen und digitalem Signatur-Hash
- Anhang: Nicht-konforme Punkte mit Handlungsempfehlungen

---

## Audit Report

**Route:** `/sdk/audit-report` und `/sdk/audit-report/{sessionId}` | **Backend:** `backend-compliance:8002` | **Rechtsgrundlage:** Art. 5 Abs. 2 DSGVO

### Funktionen

- Übersicht aller Audit-Sitzungen mit Status-Badges (Entwurf / In Bearbeitung / Abgeschlossen / Archiviert)
- Detail-Seite pro Sitzung:
  - Sitzungs-Metadaten (Auditor, Organisation, Zeitraum)
  - Fortschrittsbalken mit Farbkodierung (grün ≥ 80%, gelb ≥ 50%, rot < 50%)
  - Statistik-Kacheln (konform / nicht konform / ausstehend)
  - Interaktive Prüfpunkte mit nachträglichem Sign-Off
  - Notizen-Bearbeitung per Prüfpunkt
  - PDF-Download mit Sprachauswahl (DE / EN)
- Navigation: Klick auf eine Sitzung in der Übersicht öffnet die Detail-Seite

### API-Endpoints

Nutzt dieselben Backend-Endpoints wie Audit Checklist (s.o.).

### DB-Tabellen

| Tabelle | Modus | Beschreibung |
|---------|-------|--------------|
| `compliance_audit_sessions` | read/write | Sitzungsdaten inkl. Fortschritt |
| `compliance_audit_signoffs` | read/write | Nachträgliche Prüfpunkt-Aktualisierungen |

---

## Training Engine

**Route:** `/sdk/training` | **Backend:** `ai-compliance-sdk:8093` (Go) | **Rechtsgrundlage:** Art. 39 Abs. 1b DSGVO, EU AI Act Art. 4

### Funktionen

- **28 vordefinierte Schulungsmodule** für DSGVO, ISO 27001, AI Act, Hinweisgeberschutz u.a.
- Modul-Typen: Jährlich (`annual`), Ereignisbasiert (`event_trigger`), Mikro-Schulung (`micro`)
- Quiz-System: Automatisch generierte Fragen mit konfigurierbarer Bestehensgrenze
- Zertifikate bei erfolgreichem Abschluss
- Schulungsmatrix: Rollen-basierte Pflichtmodulzuordnung (CISO, DSB, Entwickler, etc.)
- Aufgabenzuweisung: Schulungen können Mitarbeitern zugewiesen werden
- Eskalation: Automatische Erinnerungen bei überfälligen Pflichtschulungen
- KI-generierter Content: Schulungsinhalte können via Ollama-LLM automatisch generiert werden
- Audit-Log: Vollständige Nachverfolgung aller Schulungsaktivitäten

### API-Endpoints

| Methode | Pfad | Beschreibung |
|---------|------|--------------|
| `GET` | `/sdk/v1/training/modules` | Alle Module (Filter: regulation_area, frequency_type, search) |
| `POST` | `/sdk/v1/training/modules` | Neues Modul anlegen |
| `GET` | `/sdk/v1/training/modules/{id}` | Modul mit Content und Quiz-Fragen |
| `PUT` | `/sdk/v1/training/modules/{id}` | Modul aktualisieren |
| `GET` | `/sdk/v1/training/matrix` | Schulungsmatrix |
| `POST` | `/sdk/v1/training/matrix` | Matrix-Eintrag setzen |
| `GET` | `/sdk/v1/training/assignments` | Schulungszuweisungen |
| `POST` | `/sdk/v1/training/assignments/compute` | Zuweisungen für Nutzer berechnen |
| `POST` | `/sdk/v1/training/assignments/{id}/complete` | Schulung abschließen |
| `GET` | `/sdk/v1/training/quiz/{moduleId}` | Quiz-Fragen laden |
| `POST` | `/sdk/v1/training/quiz/{moduleId}/submit` | Quiz-Antworten einreichen |
| `GET` | `/sdk/v1/training/stats` | Schulungsstatistiken |
| `GET` | `/sdk/v1/training/deadlines` | Fällige Schulungen |
| `POST` | `/sdk/v1/training/escalation/check` | Eskalationen prüfen |
| `POST` | `/sdk/v1/training/content/generate` | KI-Content generieren (Ollama) |

### DB-Tabellen (ai-compliance-sdk PostgreSQL)

| Tabelle | Modus | Beschreibung |
|---------|-------|--------------|
| `training_modules` | read/write | Schulungsmodule mit Metadaten |
| `training_assignments` | read/write | Mitarbeiterzuweisungen |
| `training_quiz_questions` | read/write | Quiz-Fragen je Modul |
| `training_quiz_attempts` | read/write | Quiz-Versuche und Ergebnisse |
| `training_matrix_entries` | read/write | Rollen-Modul-Zuordnung |
| `training_audit_log` | write | Aktivitätsprotokoll |

### Vordefinierte Module (Auswahl)

| Code | Titel | Bereich | Typ |
|------|-------|---------|-----|
| `DSGVO-BASIC` | DSGVO Grundlagen | dsgvo | annual |
| `DSGVO-BREACH` | Datenpannen und Meldepflichten | dsgvo | event_trigger |
| `DSGVO-DSR` | Betroffenenrechte | dsgvo | annual |
| `AI-BAS` | KI-Kompetenz Grundlagen | ai_act | annual |
| `AI-RISK` | Hochrisiko-KI-Systeme | ai_act | event_trigger |
| `ISMS-AUD` | ISMS Audit-Vorbereitung | iso27001 | event_trigger |
| `HIN-BAS` | Hinweisgeberschutz | hinschg | annual |
| `PHISH` | Phishing-Erkennung | iso27001 | micro |

---

## Datenfluss

```mermaid
graph LR
    A[Source Policy] --> B[Requirements]
    B --> C[Audit Checklist]
    C --> D[Audit Report]
    D --> E[Obligations]
    E --> F[TOMs]
    F --> G[Löschfristen]
    G --> H[VVT]

    H --> I[Einwilligungen]
    I --> J[Rechtliche Vorlagen]
    J --> K[Cookie Banner]
    K --> L[Document Workflow]

    M[Document Generator] --> L
    N[Academy] --> O[Training Engine]
```

Die **Source Policy** bildet die Grundlage für alle nachfolgenden Analyse-Schritte.
Das **VVT** ist der abschließende Schritt der Dokumentationsphase und Ausgangspunkt von Paket 4.
Die **Training Engine** operiert parallel im Betrieb-Paket und liefert Evidence für Audits.
Paket 4 (Rechtliche Texte) ist vollständig dokumentiert unter [Rechtliche Texte (Paket 4)](rechtliche-texte.md).
