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>
4.2 KiB
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 auf2025.0.1setzen.platform/build.gradle.kts: BOM Import prüfen.- Ziel: Behebung der
ClassNotFoundExceptionim 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.0kompatibel mit Spring Cloud 2025.0.1 / Spring Boot 3.5.x.
- Micrometer 1.16.1:
- Explizites Upgrade in
libs.versions.tomlfür Java 25 Kompatibilität. - (verifiziert 2026-03-09: micrometer = "1.16.1" bereits gesetzt, micrometerTracing = "1.6.1")
- Explizites Upgrade in
- 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.5xvs1.0.0-rc). - (verifiziert 2026-03-09: Room entfernt, SQLDelight 2.2.1 aktiv in frontend/core/local-db)
1.2 Modul-Struktur
core-utilsRefactoring:- Verschieben von
DatabaseUtils(JVM-Code) auscore-utilsnach:backend:infrastructure:persistence. - Sicherstellen, dass
core-utilsreincommonMainkompatibel ist. - (verifiziert 2026-03-09: Stub-Datei mit Redirect vorhanden, Code in persistence)
- Verschieben von
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 Schememeldestelle://callback) hinzugefügt.- Wildcard
*auswebOriginsaller Clients entfernt (CORS-Härtung). - Password-Policy auf
length(10) + digits + upperCase + specialCharsgestärkt. post.logout.redirect.urisfür alle Clients konfiguriert.
- Export der Realm-Config (
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.yamlsetztMANAGEMENT_ZIPKIN_TRACING_ENDPOINT=http://zipkin:9411/api/v2/spansfür alle Services.- Gateway-Fix:
propagation.typevonw3caufb3korrigiert; 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: WorkerFehler imcomposeApp:wasmJsBrowserDistributionTask. - Prüfen der
kotlinx-browserVersion.
- Behebung der
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()lastSyncTimestamp→since(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+LoginScreenum OIDC-Button erweitert.