import { DevPortalLayout, ApiEndpoint, CodeBlock, ParameterTable, InfoBox } from '@/components/DevPortalLayout' export default function DsfaApiPage() { return (

Übersicht

Die DSFA API ermöglicht die vollständige Verwaltung von Datenschutz-Folgenabschätzungen gemäß Art. 35 DSGVO. Alle DSFAs werden backend-persistent gespeichert und mit vollständigem Audit-Trail protokolliert.

Eine DSFA ist zwingend erforderlich bei voraussichtlich hohem Risiko für Betroffene: automatisierte Entscheidungen / Profiling, umfangreiche Verarbeitung sensibler Daten, systematische Überwachung öffentlicher Bereiche oder KI-Hochrisiko-Systeme (EU AI Act). Alle Endpoints akzeptieren tenant_id als Query-Parameter. Ohne Angabe wird default als Tenant-ID verwendet. {/* ===================================================================== */} {/* Liste */} {/* ===================================================================== */}

GET /dsfa

Gibt eine gefilterte Liste aller DSFAs für einen Tenant zurück.

Query-Parameter

{`curl -X GET "https://api.breakpilot.io/sdk/v1/dsfa?tenant_id=mein-tenant&status=in-review" \\ -H "Authorization: Bearer YOUR_API_KEY"`} {`[ { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "tenant_id": "mein-tenant", "title": "DSFA - Bewerber-Management-System", "description": "KI-gestütztes Bewerber-Screening", "status": "in-review", "risk_level": "high", "processing_activity": "Automatisierte Bewertung von Bewerbungen", "data_categories": ["Kontaktdaten", "Beruflicher Werdegang"], "recipients": ["HR-Abteilung"], "measures": ["Verschlüsselung", "Menschliche Prüfung"], "approved_by": null, "approved_at": null, "created_by": "admin", "created_at": "2026-03-04T10:00:00", "updated_at": "2026-03-04T10:00:00" } ]`} {/* ===================================================================== */} {/* Erstellen */} {/* ===================================================================== */}

POST /dsfa

Erstellt eine neue DSFA. Gibt HTTP 201 mit dem erstellten Datensatz zurück.

{`curl -X POST "https://api.breakpilot.io/sdk/v1/dsfa?tenant_id=mein-tenant" \\ -H "Authorization: Bearer YOUR_API_KEY" \\ -H "Content-Type: application/json" \\ -d '{ "title": "DSFA - Video-Überwachung Büro", "description": "Videoüberwachung zu Sicherheitszwecken", "status": "draft", "risk_level": "medium", "processing_activity": "Videoüberwachung im Eingangsbereich", "data_categories": ["Bilddaten", "Bewegungsdaten"], "recipients": ["Sicherheitsdienst"], "measures": ["Löschfristen 72h", "Hinweisschilder", "Zugangsbeschränkung"], "created_by": "dsb@beispiel.de" }'`} {`{ "id": "7b3a1c9d-4e2f-4a8b-9c1d-5f6a7b8c9d0e", "tenant_id": "mein-tenant", "title": "DSFA - Video-Überwachung Büro", "status": "draft", "risk_level": "medium", "data_categories": ["Bilddaten", "Bewegungsdaten"], "measures": ["Löschfristen 72h", "Hinweisschilder", "Zugangsbeschränkung"], "created_at": "2026-03-04T12:00:00", "updated_at": "2026-03-04T12:00:00" }`} status muss einer der Werte draft, in-review,{' '} approved, needs-update sein. risk_level muss low, medium, high{' '} oder critical sein. Ungültige Werte → HTTP 422. {/* ===================================================================== */} {/* Einzeln abrufen */} {/* ===================================================================== */}

GET /dsfa/{'{id}'}

Gibt eine einzelne DSFA anhand ihrer UUID zurück.

{`curl -X GET "https://api.breakpilot.io/sdk/v1/dsfa/7b3a1c9d-4e2f-4a8b-9c1d-5f6a7b8c9d0e?tenant_id=mein-tenant" \\ -H "Authorization: Bearer YOUR_API_KEY"`} {/* ===================================================================== */} {/* Aktualisieren */} {/* ===================================================================== */}

PUT /dsfa/{'{id}'}

Aktualisiert eine DSFA. Alle Felder sind optional (Partial Update mit{' '} exclude_none). Nur gesetzte Felder werden überschrieben.

{`curl -X PUT "https://api.breakpilot.io/sdk/v1/dsfa/7b3a1c9d?tenant_id=mein-tenant" \\ -H "Authorization: Bearer YOUR_API_KEY" \\ -H "Content-Type: application/json" \\ -d '{ "measures": ["Löschfristen 72h", "Hinweisschilder", "Biometrischer Zugang"], "risk_level": "high" }'`} {/* ===================================================================== */} {/* Status-Wechsel */} {/* ===================================================================== */}

PATCH /dsfa/{'{id}'}/status

Schnell-Statuswechsel ohne vollständiges Update. Bei Status{' '} approved wird approved_at automatisch gesetzt.

Request Body

{`curl -X PATCH "https://api.breakpilot.io/sdk/v1/dsfa/7b3a1c9d/status?tenant_id=mein-tenant" \\ -H "Authorization: Bearer YOUR_API_KEY" \\ -H "Content-Type: application/json" \\ -d '{ "status": "approved", "approved_by": "Max Mustermann (DSB)" }'`} {/* ===================================================================== */} {/* Löschen */} {/* ===================================================================== */}

DELETE /dsfa/{'{id}'}

Löscht eine DSFA gemäß Art. 17 DSGVO. Die Löschung wird im Audit-Log protokolliert.

{`curl -X DELETE "https://api.breakpilot.io/sdk/v1/dsfa/7b3a1c9d?tenant_id=mein-tenant" \\ -H "Authorization: Bearer YOUR_API_KEY"`} {`{ "success": true, "message": "DSFA 7b3a1c9d gelöscht" }`} {/* ===================================================================== */} {/* Statistiken */} {/* ===================================================================== */}

GET /dsfa/stats

Gibt Zähler nach Status und Risiko-Level zurück.

{`curl -X GET "https://api.breakpilot.io/sdk/v1/dsfa/stats?tenant_id=mein-tenant" \\ -H "Authorization: Bearer YOUR_API_KEY"`} {`{ "total": 5, "by_status": { "draft": 2, "in-review": 1, "approved": 2 }, "by_risk_level": { "low": 1, "medium": 2, "high": 2 }, "draft_count": 2, "in_review_count": 1, "approved_count": 2, "needs_update_count": 0 }`} {/* ===================================================================== */} {/* Audit-Log */} {/* ===================================================================== */}

GET /dsfa/audit-log

Gibt den vollständigen Audit-Trail aller DSFA-Aktionen zurück.

Query-Parameter

{`[ { "id": "uuid", "tenant_id": "mein-tenant", "dsfa_id": "7b3a1c9d-...", "action": "STATUS_CHANGE", "changed_by": "system", "old_values": { "status": "in-review" }, "new_values": { "status": "approved" }, "created_at": "2026-03-04T12:30:00" } ]`} Folgende Aktionen werden protokolliert:{' '} CREATE, UPDATE, DELETE, STATUS_CHANGE. {/* ===================================================================== */} {/* Alle Endpoints */} {/* ===================================================================== */}

Alle Endpoints im Überblick

) }