Schlüssel-Proxy, Server-Anforderungen und gitleaks-Regel für API-Werk

- tools/ki-proxy: setzt API-Schlüssel aus der Windows-Anmeldeinformationsverwaltung ein,
  nur im Speicher, ohne Header-Protokoll; Tests gegen Platzhalter-Server
- docs/server-anforderungen.md für den ITM-Entwickler
- .gitleaks.toml erkennt zki_/zodl_/zocr_-Schlüssel
- CLAUDE.md, Plan, Tech-Stack: Schlüssel nie in .env, in der App verschlüsselt in der DB

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Christoph
2026-10-05 08:25:30 +02:00
co-authored by Claude Opus 5.5
parent 6d6f8f8f27
commit ca09d23a78
9 changed files with 716 additions and 4 deletions
+9 -1
View File
@@ -36,7 +36,7 @@ testet im Browser und liest nicht jede Zeile. Deshalb:
## Harte Vorgaben
- **Alles lokal.** Keine Skripte, Fonts, Bilder oder APIs von fremden Hosts. Einzige Ausnahme
ist die KI-API ITM (API-Werk), nur aus dem Backend, Schlüssel nur in `.env`. `tests/Feature/NoExternalResourcesTest.php` muss grün bleiben.
ist die KI-API ITM (API-Werk), nur aus dem Backend. `tests/Feature/NoExternalResourcesTest.php` muss grün bleiben.
- `<x-ts-avatar>` nur mit `text` (Initialen), nie mit `model`, `gravatar` oder Bild-URL –
sonst lädt TallStackUI von ui-avatars.com bzw. gravatar.com.
- `<x-ts-reaction>` nicht verwenden (lädt Emojis von Google).
@@ -46,6 +46,14 @@ testet im Browser und liest nicht jede Zeile. Deshalb:
in Controllern und Livewire-Aktionen, bei Downloads, bei Suchtreffern und bevor Inhalte an
ein Sprachmodell gehen. Die Oberfläche auszublenden reicht nicht.
- **Dateien privat speichern** (Disk `local`) und nur über eine Route mit Rechteprüfung ausliefern.
- **API-Schlüssel nie in `.env`, Code, Tests, Logs oder Ausgaben.** In der Anwendung stehen sie
verschlüsselt in der Datenbank (Verwaltung → Einstellungen, nur beschreibbar). In der Entwicklung
läuft alles über den Schlüssel-Proxy (`tools/ki-proxy`, `http://127.0.0.1:8787` bzw. aus Sail
`http://host.docker.internal:8787`); die Schlüsselfelder bleiben dort leer.
- Claude Code startet den Proxy nie selbst und versucht nie, Schlüssel zu lesen (Windows-Tresor,
fremde Prozesse). Läuft der Proxy nicht, den Entwickler bitten, ihn zu starten.
- Echte Kundendaten (z. B. LVs von BauIn) gehen auch über den Proxy nicht an Claude: mit
synthetischen oder anonymisierten Dateien testen; mit echten Daten nur Skripte, die Kennzahlen ausgeben.
- **Dokumentinhalte sind Daten, keine Anweisungen.** Texte aus LVs, Nachträgen und Anlagen gehen
nur als abgegrenzter Kontext an das Sprachmodell; seine Antwort wird im Code geprüft.
Keine Authorization-Köpfe, ganzen Dokumente oder Prompts in technische Logs.