Documentatie

Leer TicketsX sneller kennen

Installatiehandleidingen, het volledige commando-overzicht, Premium-functies en de REST-API op één plek.

13.24

Limieten en veiligheid

De API is zo gebouwd dat een token nooit te misbruiken is tegen een server, ook niet als hij uitlekt. De volgende bescherming geldt bij elk verzoek.

Bij elk endpoint komt de controle op Premium als eerste, nog voor het token wordt opgezocht en voor er een limiet wordt geteld, zodat een server zonder lopend abonnement altijd hetzelfde antwoord 402 krijgt in plaats van een half uitgevoerd verzoek.

  • Geen massapings. In alle berichten vanuit de API (webhookberichten en tags meegerekend) staan @everyone, @here en willekeurige rolpings uit. Bij het openen van een ticket zijn alleen de ingestelde rol van het paneel en degene die het ticket opende te pingen.
  • Geen misleiding. Weergavenamen van webhooks met gereserveerde woorden als "discord" of "clyde" worden vervangen, en een eigen avatar moet een geldige https://-URL zijn.
  • Premium vereist. De API is een Premium-functie. Zonder lopend abonnement geeft elk verzoek 402 met premium_required: true, en tokens aanmaken of vervangen kan niet.
  • Limieten. Elk token heeft een limiet per handeling (bijvoorbeeld: ticket openen 10 per minuut, bericht sturen 30 per minuut, hernoemen 2 per 10 minuten, paneel wisselen 2 per 10 minuten, paneel aanpassen 10 per minuut, paneel opnieuw plaatsen 4 per 10 minuten, leesacties 120 per minuut). Ga je eroverheen, dan volgt 429 met een waarde retry_after in seconden. Roep GET /api/token aan voor de actuele tabel.
  • Zware leesacties tellen apart. Zoeken in transcripties en het downloaden van HTML krijgen elk 10 per minuut, volledige geïndexeerde transcripties 30 per minuut, zodat ze nooit uit de ruime 120 leesacties per minuut putten. Zoeken draait bovendien hoogstens twee keer tegelijk op de hele server en breekt af met 504 als het over zijn tijd gaat, zodat zoekverkeer nooit ten koste gaat van het werk aan tickets.
  • Grens aan open tickets. Zodra een server aan de veiligheidsgrens voor open tickets zit, opent de API er geen nieuwe meer, en voor gebruikers op de zwarte lijst opent hij helemaal geen ticket.
  • Zo min mogelijk rechten. Gevoelige rechten (Ticketberichten lezen, Transcripties bekijken, Zoeken in transcripties, HTML van transcripties downloaden, Tags gebruiken, Tickets hernoemen, Panelen beheren, Ticketpanelen wisselen) staan standaard uit en moet je per token bewust aanzetten.
  • Leesacties in de geschiedenis worden vastgelegd. Het downloaden van een volledige HTML-transcriptie komt met het bijbehorende token in het activiteitenlog van de server te staan, net als elke wijziging die de API uitvoert.
  • Panelen blijven aan je opzet vastzitten. Met Panelen beheren pas je alleen het uiterlijk van een paneel aan (naam, embed, knoppen). Kanalen, categorieën, rollen om te pingen, formulieren en teams zijn niet via de API te wijzigen.
  • Vervaldatum en vervangen. Tokens kunnen een vervaldatum krijgen en zijn via het dashboard uit te zetten of te vervangen; bij vervangen is het oude geheim meteen ongeldig.
  • Eén server per token. Een token werkt alleen voor de server waarin hij is aangemaakt, en bij elk verzoek wordt dat opnieuw gecontroleerd.