""" 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, }, ]