### feat: erweitere ZNS und SQLDelight-Integration
Desktop CI — Headless Tests & Build / Compose Desktop — Tests (headless) & Build (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Has been cancelled
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Has been cancelled

- **SQLDelight:** Füge neue Queries (`countVereine`, `maxUpdated...`) zur SQLite-Datenbank hinzu und aktualisiere `DesktopMasterdataRepository`.
- **ZNS-Sync:** Passe `ZnsImportState` an, um Pferde- und Funktionärsdaten zu unterstützen.
- **Cloud-Sync:** Entferne redundante Auth-Header und setze Limits für Massensynchronisation auf 50.000 Datensätze.
- **Masterdata-Service:** Stabilisiere Consul Health-Checks und implementiere Limit-Beschränkungen auf Controller-Ebene.
This commit is contained in:
2026-04-22 14:14:33 +02:00
parent 98c241fc64
commit beb20e0cf7
16 changed files with 287 additions and 99 deletions
@@ -0,0 +1,30 @@
# Session-Journal: 22. April 2026 - Masterdata Auth & Consul Resilience
## 🎯 Status & Highlights
- **Auth-Bugfix (Cloud-Sync):** Behebung des `401 Unauthorized` beim Cloud-Sync durch konsistente Token-Injektion in alle API-Calls des `ZnsImportViewModel`.
- **Infrastruktur-Stabilisierung:** Optimierung der Consul-Health-Checks für den `masterdata-service`, um unerwünschte Deregistrierungen zu vermeiden.
- **Massendaten-Optimierung:** Erhöhung der Sync-Limits auf 50.000 Sätze pro Request für eine effiziente Initialbefüllung der lokalen SQLite-Datenbank.
## 🛠️ Durchgeführte Änderungen
### Frontend (Common)
- **ZnsImportViewModel.kt:**
- Bearer-Token zu allen `httpClient.get` Aufrufen in `syncFromCloud` hinzugefügt.
- Sicherheitscheck `if (token != null)` vor Header-Setzung implementiert.
- Synchronisations-Limits für Vereine auf 50.000 erhöht.
### Backend (Infrastructure)
- **masterdata-service (application.yml):**
- `health-check-interval` auf 30s erhöht.
- `health-check-critical-timeout` auf 5m erweitert.
- `deregister-critical-service-after` auf 10m gesetzt, um Consul mehr Puffer bei Lastspitzen (wie ZNS-Importen) zu geben.
## 🧐 QA & Verifizierung
- **Token-Validation:** Code-Review bestätigt, dass alle Sync-Endpunkte nun den Authorization-Header mitschicken.
- **Build:** `./gradlew :frontend:shells:meldestelle-desktop:compileKotlinJvm` weiterhin erfolgreich.
- **Log-Analyse:** Masterdata-Logs bestätigen Health-Checks auf Port 8086, während API auf 8091 läuft.
## 🚀 Next Steps
1. **End-to-End Sync:** Neustart der Desktop-App und Verifizierung, dass der Button "Cloud-Sync" nun alle Daten (Vereine, Reiter, Pferde, Funktionäre) ohne 401 Fehler in die SQLite zieht.
2. **Daten-Validierung:** Stichprobenartige Suche in der Desktop-App gegen die importierten 21.206 Pferde.
🏗️ [Lead Architect] | 👷 [Backend Developer] | 🐧 [DevOps Engineer]