13.24
Обмеження та безпека
API побудований так, щоб ключем не можна було нашкодити серверу, навіть якщо він витече. Наведений нижче захист діє в кожному запиті.
На кожній кінцевій точці перевірка Premium відбувається найпершою, ще до пошуку ключа й до підрахунку будь-яких обмежень, тож сервер без чинної передплати завжди дістає ту саму відповідь 402, а не наполовину виконаний запит.
- Жодних масових згадок. В усіх повідомленнях через API (зокрема в повідомленнях через webhook і мітках) вимкнено
@everyone,@hereта довільні згадки ролей. Під час відкриття тікета можна згадати лише роль, задану в панелі, і того, хто відкрив тікет. - Жодного видавання себе за іншого. Показувані імена webhook із застереженими словами на кшталт "discord" чи "clyde" замінюються, а поставлене зображення має бути дійсною адресою
https://. - Потрібен Premium. API це можливість Premium. Без чинної передплати кожен запит повертає
402зpremium_required: true, а нові ключі не створюються й не замінюються. - Обмеження запитів. Кожен ключ має обмеження на кожну дію (наприклад: відкриття тікета 10 на хвилину, надсилання повідомлення 30 на хвилину, перейменування 2 на 10 хвилин, зміна панелі 2 на 10 хвилин, зміни панелей 10 на хвилину, повторне надсилання панелі 4 на 10 хвилин, читання 120 на хвилину). Перевищення обмеження повертає
429зі значеннямretry_afterу секундах. Поточну таблицю отримайте черезGET /api/token. - Важкі читання мають власні обмеження. Пошук у записах і завантаження записів у HTML мають по 10 на хвилину, а повні опрацьовані записи 30 на хвилину, тож вони ніколи не беруть із щедрих 120 читань на хвилину. Крім того, пошук виконується щонайбільше двічі водночас на весь сервер і уривається з кодом
504, якщо перевищує відведений час, тож пошукові запити ніколи не заважають роботі з тікетами. - Межа відкритих тікетів. Щойно сервер сягає захисної межі відкритих тікетів, API більше їх не відкриває, а для людей із чорного списку не відкриває зовсім.
- Якнайменше прав. Делікатні права (Читання повідомлень тікета, Перегляд записів, Пошук у записах, Завантаження записів у HTML, Користування мітками, Перейменування тікетів, Керування панелями, Зміна панелі тікета) типово вимкнені, і їх треба вмикати свідомо для кожного ключа.
- Читання давніх даних відстежується. Завантаження повного запису HTML потрапляє до журналу дій сервера разом із ключем, яким це зроблено, як і кожна зміна, виконана через API.
- Панелі лишаються пов'язаними з вашими налаштуваннями. Керування панелями змінює лише вигляд панелі (назву, вбудоване повідомлення, кнопки). Канали, категорії, ролі для згадки, форми та команди підтримки через API не змінюються.
- Строк дії та заміна. Ключам можна задати строк дії, вимкнути їх або замінити в панелі керування; заміна одразу знеструмлює попередню таємницю.
- Дія на одному сервері. Ключ працює лише на тому сервері, де його створено, і в кожному запиті це перевіряється наново.