Files
breakpilot-compliance/docs-src/services/ai-compliance-sdk/ARCHITECTURE.md
Benjamin Admin d9f819e5be
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 33s
CI / test-python-backend-compliance (push) Successful in 27s
CI / test-python-document-crawler (push) Successful in 20s
CI / test-python-dsms-gateway (push) Successful in 16s
docs+tests: Phase 2 RAG audit — missing tests, dev docs, SDK flow page
- Add rag-query.test.ts (7 Jest tests for shared queryRAG utility)
- Add test_routes_legal_context.py (3 tests for ?include_legal_context param)
- Update ARCHITECTURE.md with multi-collection RAG section (3.3)
- Update DEVELOPER.md with RAG usage examples, collection table, error tolerance
- Add SDK flow page with updated requirements + DSFA RAG descriptions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 09:26:57 +01:00

54 KiB

UCCA - Use-Case Compliance & Feasibility Advisor

Systemarchitektur

1. Übersicht

Das UCCA-System ist ein deterministisches Compliance-Bewertungssystem für KI-Anwendungsfälle. Es kombiniert regelbasierte Evaluation mit optionaler LLM-Erklärung und semantischer Rechtstextsuche.

┌─────────────────────────────────────────────────────────────────────────────┐
│                              UCCA System                                      │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                               │
│   ┌──────────────┐    ┌──────────────┐    ┌──────────────┐                  │
│   │   Frontend   │───>│   SDK API    │───>│  PostgreSQL  │                  │
│   │  (Next.js)   │    │    (Go)      │    │   Database   │                  │
│   └──────────────┘    └──────┬───────┘    └──────────────┘                  │
│                              │                                               │
│         ┌────────────────────┼────────────────────┐                         │
│         │                    │                    │                         │
│         ▼                    ▼                    ▼                         │
│   ┌──────────────┐    ┌──────────────┐    ┌──────────────┐                  │
│   │ Policy       │    │ Escalation   │    │  Legal RAG   │                  │
│   │ Engine       │    │ Workflow     │    │  (Qdrant)    │                  │
│   │ (45 Regeln)  │    │ (E0-E3)      │    │ 2,274 Chunks │                  │
│   └──────────────┘    └──────────────┘    └──────────────┘                  │
│         │                    │                    │                         │
│         └────────────────────┴────────────────────┘                         │
│                              │                                               │
│                              ▼                                               │
│                       ┌──────────────┐                                       │
│                       │ LLM Provider │                                       │
│                       │ (Ollama/API) │                                       │
│                       └──────────────┘                                       │
│                                                                               │
└─────────────────────────────────────────────────────────────────────────────┘

2. Kernprinzip

"LLM ist NICHT die Quelle der Wahrheit. Wahrheit = Regeln + Evidenz. LLM = Übersetzer + Subsumptionshelfer"

Das System folgt einem strikten Human-in-the-Loop Ansatz:

  1. Deterministische Regeln treffen alle Compliance-Entscheidungen
  2. LLM erklärt nur Ergebnisse, überschreibt nie BLOCK-Entscheidungen
  3. Menschen (DSB, Legal) treffen finale Entscheidungen bei kritischen Fällen

3. Komponenten

3.1 Policy Engine (internal/ucca/rules.go)

Die Policy Engine evaluiert Use-Cases gegen ~45 deterministische Regeln.

┌─────────────────────────────────────────────────────────────────┐
│                        Policy Engine                             │
├─────────────────────────────────────────────────────────────────┤
│                                                                   │
│  UseCaseIntake ──────────────────────────────────────────────>  │
│       │                                                           │
│       ▼                                                           │
│  ┌─────────────────────────────────────────────────────────────┐ │
│  │ Regelkategorien (A-J)                                       │ │
│  ├─────────────────────────────────────────────────────────────┤ │
│  │ A. Datenklassifikation    │ R-001 bis R-006 │ 6 Regeln    │ │
│  │ B. Zweck & Kontext        │ R-010 bis R-013 │ 4 Regeln    │ │
│  │ C. Automatisierung        │ R-020 bis R-025 │ 6 Regeln    │ │
│  │ D. Training vs Nutzung    │ R-030 bis R-035 │ 6 Regeln    │ │
│  │ E. Speicherung            │ R-040 bis R-042 │ 3 Regeln    │ │
│  │ F. Hosting                │ R-050 bis R-052 │ 3 Regeln    │ │
│  │ G. Transparenz            │ R-060 bis R-062 │ 3 Regeln    │ │
│  │ H. Domain-spezifisch      │ R-070 bis R-074 │ 5 Regeln    │ │
│  │ I. Aggregation            │ R-090 bis R-092 │ 3 Regeln    │ │
│  │ J. Erklärung              │ R-100          │ 1 Regel     │ │
│  └─────────────────────────────────────────────────────────────┘ │
│       │                                                           │
│       ▼                                                           │
│  AssessmentResult                                                 │
│    ├── feasibility: YES | CONDITIONAL | NO                        │
│    ├── risk_score: 0-100                                          │
│    ├── risk_level: MINIMAL | LOW | MEDIUM | HIGH | CRITICAL       │
│    ├── triggered_rules: []TriggeredRule                           │
│    ├── required_controls: []RequiredControl                       │
│    ├── recommended_architecture: []PatternRecommendation          │
│    └── forbidden_patterns: []ForbiddenPattern                     │
│                                                                   │
└─────────────────────────────────────────────────────────────────┘

Regel-Severities:

  • INFO: Informativ, kein Risiko-Impact
  • WARN: Warnung, erhöht Risk Score
  • BLOCK: Kritisch, führt zu feasibility=NO

3.2 Escalation Workflow (internal/ucca/escalation_*.go)

Das Eskalationssystem routet kritische Assessments zur menschlichen Prüfung.

┌─────────────────────────────────────────────────────────────────┐
│                    Escalation Workflow                           │
├─────────────────────────────────────────────────────────────────┤
│                                                                   │
│  AssessmentResult ─────────────────────────────────────────────> │
│       │                                                           │
│       ▼                                                           │
│  ┌─────────────────────────────────────────────────────────────┐ │
│  │              Escalation Level Determination                  │ │
│  ├─────────────────────────────────────────────────────────────┤ │
│  │                                                               │ │
│  │  E0: Nur INFO-Regeln, Risk < 20                              │ │
│  │      → Auto-Approve, keine menschliche Prüfung               │ │
│  │                                                               │ │
│  │  E1: WARN-Regeln, Risk 20-39                                 │ │
│  │      → Team-Lead Review (SLA: 24h)                           │ │
│  │                                                               │ │
│  │  E2: Art.9 Daten ODER Risk 40-59 ODER DSFA empfohlen         │ │
│  │      → DSB Consultation (SLA: 8h)                            │ │
│  │                                                               │ │
│  │  E3: BLOCK-Regel ODER Risk ≥60 ODER Art.22 Risiko            │ │
│  │      → DSB + Legal Review (SLA: 4h)                          │ │
│  │                                                               │ │
│  └─────────────────────────────────────────────────────────────┘ │
│       │                                                           │
│       ▼                                                           │
│  ┌─────────────────────────────────────────────────────────────┐ │
│  │                    DSB Pool Assignment                        │ │
│  ├─────────────────────────────────────────────────────────────┤ │
│  │  Role          │ Level │ Max Concurrent │ Auto-Assign        │ │
│  │  ──────────────┼───────┼────────────────┼────────────────── │ │
│  │  team_lead     │ E1    │ 10             │ Round-Robin        │ │
│  │  dsb           │ E2,E3 │ 5              │ Workload-Based     │ │
│  │  legal         │ E3    │ 3              │ Workload-Based     │ │
│  └─────────────────────────────────────────────────────────────┘ │
│       │                                                           │
│       ▼                                                           │
│  Escalation Status Flow:                                          │
│                                                                   │
│  pending → assigned → in_review → approved/rejected/returned     │
│                                                                   │
└─────────────────────────────────────────────────────────────────┘

Semantische Suche in 19 EU-Regulierungen fuer kontextbasierte Erklaerungen. Unterstuetzt Multi-Collection-Suche fuer unterschiedliche Rechtsgebiete.

┌─────────────────────────────────────────────────────────────────┐
│                       Legal RAG System                           │
├─────────────────────────────────────────────────────────────────┤
│                                                                   │
│  Search Request (Query + Collection) ────────────────────────── │
│       │                                                           │
│       ▼                                                           │
│  ┌─────────────────────────────────────────────────────────────┐ │
│  │                   Qdrant Vector DB                            │ │
│  │                   6 Collections, 1024-dim BGE-M3              │ │
│  ├─────────────────────────────────────────────────────────────┤ │
│  │                                                               │ │
│  │  bp_compliance_ce (Default)                                   │ │
│  │  ├── DSGVO, AI Act, NIS2, CRA, Data Act, DSA, DPF, ...      │ │
│  │  └── EU-Verordnungen & CE-Regulierungen                      │ │
│  │                                                               │ │
│  │  bp_compliance_recht                                          │ │
│  │  ├── BDSG, TDDDG, DDG, UrhG, TMG, TKG                       │ │
│  │  └── Deutsche Gesetze                                         │ │
│  │                                                               │ │
│  │  bp_compliance_gesetze — Regulierungstexte (Modul-Matching)  │ │
│  │  bp_compliance_datenschutz — DSGVO Datenschutzmassnahmen     │ │
│  │  bp_dsfa_corpus — DSFA Templates & Bewertungskriterien        │ │
│  │  bp_legal_templates — Rechtsdokument-Vorlagen                 │ │
│  │                                                               │ │
│  └─────────────────────────────────────────────────────────────┘ │
│       │                                                           │
│       │ Dense Search (BGE-M3 Embedding)                          │
│       ▼                                                           │
│  Top-K Relevant Passages ─────────────────────────────────────>  │
│       │                                                           │
│       ▼                                                           │
│  ┌─────────────────────────────────────────────────────────────┐ │
│  │                    Consumer Modules                           │ │
│  │  ├── UCCA Explain (LLM-Erklaerung fuer Assessments)         │ │
│  │  ├── Requirements AI (interpret + suggest_controls)          │ │
│  │  ├── DSFA Drafting v1/v2 (Rechtskontext im Draft)           │ │
│  │  └── Requirements API (?include_legal_context=true)          │ │
│  └─────────────────────────────────────────────────────────────┘ │
│                                                                   │
└─────────────────────────────────────────────────────────────────┘

3.3.1 Multi-Collection Search API

POST /sdk/v1/rag/search
{
  "query": "DSGVO Art. 35 Datenschutz-Folgenabschaetzung",
  "collection": "bp_compliance_recht",     // optional, default: bp_compliance_ce
  "regulations": ["eu_2016_679"],          // optional Filter
  "top_k": 5                               // optional, default: 5, max: 20
}

Erlaubte Collections (Whitelist):
  bp_compliance_ce, bp_compliance_recht, bp_compliance_gesetze,
  bp_compliance_datenschutz, bp_dsfa_corpus, bp_legal_templates

3.3.2 Collection-Routing (Requirements AI)

Das Python-Backend waehlt automatisch die passende Collection:

Regulation Collection
DSGVO, GDPR, AI_ACT, NIS2, CRA bp_compliance_ce
BDSG, TDDDG, DDG, UrhG, TMG, TKG bp_compliance_recht
Unbekannt / Fallback bp_compliance_ce

3.3.3 Fehlertoleranz

RAG-Ausfaelle brechen nie die Hauptfunktion:

  • Go SDK: SearchCollection() gibt leere Liste bei Fehler
  • Python: ComplianceRAGClient.search() gibt [] zurueck, wirft nie
  • TypeScript: queryRAG() gibt '' zurueck, wirft nie

4. Datenfluss

4.1 Assessment-Erstellung

User Input (Frontend)
       │
       ▼
POST /sdk/v1/ucca/assess
       │
       ├──────────────────────────────────────────┐
       │                                          │
       ▼                                          ▼
┌──────────────┐                          ┌──────────────┐
│ Policy       │                          │ Escalation   │
│ Engine       │                          │ Trigger      │
│ Evaluation   │                          │ Check        │
└──────┬───────┘                          └──────┬───────┘
       │                                          │
       │ AssessmentResult                         │ EscalationLevel
       │                                          │
       ▼                                          ▼
┌──────────────────────────────────────────────────────┐
│                   PostgreSQL                          │
│  ├── ucca_assessments (Assessment + Result)           │
│  └── ucca_escalations (wenn Level > E0)              │
└──────────────────────────────────────────────────────┘
       │
       │ If Level > E0
       ▼
┌──────────────┐
│ DSB Pool     │
│ Auto-Assign  │
└──────────────┘
       │
       ▼
Notification (E-Mail/Webhook)
POST /sdk/v1/ucca/assessments/:id/explain
       │
       ▼
┌──────────────┐
│ Load         │
│ Assessment   │
└──────┬───────┘
       │
       ▼
┌──────────────┐    Query Vector    ┌──────────────┐
│ Extract      │ ──────────────────>│ Qdrant       │
│ Keywords     │                    │ bp_legal_    │
│ from Rules   │<───────────────────│ corpus       │
└──────┬───────┘    Top-K Docs      └──────────────┘
       │
       │ Assessment + Legal Context
       ▼
┌──────────────┐
│ LLM          │
│ Provider     │
│ Registry     │
└──────┬───────┘
       │
       ▼
Explanation (DE) + Legal References

5. Entscheidungsdiagramm

5.1 Feasibility-Entscheidung

                    UseCaseIntake
                         │
                         ▼
              ┌─────────────────────┐
              │ Hat BLOCK-Regeln?   │
              └──────────┬──────────┘
                    │         │
                   Ja        Nein
                    │         │
                    ▼         ▼
            ┌───────────┐  ┌─────────────────────┐
            │ NO        │  │ Hat WARN-Regeln?    │
            │ (blocked) │  └──────────┬──────────┘
            └───────────┘        │         │
                                Ja        Nein
                                 │         │
                                 ▼         ▼
                         ┌───────────┐  ┌───────────┐
                         │CONDITIONAL│  │ YES       │
                         │(mit       │  │(grünes    │
                         │Auflagen)  │  │Licht)     │
                         └───────────┘  └───────────┘

5.2 Escalation-Level-Entscheidung

                   AssessmentResult
                         │
                         ▼
              ┌─────────────────────┐
              │ BLOCK-Regel oder    │
              │ Art.22 Risiko?      │
              └──────────┬──────────┘
                    │         │
                   Ja        Nein
                    │         │
                    ▼         │
              ┌───────────┐   │
              │ E3        │   │
              │ DSB+Legal │   │
              └───────────┘   ▼
                    ┌─────────────────────┐
                    │ Risk ≥40 oder       │
                    │ Art.9 Daten oder    │
                    │ DSFA empfohlen?     │
                    └──────────┬──────────┘
                          │         │
                         Ja        Nein
                          │         │
                          ▼         │
                    ┌───────────┐   │
                    │ E2        │   │
                    │ DSB       │   │
                    └───────────┘   ▼
                          ┌─────────────────────┐
                          │ Risk ≥20 oder       │
                          │ WARN-Regeln?        │
                          └──────────┬──────────┘
                                │         │
                               Ja        Nein
                                │         │
                                ▼         ▼
                          ┌───────────┐  ┌───────────┐
                          │ E1        │  │ E0        │
                          │ Team-Lead │  │ Auto-OK   │
                          └───────────┘  └───────────┘

6. Datenbank-Schema

6.1 ucca_assessments

CREATE TABLE ucca_assessments (
    id UUID PRIMARY KEY,
    tenant_id UUID NOT NULL,
    namespace_id UUID,
    title VARCHAR(500),
    policy_version VARCHAR(50) NOT NULL,
    status VARCHAR(50) DEFAULT 'completed',

    -- Input
    intake JSONB NOT NULL,
    use_case_text_stored BOOLEAN DEFAULT FALSE,
    use_case_text_hash VARCHAR(64),
    domain VARCHAR(50),

    -- Result
    feasibility VARCHAR(20) NOT NULL,
    risk_level VARCHAR(20) NOT NULL,
    risk_score INT NOT NULL DEFAULT 0,
    triggered_rules JSONB DEFAULT '[]',
    required_controls JSONB DEFAULT '[]',
    recommended_architecture JSONB DEFAULT '[]',
    forbidden_patterns JSONB DEFAULT '[]',
    example_matches JSONB DEFAULT '[]',

    -- Flags
    dsfa_recommended BOOLEAN DEFAULT FALSE,
    art22_risk BOOLEAN DEFAULT FALSE,
    training_allowed VARCHAR(50),

    -- Explanation
    explanation_text TEXT,
    explanation_generated_at TIMESTAMPTZ,
    explanation_model VARCHAR(100),

    -- Audit
    created_at TIMESTAMPTZ DEFAULT NOW(),
    updated_at TIMESTAMPTZ DEFAULT NOW(),
    created_by UUID NOT NULL
);

6.2 ucca_escalations

CREATE TABLE ucca_escalations (
    id UUID PRIMARY KEY,
    tenant_id UUID NOT NULL,
    assessment_id UUID NOT NULL REFERENCES ucca_assessments(id),

    -- Level & Status
    escalation_level VARCHAR(10) NOT NULL,
    escalation_reason TEXT,
    status VARCHAR(50) NOT NULL DEFAULT 'pending',

    -- Assignment
    assigned_to UUID,
    assigned_role VARCHAR(50),
    assigned_at TIMESTAMPTZ,

    -- Review
    reviewer_id UUID,
    reviewer_notes TEXT,
    reviewed_at TIMESTAMPTZ,

    -- Decision
    decision VARCHAR(50),
    decision_notes TEXT,
    decision_at TIMESTAMPTZ,
    conditions JSONB DEFAULT '[]',

    -- SLA
    due_date TIMESTAMPTZ,
    notification_sent BOOLEAN DEFAULT FALSE,
    notification_sent_at TIMESTAMPTZ,

    -- Audit
    created_at TIMESTAMPTZ DEFAULT NOW(),
    updated_at TIMESTAMPTZ DEFAULT NOW()
);

6.3 ucca_dsb_pool

CREATE TABLE ucca_dsb_pool (
    id UUID PRIMARY KEY,
    tenant_id UUID NOT NULL,
    user_id UUID NOT NULL,
    user_name VARCHAR(255) NOT NULL,
    user_email VARCHAR(255) NOT NULL,
    role VARCHAR(50) NOT NULL,
    is_active BOOLEAN DEFAULT TRUE,
    max_concurrent_reviews INT DEFAULT 10,
    current_reviews INT DEFAULT 0,
    created_at TIMESTAMPTZ DEFAULT NOW(),
    updated_at TIMESTAMPTZ DEFAULT NOW()
);

7. API-Endpunkte

7.1 Assessment

Method Endpoint Beschreibung
POST /sdk/v1/ucca/assess Assessment erstellen
GET /sdk/v1/ucca/assessments Assessments auflisten
GET /sdk/v1/ucca/assessments/:id Assessment abrufen
DELETE /sdk/v1/ucca/assessments/:id Assessment löschen
POST /sdk/v1/ucca/assessments/:id/explain LLM-Erklärung generieren
GET /sdk/v1/ucca/export/:id Assessment exportieren

7.2 Kataloge

Method Endpoint Beschreibung
GET /sdk/v1/ucca/patterns Architektur-Patterns
GET /sdk/v1/ucca/examples Didaktische Beispiele
GET /sdk/v1/ucca/rules Alle Regeln
GET /sdk/v1/ucca/controls Required Controls
GET /sdk/v1/ucca/problem-solutions Problem-Lösungen

7.3 Eskalation

Method Endpoint Beschreibung
GET /sdk/v1/ucca/escalations Eskalationen auflisten
GET /sdk/v1/ucca/escalations/:id Eskalation abrufen
POST /sdk/v1/ucca/escalations Manuelle Eskalation
POST /sdk/v1/ucca/escalations/:id/assign Zuweisen
POST /sdk/v1/ucca/escalations/:id/review Review starten
POST /sdk/v1/ucca/escalations/:id/decide Entscheidung treffen
GET /sdk/v1/ucca/escalations/stats Statistiken

7.4 DSB Pool

Method Endpoint Beschreibung
GET /sdk/v1/ucca/dsb-pool Pool-Mitglieder auflisten
POST /sdk/v1/ucca/dsb-pool Mitglied hinzufügen

8. Sicherheit

8.1 Authentifizierung

  • JWT-basierte Authentifizierung
  • Header: X-User-ID, X-Tenant-ID
  • Multi-Tenant-Isolation

8.2 Autorisierung

  • RBAC (Role-Based Access Control)
  • Permissions: ucca:assess, ucca:review, ucca:admin
  • Namespace-Level Isolation

8.3 Datenschutz

  • Use-Case-Text optional (Opt-in)
  • SHA-256 Hash statt Klartext
  • Audit-Trail für alle Operationen
  • Legal RAG: training_allowed: false

9. Deployment

9.1 Container

ai-compliance-sdk:
  build: ./ai-compliance-sdk
  ports:
    - "8090:8090"
  environment:
    - DATABASE_URL=postgres://...
    - OLLAMA_URL=http://ollama:11434
    - QDRANT_URL=http://qdrant:6333
  depends_on:
    - postgres
    - qdrant

9.2 Abhängigkeiten

  • PostgreSQL 15+
  • Qdrant 1.12+
  • Embedding Service (BGE-M3)
  • Ollama (optional, für LLM)

10. Monitoring

10.1 Health Check

GET /sdk/v1/health
→ {"status": "ok"}

10.2 Metriken

  • Assessment-Durchsatz
  • Escalation-SLA-Compliance
  • LLM-Latenz
  • RAG-Trefferqualität

11.1 Wizard-Architektur

Der UCCA-Wizard führt Benutzer durch 9 Schritte zur Erfassung aller relevanten Compliance-Fakten.

┌─────────────────────────────────────────────────────────────────┐
│                        UCCA Wizard v1.1                          │
├─────────────────────────────────────────────────────────────────┤
│                                                                   │
│  Step 1: Grundlegende Informationen                              │
│  Step 2: Datenarten (Personal Data, Art. 9, etc.)                │
│  Step 3: Verarbeitungszweck (Profiling, Scoring)                 │
│  Step 4: Hosting & Provider                                      │
│  Step 5: Internationaler Datentransfer (SCC, TIA)                │
│  Step 6: KI-Modell und Training                                  │
│  Step 7: Verträge & Compliance (AVV, DSFA)                       │
│  Step 8: Automatisierung & Human Oversight                       │
│  Step 9: Standards & Normen (für Maschinenbauer) ← NEU           │
│                                                                   │
│  Features:                                                        │
│  ├── Adaptive Subflows (visible_if Conditions)                   │
│  ├── Simple/Expert Mode Toggle                                   │
│  ├── Legal Assistant Chat pro Step                               │
│  └── simple_explanation für Nicht-Juristen                       │
│                                                                   │
└─────────────────────────────────────────────────────────────────┘

Integrierter Rechtsassistent für Echtzeit-Hilfe bei Wizard-Fragen.

┌─────────────────────────────────────────────────────────────────┐
│                     Legal Assistant Flow                          │
├─────────────────────────────────────────────────────────────────┤
│                                                                   │
│  User Question ─────────────────────────────────────────────────>│
│       │                                                           │
│       ▼                                                           │
│  ┌──────────────────┐                                            │
│  │ Build RAG Query  │                                            │
│  │ + Step Context   │                                            │
│  └────────┬─────────┘                                            │
│           │                                                       │
│           ▼                                                       │
│  ┌──────────────────┐    Search    ┌──────────────────┐         │
│  │ Legal RAG        │ ────────────>│ Qdrant           │         │
│  │ Client           │              │ bp_legal_corpus  │         │
│  │                  │<────────────│ + SCC Corpus     │         │
│  └────────┬─────────┘    Top-5     └──────────────────┘         │
│           │                                                       │
│           │ Question + Legal Context                             │
│           ▼                                                       │
│  ┌──────────────────┐                                            │
│  │ Internal 32B LLM │                                            │
│  │ (Ollama)         │                                            │
│  │ temp=0.3         │                                            │
│  └────────┬─────────┘                                            │
│           │                                                       │
│           ▼                                                       │
│  Answer + Sources + Related Fields                               │
│                                                                   │
└─────────────────────────────────────────────────────────────────┘

API-Endpunkte:

Method Endpoint Beschreibung
GET /sdk/v1/ucca/wizard/schema Wizard-Schema abrufen
POST /sdk/v1/ucca/wizard/ask Frage an Legal Assistant

12. License Policy Engine (Standards Compliance)

12.1 Übersicht

Die License Policy Engine verwaltet die Lizenz-/Urheberrechts-Compliance für Standards und Normen (DIN, ISO, VDI, etc.).

┌─────────────────────────────────────────────────────────────────┐
│                    License Policy Engine                          │
├─────────────────────────────────────────────────────────────────┤
│                                                                   │
│  LicensedContentFacts ─────────────────────────────────────────>│
│       │                                                           │
│       │  ├── present: bool                                       │
│       │  ├── publisher: DIN_MEDIA | VDI | ISO | ...              │
│       │  ├── license_type: SINGLE | NETWORK | ENTERPRISE | AI    │
│       │  ├── ai_use_permitted: YES | NO | UNKNOWN                │
│       │  ├── operation_mode: LINK | NOTES | FULLTEXT | TRAINING  │
│       │  └── proof_uploaded: bool                                │
│       │                                                           │
│       ▼                                                           │
│  ┌─────────────────────────────────────────────────────────────┐│
│  │                 Operation Mode Evaluation                    ││
│  ├─────────────────────────────────────────────────────────────┤│
│  │                                                               ││
│  │  LINK_ONLY ──────────── Always Allowed ───────────> OK      ││
│  │  NOTES_ONLY ─────────── Usually Allowed ──────────> OK      ││
│  │  FULLTEXT_RAG ────┬──── ai_use=YES + proof ───────> OK      ││
│  │                   └──── else ─────────────────────> BLOCK   ││
│  │  TRAINING ────────┬──── AI_LICENSE + proof ───────> OK      ││
│  │                   └──── else ─────────────────────> BLOCK   ││
│  │                                                               ││
│  └─────────────────────────────────────────────────────────────┘│
│       │                                                           │
│       ▼                                                           │
│  LicensePolicyResult                                              │
│    ├── allowed: bool                                             │
│    ├── effective_mode: string (may be downgraded)                │
│    ├── gaps: []LicenseGap                                        │
│    ├── required_controls: []LicenseControl                       │
│    ├── stop_line: *StopLine (if hard blocked)                    │
│    └── output_restrictions: *OutputRestrictions                  │
│                                                                   │
└─────────────────────────────────────────────────────────────────┘

12.2 Betriebs-Modi (Operation Modes)

Modus Beschreibung Lizenz-Anforderung Ingest Output
LINK_ONLY Nur Verweise & Checklisten Keine Metadata only Keine Zitate
NOTES_ONLY Kundeneigene Zusammenfassungen Standard Notes only Paraphrasen
EXCERPT_ONLY Kurze Zitate (Zitatrecht) Standard + Zitatrecht Notes Max 150 Zeichen
FULLTEXT_RAG Volltext indexiert AI-Lizenz + Proof Fulltext Max 500 Zeichen
TRAINING Modell-Training AI-Training-Lizenz Fulltext N/A

12.3 Publisher-spezifische Regeln

DIN Media (ehem. Beuth):

  • AI-Nutzung aktuell verboten (ohne explizite Genehmigung)
  • AI-Lizenzmodell geplant ab Q4/2025
  • Crawler/Scraper verboten (AGB)
  • TDM-Vorbehalt nach §44b UrhG

12.4 Stop-Lines (Hard Deny)

STOP_DIN_FULLTEXT_AI_NOT_ALLOWED
  WENN: publisher=DIN_MEDIA AND operation_mode in [FULLTEXT_RAG, TRAINING]
        AND ai_use_permitted in [NO, UNKNOWN]
  DANN: BLOCKIERT
  FALLBACK: LINK_ONLY

STOP_TRAINING_WITHOUT_PROOF
  WENN: operation_mode=TRAINING AND proof_uploaded=false
  DANN: BLOCKIERT

13. SCC & Transfer Impact Assessment

13.1 Drittlandtransfer-Bewertung

Das System unterstützt die vollständige Bewertung internationaler Datentransfers.

┌─────────────────────────────────────────────────────────────────┐
│              SCC/Transfer Assessment Flow                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                   │
│  hosting.region ─────────────────────────────────────────────── │
│       │                                                           │
│       ├── EU/EWR ────────────────────────────────> OK (no SCC)  │
│       │                                                           │
│       ├── Adequacy Country (UK, CH, JP) ─────────> OK (no SCC)  │
│       │                                                           │
│       └── Third Country (US, etc.) ──────────────────────────── │
│                │                                                  │
│                ▼                                                  │
│       ┌─────────────────────────────────────────────────────────┐│
│       │ USA: DPF-Zertifizierung prüfen                          ││
│       │   ├── Zertifiziert ───> OK (SCC empfohlen als Backup)  ││
│       │   └── Nicht zertifiziert ───> SCC + TIA erforderlich   ││
│       └─────────────────────────────────────────────────────────┘│
│                │                                                  │
│                ▼                                                  │
│       ┌─────────────────────────────────────────────────────────┐│
│       │ Transfer Impact Assessment (TIA)                         ││
│       │   ├── Adequate ─────────────> Transfer OK               ││
│       │   ├── Adequate + Measures ──> + Technical Supplementary ││
│       │   ├── Inadequate ───────────> Fix required              ││
│       │   └── Not Feasible ─────────> Transfer NOT allowed      ││
│       └─────────────────────────────────────────────────────────┘│
│                                                                   │
└─────────────────────────────────────────────────────────────────┘

13.2 SCC-Versionen

  • Neue SCC (EU 2021/914) - erforderlich seit 27.12.2022
  • Alte SCC (vor 2021) - nicht mehr gültig

14. Controls Catalog

14.1 Übersicht

Der Controls Catalog enthält ~30 Maßnahmenbausteine mit detaillierten Handlungsanweisungen.

┌─────────────────────────────────────────────────────────────────┐
│                      Controls Catalog v1.0                        │
├─────────────────────────────────────────────────────────────────┤
│                                                                   │
│  Kategorien:                                                      │
│  ├── DSGVO (Rechtsgrundlagen, Betroffenenrechte, Dokumentation) │
│  ├── AI_Act (Transparenz, HITL, Risikoeinstufung)               │
│  ├── Technical (Verschlüsselung, Anonymisierung, PII-Gateway)   │
│  └── Contractual (AVV, SCC, TIA)                                │
│                                                                   │
│  Struktur pro Control:                                           │
│  ├── id: CTRL-xxx                                                │
│  ├── title: Kurztitel                                            │
│  ├── when_applicable: Wann erforderlich?                         │
│  ├── what_to_do: Konkrete Handlungsschritte                      │
│  ├── evidence_needed: Erforderliche Nachweise                    │
│  ├── effort: low | medium | high                                 │
│  └── gdpr_ref: Rechtsgrundlage                                   │
│                                                                   │
└─────────────────────────────────────────────────────────────────┘

14.2 Beispiel-Controls

ID Titel Kategorie
CTRL-CONSENT-EXPLICIT Ausdrückliche Einwilligung DSGVO
CTRL-AI-TRANSPARENCY KI-Transparenz-Hinweis AI_Act
CTRL-DSFA Datenschutz-Folgenabschätzung DSGVO
CTRL-SCC Standardvertragsklauseln Contractual
CTRL-TIA Transfer Impact Assessment Contractual
CTRL-LICENSE-PROOF Lizenz-/Rechte-Nachweis License
CTRL-LINK-ONLY-MODE Evidence Navigator License
CTRL-PII-GATEWAY PII-Redaction Gateway Technical

15. Policy-Dateien

15.1 Dateistruktur

policies/
├── ucca_policy_v1.yaml          # Haupt-Policy (Regeln, Controls)
├── controls_catalog.yaml        # Detaillierter Maßnahmenkatalog
├── gap_mapping.yaml             # Facts → Gaps → Controls
├── wizard_schema_v1.yaml        # Wizard-Fragen (9 Steps)
├── scc_legal_corpus.yaml        # SCC/Transfer Rechtstexte
└── licensed_content_policy.yaml # Normen-Lizenz-Compliance (NEU)

15.2 Versions-Management

  • Jedes Assessment speichert die policy_version
  • Regeländerungen erzeugen neue Version
  • Audit-Trail zeigt welche Policy-Version verwendet wurde

16. Generic Obligations Framework

16.1 Übersicht

Das Generic Obligations Framework ermöglicht die automatische Ableitung regulatorischer Pflichten aus mehreren Verordnungen basierend auf Unternehmensfakten.

┌─────────────────────────────────────────────────────────────────┐
│                Generic Obligations Framework                      │
├─────────────────────────────────────────────────────────────────┤
│                                                                   │
│  UnifiedFacts ───────────────────────────────────────────────── │
│       │                                                           │
│       │  ├── organization: EmployeeCount, Revenue, Country       │
│       │  ├── sector: PrimarySector, IsKRITIS, SpecialServices   │
│       │  ├── data_protection: ProcessesPersonalData              │
│       │  └── ai_usage: UsesAI, HighRiskCategories, IsGPAI       │
│       │                                                           │
│       ▼                                                           │
│  ┌─────────────────────────────────────────────────────────────┐│
│  │                 Obligations Registry                         ││
│  │        (Module Registration & Evaluation)                    ││
│  └──────────────────────────┬──────────────────────────────────┘│
│                             │                                     │
│         ┌───────────────────┼───────────────────┐                │
│         │                   │                   │                │
│         ▼                   ▼                   ▼                │
│   ┌───────────┐      ┌───────────┐      ┌───────────┐           │
│   │   NIS2    │      │   DSGVO   │      │   AI Act  │           │
│   │  Module   │      │  Module   │      │  Module   │           │
│   └─────┬─────┘      └─────┬─────┘      └─────┬─────┘           │
│         │                   │                   │                │
│         └───────────────────┴───────────────────┘                │
│                             │                                     │
│                             ▼                                     │
│  ┌─────────────────────────────────────────────────────────────┐│
│  │           ManagementObligationsOverview                      ││
│  │  ├── ApplicableRegulations[]                                 ││
│  │  ├── Obligations[] (sortiert nach Priorität)                 ││
│  │  ├── RequiredControls[]                                      ││
│  │  ├── IncidentDeadlines[]                                     ││
│  │  ├── SanctionsSummary                                        ││
│  │  └── ExecutiveSummary                                        ││
│  └─────────────────────────────────────────────────────────────┘│
│                                                                   │
└─────────────────────────────────────────────────────────────────┘

16.2 Regulation Modules

Jede Regulierung wird als eigenständiges Modul implementiert:

Implementierte Module:

Modul ID Datei Pflichten Kontrollen
NIS2 nis2 nis2_module.go ~15 ~8
DSGVO dsgvo dsgvo_module.go ~12 ~6
AI Act ai_act ai_act_module.go ~15 ~6

17. Obligations API-Endpunkte

17.1 Assessment

Method Endpoint Beschreibung
POST /sdk/v1/ucca/obligations/assess Pflichten-Assessment erstellen
GET /sdk/v1/ucca/obligations/:id Assessment abrufen
GET /sdk/v1/ucca/obligations Assessments auflisten

17.2 Export

Method Endpoint Beschreibung
POST /sdk/v1/ucca/obligations/export/memo Memo exportieren (gespeichert)
POST /sdk/v1/ucca/obligations/export/direct Direkt-Export ohne Speicherung

17.3 Regulations

Method Endpoint Beschreibung
GET /sdk/v1/ucca/regulations Liste aller Regulierungsmodule
GET /sdk/v1/ucca/regulations/:id/decision-tree Decision Tree für Regulierung

18. Dateien des Obligations Framework

18.1 Backend (Go)

internal/ucca/
├── obligations_framework.go    # Interfaces, Typen, Konstanten
├── obligations_registry.go     # Modul-Registry, EvaluateAll()
├── nis2_module.go              # NIS2 Decision Tree + Pflichten
├── nis2_module_test.go         # NIS2 Tests
├── dsgvo_module.go             # DSGVO Pflichten
├── dsgvo_module_test.go        # DSGVO Tests
├── ai_act_module.go            # AI Act Risk Classification
├── ai_act_module_test.go       # AI Act Tests
├── pdf_export.go               # PDF/Markdown Export
└── pdf_export_test.go          # Export Tests

18.2 Policy-Dateien (YAML)

policies/obligations/
├── nis2_obligations.yaml       # ~15 NIS2-Pflichten
├── dsgvo_obligations.yaml      # ~12 DSGVO-Pflichten
└── ai_act_obligations.yaml     # ~15 AI Act-Pflichten

Dokumentation erstellt: 2026-01-29, aktualisiert: 2026-03-02 Version: 2.2.0 (Phase 2: Multi-Collection RAG)