Перейти до вмісту
Sursa Developers

Області доступу ключа

Область доступу називає частину API, яку ключ може викликати. Кожна операція в довіднику API указує одну область доступу, яка їй потрібна. Запит із ключем без неї відхиляється з 403 і кодом api_keys.scope ще до того, як щось буде прочитано чи змінено.

Області доступу визначають, які операції ключ може викликати. Які об’єкти бачать ці операції, і далі вирішують роль ключа, його профіль доступу та колекції: ключ із cards:write і роллю viewer не може змінювати картки, а ключ, обмежений однією колекцією, не бачить інших.

Області доступу

Область доступуЩо дозволяє
cards:readЧитати картки, колекції та папки.
cards:writeСтворювати, змінювати й видаляти картки, колекції та папки.
searchШукати в базі знань (POST /v1/search).
askСтавити запитання асистентові (POST /v1/ask, POST /v1/chat).
import:writeЗаписувати у власні джерела організації: синхронізації, пакети й видалення, а також читати їхній стан. Для створення джерела та його ключів потрібна роль admin.
webhooks:manageКерувати вебхуками й читати стрічку подій (GET /v1/webhook-events). Для обох дій також потрібна роль admin.
users:readЧитати користувачів і групи.
users:writeЗмінювати користувачів і групи.
analytics:readЧитати аналітику.
audit:readЧитати журнал аудиту.
finance:readЧитати фінансові звіти, рахунки та платежі.
catalog:readЧитати каталог сервісів.
files:readЧитати згенеровані файли, як-от експортовані відповіді.
files:writeЗмінювати й видаляти згенеровані файли.
permissions:manageНадавати й відкликати дозволи на об’єкти.
adminНалаштування організації та її ключі API. Ключ з admin має й усі інші області доступу.

Пошук і запитання за своїм змістом є читанням: ключ, якому дозволено лише читати, може й шукати, і ставити запитання.

Вибір областей доступу

Надавайте ті області доступу, які інтеграція використовує, і жодних інших:

ІнтеграціяОбласті доступу
Бот запитань і відповідей у чатіsearch, ask
Імпорт із вашої системи документівcards:write (API карток) або import:write (власне джерело)
Експорт до сховища данихcards:read, users:read і webhooks:manage для стрічки подій
Створення користувачів із вашої HR-системиusers:write

Передайте список під час створення ключа:

curl -X POST https://api.sursa.com/v1/api-keys \
  -H "Authorization: Bearer $SURSA_ADMIN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Support bot", "role": "viewer", "scopes": ["search", "ask"]}'

Давніші області доступу

Ключі, створені до того, як області доступу розділили, працюють і далі. Їхні області read, write і admin означають такі набори:

Давніша областьОзначає
readcards:read, search, ask, users:read, analytics:read, finance:read, catalog:read, files:read
writeусе з read, а також cards:write, files:write, users:write, permissions:manage
adminусі області доступу

Ключ, створений без явно вказаних областей доступу, отримує їх від своєї ролі: admin отримує admin; editor і verifier — write; viewer — read.

Як побачити області доступу ключа

GET /v1/me повертає області доступу ключа, який надсилає запит, хоч би які області він мав. Для ключа, створеного без явних областей доступу, це давніші області його ролі, як-от read і write; таблиця вище показує, що вони означають. Коли операція завершується помилкою api_keys.scope, error.message називає область доступу, якої бракувало.