enВойти в Senler

Действия RefLink через MCP

Этот пример показывает реализацию действий приложения в RefLink.

Как выполняется действие

  1. Разработчик помечает разрешённые операции декораторами SDK. Примеры чтения, создания, изменения и архивации кампаний находятся в campaign.controller.ts.
  2. NestJS Swagger формирует OpenAPI. Декоратор AppAction добавляет к выбранной операции x-senler-app-action; остальные endpoint не становятся действиями автоматически.
  3. После установки плагина Senler загружает OpenAPI по URL, указанному в настройках приложения. AI находит действие через search, при необходимости читает полную схему через describe_method и вызывает его через execute.
  4. Перед вызовом backend Senler создаёт короткую management session: отправляет подписанный одноразовый launch_code в POST /api/embedded/management-session.
  5. RefLink проверяет код и возвращает собственный management_token. Только этот токен отправляется в Authorization: Bearer при вызове действия. MCP-ключ или OAuth-токен пользователя в плагин не передаётся.
  6. Тот же EmbeddedSessionGuard проверяет management token и передаёт контроллеру подтверждённый проект. Поэтому действие приложения не принимает project_id от AI.
  7. Если действию дополнительно нужны данные Senler, backend отдельно использует сохранённый project-scoped OAuth access token.

Отдельный пример конфигуратора находится в app-action-configurator.controller.ts. Декоратор AutomationStepConfigurator сообщает MCP, что результат метода содержит нормализованные configuration и branches шага.

Проверка доступа

Проект определяется проверенной management session, а не аргументом AI. Различия токенов и правила доверенного контекста описаны в архитектуре примера.