Files
2026-09-16 06:26:16 +02:00

4.4 KiB
Raw Permalink Blame History

API-Abdeckung – Snapshot 0.1.0-alpha.5

HTTP-Publish-Endpunkte liefern nach Outbox-Commit 202 mit receipt.id. Idempotency-Key dedupliziert pro Quelle/Kanal. Details: OPERATIONS.md.

Ingress

Oberfläche Stand Hinweise
ntfy POST/PUT Text funktionsfähig /ntfy/{topic} und /in/ntfy/{topic}
ntfy JSON Publish funktionsfähig /ntfy und /in/ntfy, topic erforderlich
ntfy GET Trigger funktionsfähig trigger, send, publish
ntfy Auth Basis Bearer; Basic-Password wird als Topic-Token geprüft
Gotify POST message funktionsfähig /message und /in/gotify/message; Token via Query/Header/Bearer
Gotify vollständige Response-/Extras-Kompatibilität geplant M2
Webhook JSON/Form/Text funktionsfähig /in/webhook/{channel}

Zusätzliche Ausgänge (Provider-Erweiterung)

Provider Stand Umfang
Discord implementiert Execute Webhook, Text, wait=true, keine Mentions, Dry-Run
HTTP-Webhook implementiert POST JSON, optional Bearer-Token, Timeout, Dry-Run
SMTP implementiert TLS/STARTTLS, MIME-Text, Plain-Auth
ntfy / Gotify implementiert JSON-Publish bzw. POST message mit App-Token
IMAP-Eingang implementiert TLS, UID-/UIDVALIDITY-Checkpoint, MIME-Text
Discord-Eingang implementiert POST /in/discord, signierte Slash-Commands und PING

Konfiguration: outbounds[]; Regeln referenzieren einen Ausgang über outbound_id und target: discord|webhook|smtp|ntfy|gotify. Administration über GET/PUT /ui/api/config, Vorschau über POST /ui/api/preview.

Betrieb und Administration

Endpunkt Funktion
GET /readyz SQLite-Erreichbarkeit
GET /metrics Prometheus-Zustandsmetriken; Metrics-Bearer-Token oder Admin-Session
GET /ui/api/csrf CSRF-Token für schreibende Admin-Aufrufe
GET /ui/api/deliveries?offset=0 Zustellhistorie, 50 Einträge je Seite, Zähler und Mail-Abrufstatus
GET /ui/api/deliveries/{id}/attempts Letzte 200 Versuchsereignisse
POST /ui/api/deliveries/{id}/retry Nur fehlgeschlagene Aufträge erneut versuchen

Divera247 v2

kind ist alarms, news oder events, soweit die jeweilige Operation von Divera247 dokumentiert ist.

Operation Client-Methode Stand
Liste List implementiert
Erstellen Create implementiert, durch Mapping genutzt
Einzelobjekt Get implementiert
Bearbeiten Update implementiert
Löschen Delete implementiert
Archivieren Archive implementiert
Als gelesen markieren Read implementiert
Rückmeldung Confirm implementiert
Reichweite Reach implementiert
Rückmeldungen zurücksetzen ResetResponses implementiert
PDF/Download Download implementiert
Anhang AddAttachment implementiert
Alarm-Liste inkl. closed AlarmList implementiert
Alarm schließen/öffnen CloseAlarm implementiert
Event ICS EventICS implementiert
Pull All PullAll implementiert
Pull Vehicle Status PullVehicleStatus implementiert
beliebiger API-Pfad Request implementiert (Escape Hatch)

Divera247 v3

Die offizielle v3-Spezifikation ist als Beta gekennzeichnet. GET /api/v3/user-cluster-relations ist als ListUserClusterRelations typisiert, wird für die WebUI aber nur noch als Fallback verwendet. Ein gültiger v2-Accesskey kann für v3 trotzdem HTTP 403 erhalten. Primäre Personenquelle ist daher GET /api/v2/pull/all: data.ucr liefert die erreichbaren User-Cluster-Relationen/Einheiten und data.cluster.consumer die Benutzer-Stammdaten der jeweils aktiven Einheit. Das Gateway lädt bei Mehrfacheinheiten die einzelnen UCRs über den v2-Parameter ucr und bewahrt die numerischen Consumer-Keys als UCR-IDs für gezielte Alarmierung.

Quellenbasis der Implementierung

  • Divera247 interaktive API: https://api.divera247.com/
  • Divera247 OpenAPI v2 Alarm: https://api.divera247.com/docs/api_v2_alarm.yaml
  • Divera247 OpenAPI v2 News: https://api.divera247.com/docs/api_v2_news.yaml
  • Divera247 OpenAPI v2 Event: https://api.divera247.com/docs/api_v2_event.yaml
  • Divera247 OpenAPI v2 Pull: https://api.divera247.com/docs/api_v2_pull.yaml
  • Divera247 OpenAPI v3: https://api.divera247.com/docs/api_v3.yaml
  • ntfy Publish API: https://docs.ntfy.sh/publish/
  • Gotify API: https://gotify.net/api-docs