Навигация

Справочник API и MCP

Внешний доступ к платформе устроен в два слоя: REST API ядра для платформенных операций и MCP-шлюз для всей предметной функциональности модулей.

REST API ядра

Отвечает за то, что принадлежит ядру: аутентификация, организации и пользователи, роли и права, лицензии, подписки, реестр модулей. Формат — JSON.

Аутентификация — по токену в заголовке:

Authorization: Bearer <token>

Токен выдаётся после подтверждения одноразового кода и живёт ограниченное время; для продления используется отдельный токен обновления.

Вызов MCP-инструментов

Вся предметная функциональность доступна как MCP-инструменты. Имя строится из кода модуля и имени операции:

task__task.create crm__deal.list canvas__canvas.list

Вызов идёт через шлюз ядра, и на нём же стоят проверки: личность вызывающего, RBAC-право на инструмент, скоуп данных, лицензия на ядро и на модуль. Отдельного доступа в обход шлюза не существует ни для интеграций, ни для ИИ-агентов.

Список доступных инструментов зависит от того, кто спрашивает: под учётной записью с ограниченной ролью виден только разрешённый ей срез. Пустой список — как правило, не поломка, а следствие прав или отсутствующей лицензии.

Обработка ошибок

Есть особенность, о которую спотыкаются при первой интеграции: отказ инструмента может приехать внутри успешного транспортного ответа. Транспорт отработал, а операция — нет. Поэтому недостаточно проверить код ответа: нужно разобрать полезную нагрузку и убедиться, что операция действительно выполнена. Для операций записи самая надёжная проверка — прочитать записанное обратно.

Контракт модуля

Модуль, который хочет жить в платформе — вендорский или партнёрский, — обязан:

  1. Зарегистрироваться в ядре и объявить свой набор инструментов.
  2. Объявить блоки холста отдельным инструментом самоописания; модуль без интерфейсной части объявляет пустой список явно — молчание не допускается.
  3. Объявить схему настроек, по которой платформа сама построит страницу настроек модуля.
  4. Декларировать классы персональных данных для своих полей — иначе маскирование работать не будет.
  5. Иметь явную запись в реестре лицензирования — либо платный с кодом лицензии, либо бесплатный. Отсутствие записи не означает «бесплатный».
  6. Подключить лицензионный гейт к обработке входящих вызовов.
  7. Отдавать названия на трёх языках — русском, английском и сербском.

Каждый из этих пунктов проверяется автоматически: модуль, нарушивший контракт, валит сборку, а не тихо работает наполовину.

Языки и подписи

Названия сущностей, полей и блоков передаются как объект с тремя языками. Голая строка допускается для обратной совместимости и считается русским текстом. Подписи для пользователя должны быть человеческими: технические имена и идентификаторы в интерфейс не выносятся.

Смежные разделы: «Архитектура», «Интеграции», «Безопасность».

Открыть чат-бот