GOV-03: keine training auf kundendaten – datenresidenz-kontrolle #222

Merged
patrick merged 1 commits from feature/gov-03-keine-training-auf-kundendaten-datenresidenz-kontrolle into main 2026-09-27 10:24:53 +02:00
Owner

Umsetzung

  • Neues Paket ai/internal/residency: je Tenant konfigurierbarer Datenresidenz-Stand (local / external_approved) mit Freigabe-Nachweis (approved_by, approved_at), Migration 0006_tenant_data_residency.
  • residency.Gate implementiert das bestehende openai.TenantGate-Interface (ENG-03) gegen den DB-Stand, ohne GuardedProvider zu verändern.
  • Neues Paket ai/internal/residencyapi: HTTP-Bindung (GET/POST je Tenant), Service-Token-Pflicht wie bestehende AI-APIs.
  • Neues Paket ai/internal/notraining: technischer Nachweis, dass provider.Provider keine Trainings-/Fine-Tuning-Methode kennt und keiner der Adapter einen solchen Endpunkt aufruft.

Durchgeführte Prüfungen (Ergebnis)

  1. Konfiguration lokal/extern im Test nachvollzogen — bestanden (Default local, Umschalten per Approve/HTTP sichtbar inkl. Freigeber/Zeitpunkt).
  2. Fehlende Freigabe verhindert externe Verarbeitung im Test — bestanden (Gate lehnt ohne Freigabe ab, HTTP 400 ohne approved_by).
  3. Trainingsausschluss vertraglich und technisch geprüft — bestanden (technisch: Interface-Reflection + Quelltext-Scan gegen Trainings-Endpunkte, beide PASS; vertraglich: On-Premise-Ollama ohne Drittbetreiber + Anbieter-Opt-in-Regel für den externen Adapter, siehe Prüfprotokoll für Details/Grenzen).

Vollständiges Protokoll: ai/docs/GOV-03-PRUEFPROTOKOLL.md.

Gesamtlauf 204: go build, go vet, gofmt -l sauber für alle neuen Dateien; go test ./... im ai-Modul komplett grün (keine Regression).

Kein Merge, kein Deploy durchgeführt.

🤖 Generated with Claude Code

## Umsetzung - Neues Paket `ai/internal/residency`: je Tenant konfigurierbarer Datenresidenz-Stand (`local` / `external_approved`) mit Freigabe-Nachweis (`approved_by`, `approved_at`), Migration `0006_tenant_data_residency`. - `residency.Gate` implementiert das bestehende `openai.TenantGate`-Interface (ENG-03) gegen den DB-Stand, ohne `GuardedProvider` zu verändern. - Neues Paket `ai/internal/residencyapi`: HTTP-Bindung (GET/POST je Tenant), Service-Token-Pflicht wie bestehende AI-APIs. - Neues Paket `ai/internal/notraining`: technischer Nachweis, dass `provider.Provider` keine Trainings-/Fine-Tuning-Methode kennt und keiner der Adapter einen solchen Endpunkt aufruft. ## Durchgeführte Prüfungen (Ergebnis) 1. Konfiguration lokal/extern im Test nachvollzogen — **bestanden** (Default `local`, Umschalten per Approve/HTTP sichtbar inkl. Freigeber/Zeitpunkt). 2. Fehlende Freigabe verhindert externe Verarbeitung im Test — **bestanden** (Gate lehnt ohne Freigabe ab, HTTP 400 ohne `approved_by`). 3. Trainingsausschluss vertraglich und technisch geprüft — **bestanden** (technisch: Interface-Reflection + Quelltext-Scan gegen Trainings-Endpunkte, beide PASS; vertraglich: On-Premise-Ollama ohne Drittbetreiber + Anbieter-Opt-in-Regel für den externen Adapter, siehe Prüfprotokoll für Details/Grenzen). Vollständiges Protokoll: `ai/docs/GOV-03-PRUEFPROTOKOLL.md`. Gesamtlauf 204: `go build`, `go vet`, `gofmt -l` sauber für alle neuen Dateien; `go test ./...` im `ai`-Modul komplett grün (keine Regression). Kein Merge, kein Deploy durchgeführt. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick added 1 commit 2026-09-27 09:57:13 +02:00
GOV-03: keine training auf kundendaten – datenresidenz-kontrolle
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
012c275529
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
patrick merged commit bb743c4a95 into main 2026-09-27 10:24:53 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: scripte/nexarch#222