# Controls (CP-CTR) Verwaltet technische und organisatorische Kontrollen (TOMs, Prozesse) und deren Prüfstatus. **Prefix:** `CP-CTR` · **Frontend:** `https://macmini:3007/sdk/controls` **Proxy:** `/api/sdk/v1/compliance/[[...path]]` → `backend-compliance:8002/compliance/...` --- ## Features - Domain-basierte Filterung (gov, priv, iam, crypto, sdlc, ops, ai, cra, aud) - Status-Tracking: pass / partial / fail / planned / n/a - Evidence-Count pro Control - KI-basierte Control-Vorschläge via RAG - Automatisierte Controls via CI/CD-Ingest --- ## Rechtsgrundlage | Artikel | Bezug | |---------|-------| | Art. 24 DSGVO | Verantwortlichkeit des Verantwortlichen | | Art. 32 DSGVO | Sicherheit der Verarbeitung (TOMs) | | Art. 9 AI Act | Risikomanagementsystem | --- ## Status-Enum | Wert | Bedeutung | |------|-----------| | `pass` | Vollständig implementiert und geprüft | | `partial` | Teilweise implementiert | | `fail` | Nicht bestanden | | `planned` | In Planung | | `n/a` | Nicht anwendbar | ## Domain-Enum `gov` · `priv` · `iam` · `crypto` · `sdlc` · `ops` · `ai` · `cra` · `aud` --- ## API Endpoints | Methode | Pfad | Beschreibung | |---------|------|--------------| | `GET` | `/compliance/controls` | Liste mit Filtern (`domain`, `status`, `is_automated`, `search`) | | `GET` | `/compliance/controls/paginated` | Paginiert (`page`, `page_size`) | | `GET` | `/compliance/controls/{control_id}` | Einzelne Kontrolle + Evidence-Count | | `PUT` | `/compliance/controls/{control_id}` | Titel, Status, Notizen aktualisieren | | `PUT` | `/compliance/controls/{control_id}/review` | Kontrolle als geprüft markieren | | `GET` | `/compliance/controls/by-domain/{domain}` | Alle Controls einer Domain | ### KI-Controls aus RAG vorschlagen ```http POST /compliance/ai/suggest-controls { "requirement_id": "uuid-der-anforderung" } ``` Gibt bis zu 5 KI-generierte Control-Vorschläge zurück: ```json { "requirement_id": "...", "suggestions": [ { "control_id": "GOV-KI-001", "domain": "gov", "title": "Datenschutzbeauftragter für KI-Systeme", "description": "...", "pass_criteria": "DSB nachweislich ernannt", "is_automated": false, "priority": 1, "confidence_score": 0.87 } ] } ``` --- ## Frontend **URL:** `https://macmini:3007/sdk/controls` Tabelle mit Domain-Tabs und Status-Badges. "KI-Controls aus RAG vorschlagen"-Button öffnet ein Modal mit Vorschlägen basierend auf einer ausgewählten Anforderung. --- ## Datenbankschema ```sql compliance_controls ( id UUID PRIMARY KEY, control_id VARCHAR UNIQUE, -- z.B. "GOV-001" domain VARCHAR, -- gov/priv/iam/... control_type VARCHAR, -- technical/organizational title TEXT, description TEXT, status VARCHAR DEFAULT 'planned', is_automated BOOLEAN DEFAULT false, evidence_count INTEGER DEFAULT 0, last_review TIMESTAMP, notes TEXT, created_at TIMESTAMP, updated_at TIMESTAMP ) ``` --- ## Tests **Testdatei:** `backend-compliance/tests/test_control_routes.py` **Anzahl Tests:** 21 · **Status:** ✅ alle bestanden (Stand 2026-03-05) ```bash cd backend-compliance python3 -m pytest tests/test_control_routes.py -v ```