Intégration
Intégration Discord
Serveurs autorisés, rôles automatiques, commandes et sécurité.
Configuration
- 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).
- 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).
- Dans Discord du dashboard, ajoutez l’identifiant du serveur, les rôles administrateurs, les salons de journaux et de notifications.
- Associez vos produits à des rôles : un membre lié reçoit le rôle tant qu’il possède une licence active du produit.
- 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'APIbash
# 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-botCommandes
| Commande | Rôle |
|---|---|
/license generate · generate-bulk · revoke · suspend · unsuspend · renew · reset-hwid · info · list | Administration |
/app create · list · status | Administration |
/user info · licenses · ban | Administration |
/stats overview · application, /audit recent | Administration |
/redeem, /mylicenses, /license-status, /link-account, /unlink-account, /help | Membres |
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.