Учет ограничений доступа Confluence
Интеграция с Confluence позволяет синхронизировать не только контент, но и ограничения доступа к нему. Благодаря этому пользователь при запросе к базе знаний получит только ту информацию, которую ему разрешено просматривать в Confluence.
Функция поддерживается для Confluence Server и Confluence Cloud.
Ограничения доступа действуют только в API-запросах (поиск и генерация ответов). Пользователям веб-интерфейса доступны все загруженные источники.
Включение и настройка
Включить синхронизацию ограничений можно только через API при создании интеграции. В веб-интерфейсе эта настройка недоступна.
В теле запроса на создание интеграции POST /integrations передайте параметры:
enableAccessRightsSync:true,token— токен администратора Confluence. Права администратора требуются для получения групп пользователей.
{
"name": "Confluence с правами доступа",
"settings": {
"type": "confluence",
"baseUrl": "https://confluence.your-company.com",
"token": "admin-token",
"space": "MAIN",
"enableAccessRightsSync": true
}
}
Если после создания интеграции через API вы отредактируете и сохраните ее в веб-интерфейсе, параметр enableAccessRightsSync автоматически сбросится в false, и синхронизация ограничений отключится.
Как это работает
При синхронизации Jay Knowledge Hub преобразует ограничения Confluence во внутренние группы доступа:
- Если доступ разрешен группе, источнику добавляется атрибут
group-<groupName>. - Если доступ разрешен отдельному сотруднику, добавляется атрибут
user-<userId>.
Вложения и дочерние страницы автоматически наследуют ограничения родительской страницы. Данные обновляются при каждой синхронизации.
Поиск с учетом ограничений
Чтобы поиск учитывал ограничения Confluence, передайте в запросе объект accessSettings с данными пользователя.
Параметр поддерживается во всех методах поиска чанков и генерации ответа:
- POST /retrieve
- POST /query
- POST /async/query
- POST /chat/{chatId}/retrieve
- POST /chat/{chatId}/query
- POST /async/chat/{chatId}/query
Jay Knowledge Hub предоставит информацию из документов Confluence, доступных указанному пользователю, а также из публичных источников.
Пример запроса:
curl \
--header 'Authorization: Bearer <your_API_key>' \
--header 'Content-Type: application/json' \
--data '{
"query": "правила предоставления отпусков",
"accessSettings": {
"integrationId": 12345,
"externalUserId": "ff10100bcde200ab"
}
}' \
https://khub.just-ai.com/api/knowledge-hub/query
Ответ будет основан на следующих источниках:
- Страницы Confluence, доступные лично пользователю (группа доступа
user-ff10100bcde200ab). - Страницы Confluence, доступные группам, в которые он входит (например,
group-department_hr). - Публичные источники базы знаний (которым не назначены группы доступа).
В запросе можно одновременно указать данные пользователя Confluence и дополнительный список групп доступа в параметре accessControlAttributes.
В этом случае к правам, полученным из Confluence, добавятся права на просмотр источников с указанными группами доступа.
Подробнее в разделе Группы доступа.
Полный список методов и параметров приведен в спецификации API.