Bisher kam die Discord-Konfiguration (Token, Server-ID, Kanal-ID, erlaubte Nutzer-IDs) ausschließlich aus Umgebungsvariablen. Jetzt unter Einstellungen > Discord einstellbar, inkl. Schritt-für-Schritt- Anleitung zum Einrichten einer Discord-Anwendung/eines Bots (Token erzeugen, einladen, IDs ermitteln). - Migration 026: discord_settings (Token verschlüsselt, wie SMTP/IMAP). - apps/worker/src/discord.ts liest die Einstellungen jetzt aus der DB statt aus process.env; syncDiscord() läuft periodisch (60s) und verbindet automatisch neu, wenn sich Token/Server/Aktivierung geändert haben (Trennung von Verbindungs- und Laufzeitdaten: Kanal-ID und erlaubte Nutzer werden bei jeder Nutzung frisch aus der DB gelesen, ohne Neuverbindung). - Neues API-Modul apps/api/src/modules/discord: Einstellungen lesen/ schreiben, Token- und Testnachricht-Prüfung direkt über die Discord- REST-API (unabhängig vom laufenden Bot-Prozess im Worker). - Rechte discord.read (Admin+) / discord.write (Superadmin), wie beim E-Mail-Modul. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
15 lines
719 B
SQL
15 lines
719 B
SQL
-- Discord-Bot-Konfiguration über die Oberfläche statt nur über Umgebungsvariablen (analog SMTP/IMAP).
|
|
CREATE TABLE discord_settings (
|
|
id TINYINT PRIMARY KEY DEFAULT 1,
|
|
enabled TINYINT(1) NOT NULL DEFAULT 0,
|
|
token_enc TEXT NULL,
|
|
guild_id VARCHAR(32) NULL,
|
|
admin_channel_id VARCHAR(32) NULL,
|
|
staff_user_ids VARCHAR(1000) NULL,
|
|
last_error VARCHAR(500) NULL,
|
|
last_connected_at DATETIME(3) NULL,
|
|
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
|
updated_by CHAR(36) NULL REFERENCES users(id),
|
|
CONSTRAINT chk_discord_singleton CHECK (id = 1)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
INSERT INTO discord_settings (id) VALUES (1);
|