meldestelle/docs/99_Journal/2026-04-22_ZNS_Sync_Auth_Final.md
StefanMoCoAt beb20e0cf7
Some checks failed
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
### feat: erweitere ZNS und SQLDelight-Integration
- **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.
2026-04-22 14:14:39 +02:00

2.4 KiB

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]