Files
dilib_operations/docs/API.md
T
ms 2c1c48df0c
PostgreSQL integration / tests (push) Has been cancelled
init
2026-11-09 13:15:48 +01:00

40 lines
1.8 KiB
Markdown

# HTTP-API
Basis `/api/`, JSON. Login liefert ein acht Stunden gültiges Bearer-Token.
Alle Lesezugriffe benötigen Anmeldung. Agent-Token sind nur für Ingest gültig.
| Methode / Pfad | Funktion |
|---|---|
| POST auth/login/ | username, password → token |
| POST auth/logout/ | aktuelles Token widerrufen |
| GET auth/me/ | Benutzerinformationen |
| POST ingest/ | Agent-Batch, Header Authorization: Agent TOKEN |
| GET summary/ | Kennzahlen, Server, Durchsatz |
| GET servers/ | Hostliste |
| GET servers/UUID/ | Detail und Zeitreihe |
| PATCH servers/UUID/ | maintenance boolean, Operator |
| GET tasks/ | Taskliste mit q, state, offset |
| GET events/ | Ereignisliste mit q, kind, offset |
| GET alarms/ | offene Alarme, all=1 für Historie, offset |
| POST alarms/ID/ack/ | Quittierung, Operator |
| GET/PUT settings/ | Lesen / Operator-Konfiguration |
| GET flower/ | zuletzt empfangene Flower-Statuswerte |
| GET export/ | Serverübersicht als CSV |
| GET report/ | Seaborn-Heatmap als PNG |
| POST ai/ | konfigurierte KI-Analyse, Operator |
| GET health/ | Datenbankprüfung |
Listen nutzen `segment` (Name), `server` (UUID) und je nach Endpunkt `hours`
(1, 24, 168 oder 720). Tasks/Events/Alarme sind auf 100 Einträge pro Seite begrenzt.
Flower-Status enthält den Messzeitpunkt; alte Werte sind kein aktueller Verfügbarkeitsnachweis.
Ingest-Beispiel:
```json
{"events":[{"id":"9f242e23-d82d-457a-b89c-cc97ce5beee9","kind":"metric","occurred_at":"2026-11-04T12:00:00Z","payload":{"cpu":12.5,"ram":43.2,"disk":50.1,"services":{"django":true}}}]}
```
Erfolgsantwort enthält `accepted` (neu eingefügte Ereignisse) und `received`
(Anzahl verarbeiteter Eingabeelemente inklusive Duplikate). Nur bei erfolgreichem
HTTP-Status und passender received-Anzahl bestätigt der Agent die Outbox-Einträge.