Сервисы

api

REST API Conveyor — диаграммы, процессы, библиотека, секреты, SSE-уведомления и шлюз к остальным микросервисам.

api — главная точка входа для редактора и внешних клиентов: REST для диаграмм, процессов, библиотеки узлов и секретов, SSE по Запускам, а также прокси к auth-service и клиент к остальным микросервисам.

На какие вопросы отвечает раздел: За что отвечает api? От чего он зависит? Какими переменными настраивается и на что они влияют?

Цель

Единый HTTP-фасад платформы: принять запрос редактора/клиента, авторизовать, разложить на вызовы микросервисов и вернуть результат (в т.ч. потоково по SSE).

Задачи

  • REST для диаграмм, процессов, библиотеки узлов, секретов;
  • SSE-уведомления по Запускам;
  • прокси аутентификации (/auth) на auth-service;
  • создание Запуска через очереди BullMQ;
  • клиентские вызовы preset/secret/scheduler/flow-agent/search по TCP, file-service по HTTP.

Требования

  • PostgreSQL и Redis;
  • доступ к auth-service, secret-manager, preset-service, file-service (и опционально flow-agent, search-service);
  • общий ключ PLUGIN_CONTROL_PLANE_KEY для внутренних маршрутов.

Ограничения

  • зона ответственности: HTTP-фасад, SSE и шлюз к микросервисам. Оркестрация графа и исполнение узлов выполняются другими сервисами.
  • бизнес-логика шагов остаётся в узлах и плагинах.

Настройки и переменные окружения

ПеременнаяЗачемНа что влияетПо умолчанию
API_HTTP_LISTENАдрес прослушивания HTTPПорт/интерфейс api в контейнере0.0.0.0:3000
API_PATHПрефикс RESTБазовый путь API (/api)api
API_PUBLISH_PORTПорт публикации на хосте (dev)Внешний доступ к api4001
MODEРежим средыПоведение local/test/productionlocal
JWT_SECRETПодпись JWTВалидность токенов доступа
AUTH_PROVIDERПровайдер аутентификацииСейчас только local; OIDC (Keycloak) — в планахlocal
ORIGIN_REGEXPAllowlist OriginКакие домены проходят CORS
SWAGGER_USER / SWAGGER_PASSWORDBasic-auth SwaggerДоступ к /api (Swagger UI)
COOKIE_SIGN_SECRET / REFRESH_COOKIE_NAMEПодпись и имя cookieБезопасность сессий
PAYLOAD_LIMITЛимит тела запросаМаксимальный размер JSON/upload50mb
PLUGIN_CONTROL_PLANE_KEYКлюч внутренних маршрутовДоступ к /internal/* и control-plane
AUTH_SERVICE_BASE_URLАдрес auth-serviceКуда проксируется /authhttp://auth-service:3000
SECRETS_TCP_CONNECTАдрес secret-managerРезолв секретов рантаймаsecret-manager:3000
PRESET_TCP_CONNECT / SCHEDULER_TCP_CONNECTАдреса preset/schedulerКаталог пресетов, cron-триггеры<service>:3000
FILE_SERVICE_BASE_URLАдрес file-serviceЗагрузка/отдача файловhttp://file-service:3000
FLOW_AGENT_TCP_CONNECT / FLOW_AGENT_ENABLEDКлиент flow-agentДоступность генерации процессовflow-agent:3000 / false
SEARCH_SERVICE_TCP_CONNECTАдрес search-serviceСемантический поиск из apisearch-service:3000
AGENT_CHAT_ENABLEDЧат-агент в ЛКДоступность чатаfalse
API_SENSITIVE_ROUTE_CIDRSAllowlist чувствительных маршрутовКто вызывает защищённые ручки
API_TRUST_PROXY_HOPSДоверенные проксиРазбор X-Forwarded-For0

Общие переменные (DATABASE_URL, REDIS_*, OTEL_*, LOG_*) — в «Конфигурации».

Дальше