feat: Datenmodell und Umgebung fuer Integrationen

Ein Zustand je Quelle haelt fest, wie weit gelesen wurde und ob es
klappt. Der Merker ist bewusst ein freier Text: Zammad braucht darin
einen Zeitstempel, Telegram den Zaehler der zuletzt geholten Nachricht.

Dazu die gespiegelte Belegung ohne Titel, das Adressbuch der erlaubten
Telegram-Chats und der Einmalcode, mit dem sich ein Chat anmeldet.

Welche Integration eine Instanz darf, entscheidet weiterhin INSTANZ. Ein
Zammad-Token in der Instanz daheim bleibt wirkungslos — das steht in den
Faehigkeiten, nicht in einer Einstellung, die sich verstellen liesse.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Florian Wilde
2026-09-11 23:03:32 +02:00
co-authored by Claude Opus 5
parent ab1b898e44
commit 7f8f505126
5 changed files with 233 additions and 4 deletions
+23
View File
@@ -97,6 +97,29 @@ SMTP_ABSENDER=
# true bei Port 465 (SMTPS), false bei 587 mit STARTTLS.
SMTP_TLS=false
# --- Integrationen ---------------------------------------------------------
# Alles freiwillig. Was fehlt, erscheint unter "Integrationen" als nicht
# eingerichtet; der Rest laeuft weiter.
# Welche Integration eine Instanz ueberhaupt darf, entscheidet INSTANZ:
# Zammad und Wartungsplaner nur "firma", Telegram nur "daheim".
# Zammad (nur firma). Token in Zammad unter Profil > Token-Zugriff anlegen;
# er sieht genau das, was der zugehoerige Benutzer sehen darf.
ZAMMAD_URL=
ZAMMAD_TOKEN=
# Suchausdruck in Zammads Syntax. Was darauf passt, wird zur Aufgabe.
ZAMMAD_ABFRAGE=owner_id:me AND (state.name:new OR state.name:open)
# Telegram (nur daheim). Bot bei @BotFather anlegen, Token hier eintragen.
# Welche Chats mitreden duerfen, wird in der Anwendung gekoppelt.
TELEGRAM_TOKEN=
# Spiegel: firma sendet, daheim empfaengt. Dasselbe Geheimnis auf beiden
# Seiten, mindestens 32 Zeichen: openssl rand -base64 32
SPIEGEL_GEHEIMNIS=
# Nur auf der sendenden Seite (firma): die Adresse der anderen Instanz.
SPIEGEL_ZIEL=
# --- Sonstiges -------------------------------------------------------------
# Zeitzone fuer Anzeigen und Tagesgrenzen.
TZ=Europe/Berlin