"""
Seed data for Controls.

~45 Controls across 9 domains:
- GOV: Governance & Organisation
- PRIV: Datenschutz & Privacy
- IAM: Identity & Access Management
- CRYPTO: Kryptografie
- SDLC: Secure Development Lifecycle
- OPS: Betrieb & Monitoring
- AI: KI-spezifisch
- CRA: CRA & Supply Chain
- AUD: Audit & Nachvollziehbarkeit
"""

CONTROLS_SEED = [
    # =========================================================================
    # GOV - Governance & Organisation
    # =========================================================================
    {
        "control_id": "GOV-001",
        "domain": "gov",
        "control_type": "preventive",
        "title": "ISMS Policy",
        "description": "Dokumentierte Informationssicherheits-Management-System Policy mit jährlicher Überprüfung.",
        "pass_criteria": "ISMS Policy vorhanden, aktuell (nicht älter als 12 Monate), von Management genehmigt.",
        "implementation_guidance": "Policy erstellen nach ISO 27001 Struktur, Scope definieren, Management-Commitment dokumentieren.",
        "is_automated": False,
        "owner": "Security Team",
        "review_frequency_days": 365,
    },
    {
        "control_id": "GOV-002",
        "domain": "gov",
        "control_type": "preventive",
        "title": "Rollen & Verantwortlichkeiten",
        "description": "RACI-Matrix für alle sicherheitsrelevanten Prozesse dokumentiert.",
        "pass_criteria": "RACI-Matrix vorhanden und aktuell, alle kritischen Rollen besetzt.",
        "implementation_guidance": "RACI-Matrix erstellen für: Incident Response, Vulnerability Management, Access Management, Change Management.",
        "is_automated": False,
        "owner": "Security Team",
        "review_frequency_days": 180,
    },
    {
        "control_id": "GOV-003",
        "domain": "gov",
        "control_type": "preventive",
        "title": "Security Awareness Training",
        "description": "Alle Mitarbeiter absolvieren jährlich Security Awareness Training.",
        "pass_criteria": "100% Completion Rate für alle aktiven Mitarbeiter, Nachweis nicht älter als 12 Monate.",
        "implementation_guidance": "Training-Plattform einrichten (z.B. KnowBe4), Pflichttraining für Onboarding, jährliche Auffrischung.",
        "is_automated": False,
        "owner": "HR / Security Team",
        "review_frequency_days": 365,
    },
    {
        "control_id": "GOV-004",
        "domain": "gov",
        "control_type": "preventive",
        "title": "Change Management",
        "description": "Alle Code-Änderungen erfolgen über Pull Requests mit Review.",
        "pass_criteria": "100% der Merges in main/master via PR, mindestens 1 Reviewer pro PR.",
        "implementation_guidance": "Branch Protection Rules in GitHub aktivieren, CODEOWNERS definieren.",
        "code_reference": ".github/CODEOWNERS",
        "is_automated": True,
        "automation_tool": "GitHub Branch Protection",
        "owner": "Engineering Lead",
        "review_frequency_days": 30,
    },
    {
        "control_id": "GOV-005",
        "domain": "gov",
        "control_type": "corrective",
        "title": "Incident Response Plan",
        "description": "Dokumentierter Incident Response Plan mit Eskalationspfaden und Kontakten.",
        "pass_criteria": "IRP vorhanden, getestet innerhalb der letzten 12 Monate, Kontaktdaten aktuell.",
        "implementation_guidance": "IRP nach NIST SP 800-61 erstellen, Tabletop-Übungen durchführen.",
        "is_automated": False,
        "owner": "Security Team",
        "review_frequency_days": 365,
    },

    # =========================================================================
    # PRIV - Datenschutz & Privacy
    # =========================================================================
    {
        "control_id": "PRIV-001",
        "domain": "priv",
        "control_type": "preventive",
        "title": "Verarbeitungsverzeichnis (Art. 30)",
        "description": "Aktuelles Verzeichnis aller Verarbeitungstätigkeiten gemäß Art. 30 DSGVO.",
        "pass_criteria": "VVT vorhanden, vollständig (alle Kategorien), nicht älter als 6 Monate aktualisiert.",
        "implementation_guidance": "VVT mit allen erforderlichen Feldern: Zweck, Kategorien, Empfänger, Fristen, TOMs.",
        "is_automated": False,
        "owner": "Datenschutzbeauftragter",
        "review_frequency_days": 180,
    },
    {
        "control_id": "PRIV-002",
        "domain": "priv",
        "control_type": "preventive",
        "title": "DPIA durchgeführt (Art. 35)",
        "description": "Datenschutz-Folgenabschätzung für Hochrisiko-Verarbeitungen durchgeführt.",
        "pass_criteria": "DPIA für alle identifizierten Hochrisiko-Verarbeitungen vorhanden und dokumentiert.",
        "implementation_guidance": "DPIA nach Art. 35 Abs. 7 DSGVO: Beschreibung, Notwendigkeit, Risikobewertung, Maßnahmen.",
        "is_automated": False,
        "owner": "Datenschutzbeauftragter",
        "review_frequency_days": 365,
    },
    {
        "control_id": "PRIV-003",
        "domain": "priv",
        "control_type": "preventive",
        "title": "Privacy by Design (Art. 25)",
        "description": "Datenschutz durch Technikgestaltung und datenschutzfreundliche Voreinstellungen.",
        "pass_criteria": "PbD-Checkliste für alle neuen Features, Datensparsamkeit als Default.",
        "implementation_guidance": "PbD-Review in Feature-Development-Prozess integrieren, Minimaldatenerhebung als Standard.",
        "is_automated": False,
        "owner": "Engineering Lead / DPO",
        "review_frequency_days": 90,
    },
    {
        "control_id": "PRIV-004",
        "domain": "priv",
        "control_type": "corrective",
        "title": "Betroffenenrechte (Art. 15-22)",
        "description": "Prozess für Betroffenenrechte (Auskunft, Löschung, Portabilität) implementiert.",
        "pass_criteria": "DSR-Prozess dokumentiert, SLA < 30 Tage, Export-Funktion vorhanden.",
        "implementation_guidance": "Self-Service-Portal für DSR, automatisierte Löschfunktion, Export im maschinenlesbaren Format.",
        "code_reference": "backend/gdpr_api.py",
        "is_automated": True,
        "automation_tool": "Breakpilot GDPR Export",
        "owner": "Engineering Team",
        "review_frequency_days": 90,
    },
    {
        "control_id": "PRIV-005",
        "domain": "priv",
        "control_type": "preventive",
        "title": "AVV mit Auftragsverarbeitern",
        "description": "Auftragsverarbeitungsverträge mit allen Sub-Processors abgeschlossen.",
        "pass_criteria": "AVV für alle Auftragsverarbeiter vorhanden, Art. 28 Abs. 3 konform.",
        "implementation_guidance": "Liste aller Sub-Processors, AVV-Vorlagen nach Art. 28, jährliche Überprüfung.",
        "is_automated": False,
        "owner": "Legal / DPO",
        "review_frequency_days": 365,
    },
    {
        "control_id": "PRIV-006",
        "domain": "priv",
        "control_type": "preventive",
        "title": "TOMs dokumentiert (Art. 32)",
        "description": "Technische und organisatorische Maßnahmen gemäß Art. 32 DSGVO dokumentiert.",
        "pass_criteria": "TOM-Dokument vorhanden, alle Kategorien abgedeckt, aktuell.",
        "implementation_guidance": "TOMs nach Art. 32: Pseudonymisierung, Verschlüsselung, Wiederherstellung, regelmäßige Tests.",
        "is_automated": False,
        "owner": "Security Team / DPO",
        "review_frequency_days": 180,
    },
    {
        "control_id": "PRIV-007",
        "domain": "priv",
        "control_type": "preventive",
        "title": "PII-Logging verhindert",
        "description": "Personenbezogene Daten werden nicht in Logs geschrieben (PII Redaction).",
        "pass_criteria": "PII-Redactor aktiv, keine PII in Logs (stichprobenartige Prüfung).",
        "implementation_guidance": "PII-Redactor Middleware implementieren, regex-basierte Filterung für E-Mail, Namen, etc.",
        "code_reference": "backend/middleware/pii_redactor.py",
        "is_automated": True,
        "automation_tool": "PII Redactor Middleware",
        "owner": "Engineering Team",
        "review_frequency_days": 90,
    },

    # =========================================================================
    # IAM - Identity & Access Management
    # =========================================================================
    {
        "control_id": "IAM-001",
        "domain": "iam",
        "control_type": "preventive",
        "title": "RBAC implementiert",
        "description": "Role-Based Access Control mit dokumentierten Rollen und Berechtigungen.",
        "pass_criteria": "RBAC-Modell dokumentiert, Rollen im Code enforced, keine Hardcoded-Berechtigungen.",
        "implementation_guidance": "Rollen definieren (user, admin, dpo), Middleware für Berechtigungsprüfung.",
        "code_reference": "consent-service/internal/middleware/auth.go",
        "is_automated": True,
        "automation_tool": "JWT Role Claims",
        "owner": "Engineering Team",
        "review_frequency_days": 90,
    },
    {
        "control_id": "IAM-002",
        "domain": "iam",
        "control_type": "preventive",
        "title": "MFA für Admin-Accounts",
        "description": "Multi-Faktor-Authentifizierung für alle Admin-Zugänge aktiviert.",
        "pass_criteria": "100% MFA-Abdeckung für Admin-Accounts, Enforcement-Policy aktiv.",
        "implementation_guidance": "MFA über Identity Provider (Auth0, Keycloak) oder TOTP-Integration.",
        "is_automated": False,
        "owner": "Security Team",
        "review_frequency_days": 90,
    },
    {
        "control_id": "IAM-003",
        "domain": "iam",
        "control_type": "preventive",
        "title": "Mandantentrennung",
        "description": "Strikte Tenant-Isolation zwischen verschiedenen Kunden/Schulen.",
        "pass_criteria": "Tenant-ID in allen Queries, keine Cross-Tenant-Datenzugriffe möglich.",
        "implementation_guidance": "Tenant-ID als Pflichtfeld, Row-Level-Security in Queries, Penetration-Test.",
        "code_reference": "consent-service/internal/handlers/handlers.go",
        "is_automated": True,
        "automation_tool": "Database Query Filter",
        "owner": "Engineering Team",
        "review_frequency_days": 90,
    },
    {
        "control_id": "IAM-004",
        "domain": "iam",
        "control_type": "preventive",
        "title": "Session Management",
        "description": "Sichere Session-Verwaltung mit Token-Expiry und Rotation.",
        "pass_criteria": "Token-Expiry < 24h, Refresh-Token-Rotation, Logout invalidiert Token.",
        "implementation_guidance": "JWT mit kurzer Expiry, Refresh-Token-Flow, Token-Blacklisting bei Logout.",
        "code_reference": "consent-service/internal/services/auth_service.go",
        "is_automated": True,
        "automation_tool": "JWT Token Management",
        "owner": "Engineering Team",
        "review_frequency_days": 90,
    },
    {
        "control_id": "IAM-005",
        "domain": "iam",
        "control_type": "detective",
        "title": "Least Privilege",
        "description": "Regelmäßige Access Reviews zur Sicherstellung minimaler Berechtigungen.",
        "pass_criteria": "Vierteljährliche Access Reviews durchgeführt, überflüssige Rechte entfernt.",
        "implementation_guidance": "Access Review Prozess etablieren, automatisierte Reports über Berechtigungen.",
        "is_automated": False,
        "owner": "Security Team",
        "review_frequency_days": 90,
    },

    # =========================================================================
    # CRYPTO - Kryptografie
    # =========================================================================
    {
        "control_id": "CRYPTO-001",
        "domain": "crypto",
        "control_type": "preventive",
        "title": "Encryption at Rest",
        "description": "Sensible Daten sind im Ruhezustand verschlüsselt (AES-256).",
        "pass_criteria": "Datenbank-Verschlüsselung aktiv, Backup-Verschlüsselung aktiv.",
        "implementation_guidance": "PostgreSQL mit TDE oder pgcrypto, verschlüsselte Backups.",
        "is_automated": True,
        "automation_tool": "PostgreSQL Encryption",
        "owner": "Infrastructure Team",
        "review_frequency_days": 180,
    },
    {
        "control_id": "CRYPTO-002",
        "domain": "crypto",
        "control_type": "preventive",
        "title": "Encryption in Transit",
        "description": "Alle Datenübertragungen sind TLS 1.3 verschlüsselt.",
        "pass_criteria": "TLS 1.3 enforced, HSTS aktiv, keine unsicheren Cipher Suites.",
        "implementation_guidance": "Nginx/Traefik mit TLS 1.3 Mindestversion, HSTS Header, SSL Labs A+ Rating.",
        "is_automated": True,
        "automation_tool": "SSL Labs / testssl.sh",
        "owner": "Infrastructure Team",
        "review_frequency_days": 90,
    },
    {
        "control_id": "CRYPTO-003",
        "domain": "crypto",
        "control_type": "preventive",
        "title": "Key Management",
        "description": "Kryptografische Schlüssel sicher in Vault gespeichert mit Rotation.",
        "pass_criteria": "Keys in Vault, automatische Rotation, keine Hardcoded Secrets.",
        "implementation_guidance": "HashiCorp Vault oder AWS KMS, Key-Rotation alle 90 Tage.",
        "code_reference": "vault/",
        "is_automated": True,
        "automation_tool": "HashiCorp Vault",
        "owner": "Infrastructure Team",
        "review_frequency_days": 90,
    },
    {
        "control_id": "CRYPTO-004",
        "domain": "crypto",
        "control_type": "preventive",
        "title": "Password Hashing",
        "description": "Passwörter werden mit bcrypt oder Argon2 gehasht.",
        "pass_criteria": "bcrypt/Argon2 verwendet, Cost Factor angemessen, keine MD5/SHA1.",
        "implementation_guidance": "bcrypt mit Cost >= 10, keine eigenentwickelten Hash-Funktionen.",
        "code_reference": "consent-service/internal/services/auth_service.go",
        "is_automated": True,
        "automation_tool": "Semgrep Rule",
        "owner": "Engineering Team",
        "review_frequency_days": 180,
    },

    # =========================================================================
    # SDLC - Secure Development Lifecycle
    # =========================================================================
    {
        "control_id": "SDLC-001",
        "domain": "sdlc",
        "control_type": "detective",
        "title": "SAST Scanning",
        "description": "Static Application Security Testing in CI Pipeline integriert.",
        "pass_criteria": "Semgrep in CI, 0 High/Critical Findings, Blocking bei neuen Findings.",
        "implementation_guidance": "Semgrep mit OWASP Top 10 Rules, GitHub Actions Integration.",
        "code_reference": ".github/workflows/security.yml",
        "is_automated": True,
        "automation_tool": "Semgrep",
        "owner": "Engineering Team",
        "review_frequency_days": 7,
    },
    {
        "control_id": "SDLC-002",
        "domain": "sdlc",
        "control_type": "detective",
        "title": "Dependency Scanning",
        "description": "Automatische Überprüfung auf bekannte Schwachstellen in Dependencies.",
        "pass_criteria": "Trivy/Grype in CI, keine kritischen CVEs in Produktion.",
        "implementation_guidance": "Trivy für Container + Dependencies, Dependabot für automatische Updates.",
        "code_reference": ".github/workflows/security.yml",
        "is_automated": True,
        "automation_tool": "Trivy / Dependabot",
        "owner": "Engineering Team",
        "review_frequency_days": 7,
    },
    {
        "control_id": "SDLC-003",
        "domain": "sdlc",
        "control_type": "detective",
        "title": "Secret Detection",
        "description": "Automatische Erkennung von Secrets in Code und Commits.",
        "pass_criteria": "Gitleaks in CI, Pre-Commit-Hook aktiv, 0 Findings.",
        "implementation_guidance": "Gitleaks als Pre-Commit-Hook und in CI, Custom-Rules für eigene Secrets.",
        "code_reference": ".github/workflows/security.yml",
        "is_automated": True,
        "automation_tool": "Gitleaks",
        "owner": "Engineering Team",
        "review_frequency_days": 7,
    },
    {
        "control_id": "SDLC-004",
        "domain": "sdlc",
        "control_type": "preventive",
        "title": "Code Review",
        "description": "Alle Code-Änderungen werden von mindestens einem anderen Entwickler reviewed.",
        "pass_criteria": "100% PR-Coverage, mindestens 1 Approval pro PR.",
        "implementation_guidance": "GitHub Branch Protection, CODEOWNERS für kritische Pfade.",
        "is_automated": True,
        "automation_tool": "GitHub Branch Protection",
        "owner": "Engineering Lead",
        "review_frequency_days": 30,
    },
    {
        "control_id": "SDLC-005",
        "domain": "sdlc",
        "control_type": "preventive",
        "title": "SBOM Generation",
        "description": "Software Bill of Materials wird automatisch generiert.",
        "pass_criteria": "CycloneDX SBOM vorhanden, bei jedem Release aktualisiert.",
        "implementation_guidance": "cyclonedx-cli in Release-Pipeline, SBOM in GitHub Releases.",
        "is_automated": True,
        "automation_tool": "CycloneDX",
        "owner": "Engineering Team",
        "review_frequency_days": 30,
    },
    {
        "control_id": "SDLC-006",
        "domain": "sdlc",
        "control_type": "detective",
        "title": "Container Scanning",
        "description": "Docker Images werden auf Schwachstellen gescannt.",
        "pass_criteria": "Trivy Image Scan in CI, keine Critical/High in Base Images.",
        "implementation_guidance": "Trivy Image Scan vor Push zu Registry, Slim Base Images verwenden.",
        "code_reference": ".github/workflows/security.yml",
        "is_automated": True,
        "automation_tool": "Trivy Image Scan",
        "owner": "Engineering Team",
        "review_frequency_days": 7,
    },

    # =========================================================================
    # OPS - Betrieb & Monitoring
    # =========================================================================
    {
        "control_id": "OPS-001",
        "domain": "ops",
        "control_type": "detective",
        "title": "Audit Logging",
        "description": "Alle sicherheitsrelevanten Events werden geloggt.",
        "pass_criteria": "Login/Logout, Consent-Änderungen, Admin-Aktionen geloggt, Retention >= 1 Jahr.",
        "implementation_guidance": "Structured Logging mit Request-ID, zentrale Log-Aggregation.",
        "code_reference": "backend/audit_log.py",
        "is_automated": True,
        "automation_tool": "Structured Logging",
        "owner": "Engineering Team",
        "review_frequency_days": 90,
    },
    {
        "control_id": "OPS-002",
        "domain": "ops",
        "control_type": "corrective",
        "title": "Backup & Recovery",
        "description": "Tägliche Backups mit getesteter Wiederherstellung.",
        "pass_criteria": "Tägliche Backups, RTO < 4h, RPO < 24h, Recovery-Test vierteljährlich.",
        "implementation_guidance": "Automatisierte Backups, Offsite-Kopie, dokumentierter Recovery-Prozess.",
        "code_reference": "scripts/backup.sh",
        "is_automated": True,
        "automation_tool": "PostgreSQL pg_dump / Docker Volumes",
        "owner": "Infrastructure Team",
        "review_frequency_days": 90,
    },
    {
        "control_id": "OPS-003",
        "domain": "ops",
        "control_type": "detective",
        "title": "Incident Response",
        "description": "Mean Time to Detect (MTTD) für Security Incidents < 24h.",
        "pass_criteria": "Alerting konfiguriert, MTTD < 24h, dokumentierte Incidents.",
        "implementation_guidance": "Alert-Regeln für Anomalien, Pager-Rotation, Incident-Runbooks.",
        "is_automated": True,
        "automation_tool": "Prometheus / Alertmanager",
        "owner": "Engineering Team",
        "review_frequency_days": 30,
    },
    {
        "control_id": "OPS-004",
        "domain": "ops",
        "control_type": "corrective",
        "title": "Vulnerability Management",
        "description": "Definierte Patch-SLAs für Schwachstellen nach Severity.",
        "pass_criteria": "Critical < 7 Tage, High < 30 Tage, Medium < 90 Tage.",
        "implementation_guidance": "Vulnerability Tracking in Issues, SLA-Monitoring, Patch-Prozess.",
        "is_automated": False,
        "owner": "Engineering Team",
        "review_frequency_days": 30,
    },
    {
        "control_id": "OPS-005",
        "domain": "ops",
        "control_type": "detective",
        "title": "Monitoring & Alerting",
        "description": "Uptime Monitoring mit 99.9% Verfügbarkeitsziel.",
        "pass_criteria": "Uptime >= 99.9% (monatlich), Alerts bei Ausfällen < 5 Min.",
        "implementation_guidance": "Health-Checks, Uptime-Monitoring (Uptime Kuma), Status Page.",
        "is_automated": True,
        "automation_tool": "Uptime Kuma / Prometheus",
        "owner": "Infrastructure Team",
        "review_frequency_days": 30,
    },

    # =========================================================================
    # AI - KI-spezifisch (AI Act)
    # =========================================================================
    {
        "control_id": "AI-001",
        "domain": "ai",
        "control_type": "preventive",
        "title": "Training Data Governance",
        "description": "Dokumentation aller Trainingsdatenquellen und deren Lizenzierung.",
        "pass_criteria": "Datenquellen inventarisiert, Lizenzen dokumentiert, keine unlizenzierte Daten.",
        "implementation_guidance": "Data Catalog mit Quellen, Lizenzen, Verarbeitungszwecken.",
        "is_automated": False,
        "owner": "ML Team",
        "review_frequency_days": 180,
    },
    {
        "control_id": "AI-002",
        "domain": "ai",
        "control_type": "detective",
        "title": "Model Logging",
        "description": "Alle KI-Inferenzen werden für Nachvollziehbarkeit geloggt.",
        "pass_criteria": "Input/Output Logging für KI-Aufrufe, Retention >= 6 Monate.",
        "implementation_guidance": "LLM-Gateway mit Request/Response Logging, Token-Tracking.",
        "code_reference": "backend/llm_client.py",
        "is_automated": True,
        "automation_tool": "LLM Gateway Logging",
        "owner": "ML Team",
        "review_frequency_days": 90,
    },
    {
        "control_id": "AI-003",
        "domain": "ai",
        "control_type": "preventive",
        "title": "Human-in-the-Loop",
        "description": "Review-Prozess für KI-generierte Inhalte vor Veröffentlichung.",
        "pass_criteria": "HITL-Prozess dokumentiert, keine automatische Veröffentlichung ohne Review.",
        "implementation_guidance": "Review-Queue für KI-Outputs, Freigabe-Workflow.",
        "is_automated": False,
        "owner": "Product Team",
        "review_frequency_days": 90,
    },
    {
        "control_id": "AI-004",
        "domain": "ai",
        "control_type": "detective",
        "title": "Bias Monitoring",
        "description": "Regelmäßige Überprüfung von KI-Outputs auf Bias.",
        "pass_criteria": "Bias-Metriken definiert, vierteljährliche Überprüfung, Findings dokumentiert.",
        "implementation_guidance": "Fairness-Metriken (Demographic Parity, Equalized Odds), Bias-Audits.",
        "is_automated": False,
        "owner": "ML Team",
        "review_frequency_days": 90,
    },
    {
        "control_id": "AI-005",
        "domain": "ai",
        "control_type": "preventive",
        "title": "AI Act Risk Classification",
        "description": "Risikoklassifizierung der KI-Systeme gemäß EU AI Act dokumentiert.",
        "pass_criteria": "Alle KI-Systeme klassifiziert (minimal/limited/high/unacceptable), Dokumentation aktuell.",
        "implementation_guidance": "AI Act Risk Assessment Framework, Klassifizierung pro Use Case.",
        "is_automated": False,
        "owner": "Legal / ML Team",
        "review_frequency_days": 365,
    },

    # =========================================================================
    # CRA - CRA & Supply Chain
    # =========================================================================
    {
        "control_id": "CRA-001",
        "domain": "cra",
        "control_type": "preventive",
        "title": "SBOM vorhanden",
        "description": "Software Bill of Materials im CycloneDX oder SPDX Format.",
        "pass_criteria": "SBOM vorhanden, automatisch generiert, bei Release aktualisiert.",
        "implementation_guidance": "CycloneDX in CI, SBOM in GitHub Releases, automatische Updates.",
        "is_automated": True,
        "automation_tool": "CycloneDX / SPDX",
        "owner": "Engineering Team",
        "review_frequency_days": 30,
    },
    {
        "control_id": "CRA-002",
        "domain": "cra",
        "control_type": "corrective",
        "title": "Vulnerability Disclosure",
        "description": "Öffentliche Vulnerability Disclosure Policy (VDP) vorhanden.",
        "pass_criteria": "VDP veröffentlicht, Kontaktdaten aktuell, Prozess dokumentiert.",
        "implementation_guidance": "security.txt, SECURITY.md in Repository, Responsible Disclosure Policy.",
        "code_reference": "SECURITY.md",
        "is_automated": False,
        "owner": "Security Team",
        "review_frequency_days": 365,
    },
    {
        "control_id": "CRA-003",
        "domain": "cra",
        "control_type": "corrective",
        "title": "Patch-SLA",
        "description": "Dokumentierte und eingehaltene Patch-Zeiten für Schwachstellen.",
        "pass_criteria": "SLAs definiert und kommuniziert, Einhaltung >= 95%.",
        "implementation_guidance": "Patch-SLA: Critical < 7d, High < 30d, Medium < 90d.",
        "is_automated": False,
        "owner": "Engineering Team",
        "review_frequency_days": 30,
    },
    {
        "control_id": "CRA-004",
        "domain": "cra",
        "control_type": "preventive",
        "title": "End-of-Support Policy",
        "description": "EOL-Datum für Produktversionen kommuniziert.",
        "pass_criteria": "Support-Zeiträume dokumentiert, Kunden informiert, EOL >= 24 Monate vor Ende.",
        "implementation_guidance": "Support-Matrix veröffentlichen, EOL-Kommunikation an Kunden.",
        "is_automated": False,
        "owner": "Product Team",
        "review_frequency_days": 365,
    },

    # =========================================================================
    # AUD - Audit & Nachvollziehbarkeit
    # =========================================================================
    {
        "control_id": "AUD-001",
        "domain": "aud",
        "control_type": "detective",
        "title": "Traceability",
        "description": "Request-ID durchgängig in allen Logs für Nachverfolgbarkeit.",
        "pass_criteria": "Request-ID in allen Service-Logs, korrelierbar über Services.",
        "implementation_guidance": "X-Request-ID Header, Propagation über alle Services.",
        "code_reference": "backend/middleware/request_id.py",
        "is_automated": True,
        "automation_tool": "Request ID Middleware",
        "owner": "Engineering Team",
        "review_frequency_days": 90,
    },
    {
        "control_id": "AUD-002",
        "domain": "aud",
        "control_type": "corrective",
        "title": "Audit Export",
        "description": "ZIP-Export-Funktion für externe Prüfer funktional.",
        "pass_criteria": "Export-Funktion verfügbar, alle relevanten Daten enthalten, signiert.",
        "implementation_guidance": "Export mit Controls, Evidence, Risks als ZIP, SHA-256 Hash.",
        "code_reference": "backend/compliance/services/export_generator.py",
        "is_automated": True,
        "automation_tool": "Compliance Export Service",
        "owner": "Engineering Team",
        "review_frequency_days": 180,
    },
    {
        "control_id": "AUD-003",
        "domain": "aud",
        "control_type": "detective",
        "title": "Compliance Dashboard",
        "description": "Echtzeit-Compliance-Score und Status-Übersicht.",
        "pass_criteria": "Dashboard verfügbar, Score automatisch berechnet, Drill-Down möglich.",
        "implementation_guidance": "Dashboard mit Score-Berechnung, Regulation-Coverage, Trend-Anzeige.",
        "code_reference": "website/app/admin/compliance/page.tsx",
        "is_automated": True,
        "automation_tool": "Compliance Dashboard",
        "owner": "Engineering Team",
        "review_frequency_days": 30,
    },
]
