Сервисы
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) | Внешний доступ к api | 4001 |
MODE | Режим среды | Поведение local/test/production | local |
JWT_SECRET | Подпись JWT | Валидность токенов доступа | — |
AUTH_PROVIDER | Провайдер аутентификации | Сейчас только local; OIDC (Keycloak) — в планах | local |
ORIGIN_REGEXP | Allowlist Origin | Какие домены проходят CORS | |
SWAGGER_USER / SWAGGER_PASSWORD | Basic-auth Swagger | Доступ к /api (Swagger UI) | — |
COOKIE_SIGN_SECRET / REFRESH_COOKIE_NAME | Подпись и имя cookie | Безопасность сессий | — |
PAYLOAD_LIMIT | Лимит тела запроса | Максимальный размер JSON/upload | 50mb |
PLUGIN_CONTROL_PLANE_KEY | Ключ внутренних маршрутов | Доступ к /internal/* и control-plane | — |
AUTH_SERVICE_BASE_URL | Адрес auth-service | Куда проксируется /auth | http://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 | Семантический поиск из api | search-service:3000 |
AGENT_CHAT_ENABLED | Чат-агент в ЛК | Доступность чата | false |
API_SENSITIVE_ROUTE_CIDRS | Allowlist чувствительных маршрутов | Кто вызывает защищённые ручки | — |
API_TRUST_PROXY_HOPS | Доверенные прокси | Разбор X-Forwarded-For | 0 |
Общие переменные (
DATABASE_URL,REDIS_*,OTEL_*,LOG_*) — в «Конфигурации».
Дальше
- auth-service · runtime-engine
- Работа с API: как вызывать процессы снаружи.