meldestelle/docs/01_Architecture/_archive/2026-01-15_Roadmap_System_Hardening.md
Stefan Mogeritsch 23e08403f1 docs: finalize and verify Ping Service tracer bullet implementation and sync fix
Updated `MASTER_ROADMAP_2026_Q1.md` and session logs to reflect completion of the Ping Service tracer bullet. Verified the end-to-end stack, including frontend, backend, and Gateway integration. Fixed query parameter mismatch in `PingApiKoinClient.syncPings()` (`lastSyncTimestamp` → `since`) for proper Delta-Sync functionality. Marked related roadmap tasks as completed.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-09 15:51:42 +01:00

4.2 KiB

type status owner last_update
Roadmap ARCHIVED Lead Architect 2026-03-09

Roadmap: System Hardening & Stability

Hinweis: Dieses Dokument ist veraltet. Die Inhalte wurden in die MASTER_ROADMAP_2026_Q1.md integriert.

Status: Draft Priorität: Hoch (Blocker für Feature-Entwicklung)

1. Backend & Build System (Architect / Backend Dev)

1.1 Dependency Management

  • Spring Cloud 2025.0.1 Downgrade:
    • libs.versions.toml: Spring Cloud Version auf 2025.0.1 setzen.
    • platform/build.gradle.kts: BOM Import prüfen.
    • Ziel: Behebung der ClassNotFoundException im Gateway (CircuitBreaker).
    • (verifiziert 2026-03-09)
  • Gateway CircuitBreaker: (verifiziert 2026-03-09)
    • spring-cloud-starter-circuitbreaker-reactor-resilience4j (Reactive/WebFlux-Variante) korrekt eingebunden.
    • GatewayConfig.kt: circuitBreaker { name = "pingServiceCB"; fallbackUri = "forward:/fallback/ping" } konfiguriert.
    • FallbackController.kt + GatewayMetricsConfig.kt (CB-Counter) vorhanden.
    • Resilience4j 2.3.0 kompatibel mit Spring Cloud 2025.0.1 / Spring Boot 3.5.x.
  • Micrometer 1.16.1:
    • Explizites Upgrade in libs.versions.toml für Java 25 Kompatibilität.
    • (verifiziert 2026-03-09: micrometer = "1.16.1" bereits gesetzt, micrometerTracing = "1.6.1")
  • KMP Database Cleanup:
    • Entscheidung: SQLDelight für KMP Client.
    • Entfernen von Room Dependencies (falls nicht zwingend benötigt).
    • Exposed Version im Backend prüfen (0.5x vs 1.0.0-rc).
    • (verifiziert 2026-03-09: Room entfernt, SQLDelight 2.2.1 aktiv in frontend/core/local-db)

1.2 Modul-Struktur

  • core-utils Refactoring:
    • Verschieben von DatabaseUtils (JVM-Code) aus core-utils nach :backend:infrastructure:persistence.
    • Sicherstellen, dass core-utils rein commonMain kompatibel ist.
    • (verifiziert 2026-03-09: Stub-Datei mit Redirect vorhanden, Code in persistence)

2. Infrastructure & DevOps (DevOps Engineer)

2.1 Docker Environment

  • Redis -> Valkey Migration:
    • Prüfen, ob wir Redis durch Valkey (Open Source Fork) ersetzen, um Lizenzprobleme zu vermeiden.
    • Update docker-compose.yaml.
    • (verifiziert 2026-03-09: valkey/valkey:9-alpine läuft produktiv in dc-infra.yaml)
  • Keycloak Härtung: (verifiziert 2026-03-09)
    • Export der Realm-Config (meldestelle-realm.json) und Mounten im Container (statt manueller Config).
    • frontend-client (PKCE S256, Custom URI Scheme meldestelle://callback) hinzugefügt.
    • Wildcard * aus webOrigins aller Clients entfernt (CORS-Härtung).
    • Password-Policy auf length(10) + digits + upperCase + specialChars gestärkt.
    • post.logout.redirect.uris für alle Clients konfiguriert.

2.2 Observability

  • Zipkin Integration: (verifiziert 2026-03-09)
    • monitoring-client-Bundle enthält alle nötigen Dependencies (bridge-brave, reporter-brave, sender-okhttp3).
    • dc-backend.yaml setzt MANAGEMENT_ZIPKIN_TRACING_ENDPOINT=http://zipkin:9411/api/v2/spans für alle Services.
    • Gateway-Fix: propagation.type von w3c auf b3 korrigiert; Zipkin-Endpoint explizit ergänzt.

3. Frontend (Frontend Expert)

3.1 Build Fixes

  • Wasm Worker Fix: (zurückgestellt — erst nach DevOps-Stabilisierung)
    • Behebung der Unresolved reference: Worker Fehler im composeApp:wasmJsBrowserDistribution Task.
    • Prüfen der kotlinx-browser Version.

3.2 Auth Integration

  • OIDC Client: (verifiziert 2026-03-09)
  • Ping Service Tracer Bullet: (verifiziert 2026-03-09)
    • Stack vollständig: Backend (Domain/App/Persistence/Controller/Security/Migrations), Contracts, Gateway-Routing, Frontend (PingScreen, PingViewModel, PingApiKoinClient, Koin DI, Shell-Integration).
    • Bug behoben: PingApiKoinClient.syncPings() lastSyncTimestampsince (Delta-Sync Query-Parameter).
    • PKCE Authorization Code Flow (S256) mit frontend-client.
    • Pure Kotlin SHA-256 + PkceHelper (commonMain, kein expect/actual).
    • JVM: lokaler Callback-Server (Port 18080) + Desktop.browse().
    • JS: Seiten-Redirect + URL-Parsing beim App-Start + replaceState-Bereinigung.
    • LoginViewModel + LoginScreen um OIDC-Button erweitert.