# Portabilität: UNIVERSAL
# Version: 1.0.0
# Zuletzt validiert: 2026-03-04

HANDLER-NAME
============

notify - Notification-System für BACH


BESCHREIBUNG
============

Versendet Benachrichtigungen über verschiedene externe Channels. Unterstützt
Discord, Signal, Email, Telegram, Webhooks und Slack. Nachrichten werden in
der Datenbank (connector_messages) geloggt und können ausstehend sein, bis
der jeweilige Channel bereit ist.

Alle Konfigurationen werden in der connections-Tabelle von bach.db gespeichert.
Die Authentifizierung erfolgt über Tokens oder Email/Passwort-Kombinationen.


OPERATIONEN
===========

send <channel> <text>
  Benachrichtigung über einen konfigurierten Channel versenden.
  Beispiel: bach notify send discord "Prozess abgeschlossen"

setup <channel> [endpoint] [--token=X] [--email=X]
  Channel neu konfigurieren oder aktualisieren.
  - channel: discord, signal, email, telegram, webhook, slack
  - endpoint: API-URL oder Server-Adresse (optional bei Telegram)
  - --token=X: Authentifizierungs-Token (z.B. Bot-Token)
  - --email=X: Email-Adresse für SMTP-Login
  Beispiel: bach notify setup telegram --token=123456:ABC-DEF

test <channel>
  Test-Nachricht senden um Konfiguration zu prüfen.
  Beispiel: bach notify test slack

list
  Alle konfigurierten Notification-Channels mit Status anzeigen.
  Zeigt: Kanal-Name, Typ, Endpoint, aktiv/inaktiv, Sendecount, letzter Versand.

status
  Identisch mit 'list' - Status aller Channels.

history [--limit N]
  Letzte Benachrichtigungen anzeigen (Standard: 20).
  Zeigt: Kanal-Name, Status (gesendet/ausstehend), Zeitstempel, Nachricht-Text.
  Beispiel: bach notify history --limit 50


BEISPIELE
=========

Discord-Webhook konfigurieren:
  bach notify setup discord https://discord.com/api/webhooks/ABC/XYZ

Telegram Bot einrichten:
  bach notify setup telegram --token=123456:ABC-DEF-GHI

Email über Gmail versenden:
  bach notify setup email smtp.gmail.com --token=APP_PASSWORD --email=user@gmail.com

Slack Webhook hinzufügen:
  bach notify setup slack https://hooks.slack.com/services/T00/B00/XX

Benachrichtigung testen:
  bach notify test discord

Nachricht senden:
  bach notify send discord "Backup erfolgreich abgeschlossen"

History der letzten 10 Benachrichtigungen:
  bach notify history --limit 10


DATEIEN
=======

data/bach.db
  Datenbank mit Tabellen:
  - connections: Gespeicherte Channel-Konfigurationen (Endpoint, Token, etc.)
  - connector_messages: Log aller ein/ausgehenden Nachrichten

user/secrets/secrets.json
  Optional: Zentrale Secrets-Datei (wird prioritaer für Telegram gelesen).
  Format: {"telegram": {"bot_token": "...", "chat_id": "..."}}


SIEHE AUCH
==========

hub/base.py          - BaseHandler Klasse
hub/notify.py        - Vollständige Handler-Implementierung
data/                - Bach-Datenbank und Config
docs/handlers.txt    - Allgemeine Handler-Dokumentation
