Generation API

Automatische Generierung von Compliance-Dokumenten

Uebersicht

Die Generation API nutzt LLM-Technologie (Claude) zur automatischen Erstellung von Compliance-Dokumenten basierend auf Ihrem SDK-State:

  • DSFA - Datenschutz-Folgenabschaetzung
  • TOM - Technische und Organisatorische Massnahmen
  • VVT - Verarbeitungsverzeichnis nach Art. 30 DSGVO

LLM-Model

Die Generierung verwendet Claude 3.5 Sonnet fuer optimale Qualitaet bei deutschen Rechtstexten. RAG-Context wird automatisch einbezogen.

POST /generate/dsfa

Generiert eine Datenschutz-Folgenabschaetzung basierend auf dem aktuellen State.

Request Body

ParameterTypeRequiredDescription
tenantIdstringYesTenant-ID fuer State-Zugriff
useCaseIdstringNoOptional: Nur fuer bestimmten Use Case generieren
includeRisksbooleanNoRisiken aus Risk Matrix einbeziehen (default: true)
includeControlsbooleanNoBestehende Controls referenzieren (default: true)
languagestringNoSprache: de, en (default: de)

Request

cURL
curl -X POST "https://api.breakpilot.io/sdk/v1/generate/dsfa" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tenantId": "your-tenant-id",
    "useCaseId": "uc-ki-kundenanalyse",
    "includeRisks": true,
    "includeControls": true,
    "language": "de"
  }'

Response (200 OK)

Response
{
  "success": true,
  "data": {
    "dsfa": {
      "id": "dsfa-2026-02-04-abc123",
      "version": "1.0",
      "status": "DRAFT",
      "createdAt": "2026-02-04T12:00:00Z",
      "useCase": {
        "id": "uc-ki-kundenanalyse",
        "name": "KI-gestuetzte Kundenanalyse",
        "description": "Analyse von Kundenverhalten mittels ML..."
      },
      "sections": {
        "systematicDescription": {
          "title": "1. Systematische Beschreibung",
          "content": "Die geplante Verarbeitungstaetigkeit umfasst..."
        },
        "necessityAssessment": {
          "title": "2. Bewertung der Notwendigkeit",
          "content": "Die Verarbeitung ist notwendig fuer..."
        },
        "riskAssessment": {
          "title": "3. Risikobewertung",
          "risks": [
            {
              "id": "risk-1",
              "title": "Unbefugter Datenzugriff",
              "severity": "HIGH",
              "likelihood": 3,
              "impact": 4,
              "description": "...",
              "mitigations": ["Verschluesselung", "Zugriffskontrolle"]
            }
          ]
        },
        "mitigationMeasures": {
          "title": "4. Abhilfemassnahmen",
          "controls": [...]
        },
        "stakeholderConsultation": {
          "title": "5. Einbeziehung Betroffener",
          "content": "..."
        },
        "dpoOpinion": {
          "title": "6. Stellungnahme des DSB",
          "content": "Ausstehend - Freigabe erforderlich"
        }
      },
      "conclusion": {
        "overallRisk": "MEDIUM",
        "recommendation": "PROCEED_WITH_CONDITIONS",
        "conditions": [
          "Implementierung der TOM-Empfehlungen",
          "Regelmaessige Ueberpruefung"
        ]
      }
    },
    "generationMeta": {
      "model": "claude-3.5-sonnet",
      "ragContextUsed": true,
      "tokensUsed": 4250,
      "durationMs": 8500
    }
  }
}

POST /generate/tom

Generiert technische und organisatorische Massnahmen.

Request Body

ParameterTypeRequiredDescription
tenantIdstringYesTenant-ID
categoriesstring[]NoTOM-Kategorien: access_control, encryption, pseudonymization, etc.
basedOnRisksbooleanNoTOMs basierend auf Risk Matrix generieren (default: true)

Request

cURL
curl -X POST "https://api.breakpilot.io/sdk/v1/generate/tom" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tenantId": "your-tenant-id",
    "categories": ["access_control", "encryption", "backup"],
    "basedOnRisks": true
  }'

Response (200 OK)

Response
{
  "success": true,
  "data": {
    "toms": [
      {
        "id": "tom-1",
        "category": "access_control",
        "categoryLabel": "Zugangskontrolle",
        "title": "Multi-Faktor-Authentifizierung",
        "description": "Implementierung von MFA fuer alle Systemzugaenge",
        "technicalMeasures": [
          "TOTP-basierte 2FA",
          "Hardware Security Keys (FIDO2)"
        ],
        "organizationalMeasures": [
          "Schulung der Mitarbeiter",
          "Dokumentation der Zugaenge"
        ],
        "article32Reference": "Art. 32 Abs. 1 lit. b DSGVO",
        "priority": "HIGH",
        "implementationStatus": "PLANNED"
      },
      {
        "id": "tom-2",
        "category": "encryption",
        "categoryLabel": "Verschluesselung",
        "title": "Transportverschluesselung",
        "description": "TLS 1.3 fuer alle Datenuebert\\ragungen",
        "technicalMeasures": [
          "TLS 1.3 mit PFS",
          "HSTS Header"
        ],
        "organizationalMeasures": [
          "Zertifikatsmanagement",
          "Regelmaessige Audits"
        ],
        "article32Reference": "Art. 32 Abs. 1 lit. a DSGVO",
        "priority": "CRITICAL",
        "implementationStatus": "IMPLEMENTED"
      }
    ],
    "summary": {
      "totalMeasures": 20,
      "byCategory": {
        "access_control": 5,
        "encryption": 4,
        "backup": 3,
        "monitoring": 4,
        "incident_response": 4
      },
      "implementationProgress": {
        "implemented": 12,
        "in_progress": 5,
        "planned": 3
      }
    }
  }
}

POST /generate/vvt

Generiert ein Verarbeitungsverzeichnis nach Art. 30 DSGVO.

Request Body

ParameterTypeRequiredDescription
tenantIdstringYesTenant-ID
organizationInfoobjectNoOrganisationsdaten (Name, Anschrift, DSB-Kontakt)
includeRetentionPoliciesbooleanNoLoeschfristen einbeziehen (default: true)

Request

cURL
curl -X POST "https://api.breakpilot.io/sdk/v1/generate/vvt" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tenantId": "your-tenant-id",
    "organizationInfo": {
      "name": "Beispiel GmbH",
      "address": "Musterstrasse 1, 10115 Berlin",
      "dpoContact": "datenschutz@beispiel.de"
    },
    "includeRetentionPolicies": true
  }'

Response (200 OK)

Response
{
  "success": true,
  "data": {
    "vvt": {
      "id": "vvt-2026-02-04",
      "version": "1.0",
      "organization": {
        "name": "Beispiel GmbH",
        "address": "Musterstrasse 1, 10115 Berlin",
        "dpoContact": "datenschutz@beispiel.de"
      },
      "processingActivities": [
        {
          "id": "pa-1",
          "name": "Kundendatenverarbeitung",
          "purpose": "Vertragserfuellung und Kundenservice",
          "legalBasis": "Art. 6 Abs. 1 lit. b DSGVO",
          "dataCategories": ["Kontaktdaten", "Vertragsdaten", "Zahlungsdaten"],
          "dataSubjects": ["Kunden", "Interessenten"],
          "recipients": ["Zahlungsdienstleister", "Versanddienstleister"],
          "thirdCountryTransfers": {
            "exists": false,
            "countries": [],
            "safeguards": null
          },
          "retentionPeriod": "10 Jahre nach Vertragsende (HGB)",
          "technicalMeasures": ["Verschluesselung", "Zugriffskontrolle"]
        }
      ],
      "lastUpdated": "2026-02-04T12:00:00Z"
    }
  }
}

SDK Integration

document-generation.ts
import { getSDKBackendClient } from '@breakpilot/compliance-sdk'

const client = getSDKBackendClient()

// DSFA generieren
async function generateDSFA(useCaseId: string) {
  const dsfa = await client.generateDSFA({
    useCaseId,
    includeRisks: true,
    includeControls: true,
  })

  console.log('DSFA generiert:', dsfa.id)
  console.log('Gesamtrisiko:', dsfa.conclusion.overallRisk)
  return dsfa
}

// TOMs generieren
async function generateTOMs() {
  const toms = await client.generateTOM({
    categories: ['access_control', 'encryption'],
    basedOnRisks: true,
  })

  console.log(`${toms.length} TOMs generiert`)
  return toms
}

// VVT generieren
async function generateVVT() {
  const vvt = await client.generateVVT({
    organizationInfo: {
      name: 'Beispiel GmbH',
      address: 'Musterstrasse 1',
      dpoContact: 'dpo@beispiel.de',
    },
  })

  console.log(`VVT mit ${vvt.processingActivities.length} Verarbeitungen`)
  return vvt
}

Kosten

Die Dokumentengenerierung verbraucht LLM-Tokens. Durchschnittliche Kosten: DSFA ~5.000 Tokens, TOMs ~3.000 Tokens, VVT ~4.000 Tokens. Enterprise-Kunden haben unbegrenzte Generierungen.