meldestelle/docs/99_Journal/2026-04-16_Explicit-Device-Enrollment.md
Stefan Mogeritsch 82a4a13505 feat(onboarding): Explicit Device Enrollment für Master-Geräte hinzugefügt
- Master-Geräte können erwartete Clients inkl. Name & Rolle definieren.
- Neue Rollen (`RICHTER`, `ZEITNEHMER` etc.) integriert.
- Backend- und Frontend-Validierung erweitert, UI-Komponente für Client-Verwaltung.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-04-16 10:24:52 +02:00

1.8 KiB

type status owner created
Journal ACTIVE Curator 2026-04-16

Journal — 16. April 2026 (Explicit Device Enrollment)

🎯 Ziel & Entscheidung

Implementierung des "Explicit Device Enrollment"-Konzepts im Onboarding-Prozess. Ein Master-Gerät definiert nun vorab, welche Clients (Name & Rolle) im lokalen Netzwerk erwartet werden. Dies erhöht die Sicherheit und automatisiert die Feature-Freischaltung auf den Clients.

🏗️ Architektur-Änderungen

  • Backend (Identity-Service):
    • DeviceRole wurde um fachspezifische Rollen erweitert (RICHTER, ZEITNEHMER, STALLMEISTER, ANZEIGE, PARCOURS_CHEF).
    • DeviceTable (Exposed) und Device-Modell enthalten nun expectedName, isOnline und isSynchronized.
  • Frontend (Desktop-App):
    • OnboardingSettings speichert nun eine Liste von ExpectedClient.
    • OnboardingScreen (v2) bietet Master-Geräten eine Tabelle zum Verwalten dieser Liste.
    • OnboardingValidator stellt sicher, dass alle erwarteten Geräte einen Namen haben, bevor die Konfiguration gespeichert wird.

🧪 Verifikation

  • Erweiterte Unit-Tests in OnboardingValidatorTest decken die Validierung der Client-Liste ab (24/24 Tests grün).
  • UI-Komponenten (Dropdown für Rollen, Add/Delete-Actions) wurden in Screens.kt integriert.

🔗 Relevante Dateien

  • backend/services/identity/identity-domain/src/main/kotlin/at/mocode/identity/domain/model/Device.kt

backend/services/identity/identity-infrastructure/src/main/kotlin/at/mocode/identity/infrastructure/persistence/DeviceTable.kt

  • frontend/shells/meldestelle-desktop/src/jvmMain/kotlin/at/mocode/desktop/screens/onboarding/OnboardingSettings.kt
  • frontend/shells/meldestelle-desktop/src/jvmMain/kotlin/at/mocode/desktop/v2/Screens.kt