meldestelle/docs/90_Reports/2026-02-01_Sync_Fix_Report.md
Stefan Mogeritsch 09b0b1a462 infra: clean up Keycloak configuration, enforce consistency in .env, and improve health checks
Streamlined Keycloak configurations with defaults for development and production in `.env`. Added health checks and improved environment variable documentation with comments to differentiate local and server deployments. Ensured compatibility with pre-built registry images.
2026-03-06 11:23:24 +01:00

1.5 KiB

type status owner date author
Report ACTIVE Curator 2026-02-01 Curator

Report: Fix Sync Type Mismatch (String vs Long)

1. Problembeschreibung

Es wurde eine kritische Inkonsistenz im Delta-Sync-Mechanismus zwischen Frontend und Backend festgestellt.

  • Frontend: Der generische SyncManager nutzte einen String-Cursor (UUIDv7), was zu einem Typ-Fehler führte.
  • Backend: Der PingController erwartete strikt einen Long (Timestamp) für den Parameter lastSyncTimestamp.

2. Durchgeführte Maßnahmen

2.1 Backend (ping-service)

  • Parameter-Umbenennung: Der Parameter im PingController wurde von lastSyncTimestamp zu since umbenannt, um der Konvention des Frontend-SyncManagers zu entsprechen.
  • Tests: Unit- und Integrationstests (PingControllerTest) wurden aktualisiert.

2.2 Frontend (meldestelle-portal)

  • Repository-Anpassung: PingEventRepositoryImpl holt nun explizit den last_modified Timestamp aus der Datenbank (via neuer SQL-Query selectLatestPingEventTimestamp).
  • Typ-Konvertierung: Der Timestamp wird als String an den SyncManager übergeben, der ihn als URL-Parameter anhängt. Spring Boot konvertiert diesen String automatisch zurück in einen Long.

2.3 Contracts (ping-api)

  • Das Interface PingApi wurde aktualisiert: syncPings(since: Long).

3. Ergebnis

  • Die Typ-Sicherheit ist hergestellt.
  • Tests im Backend laufen erfolgreich durch.
  • Der Sync-Mechanismus ist nun robust und bereit für den produktiven Einsatz.

4. Status

RESOLVED