Перейти к основному содержимому

🔑 Scopes (права доступа)

Что это. Scopes — права API-ключа: они определяют, какие методы публичного API можно вызывать этим ключом.

Когда нужно. Права выбираются один раз, при создании ключа, и после этого не меняются — поэтому набор стоит продумать заранее.

Для вызова метода ключ должен содержать все требуемые для этого метода scopes — иначе сервер вернёт 403 Forbidden с текстом Insufficient scopes for this operation.

Если ключу не выдано ни одного права, любой запрос по нему завершится 401 Unauthorized с текстом API key has no scopes.


Где находится

Настройки проекта → вкладка «API» → «Создать ключ» → блок «Права доступа (scopes)».

Это не список строк, а матрица «ресурс × действие»: строки — ресурсы, колонки — четыре действия. Над матрицей есть кнопка «Выбрать все».

Отметить нужно хотя бы один пункт, иначе форма покажет «Выберите хотя бы один scope».

📷 Скриншот: блок «Права доступа (scopes)» в окне «Создание API-ключа» (будет добавлен).


🧩 Как устроено название

Имя скоупа собирается по схеме РЕСУРС_ДЕЙСТВИЕ: часть после последнего подчёркивания — действие, всё, что до него, — ресурс. Поэтому составные названия ресурсов не разваливаются: KNOWLEDGE_BASE_READ — это ресурс KNOWLEDGE_BASE и действие READ.

Действий всегда четыре:

ДействиеСкоупПодпись в форме
Чтение<РЕСУРС>_READ«Чтение»
Запись<РЕСУРС>_WRITE«Запись»
Удаление<РЕСУРС>_DELETE«Удаление»
Управление<РЕСУРС>_MANAGE«Управление»

Что именно попадает в «Управление», зависит от ресурса: это отдельные операции вроде запуска и остановки бота или массового импорта документов, а не «всё сразу».

Действия не вкладываются друг в друга

<РЕСУРС>_MANAGE не включает в себя <РЕСУРС>_READ, а _WRITE не включает _DELETE. Отмечайте все действия, которые нужны интеграции, по отдельности.


📋 Ресурсы

Всего опубликовано 52 скоупа: у каждого ресурса четыре действия — _READ, _WRITE, _DELETE, _MANAGE. В таблице ниже — основные ресурсы, соответствующие разделам API; полный каталог отдаёт сервер, поэтому список может быть шире:

РесурсСкоупыЧто покрывает
BOTSBOTS_READ, BOTS_WRITE, BOTS_DELETE, BOTS_MANAGEБоты каналов: список и сведения, создание и изменение, удаление, запуск и остановка
USERSUSERS_*Участники проекта и их роли
MESSAGESMESSAGES_*Сообщения переписки
KNOWLEDGE_BASEKNOWLEDGE_BASE_*Папки и документы базы знаний, поиск, загрузка файлов, массовый импорт
AIAI_*AI-функции платформы
FLOWSFLOWS_*Сценарии и их запуски
METRICSMETRICS_*Дашборды и данные виджетов аналитики
SETTINGSSETTINGS_*Настройки проекта
SHORT_LINKSSHORT_LINKS_*Короткие ссылки
STORAGESTORAGE_*Файлы вложений в хранилище
TAGSTAGS_*Теги и их привязка к объектам
TECH_SUPPORTTECH_SUPPORT_*Обращения и настройки поддержки
WIDGETSWIDGETS_*Виджет для сайта
Список приходит с сервера

Каталог ресурсов и действий отдаёт сервер, а форма создания ключа рисует его сама. Если в форме появился ресурс, которого нет в таблице выше, ориентируйтесь на форму и на Swagger UI — они всегда актуальнее документации.

Часть скоупов ничего не открывает

Каталог прав шире, чем набор опубликованных маршрутов: некоторые скоупы объявлены, но пока не используются ни одним публичным методом. Выдача такого права ничего не ломает, но и ничего не даёт. Проверить, какие права действительно нужны, можно в описании операции в Swagger UI — блок Required scopes.


Как подобрать права

  1. Выпишите список операций, которые будет делать интеграция.
  2. Найдите каждую операцию в Swagger UI и посмотрите блок Required scopes.
  3. Отметьте в форме только эти пункты.
  4. После выпуска ключа проверьте интеграцию целиком: не хватит одного права — метод вернёт 403 Insufficient scopes for this operation.

Примеры типовых наборов:

Задача интеграцииДостаточно прав
Синхронизировать базу знаний из внешней системыKNOWLEDGE_BASE_MANAGE (для массового импорта), при точечных правках дополнительно KNOWLEDGE_BASE_READ и KNOWLEDGE_BASE_WRITE
Только выгружать данные для отчёта<РЕСУРС>_READ нужных разделов
Управлять ботами из своей панелиBOTS_READ и BOTS_MANAGE, при создании и изменении — BOTS_WRITE

Ограничения

  • Права выпущенного ключа изменить нельзя. Чтобы поменять набор, ключ отзывают и выпускают новый — секрет при этом меняется.
  • Срок действия ключа тоже не редактируется — меняются только имя и описание.
  • Скоупы не привязаны к роли участника: ключ с правом USERS_MANAGE меняет роли независимо от того, кто его выпустил. Поэтому выдавать ключ с широкими правами так же ответственно, как выдавать доступ администратора.
  • Права не ограничивают лимит запросов: он единый — 1000 запросов в минуту на ключ.
Коротко

Один ключ — одна интеграция и минимально необходимый набор прав. Такой ключ безопаснее отзывать: не придётся переключать соседние сервисы.


Кто что может

ДействиеМинимальная роль
Посмотреть, какие права выданы ключуАдминистратор
Выбрать права при создании ключаАдминистратор
Изменить права у существующего ключаНевозможно ни для кого — только выпуск нового ключа

REST API · База знаний в API · API Fixorix