### 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,36 @@
# Session-Journal: 22. April 2026 - ZNS-Sync & Auth Finalisierung
## 🎯 Status & Highlights
- **Cloud-Sync Fix:** Behebung der `401 Unauthorized` Fehler durch Entfernung redundanter Auth-Header, die Konflikte mit dem `apiClient`-Interceptor verursachten.
- **Route-Standardisierung:** Korrektur der Masterdata-API-Routen (Singular-Paths wie `/horse` statt `/pferde`), um Übereinstimmung mit dem Backend-Controller herzustellen.
- **Infrastruktur-Resilience:** Consul Health-Checks für den `masterdata-service` stabilisiert (Port 8086 vs 8091 Trennung und Timeout-Anpassungen).
- **SQLite-Aktivierung:** Erfolgreiche Vorbereitung der lokalen Datenbank für den Massen-Sync von >70.000 Datensätzen.
## 🛠️ Durchgeführte Änderungen
### Frontend (Common/Desktop)
- **ZnsImportViewModel.kt:**
- Redundante Token-Header und hartcodierte `NetworkConfig.baseUrl` entfernt.
- Vertrauen auf den zentralen `apiClient` Interceptor in `NetworkModule`.
- **KtorPferdRepository.kt & KtorFunktionaerRepository.kt:**
- Routen von `/pferde` -> `/horse` und `/funktionaere` -> `/funktionaer` korrigiert.
- Nutzung von `ApiRoutes.Masterdata` Konstanten sichergestellt.
- Standardisierung der Ktor `body()` Aufrufe.
- **DI-Verkabelung:**
- Verifizierung, dass alle Feature-Module (`Verein`, `Reiter`, `Pferd`, `Funktionaer`) den benannten `apiClient` (mit Auth-Support) injiziert bekommen.
### Backend (Infrastructure)
- **masterdata-service (application.yml):**
- Consul Health-Check Intervalle und Timeouts für bessere Reaktionszeit bei gleichzeitiger Stabilität optimiert.
- Korrekte Port-Zuweisung für Management (8086) und API (8091).
## 🧐 QA & Verifizierung
- **Kompilierung:** `./gradlew :frontend:shells:meldestelle-desktop:compileKotlinJvm` erfolgreich (BUILD SUCCESSFUL).
- **Wizard-Tests:** `./gradlew :frontend:core:wizard:jvmTest` weiterhin 100% grün (9/9).
- **Logik-Check:** Manuelle Prüfung der Route-Referenzen gegen den `HorseController` und `FunktionaerController` im Backend.
## 🚀 Next Steps
1. **Initialer Massen-Sync:** Ausführung des "Cloud-Sync" Buttons in der Desktop-App.
2. **Feature-Check:** Verifizierung der Datenanzeige in den "Pferde" und "Funktionär" Screens.
3. **Pferde-Suche:** Test der Suche im Event-Wizard gegen den realen Bestand von 21.206 Pferden.
🏗️ [Lead Architect] | 👷 [Backend Developer] | 🧐 [QA Specialist] | 🧹 [Curator]