Files
Benjamin Admin 451616b10e
All checks were successful
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-ai-compliance (push) Successful in 48s
CI / test-python-backend-compliance (push) Successful in 42s
CI / test-python-document-crawler (push) Successful in 24s
CI / test-python-dsms-gateway (push) Successful in 21s
docs: MkDocs-Dokumentation fuer DSR, E-Mail-Templates, Banner Consent
- Neue Seiten: dsr.md, email-templates.md, banner-consent.md
- rechtliche-texte.md: User-Consents & Cookie-Kategorien (Migration 028) ergaenzt
- mkdocs.yml: 3 neue Nav-Eintraege unter SDK Module

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 08:22:38 +01:00

192 lines
6.8 KiB
Markdown

# E-Mail-Templates
Das E-Mail-Templates-Modul verwaltet **Benachrichtigungs-Vorlagen** fuer alle Compliance-Prozesse:
DSR-Bestaetigung, Einwilligungsnachweise, Datenschutzverletzungen, Vendor-Management und mehr.
Es bietet einen vollstaendigen **Approval-Workflow** (Draft → Review → Approved → Published),
Variablen-Substitution und eine Vorschau-Funktion.
---
## Uebersicht
| Eigenschaft | Wert |
|-------------|------|
| **SDK-Route** | `/sdk/email-templates` |
| **Backend** | `backend-compliance:8002` |
| **Router-Prefix** | `/api/compliance/email-templates` |
| **Paket** | Betrieb (seq 4350) |
| **DB-Migration** | 027_email_templates.sql |
| **Tests** | 47 Tests (`test_email_template_routes.py`) |
| **Status** | 100% — Backend + Frontend |
---
## Template-Typen (20)
| Typ | Kategorie | Beschreibung |
|-----|-----------|--------------|
| `welcome` | Allgemein | Willkommens-E-Mail |
| `verification` | Allgemein | E-Mail-Verifizierung |
| `password_reset` | Allgemein | Passwort zuruecksetzen |
| `account_locked` | Sicherheit | Konto gesperrt |
| `consent_granted` | Einwilligung | Einwilligung erteilt |
| `consent_withdrawn` | Einwilligung | Einwilligung widerrufen |
| `consent_reminder` | Einwilligung | Einwilligungs-Erinnerung |
| `dsr_received` | DSR | Anfrage eingegangen |
| `dsr_processing` | DSR | Anfrage in Bearbeitung |
| `dsr_completed` | DSR | Anfrage abgeschlossen |
| `dsr_rejected` | DSR | Anfrage abgelehnt |
| `breach_notification` | Datenschutz | Datenschutzverletzung |
| `breach_authority` | Datenschutz | Meldung an Aufsichtsbehoerde |
| `vendor_assessment` | Vendor | Auftragsverarbeiter-Bewertung |
| `vendor_reminder` | Vendor | Auftragsverarbeiter-Erinnerung |
| `training_assigned` | Schulung | Schulung zugewiesen |
| `training_reminder` | Schulung | Schulungs-Erinnerung |
| `training_completed` | Schulung | Schulung abgeschlossen |
| `audit_scheduled` | Audit | Audit geplant |
| `audit_completed` | Audit | Audit abgeschlossen |
---
## Approval-Workflow
```mermaid
graph LR
A[draft] --> B[review]
B --> C[approved]
B --> D[rejected]
D --> A
C --> E[published]
```
- **Draft:** Vorlage wird erstellt/bearbeitet
- **Review:** Zur Pruefung eingereicht
- **Approved:** Von DSB/Compliance-Beauftragtem freigegeben
- **Published:** Aktiv im System — wird fuer E-Mail-Versand verwendet
- **Rejected:** Zurueck an Autor mit Begruendung
---
## API-Endpoints
### Template-Verwaltung
| Methode | Pfad | Beschreibung |
|---------|------|--------------|
| `GET` | `/email-templates/types` | Verfuegbare Template-Typen mit Variablen |
| `GET` | `/email-templates` | Alle Templates (mit letzter publizierter Version) |
| `POST` | `/email-templates` | Template erstellen |
| `GET` | `/email-templates/{id}` | Template-Detail |
| `GET` | `/email-templates/default/{type}` | Default-Content fuer einen Typ |
| `POST` | `/email-templates/initialize` | Default-Templates initialisieren (20 Typen) |
### Version-Management
| Methode | Pfad | Beschreibung |
|---------|------|--------------|
| `GET` | `/email-templates/{id}/versions` | Versionen eines Templates |
| `POST` | `/email-templates/versions` | Version erstellen |
| `POST` | `/email-templates/{id}/versions` | Version fuer Template erstellen |
| `GET` | `/email-templates/versions/{id}` | Version-Detail |
| `PUT` | `/email-templates/versions/{id}` | Draft aktualisieren |
### Workflow-Aktionen
| Methode | Pfad | Beschreibung |
|---------|------|--------------|
| `POST` | `/email-templates/versions/{id}/submit` | Zur Pruefung einreichen |
| `POST` | `/email-templates/versions/{id}/approve` | Genehmigen |
| `POST` | `/email-templates/versions/{id}/reject` | Ablehnen (mit Begruendung) |
| `POST` | `/email-templates/versions/{id}/publish` | Publizieren |
### Vorschau & Test
| Methode | Pfad | Beschreibung |
|---------|------|--------------|
| `POST` | `/email-templates/versions/{id}/preview` | Vorschau mit Test-Variablen |
| `POST` | `/email-templates/versions/{id}/send-test` | Test-E-Mail senden (Simulation) |
### Einstellungen & Logs
| Methode | Pfad | Beschreibung |
|---------|------|--------------|
| `GET` | `/email-templates/settings` | Globale Einstellungen (Branding) |
| `PUT` | `/email-templates/settings` | Einstellungen speichern |
| `GET` | `/email-templates/stats` | Statistiken (gesamt, publiziert, Entwuerfe) |
| `GET` | `/email-templates/logs` | Send-Logs (paginiert) |
---
## Variablen
Templates unterstuetzen **Mustache-Variablen** (`{{variable}}`), die beim Versand ersetzt werden:
| Variable | Beschreibung | Verfuegbar in |
|----------|--------------|---------------|
| `{{user_name}}` | Name des Empfaengers | Alle |
| `{{company_name}}` | Unternehmensname | Alle |
| `{{date}}` | Aktuelles Datum | Alle |
| `{{request_number}}` | DSR-Antragsnummer | DSR-Templates |
| `{{request_type}}` | Art der Anfrage | DSR-Templates |
| `{{deadline}}` | Bearbeitungsfrist | DSR-Templates |
| `{{document_title}}` | Dokumenttitel | Consent-Templates |
| `{{breach_description}}` | Vorfallbeschreibung | Breach-Templates |
| `{{training_title}}` | Schulungstitel | Training-Templates |
| `{{vendor_name}}` | Auftragsverarbeiter | Vendor-Templates |
| `{{portal_url}}` | Link zum Portal | DSR, Consent |
---
## DB-Tabellen (Migration 027)
| Tabelle | Beschreibung |
|---------|--------------|
| `compliance_email_templates` | Template-Definitionen (type, name, is_active) |
| `compliance_email_template_versions` | Versionierter Content (subject, body_html, body_text, status) |
| `compliance_email_template_approvals` | Approval-Workflow (approve/reject mit Kommentar) |
| `compliance_email_send_logs` | Audit-Trail gesendeter E-Mails |
| `compliance_email_template_settings` | Globale Einstellungen (Logo, Farben, Absender, Footer) |
---
## Datenmodell (Template-Version)
```json
{
"id": "uuid",
"template_id": "uuid",
"version_number": 2,
"subject": "Ihre Betroffenenanfrage {{request_number}}",
"body_html": "<h1>Sehr geehrte/r {{user_name}}</h1>...",
"body_text": "Sehr geehrte/r {{user_name}}...",
"language": "de",
"status": "published",
"created_by": "dsb@firma.de",
"created_at": "2026-03-05T10:00:00Z",
"published_at": "2026-03-05T14:00:00Z"
}
```
---
## Frontend
**Route:** `/sdk/email-templates` | **Datei:** `app/(sdk)/sdk/email-templates/page.tsx`
**4 Tabs:**
1. **Templates** — Grid aller 20 Template-Typen mit Status-Badge und letzter Aenderung
2. **Editor** — Split-View: HTML-Editor + Live-Vorschau, klickbare Variablen-Chips
3. **Einstellungen** — Branding: Absender, Logo-URL, Primaerfarbe, Footer-Text
4. **Logs** — Tabelle mit Send-History (Empfaenger, Template-Typ, Status, Datum)
---
## Frontend-Proxy
| Frontend-Route | Ziel |
|----------------|------|
| `/api/sdk/v1/compliance/email-templates/*` | `backend:8002/api/compliance/email-templates/*` |
Nutzt den bestehenden Compliance-Catch-All-Proxy (`/api/sdk/v1/compliance/[[...path]]`).