Подключение аккаунтов
Коннектор возвращает реальные данные только после того, как организация-владелец подключит к нему аккаунт. Каждый коннектор объявляет, как он авторизуется; ассистент подбирает и расшифровывает нужные учётные данные на каждый вызов.
Схемы авторизации
Коннекторы используют одну из трёх схем, объявленную для каждого сервиса:
| Field | Type | Description |
|---|---|---|
| credentials | схема | API-ключ, токен или basic-авторизация, вставленные на экране подключения. Преобладающая схема в каталоге. |
| popup_oauth | схема | OAuth-авторизация во всплывающем окне — пользователь подтверждает доступ, токен захватывается автоматически. |
| device_code | схема | Device-code: пользователь подтверждает подключение на сайте провайдера по короткому коду (используется рядом сервисов Яндекса). |
Транспорт — то, как секрет прикрепляется к каждому запросу — это отдельная ось (bearer-заголовок, basic, query-токен, HMAC конкретного вендора и так далее) и обрабатывается самим коннектором.
Где подключаются аккаунты
Аккаунты подключаются в интерфейсе продукта в настройках организации; OAuth-коннекторы также показывают кнопку подключения прямо в чате через инструмент request_form, когда вызову нужен ещё не подключённый аккаунт. Программно метаданные подключения (какие поля нужны коннектору) доступны по GET /api/v1/connectors/metadata.
Хранение учётных данных
Подключённые учётные данные шифруются при хранении (Fernet) и хранятся для каждого пользователя. Ассистент никогда не отдаёт сырой секрет; в момент исполнения он подбирает и расшифровывает учётные данные для адресуемого аккаунта.
Несколько аккаунтов (кабинеты)
Один сервис может держать несколько подключённых аккаунтов — несколько кабинетов Ozon, два продавца WB. Каждый — это адресуемый instance; нацельтесь на один через instance_id или суффикс сервиса (ozon:Top Zip). См. Вызов коннектора.
Выдача коннекторов и учётных данных агенту
Агент ограничен теми коннекторами и учётными данными, которые вы ему явно выдали. Два слоя:
- Разрешённые коннекторы —
PUT /agents/{id}/connectorsзадаёт, какие ключи коннекторов агент может вызывать (wildberries,ozon, …). Это решает, какие инструменты у него есть. - Гранты учётных данных —
POST /agents/{id}/grantsвыдаёт агенту конкретный подключённый аккаунт с опциональными scope на чтение/запись. Это решает, какие аккаунты он может использовать.
Полный флоу выдачи — в Agents API.