Files
breakpilot-compliance/docs-src/services/sdk-modules/compliance-kern.md
Benjamin Admin a1980cd12d
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 37s
CI / test-python-backend-compliance (push) Successful in 33s
CI / test-python-document-crawler (push) Successful in 23s
CI / test-python-dsms-gateway (push) Successful in 18s
feat(reporting+docs): tenant-ID-Validierung, Go-Tests, 4 MkDocs-Einzelseiten
- reporting_handlers.go: uuid.Nil-Check vor Store-Aufruf (→ 400)
- reporting_handlers_test.go: 4 MissingTenantID-Tests (PASS) + 4 WithTenant-Tests (SKIP)
- docs-src: requirements.md, controls.md, evidence.md, risks.md (je mit API, Schema, Tests)
- mkdocs.yml: 4 neue Nav-Einträge + \n-Bug auf Zeile 91 behoben
- compliance-kern.md: Link-Hinweise zu Detailseiten ergänzt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 18:25:26 +01:00

7.7 KiB
Raw Blame History

Compliance-Kern-Module (Paket 3)

Vier Module bilden das technische Rückgrat der Compliance-Plattform: Anforderungen, Controls, Nachweise und Risiken.

Sie sind miteinander verknüpft: Anforderungen erzeugen Controls → Controls verlangen Nachweise → Risiken werden durch Controls gemindert.

Detailseiten — Jedes Modul hat eine eigene Seite mit vollständiger API-Referenz und Schema: Anforderungen (CP-ANF) · Controls (CP-CTR) · Nachweise (CP-NAC) · Risiken (CP-RSK)


Überblick

Modul Prefix Endpunkte Besonderheiten
CP-ANF Anforderungen /compliance/requirements 6 Pagination, RAG-Kontext, Audit-Tracking
CP-CTR Controls /compliance/controls 6 Domain-Enum, Status-Enum, Evidence-Count
CP-NAC Nachweise /evidence 6 CI/CD-Ingest, File-Upload, Auto-Risk-Update
CP-RSK Risiken /risks 5 Risikomatrix, Likelihood × Impact

Frontend: https://macmini:3007/sdk/anforderungen, /sdk/controls, /sdk/evidence, /sdk/risks

Proxy: /api/sdk/v1/compliance/[[...path]]backend-compliance:8002/compliance/...


CP-ANF — Anforderungen

Verwaltet regulatorische Anforderungen (DSGVO, AI Act, CRA, NIS2 etc.).

Endpunkte

Methode Pfad Beschreibung
GET /compliance/requirements Paginierte Liste (page, page_size, search, is_applicable)
GET /compliance/requirements/{id} Einzelne Anforderung + optionaler RAG-Rechtskontext
GET /compliance/regulations/{code}/requirements Alle Anforderungen einer Regulierung
POST /compliance/requirements Neue Anforderung anlegen
PUT /compliance/requirements/{id} Implementation-Status, Audit-Notizen aktualisieren
DELETE /compliance/requirements/{id} Anforderung löschen

Request-Beispiel (POST)

{
  "regulation_id": "uuid-der-regulierung",
  "article": "Art. 32",
  "title": "Sicherheit der Verarbeitung",
  "is_applicable": true,
  "priority": 1
}

Response-Felder (RequirementResponse)

Feld Typ Beschreibung
id string UUID
regulation_code string z.B. "GDPR", "AI_ACT"
article string Artikel-Referenz
implementation_status string not_started / implemented / partial
audit_status string pending / passed / failed
last_audit_date datetime? Letztes Audit-Datum

RAG-Rechtskontext

GET /compliance/requirements/{id}?include_legal_context=true

Gibt zusätzlich legal_context[] mit RAG-Ergebnissen zurück:

{
  "legal_context": [
    {
      "text": "...",
      "regulation_code": "GDPR",
      "article": "Art. 32",
      "score": 0.92,
      "source_url": "https://eur-lex.europa.eu/..."
    }
  ]
}

CP-CTR — Controls

Verwaltet technische und organisatorische Kontrollen (TOMs, Prozesse).

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

Endpunkte

Methode Pfad Beschreibung
GET /compliance/controls Liste (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

POST /compliance/ai/suggest-controls
{
  "requirement_id": "uuid-der-anforderung"
}

Gibt bis zu 5 KI-generierte Control-Vorschläge zurück, die auf dem Inhalt des RAG-Corpus basieren:

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

CP-NAC — Nachweise (Evidence)

Verknüpft Prüfnachweise mit Controls. Unterstützt CI/CD-Automatisierung.

Nachweistypen

test_results · audit_report · penetration_test · sast · dependency_scan · sbom · container_scan · secret_scan · code_review

Endpunkte

Methode Pfad Beschreibung
GET /evidence Liste (control_id, evidence_type, status, page, limit)
POST /evidence Nachweis manuell anlegen
DELETE /evidence/{id} Nachweis löschen
POST /evidence/upload Datei hochladen (PDF, ZIP, ...)
POST /evidence/collect CI/CD-Nachweis automatisch erfassen
GET /evidence/ci-status CI-Nachweisstand für eine Kontrolle

CI/CD-Integration

POST /evidence/collect
{
  "control_id": "SDLC-001",
  "evidence_type": "test_results",
  "title": "Pytest Run 2024-03-01",
  "ci_job_id": "gh-actions-12345",
  "artifact_url": "https://github.com/.../artifacts/report.xml"
}

Nach dem Collect wird automatisch der Control-Status aktualisiert (AutoRiskUpdater).


CP-RSK — Risiken

Verwaltet Datenschutz- und KI-Risiken (Risikobewertung nach Likelihood × Impact).

Endpunkte

Methode Pfad Beschreibung
GET /risks Liste (category, status, risk_level)
POST /risks Neues Risiko anlegen
PUT /risks/{risk_id} Risiko aktualisieren (Status, Restrisiko)
DELETE /risks/{risk_id} Risiko löschen
GET /risks/matrix Risikomatrix (Likelihood × Impact)

Risikomatrix

GET /risks/matrix
{
  "matrix": {
    "3": { "4": ["RISK-001", "RISK-007"] },
    "1": { "1": [] }
  },
  "risks": [...]
}

Die Matrix ist nach likelihood (15) → impact (15) → [risk_ids] strukturiert.

Risikobewertung

Inherent Risk Likelihood × Impact
low ≤ 4
medium 59
high 1019
critical ≥ 20

Tests

cd backend-compliance

# Anforderungen
python3 -m pytest tests/test_requirement_routes.py -v

# Controls
python3 -m pytest tests/test_control_routes.py -v

# Nachweise
python3 -m pytest tests/test_evidence_routes.py -v

# Risiken
python3 -m pytest tests/test_risk_routes.py -v

# Alle 4 Module
python3 -m pytest tests/test_requirement_routes.py tests/test_control_routes.py \
    tests/test_evidence_routes.py tests/test_risk_routes.py -v

Testabdeckung (Stand 2026-03-05): 74 Tests, alle bestanden.

Datei Tests Status
test_requirement_routes.py 18
test_control_routes.py 21
test_evidence_routes.py 11
test_risk_routes.py 16 (+ 8 aus Paket 2)

Datenbank-Schema

-- Anforderungen
compliance_requirements (id, regulation_id, article, title, implementation_status, ...)

-- Controls
compliance_controls (id, control_id, domain, control_type, title, status, ...)

-- Nachweise
compliance_evidence (id, control_id, evidence_type, title, artifact_path, status, ...)

-- Risiken
compliance_risks (id, risk_id, title, category, likelihood, impact, inherent_risk, ...)

Alle Tabellen werden beim Start via SQLAlchemy Base.metadata.create_all() angelegt.