merge: Resolve conflicts with gitea remote

Keep local versions for .gitignore, vendors route (full header forwarding),
investor-agent soul (slide-awareness + follow-up questions), mkdocs site_url.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-02-15 09:12:15 +01:00
185 changed files with 76020 additions and 5680 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,387 @@
# UCCA - Dokumentation für externe Auditoren
## Systemdokumentation nach Art. 30 DSGVO
**Verantwortlicher:** [Name des Unternehmens]
**Datenschutzbeauftragter:** [Kontakt]
**Dokumentationsstand:** 2026-01-29
**Version:** 1.0.0
---
## 1. Zweck und Funktionsweise des Systems
### 1.1 Systembezeichnung
**UCCA - Use-Case Compliance & Feasibility Advisor**
### 1.2 Zweckbeschreibung
Das UCCA-System ist ein **Compliance-Prüfwerkzeug**, das Organisationen bei der Bewertung geplanter KI-Anwendungsfälle hinsichtlich ihrer datenschutzrechtlichen Zulässigkeit unterstützt.
**Kernfunktionen:**
- Automatisierte Vorprüfung von KI-Anwendungsfällen gegen EU-Regulierungen
- Identifikation erforderlicher technischer und organisatorischer Maßnahmen
- Eskalation kritischer Fälle zur menschlichen Prüfung
- Dokumentation und Nachvollziehbarkeit aller Prüfentscheidungen
### 1.3 Rechtsgrundlage
Die Verarbeitung erfolgt auf Basis von:
- **Art. 6 Abs. 1 lit. c DSGVO** - Erfüllung rechtlicher Verpflichtungen
- **Art. 6 Abs. 1 lit. f DSGVO** - Berechtigte Interessen (Compliance-Management)
---
## 2. Verarbeitete Datenkategorien
### 2.1 Eingabedaten (Use-Case-Beschreibungen)
| Datenkategorie | Beschreibung | Speicherung |
|----------------|--------------|-------------|
| Use-Case-Text | Freitextbeschreibung des geplanten Anwendungsfalls | Optional (Opt-in), ansonsten nur Hash |
| Domain | Branchenkategorie (z.B. "education", "healthcare") | Ja |
| Datentyp-Flags | Angaben zu verarbeiteten Datenarten | Ja |
| Automatisierungsgrad | assistiv/teil-/vollautomatisch | Ja |
| Hosting-Informationen | Region, Provider | Ja |
**Wichtig:** Der System speichert standardmäßig **keine Freitexte**, sondern nur:
- SHA-256 Hash des Textes (zur Deduplizierung)
- Strukturierte Metadaten (Checkboxen, Dropdowns)
### 2.2 Bewertungsergebnisse
| Datenkategorie | Beschreibung | Aufbewahrung |
|----------------|--------------|--------------|
| Risk Score | Numerischer Wert 0-100 | Dauerhaft |
| Triggered Rules | Ausgelöste Compliance-Regeln | Dauerhaft |
| Required Controls | Empfohlene Maßnahmen | Dauerhaft |
| Explanation | KI-generierte Erklärung | Dauerhaft |
### 2.3 Audit-Trail-Daten
| Datenkategorie | Beschreibung | Aufbewahrung |
|----------------|--------------|--------------|
| Benutzer-ID | UUID des ausführenden Benutzers | 10 Jahre |
| Timestamp | Zeitpunkt der Aktion | 10 Jahre |
| Aktionstyp | created/reviewed/decided | 10 Jahre |
| Entscheidungsnotizen | Begründungen bei Eskalationen | 10 Jahre |
---
## 3. Entscheidungslogik und Automatisierung
### 3.1 Regelbasierte Bewertung (Deterministische Logik)
Das System verwendet **ausschließlich deterministische Regeln** für Compliance-Entscheidungen. Diese Regeln sind:
1. **Transparent** - Alle Regeln sind im Quellcode einsehbar
2. **Nachvollziehbar** - Jede ausgelöste Regel wird dokumentiert
3. **Überprüfbar** - Regellogik basiert auf konkreten DSGVO-Artikeln
**Beispiel-Regel R-F001:**
```
WENN:
- Domain = "education" UND
- Automation = "fully_automated" UND
- Output enthält "rankings_or_scores"
DANN:
- Severity = BLOCK
- DSGVO-Referenz = Art. 22 Abs. 1
- Begründung = "Vollautomatisierte Bewertung von Schülern ohne menschliche Überprüfung"
```
### 3.2 Keine autonomen KI-Entscheidungen
**Das System trifft KEINE autonomen KI-Entscheidungen bezüglich:**
- Zulässigkeit eines Anwendungsfalls (immer regelbasiert)
- Freigabe oder Ablehnung (immer durch Mensch)
- Rechtliche Bewertungen (immer durch DSB/Legal)
**KI wird ausschließlich verwendet für:**
- Erklärung bereits getroffener Regelentscheidungen
- Zusammenfassung von Rechtstexten
- Sprachliche Formulierung von Hinweisen
### 3.3 Human-in-the-Loop
Bei allen kritischen Entscheidungen ist ein **menschlicher Prüfer** eingebunden:
| Eskalationsstufe | Auslöser | Prüfer | SLA |
|------------------|----------|--------|-----|
| E0 | Nur informative Regeln | Automatisch | - |
| E1 | Warnungen, geringes Risiko | Team-Lead | 24h |
| E2 | Art. 9-Daten, DSFA empfohlen | DSB | 8h |
| E3 | BLOCK-Regeln, hohes Risiko | DSB + Legal | 4h |
**BLOCK-Entscheidungen können NICHT durch KI überschrieben werden.**
---
## 4. Technische und organisatorische Maßnahmen (Art. 32 DSGVO)
### 4.1 Vertraulichkeit
| Maßnahme | Umsetzung |
|----------|-----------|
| Zugriffskontrolle | RBAC mit Tenant-Isolation |
| Verschlüsselung in Transit | TLS 1.3 |
| Verschlüsselung at Rest | AES-256 (PostgreSQL, Qdrant) |
| Authentifizierung | JWT-basiert, Token-Expiry |
### 4.2 Integrität
| Maßnahme | Umsetzung |
|----------|-----------|
| Audit-Trail | Unveränderlicher Verlauf aller Aktionen |
| Versionierung | Policy-Version in jedem Assessment |
| Input-Validierung | Schema-Validierung aller API-Eingaben |
### 4.3 Verfügbarkeit
| Maßnahme | Umsetzung |
|----------|-----------|
| Backup | Tägliche PostgreSQL-Backups |
| Redundanz | Container-Orchestrierung mit Auto-Restart |
| Monitoring | Health-Checks, SLA-Überwachung |
### 4.4 Belastbarkeit
| Maßnahme | Umsetzung |
|----------|-----------|
| Rate Limiting | API-Anfragenbegrenzung |
| Graceful Degradation | LLM-Fallback bei Ausfall |
| Ressourcenlimits | Container-Memory-Limits |
---
## 5. Datenschutz-Folgenabschätzung (Art. 35 DSGVO)
### 5.1 Risikobewertung
| Risiko | Bewertung | Mitigierung |
|--------|-----------|-------------|
| Fehleinschätzung durch KI | Mittel | Deterministische Regeln, Human Review |
| Datenverlust | Niedrig | Backup, Verschlüsselung |
| Unbefugter Zugriff | Niedrig | RBAC, Audit-Trail |
| Bias in Regellogik | Niedrig | Transparente Regeln, Review-Prozess |
### 5.2 DSFA-Trigger im System
Das System erkennt automatisch, wann eine DSFA erforderlich ist:
- Verarbeitung besonderer Kategorien (Art. 9 DSGVO)
- Systematische Bewertung natürlicher Personen
- Neue Technologien mit hohem Risiko
---
## 6. Betroffenenrechte (Art. 15-22 DSGVO)
### 6.1 Auskunftsrecht (Art. 15)
Betroffene können Auskunft erhalten über:
- Gespeicherte Assessments mit ihren Daten
- Audit-Trail ihrer Interaktionen
- Regelbasierte Entscheidungsbegründungen
### 6.2 Recht auf Berichtigung (Art. 16)
Betroffene können die Korrektur fehlerhafter Eingabedaten verlangen.
### 6.3 Recht auf Löschung (Art. 17)
Assessments können gelöscht werden, sofern:
- Keine gesetzlichen Aufbewahrungspflichten bestehen
- Keine laufenden Eskalationsverfahren existieren
### 6.4 Recht auf Einschränkung (Art. 18)
Die Verarbeitung kann eingeschränkt werden durch:
- Archivierung statt Löschung
- Sperrung des Datensatzes
### 6.5 Automatisierte Entscheidungen (Art. 22)
**Das System trifft keine automatisierten Einzelentscheidungen** im Sinne von Art. 22 DSGVO, da:
1. Regelauswertung ist **keine rechtlich bindende Entscheidung**
2. Alle kritischen Fälle werden **menschlich geprüft** (E1-E3)
3. BLOCK-Entscheidungen erfordern **immer menschliche Freigabe**
4. Betroffene haben **Anfechtungsmöglichkeit** über Eskalation
---
## 7. Auftragsverarbeitung
### 7.1 Unterauftragnehmer
| Dienst | Anbieter | Standort | Zweck |
|--------|----------|----------|-------|
| Embedding-Service | Lokal (Self-Hosted) | EU | Vektorisierung |
| Vector-DB (Qdrant) | Lokal (Self-Hosted) | EU | Ähnlichkeitssuche |
| LLM (Ollama) | Lokal (Self-Hosted) | EU | Erklärungsgenerierung |
**Hinweis:** Das System kann vollständig on-premise betrieben werden ohne externe Dienste.
### 7.2 Internationale Transfers
Bei Nutzung von Cloud-LLM-Anbietern:
- Anthropic Claude: US (DPF-zertifiziert)
- OpenAI: US (DPF-zertifiziert)
**Empfehlung:** Nutzung des lokalen Ollama-Providers für sensible Daten.
---
## 8. Audit-Trail und Nachvollziehbarkeit
### 8.1 Protokollierte Ereignisse
| Ereignis | Protokollierte Daten |
|----------|---------------------|
| Assessment erstellt | Benutzer, Timestamp, Intake-Hash, Ergebnis |
| Eskalation erstellt | Level, Grund, SLA |
| Zuweisung | Benutzer, Rolle |
| Review gestartet | Benutzer, Timestamp |
| Entscheidung | Benutzer, Entscheidung, Begründung |
### 8.2 Aufbewahrungsfristen
| Datenart | Aufbewahrung | Rechtsgrundlage |
|----------|--------------|-----------------|
| Assessments | 10 Jahre | § 147 AO |
| Audit-Trail | 10 Jahre | § 147 AO |
| Eskalationen | 10 Jahre | § 147 AO |
| Löschprotokolle | 3 Jahre | Art. 17 DSGVO |
---
## 9. Lizenzierte Inhalte & Normen-Compliance (§44b UrhG)
### 9.1 Zweck
Das System enthält einen spezialisierten **License Policy Engine** zur Compliance-Prüfung bei der Verarbeitung urheberrechtlich geschützter Inhalte, insbesondere:
- **DIN-Normen** (DIN Media / Beuth Verlag)
- **VDI-Richtlinien**
- **ISO/IEC-Standards**
- **VDE-Normen**
### 9.2 Rechtlicher Hintergrund
**§44b UrhG - Text und Data Mining:**
> "Die Vervielfältigung von rechtmäßig zugänglichen Werken für das Text und Data Mining ist zulässig."
**ABER:** Rechteinhaber können TDM gem. §44b Abs. 3 UrhG vorbehalten:
- **DIN Media:** Expliziter Vorbehalt in AGB keine KI/TDM-Nutzung ohne Sonderlizenz
- **Geplante KI-Lizenzmodelle:** Ab Q4/2025 (DIN Media)
### 9.3 Operationsmodi im System
| Modus | Beschreibung | Lizenzanforderung |
|-------|--------------|-------------------|
| `LINK_ONLY` | Nur Verlinkung zum Original | Keine |
| `NOTES_ONLY` | Eigene Notizen/Zusammenfassungen | Keine (§51 UrhG) |
| `EXCERPT_ONLY` | Kurze Zitate (<100 Wörter) | Standard-Lizenz |
| `FULLTEXT_RAG` | Volltextsuche mit Embedding | Explizite KI-Lizenz |
| `TRAINING` | Modell-Training | Enterprise-Lizenz + Vertrag |
### 9.4 Stop-Lines (Automatische Sperren)
Das System **blockiert automatisch** folgende Kombinationen:
| Stop-Line ID | Bedingung | Aktion |
|--------------|-----------|--------|
| `STOP_DIN_FULLTEXT_AI_NOT_ALLOWED` | DIN Media + FULLTEXT_RAG + keine KI-Lizenz | Ablehnung |
| `STOP_LICENSE_UNKNOWN_FULLTEXT` | Lizenz unbekannt + FULLTEXT_RAG | Warnung + Eskalation |
| `STOP_TRAINING_WITHOUT_ENTERPRISE` | Beliebig + TRAINING + keine Enterprise-Lizenz | Ablehnung |
### 9.5 License Policy Engine - Entscheidungslogik
```
INPUT:
├── licensed_content.present = true
├── licensed_content.publisher = "DIN_MEDIA"
├── licensed_content.license_type = "SINGLE_WORKSTATION"
├── licensed_content.ai_use_permitted = "NO"
└── licensed_content.operation_mode = "FULLTEXT_RAG"
REGEL-EVALUATION:
├── Prüfe Publisher-spezifische Regeln
├── Prüfe Lizenztyp vs. gewünschter Modus
├── Prüfe AI-Use-Flag
└── Bestimme maximal zulässigen Modus
OUTPUT:
├── allowed: false
├── max_allowed_mode: "NOTES_ONLY"
├── required_controls: ["CTRL-LICENSE-PROOF", "CTRL-NO-CRAWLING-DIN"]
├── gaps: ["GAP_DIN_MEDIA_WITHOUT_AI_LICENSE"]
├── stop_lines: ["STOP_DIN_FULLTEXT_AI_NOT_ALLOWED"]
└── explanation: "DIN Media verbietet KI-Nutzung ohne explizite Lizenz..."
```
### 9.6 Erforderliche Controls bei lizenzierten Inhalten
| Control ID | Beschreibung | Evidence |
|------------|--------------|----------|
| `CTRL-LICENSE-PROOF` | Lizenznachweis dokumentieren | Lizenzvertrag, Rechnung |
| `CTRL-LICENSE-GATED-INGEST` | Technische Sperre vor Ingest | Konfiguration, Logs |
| `CTRL-NO-CRAWLING-DIN` | Kein automatisches Crawling | System-Konfiguration |
| `CTRL-OUTPUT-GUARD` | Ausgabe-Beschränkung (Zitatlimit) | API-Logs |
### 9.7 Audit-relevante Protokollierung
Bei jeder Verarbeitung lizenzierter Inhalte wird dokumentiert:
| Feld | Beschreibung | Aufbewahrung |
|------|--------------|--------------|
| `license_check_timestamp` | Zeitpunkt der Prüfung | 10 Jahre |
| `license_decision` | Ergebnis (allowed/denied) | 10 Jahre |
| `license_proof_hash` | Hash des Lizenznachweises | 10 Jahre |
| `operation_mode_requested` | Angefragter Modus | 10 Jahre |
| `operation_mode_granted` | Erlaubter Modus | 10 Jahre |
| `publisher` | Rechteinhaber | 10 Jahre |
### 9.8 On-Premise-Deployment für sensible Normen
Für Unternehmen mit strengen Compliance-Anforderungen:
| Komponente | Deployment | Isolation |
|------------|------------|-----------|
| Normen-Datenbank | Lokaler Mac Studio | Air-gapped |
| Embedding-Service | Lokal (bge-m3) | Keine Cloud |
| Vector-DB (Qdrant) | Lokaler Container | Tenant-Isolation |
| LLM (Ollama) | Lokal (Qwen2.5-Coder) | Keine API-Calls |
---
## 10. Kontakt und Verantwortlichkeiten
### 10.1 Verantwortlicher
[Name und Adresse des Unternehmens]
### 10.2 Datenschutzbeauftragter
Name: [Name]
E-Mail: [E-Mail]
Telefon: [Telefon]
### 10.3 Technischer Ansprechpartner
Name: [Name]
E-Mail: [E-Mail]
---
## 11. Änderungshistorie
| Version | Datum | Änderung | Autor |
|---------|-------|----------|-------|
| 1.1.0 | 2026-01-29 | License Policy Engine & Standards-Compliance (§44b UrhG) | [Autor] |
| 1.0.0 | 2026-01-29 | Erstversion | [Autor] |
---
*Diese Dokumentation erfüllt die Anforderungen nach Art. 30 DSGVO (Verzeichnis von Verarbeitungstätigkeiten) und dient als Grundlage für Audits nach Art. 32 DSGVO (Sicherheit der Verarbeitung).*

View File

@@ -0,0 +1,220 @@
# AI Compliance SDK - Software Bill of Materials (SBOM)
**Erstellt:** 2026-01-29
**Go-Version:** 1.24.0
---
## Zusammenfassung
| Kategorie | Anzahl | Status |
|-----------|--------|--------|
| Direkte Abhängigkeiten | 7 | ✅ Alle kommerziell nutzbar |
| Indirekte Abhängigkeiten | ~45 | ✅ Alle kommerziell nutzbar |
| **Gesamt** | ~52 | ✅ **Alle Open Source, kommerziell nutzbar** |
---
## Direkte Abhängigkeiten
| Package | Version | Lizenz | Kommerziell nutzbar |
|---------|---------|--------|---------------------|
| `github.com/gin-gonic/gin` | v1.10.1 | **MIT** | ✅ Ja |
| `github.com/gin-contrib/cors` | v1.7.6 | **MIT** | ✅ Ja |
| `github.com/google/uuid` | v1.6.0 | **BSD-3-Clause** | ✅ Ja |
| `github.com/jackc/pgx/v5` | v5.5.3 | **MIT** | ✅ Ja |
| `github.com/joho/godotenv` | v1.5.1 | **MIT** | ✅ Ja |
| `github.com/xuri/excelize/v2` | v2.9.1 | **BSD-3-Clause** | ✅ Ja |
| `gopkg.in/yaml.v3` | v3.0.1 | **MIT / Apache-2.0** | ✅ Ja |
---
## Indirekte Abhängigkeiten (Transitive)
### JSON / Serialisierung
| Package | Version | Lizenz | Kommerziell nutzbar |
|---------|---------|--------|---------------------|
| `github.com/bytedance/sonic` | v1.13.3 | **Apache-2.0** | ✅ Ja |
| `github.com/goccy/go-json` | v0.10.5 | **MIT** | ✅ Ja |
| `github.com/json-iterator/go` | v1.1.12 | **MIT** | ✅ Ja |
| `github.com/pelletier/go-toml/v2` | v2.2.4 | **MIT** | ✅ Ja |
| `gopkg.in/yaml.v3` | v3.0.1 | **MIT / Apache-2.0** | ✅ Ja |
| `github.com/ugorji/go/codec` | v1.3.0 | **MIT** | ✅ Ja |
### Web Framework (Gin-Ökosystem)
| Package | Version | Lizenz | Kommerziell nutzbar |
|---------|---------|--------|---------------------|
| `github.com/gin-contrib/sse` | v1.1.0 | **MIT** | ✅ Ja |
| `github.com/go-playground/validator/v10` | v10.26.0 | **MIT** | ✅ Ja |
| `github.com/go-playground/locales` | v0.14.1 | **MIT** | ✅ Ja |
| `github.com/go-playground/universal-translator` | v0.18.1 | **MIT** | ✅ Ja |
| `github.com/leodido/go-urn` | v1.4.0 | **MIT** | ✅ Ja |
### Datenbank (PostgreSQL)
| Package | Version | Lizenz | Kommerziell nutzbar |
|---------|---------|--------|---------------------|
| `github.com/jackc/pgpassfile` | v1.0.0 | **MIT** | ✅ Ja |
| `github.com/jackc/pgservicefile` | v0.0.0-... | **MIT** | ✅ Ja |
| `github.com/jackc/puddle/v2` | v2.2.1 | **MIT** | ✅ Ja |
### Excel-Verarbeitung
| Package | Version | Lizenz | Kommerziell nutzbar |
|---------|---------|--------|---------------------|
| `github.com/xuri/excelize/v2` | v2.9.1 | **BSD-3-Clause** | ✅ Ja |
| `github.com/xuri/efp` | v0.0.1 | **BSD-3-Clause** | ✅ Ja |
| `github.com/xuri/nfp` | v0.0.2-... | **BSD-3-Clause** | ✅ Ja |
| `github.com/richardlehane/mscfb` | v1.0.4 | **Apache-2.0** | ✅ Ja |
| `github.com/richardlehane/msoleps` | v1.0.4 | **Apache-2.0** | ✅ Ja |
### PDF-Generierung
| Package | Version | Lizenz | Kommerziell nutzbar |
|---------|---------|--------|---------------------|
| `github.com/jung-kurt/gofpdf` | v1.16.2 | **MIT** | ✅ Ja |
### Utilities
| Package | Version | Lizenz | Kommerziell nutzbar |
|---------|---------|--------|---------------------|
| `github.com/gabriel-vasile/mimetype` | v1.4.9 | **MIT** | ✅ Ja |
| `github.com/mattn/go-isatty` | v0.0.20 | **MIT** | ✅ Ja |
| `github.com/modern-go/concurrent` | v0.0.0-... | **Apache-2.0** | ✅ Ja |
| `github.com/modern-go/reflect2` | v1.0.2 | **Apache-2.0** | ✅ Ja |
| `github.com/klauspost/cpuid/v2` | v2.2.10 | **MIT** | ✅ Ja |
| `github.com/tiendc/go-deepcopy` | v1.7.1 | **MIT** | ✅ Ja |
| `github.com/twitchyliquid64/golang-asm` | v0.15.1 | **MIT** | ✅ Ja |
| `github.com/cloudwego/base64x` | v0.1.5 | **Apache-2.0** | ✅ Ja |
### Go Standardbibliothek Erweiterungen
| Package | Version | Lizenz | Kommerziell nutzbar |
|---------|---------|--------|---------------------|
| `golang.org/x/arch` | v0.18.0 | **BSD-3-Clause** | ✅ Ja |
| `golang.org/x/crypto` | v0.43.0 | **BSD-3-Clause** | ✅ Ja |
| `golang.org/x/net` | v0.46.0 | **BSD-3-Clause** | ✅ Ja |
| `golang.org/x/sync` | v0.17.0 | **BSD-3-Clause** | ✅ Ja |
| `golang.org/x/sys` | v0.37.0 | **BSD-3-Clause** | ✅ Ja |
| `golang.org/x/text` | v0.30.0 | **BSD-3-Clause** | ✅ Ja |
### Protokoll-Bibliotheken
| Package | Version | Lizenz | Kommerziell nutzbar |
|---------|---------|--------|---------------------|
| `google.golang.org/protobuf` | v1.36.6 | **BSD-3-Clause** | ✅ Ja |
---
## Lizenz-Übersicht
| Lizenz | Anzahl Packages | Kommerziell nutzbar | Copyleft |
|--------|-----------------|---------------------|----------|
| **MIT** | ~25 | ✅ Ja | ❌ Nein |
| **Apache-2.0** | ~8 | ✅ Ja | ❌ Nein (schwach) |
| **BSD-3-Clause** | ~12 | ✅ Ja | ❌ Nein |
| **BSD-2-Clause** | 0 | ✅ Ja | ❌ Nein |
### Keine problematischen Lizenzen!
| Lizenz | Status |
|--------|--------|
| GPL-2.0 | ❌ **Nicht verwendet** |
| GPL-3.0 | ❌ **Nicht verwendet** |
| AGPL | ❌ **Nicht verwendet** |
| LGPL | ❌ **Nicht verwendet** |
| SSPL | ❌ **Nicht verwendet** |
| Commons Clause | ❌ **Nicht verwendet** |
---
## Eigene Komponenten (Keine externen Abhängigkeiten)
Die folgenden Komponenten wurden im Rahmen des AI Compliance SDK entwickelt und haben **keine zusätzlichen Abhängigkeiten**:
| Komponente | Dateien | Externe Deps |
|------------|---------|--------------|
| Policy Engine | `internal/ucca/policy_engine.go` | Keine |
| License Policy Engine | `internal/ucca/license_policy.go` | Keine |
| Legal RAG | `internal/ucca/legal_rag.go` | Keine |
| Escalation System | `internal/ucca/escalation_*.go` | Keine |
| SLA Monitor | `internal/ucca/sla_monitor.go` | Keine |
| UCCA Handlers | `internal/api/handlers/ucca_handlers.go` | Gin (MIT) |
| **Obligations Framework** | `internal/ucca/obligations_framework.go` | Keine |
| **Obligations Registry** | `internal/ucca/obligations_registry.go` | Keine |
| **NIS2 Module** | `internal/ucca/nis2_module.go` | Keine |
| **DSGVO Module** | `internal/ucca/dsgvo_module.go` | Keine |
| **AI Act Module** | `internal/ucca/ai_act_module.go` | Keine |
| **PDF Export** | `internal/ucca/pdf_export.go` | gofpdf (MIT) |
| **Obligations Handlers** | `internal/api/handlers/obligations_handlers.go` | Gin (MIT) |
| **Funding Models** | `internal/funding/models.go` | Keine |
| **Funding Store** | `internal/funding/store.go`, `postgres_store.go` | pgx (MIT) |
| **Funding Export** | `internal/funding/export.go` | gofpdf (MIT), excelize (BSD-3) |
| **Funding Handlers** | `internal/api/handlers/funding_handlers.go` | Gin (MIT) |
### Policy-Dateien (Reine YAML/JSON)
| Datei | Format | Abhängigkeiten |
|-------|--------|----------------|
| `ucca_policy_v1.yaml` | YAML | Keine |
| `wizard_schema_v1.yaml` | YAML | Keine |
| `controls_catalog.yaml` | YAML | Keine |
| `gap_mapping.yaml` | YAML | Keine |
| `licensed_content_policy.yaml` | YAML | Keine |
| `financial_regulations_policy.yaml` | YAML | Keine |
| `financial_regulations_corpus.yaml` | YAML | Keine |
| `scc_legal_corpus.yaml` | YAML | Keine |
| **`obligations/nis2_obligations.yaml`** | YAML | Keine |
| **`obligations/dsgvo_obligations.yaml`** | YAML | Keine |
| **`obligations/ai_act_obligations.yaml`** | YAML | Keine |
| **`funding/foerderantrag_wizard_v1.yaml`** | YAML | Keine |
| **`funding/bundesland_profiles.yaml`** | YAML | Keine |
---
## Compliance-Erklärung
### Für kommerzielle Nutzung geeignet: ✅ JA
Alle verwendeten Abhängigkeiten verwenden **permissive Open-Source-Lizenzen**:
1. **MIT-Lizenz**: Erlaubt kommerzielle Nutzung, Modifikation, Distribution. Nur Lizenzhinweis erforderlich.
2. **Apache-2.0-Lizenz**: Erlaubt kommerzielle Nutzung, Modifikation, Distribution. Patentgewährung enthalten.
3. **BSD-3-Clause**: Erlaubt kommerzielle Nutzung, Modifikation, Distribution. Nur Lizenzhinweis erforderlich.
### Keine Copyleft-Lizenzen
Es werden **keine** Copyleft-Lizenzen (GPL, AGPL, LGPL) verwendet, die eine Offenlegung des eigenen Quellcodes erfordern würden.
### Empfohlene Maßnahmen
1. **NOTICE-Datei pflegen**: Alle Lizenztexte in einer NOTICE-Datei zusammenfassen
2. **Regelmäßige Updates**: Abhängigkeiten auf bekannte Schwachstellen prüfen
3. **License-Scanner**: Tool wie `go-licenses` oder `fossa` für automatisierte Prüfung
---
## Generierung des SBOM
```bash
# SBOM im SPDX-Format generieren
go install github.com/spdx/tools-golang/cmd/spdx-tvwriter@latest
go mod download
# Manuell: SPDX-Dokument erstellen
# Alternativ: CycloneDX Format
go install github.com/CycloneDX/cyclonedx-gomod/cmd/cyclonedx-gomod@latest
cyclonedx-gomod mod -output sbom.json
# Lizenz-Prüfung
go install github.com/google/go-licenses@latest
go-licenses csv github.com/breakpilot/ai-compliance-sdk/...
```
---
*Dokumentationsstand: 2026-01-29*