# Nachweise / Evidence (CP-NAC) Verknüpft Prüfnachweise mit Controls. Unterstützt manuelle Uploads sowie CI/CD-Automatisierung. **Prefix:** `CP-NAC` · **Frontend:** `https://macmini:3007/sdk/evidence` **Proxy:** `/api/sdk/v1/compliance/[[...path]]` → `backend-compliance:8002/compliance/...` --- ## Features - Manuelle Nachweis-Uploads (PDF, ZIP, ...) - CI/CD-Integration: Nachweise automatisch via Pipeline erfassen - Automatischer Control-Status-Update nach Nachweis-Ingest (`AutoRiskUpdater`) - CI-Nachweisstand-Abfrage pro Control --- ## Nachweistypen `test_results` · `audit_report` · `penetration_test` · `sast` · `dependency_scan` · `sbom` · `container_scan` · `secret_scan` · `code_review` --- ## Rechtsgrundlage | Artikel | Bezug | |---------|-------| | Art. 5 Abs. 2 DSGVO | Rechenschaftspflicht | | Art. 24 DSGVO | Nachweis der Compliance | | Art. 32 DSGVO | Sicherheitsmaßnahmen dokumentieren | --- ## API Endpoints | 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 ```json POST /evidence/collect { "control_id": "SDLC-001", "evidence_type": "test_results", "title": "Pytest Run 2026-03-05", "ci_job_id": "gh-actions-12345", "artifact_url": "https://github.com/.../artifacts/report.xml" } ``` Nach dem Collect wird automatisch der Control-Status aktualisiert (`AutoRiskUpdater`). --- ## Frontend **URL:** `https://macmini:3007/sdk/evidence` Tabelle mit Nachweis-Einträgen, filterbar nach Control und Typ. Upload-Button für manuelle Nachweise. CI-Status-Badge zeigt automatisierungsgrad pro Control. --- ## Datenbankschema ```sql compliance_evidence ( id UUID PRIMARY KEY, control_id VARCHAR REFERENCES compliance_controls(control_id), evidence_type VARCHAR, -- test_results/audit_report/... title TEXT, description TEXT, artifact_path TEXT, artifact_url TEXT, ci_job_id VARCHAR, status VARCHAR DEFAULT 'pending', collected_at TIMESTAMP, created_at TIMESTAMP ) ``` --- ## Tests **Testdatei:** `backend-compliance/tests/test_evidence_routes.py` **Anzahl Tests:** 11 · **Status:** ✅ alle bestanden (Stand 2026-03-05) ```bash cd backend-compliance python3 -m pytest tests/test_evidence_routes.py -v ```