Document repository overview endpoint
This commit is contained in:
@@ -0,0 +1,170 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user