Intégration

Intégration Discord

Serveurs autorisés, rôles automatiques, commandes et sécurité.

Configuration

  1. Dans le portail développeur Discord, créez l’application du bot et activez l’intent privilégié Server Members (lecture des rôles, arrivées).
  2. Invitez le bot sur votre serveur (permission « Gérer les rôles », rôle du bot placé au-dessus des rôles gérés).
  3. Dans Discord du dashboard, ajoutez l’identifiant du serveur, les rôles administrateurs, les salons de journaux et de notifications.
  4. Associez vos produits à des rôles : un membre lié reçoit le rôle tant qu’il possède une licence active du produit.
  5. Chaque membre lie son compte depuis son espace client (OAuth2 Discord, scope identify).

Déploiement du bot

.env
DISCORD_TOKEN=…                               # portail développeur Discord (jamais dans un salon)
DISCORD_APPLICATION_ID=…                      # identifiant de l'application Discord
KEYLINE_API_URL=http://api:4000/api/v1        # réseau Docker interne (HTTPS sinon)
KEYLINE_BOT_API_KEY=kl_xxxxxxxxxxxx_…        # panel plateforme → Clé du bot Discord
KEYLINE_BOT_SIGNING_SECRET=klsig_…
REDIS_URL=redis://…                           # file « discord » alimentée par l'API
bash
# 1. Enregistrer les slash commands (une fois, puis à chaque mise à jour du bot)
docker compose --profile discord run --rm discord-bot node dist/register-commands.js
# 2. Démarrer le bot
docker compose --profile discord up -d discord-bot

Commandes

CommandeRôle
/license generate · generate-bulk · revoke · suspend · unsuspend · renew · reset-hwid · info · listAdministration
/app create · list · statusAdministration
/user info · licenses · banAdministration
/stats overview · application, /audit recentAdministration
/redeem, /mylicenses, /license-status, /link-account, /unlink-account, /helpMembres

Les commandes d’administration sont masquées par défaut aux membres sans « Gérer le serveur » (ajustable dans Paramètres du serveur → Intégrations). Les rôles sont synchronisés à chaque changement de licence, à l’arrivée d’un membre et par une réconciliation complète périodique (6 h par défaut) ; seuls les rôles mappés sont modifiés.

Sécurité

  • Le bot s’authentifie avec une clé de service dédiée et signe chaque requête (HMAC + nonce).
  • Une commande d’administration exige un rôle admin Discord et un compte Keyline lié avec les permissions RBAC nécessaires.
  • Réponses éphémères pour toute commande sensible ; aucune clé complète dans un salon public.
  • Chaque action d’administration est inscrite au journal d’audit et dans le salon de journaux.