2.7 KiB
018 - Repository-Schicht und System-Overview-Endpunkt
Ziel
Für RUVNOX Tactical wurde eine erste serverseitige Repository-Schicht angelegt. Außerdem wurde ein neuer API-Endpunkt für einfache Systemübersichten ergänzt.
Neuer API-Endpunkt
GET /api/v1/system/overview
Der Endpunkt liefert Zählerstände aus der PostgreSQL-Datenbank.
Neue Serverstruktur
Neue Package-Struktur:
src/main/kotlin/de/ruvnox/tactical/repository
Neue Repository-Dateien:
- RepositorySupport.kt
- UserRepository.kt
- DeviceRepository.kt
- OperationRoomRepository.kt
- MessageRepository.kt
- AuditEventRepository.kt
Neue API-Dateien:
- SystemDtos.kt
- SystemRoutes.kt
Geänderte Datei:
- Main.kt
RepositorySupport.kt
RepositorySupport.kt enthält eine interne Hilfsfunktion queryLong(sql).
Diese Funktion:
- öffnet eine Datenbankverbindung über Database.connection()
- führt eine SQL-Abfrage aus
- gibt den ersten Long-Wert zurück
- schließt Connection, Statement und ResultSet automatisch
UserRepository
Liefert:
- countTotal()
- countActive()
SQL-Basis:
app_users
DeviceRepository
Liefert:
- countTotal()
- countActive()
SQL-Basis:
devices
OperationRoomRepository
Liefert:
- countTotal()
- countActive()
SQL-Basis:
operation_rooms
MessageRepository
Liefert:
- countTotal()
SQL-Basis:
messages
AuditEventRepository
Liefert:
- countTotal()
SQL-Basis:
audit_events
SystemDtos.kt
Neue DTOs:
- CountSummaryResponse
- SystemOverviewResponse
SystemOverviewResponse enthält:
- service
- status
- users
- devices
- operationRooms
- messages
- auditEvents
SystemRoutes.kt
SystemRoutes.kt registriert:
GET /api/v1/system/overview
Der Endpunkt fragt die Repository-Schicht ab und liefert eine JSON-Antwort.
Main.kt
Main.kt registriert jetzt zusätzlich:
systemRoutes()
Neben den bisherigen statusRoutes().
Verifikation
Lokal:
curl -fsS http://127.0.0.1:8080/api/v1/system/overview
Öffentlich:
curl -fsS https://tactical.ruvnox.de/api/v1/system/overview
Sicherheitshinweis
Der Endpunkt ist aktuell noch ungeschützt.
Für den Entwicklungsstand ist das akzeptabel, weil nur Zählerstände ausgegeben werden. Vor produktiver Nutzung muss dieser Endpunkt entweder geschützt, entfernt oder auf interne Nutzung beschränkt werden.
Git-Commit
tactical-server:
Add repository overview endpoint
Abschlussstand
- Repository-Schicht angelegt
- Erste DB-Abfragen implementiert
- System-Overview-Endpunkt ergänzt
- Build erfolgreich
- Deployment erfolgreich
- API lokal geprüft
- API öffentlich geprüft
- Server-Repo gepusht
- Docs-Repo aktualisiert
Nächster Abschnitt
Als nächstes sollte ein Bootstrap-Mechanismus für den ersten Admin-User erstellt werden.