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

Учет ограничений доступа 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 с данными пользователя. Параметр поддерживается во всех методах поиска чанков и генерации ответа:

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

Ответ будет основан на следующих источниках:

  1. Страницы Confluence, доступные лично пользователю (группа доступа user-ff10100bcde200ab).
  2. Страницы Confluence, доступные группам, в которые он входит (например, group-department_hr).
  3. Публичные источники базы знаний (которым не назначены группы доступа).
к сведению

В запросе можно одновременно указать данные пользователя Confluence и дополнительный список групп доступа в параметре accessControlAttributes. В этом случае к правам, полученным из Confluence, добавятся права на просмотр источников с указанными группами доступа. Подробнее в разделе Группы доступа.

Полный список методов и параметров приведен в спецификации API.