# 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.