Skip to content

Data and Security de

mxkissnr edited this page May 25, 2026 · 2 revisions

Sprache: Deutsch | English

Daten & Sicherheit

Datenspeicherung

Alle persistenten Daten liegen in /data/ im Add-on-Container — auf HA-Persistenz-Speicher gemappt, überlebt Updates und Neustarts.

Datei Inhalt
/data/shots.json Maschinendaten aller synchronisierten Shots
/data/annotations.json Notizen und Bewertungen (getrennte Datei, sync-sicher)
/data/coffee_library.json Bohnen- und Mühlenbibliothek
/data/trash.json Gelöschte Shots (automatisch nach 30 Tagen bereinigt)
/data/blocklist.json Shot-IDs die nie erneut synchronisiert werden sollen

API-Endpunkte (intern)

Endpunkt Methode Beschreibung
/shots.json GET Alle Shots mit Annotationen
/api/status GET Sync-Status, Shot-Anzahl, HA-Verbindung, GLP-Version
/api/sync POST Manuellen Sync auslösen (Rate-Limit: max. 1×/30 s)
/api/shots/:id/annotate POST Annotation für Shot speichern
/api/shots/:id/delete POST Shot in den Papierkorb verschieben
/api/live/data GET Aktuelle Live-Daten (Fetch-Polling, 1-Sekunden-Intervall)
/api/debug/machine GET Rohe Antwort des Controllers von /api/system/status

Sicherheit

API-Token

Port 8099 ist durch einen automatisch generierten API-Token geschützt:

  • Beim ersten Start generiert das Add-on einen zufälligen 64-stelligen Token mit crypto.randomBytes(32) (Betriebssystem-CSPRNG) und speichert ihn in /data/api_token.txt.
  • /api/status ist der einzige öffentliche Endpunkt — er gibt den Token zurück, damit Clients sich selbst konfigurieren können.
  • Alle anderen /api/*- und /shots.json-Anfragen müssen den Header X-GLP-Token: <token> enthalten.
  • Anfragen über HA Ingress umgehen die Token-Prüfung — sie werden bereits durch HA authentifiziert.
  • Browser-UI und HA-Integration lesen den Token automatisch. Keine manuelle Einrichtung nötig.
  • Token erneuern: /data/api_token.txt löschen und Add-on neu starten.

Sonstiges

  • Der HA-API-Zugriff ist ausschließlich lesend via Supervisor-Token (SUPERVISOR_TOKEN). Die einzige Schreib-Operation ist das Schalten der konfigurierten switch_entity bei der Steckdosen-Steuerung.
  • Alle Benutzereingaben (Annotationen, Bibliothekseinträge) werden serverseitig mit Feldlängenlimits validiert.
  • Shot-IDs werden als ganze Zahlen im bekannten Bereich validiert bevor Datei-Operationen ausgeführt werden.

Sync-Verhalten

Der Sync ist inkrementell und einseitig: das Add-on merkt sich die höchste lokale Shot-ID und holt nur Shots mit höherer ID von der Maschine. Lokal gelöschte Shots (in der Blockliste) werden nie erneut heruntergeladen.

Clone this wiki locally