13.24
Limites de débit et sécurité
L'API est conçue pour qu'un jeton ne puisse jamais servir à abuser d'un serveur, même s'il fuite. Les protections suivantes s'appliquent à chaque requête.
Chaque point d'accès vérifie Premium avant toute autre chose, avant même de chercher le jeton et de compter la moindre limite de débit, si bien qu'un serveur sans abonnement actif reçoit toujours la même réponse 402 au lieu d'une requête appliquée à moitié.
- Pas de mentions de masse. Tous les messages envoyés via l'API (messages webhook et tags compris) ont
@everyone,@hereet les mentions de rôles arbitraires désactivés. À l'ouverture d'un ticket, seuls le rôle configuré du panneau et la personne qui a créé le ticket peuvent être notifiés. - Pas d'usurpation d'identité. Les noms affichés de webhook contenant des mots réservés comme "discord" ou "clyde" sont remplacés, et les avatars de remplacement doivent être des URL
https://valides. - Premium obligatoire. L'API est une fonctionnalité Premium. Sans abonnement actif, chaque requête renvoie
402avecpremium_required: true, et aucun jeton ne peut être créé ni renouvelé. - Limites de débit. Chaque jeton est limité par action (par exemple : ouverture de ticket 10/min, envoi de message 30/min, renommage 2/10min, changement de panneau 2/10min, modification de panneau 10/min, renvoi de panneau 4/10min, lectures 120/min). Un dépassement renvoie
429avec une valeurretry_afteren secondes. AppelleGET /api/tokenpour le tableau à jour. - Les lectures lourdes sont limitées à part. La recherche dans les transcriptions et le téléchargement HTML ont 10/min chacun, et les transcriptions indexées complètes 30/min, pour qu'ils n'entament jamais le généreux quota de 120/min des lectures. La recherche ne s'exécute par ailleurs que deux fois en parallèle au maximum pour tout le serveur et s'interrompt avec
504si elle dépasse son budget de temps : le trafic de recherche ne peut donc jamais affamer les opérations sur les tickets. - Plafond de tickets ouverts. L'API cesse d'ouvrir de nouveaux tickets dès qu'un serveur atteint son plafond de sécurité, et elle refuse d'en ouvrir pour les utilisateurs sur liste noire.
- Moindre privilège. Les permissions sensibles (Lire les messages des tickets, Voir les transcriptions, Rechercher dans les transcriptions, Télécharger le HTML des transcriptions, Utiliser les tags, Renommer les tickets, Gérer les panneaux, Changer le panneau d'un ticket) sont désactivées par défaut et doivent être activées explicitement pour chaque jeton.
- Les lectures historiques sont auditées. Le téléchargement d'une transcription HTML complète est inscrit au journal d'activité du serveur avec le jeton qui l'a fait, au même titre que chaque modification effectuée par l'API.
- Les panneaux restent liés à ta configuration. Gérer les panneaux ne permet de changer que l'apparence d'un panneau (nom, embed, boutons). Salons, catégories, rôles à mentionner, formulaires et équipes de support ne se changent pas via l'API.
- Expiration et renouvellement. Les jetons peuvent recevoir une date d'expiration, être désactivés ou renouvelés depuis le tableau de bord ; le renouvellement invalide immédiatement le secret précédent.
- Portée serveur. Un jeton ne fonctionne que pour le seul serveur où il a été créé, et chaque requête est revérifiée par rapport à ce serveur.