[{"data":1,"prerenderedAt":1220},["ShallowReactive",2],{"docs-navigation":3,"docs-page:\u002Fdocs\u002Fguide\u002Foperations\u002Farchitecture":293,"docs-surround:\u002Fdocs\u002Fguide\u002Foperations\u002Farchitecture":1215},[4],{"title":5,"path":6,"stem":7,"children":8,"page":33},"Docs","\u002Fdocs","docs",[9,182,274],{"title":10,"icon":11,"path":12,"stem":13,"children":14},"Документация","i-lucide-book-open","\u002Fdocs\u002Fguide","docs\u002F1.guide\u002Findex",[15,17,34,65,121,131,152],{"title":16,"path":12,"stem":13},"Обзор",{"title":18,"icon":19,"path":20,"stem":21,"children":22,"page":33},"Основы","i-lucide-compass","\u002Fdocs\u002Fguide\u002Fbasics","docs\u002F1.guide\u002F1.basics",[23,28],{"title":24,"path":25,"stem":26,"order":27},"Основные понятия и модель","\u002Fdocs\u002Fguide\u002Fbasics\u002Fconcepts","docs\u002F1.guide\u002F1.basics\u002F1.concepts",2,{"title":29,"path":30,"stem":31,"order":32},"Быстрый старт","\u002Fdocs\u002Fguide\u002Fbasics\u002Fgetting-started","docs\u002F1.guide\u002F1.basics\u002F2.getting-started",3,false,{"title":35,"icon":36,"path":37,"stem":38,"children":39,"page":33},"Установка и обслуживание","i-lucide-server-cog","\u002Fdocs\u002Fguide\u002Foperations","docs\u002F1.guide\u002F2.operations",[40,45,50,55,60],{"title":41,"path":42,"stem":43,"order":44},"Архитектура","\u002Fdocs\u002Fguide\u002Foperations\u002Farchitecture","docs\u002F1.guide\u002F2.operations\u002F1.architecture",6,{"title":46,"path":47,"stem":48,"order":49},"Развёртывание и эксплуатация","\u002Fdocs\u002Fguide\u002Foperations\u002Fdeployment","docs\u002F1.guide\u002F2.operations\u002F2.deployment",7,{"title":51,"path":52,"stem":53,"order":54},"Безопасность и контроль данных","\u002Fdocs\u002Fguide\u002Foperations\u002Fsecurity","docs\u002F1.guide\u002F2.operations\u002F3.security",8,{"title":56,"path":57,"stem":58,"order":59},"Наблюдаемость и разбор инцидентов","\u002Fdocs\u002Fguide\u002Foperations\u002Fobservability","docs\u002F1.guide\u002F2.operations\u002F4.observability",9,{"title":61,"path":62,"stem":63,"order":64},"Администрирование","\u002Fdocs\u002Fguide\u002Foperations\u002Fadministration","docs\u002F1.guide\u002F2.operations\u002F5.administration",10,{"title":66,"icon":67,"path":68,"stem":69,"children":70},"Сервисы","i-lucide-boxes","\u002Fdocs\u002Fguide\u002Fservices","docs\u002F1.guide\u002F3.services\u002Findex",[71,73,77,81,85,89,93,97,101,105,109,113,117],{"title":72,"path":68,"stem":69},"Каталог сервисов",{"title":74,"path":75,"stem":76},"api","\u002Fdocs\u002Fguide\u002Fservices\u002Fapi","docs\u002F1.guide\u002F3.services\u002F01.api",{"title":78,"path":79,"stem":80},"auth-service","\u002Fdocs\u002Fguide\u002Fservices\u002Fauth-service","docs\u002F1.guide\u002F3.services\u002F02.auth-service",{"title":82,"path":83,"stem":84},"runtime-engine","\u002Fdocs\u002Fguide\u002Fservices\u002Fruntime-engine","docs\u002F1.guide\u002F3.services\u002F03.runtime-engine",{"title":86,"path":87,"stem":88},"runtime-control-plane","\u002Fdocs\u002Fguide\u002Fservices\u002Fruntime-control-plane","docs\u002F1.guide\u002F3.services\u002F04.runtime-control-plane",{"title":90,"path":91,"stem":92},"executor","\u002Fdocs\u002Fguide\u002Fservices\u002Fexecutor","docs\u002F1.guide\u002F3.services\u002F05.executor",{"title":94,"path":95,"stem":96},"secret-manager","\u002Fdocs\u002Fguide\u002Fservices\u002Fsecret-manager","docs\u002F1.guide\u002F3.services\u002F06.secret-manager",{"title":98,"path":99,"stem":100},"plugin-manager","\u002Fdocs\u002Fguide\u002Fservices\u002Fplugin-manager","docs\u002F1.guide\u002F3.services\u002F07.plugin-manager",{"title":102,"path":103,"stem":104},"scheduler","\u002Fdocs\u002Fguide\u002Fservices\u002Fscheduler","docs\u002F1.guide\u002F3.services\u002F08.scheduler",{"title":106,"path":107,"stem":108},"preset-service","\u002Fdocs\u002Fguide\u002Fservices\u002Fpreset-service","docs\u002F1.guide\u002F3.services\u002F09.preset-service",{"title":110,"path":111,"stem":112},"file-service","\u002Fdocs\u002Fguide\u002Fservices\u002Ffile-service","docs\u002F1.guide\u002F3.services\u002F10.file-service",{"title":114,"path":115,"stem":116},"flow-agent","\u002Fdocs\u002Fguide\u002Fservices\u002Fflow-agent","docs\u002F1.guide\u002F3.services\u002F11.flow-agent",{"title":118,"path":119,"stem":120},"search-service","\u002Fdocs\u002Fguide\u002Fservices\u002Fsearch-service","docs\u002F1.guide\u002F3.services\u002F12.search-service",{"title":122,"icon":123,"path":124,"stem":125,"children":126,"page":33},"Справочник","i-lucide-list","\u002Fdocs\u002Fguide\u002Freference","docs\u002F1.guide\u002F4.reference",[127],{"title":128,"path":129,"stem":130},"Конфигурация, CLI и коды ошибок","\u002Fdocs\u002Fguide\u002Freference\u002Fconfig","docs\u002F1.guide\u002F4.reference\u002F1.config",{"title":132,"icon":133,"path":134,"stem":135,"children":136,"page":33},"О продукте","i-lucide-target","\u002Fdocs\u002Fguide\u002Fproduct","docs\u002F1.guide\u002F5.product",[137,142,147],{"title":138,"path":139,"stem":140,"order":141},"Оценка и выбор","\u002Fdocs\u002Fguide\u002Fproduct\u002Fevaluation","docs\u002F1.guide\u002F5.product\u002F1.evaluation",13,{"title":143,"path":144,"stem":145,"order":146},"О проекте и поддержка","\u002Fdocs\u002Fguide\u002Fproduct\u002Fabout","docs\u002F1.guide\u002F5.product\u002F2.about",14,{"title":148,"path":149,"stem":150,"order":151},"Roadmap","\u002Fdocs\u002Fguide\u002Fproduct\u002Froadmap","docs\u002F1.guide\u002F5.product\u002F3.roadmap",15,{"title":153,"icon":154,"path":155,"stem":156,"children":157,"page":33},"Cookbook","i-lucide-chef-hat","\u002Fdocs\u002Fguide\u002Fcookbook","docs\u002F1.guide\u002F6.cookbook",[158,162,166,170,174,178],{"title":159,"path":160,"stem":161},"Развернуть Conveyor","\u002Fdocs\u002Fguide\u002Fcookbook\u002Fdeploy","docs\u002F1.guide\u002F6.cookbook\u002F1.deploy",{"title":163,"path":164,"stem":165},"Создать рабочее пространство","\u002Fdocs\u002Fguide\u002Fcookbook\u002Fcreate-workspace","docs\u002F1.guide\u002F6.cookbook\u002F2.create-workspace",{"title":167,"path":168,"stem":169},"Создать процесс","\u002Fdocs\u002Fguide\u002Fcookbook\u002Fcreate-process","docs\u002F1.guide\u002F6.cookbook\u002F3.create-process",{"title":171,"path":172,"stem":173},"Управление плагинами","\u002Fdocs\u002Fguide\u002Fcookbook\u002Fmanage-plugins","docs\u002F1.guide\u002F6.cookbook\u002F4.manage-plugins",{"title":175,"path":176,"stem":177},"Процесс как MCP","\u002Fdocs\u002Fguide\u002Fcookbook\u002Fpublish-process-mcp","docs\u002F1.guide\u002F6.cookbook\u002F5.publish-process-mcp",{"title":179,"path":180,"stem":181},"Сгенерировать процесс генераатором","\u002Fdocs\u002Fguide\u002Fcookbook\u002Fflow-generator","docs\u002F1.guide\u002F6.cookbook\u002F6.flow-generator",{"title":183,"icon":184,"path":185,"stem":186,"children":187},"Работа с Conveyor","i-lucide-workflow","\u002Fdocs\u002Fusage","docs\u002F2.usage\u002Findex",[188,189,193,197,201,266,270],{"title":183,"path":185,"stem":186},{"title":190,"path":191,"stem":192},"Регистрация и аутентификация","\u002Fdocs\u002Fusage\u002Fauth","docs\u002F2.usage\u002F1.auth",{"title":194,"path":195,"stem":196},"Возможности и ограничения","\u002Fdocs\u002Fusage\u002Fcapabilities","docs\u002F2.usage\u002F2.capabilities",{"title":198,"path":199,"stem":200},"Концепция распределённого исполнения","\u002Fdocs\u002Fusage\u002Fdistributed-execution","docs\u002F2.usage\u002F3.distributed-execution",{"title":202,"icon":203,"path":204,"stem":205,"children":206},"Интерфейс редактора","i-lucide-layout-dashboard","\u002Fdocs\u002Fusage\u002Feditor","docs\u002F2.usage\u002F4.editor\u002Findex",[207,208,212,230,234,238,242,246,250,254,258,262],{"title":202,"path":204,"stem":205},{"title":209,"path":210,"stem":211},"Настройки интерфейса","\u002Fdocs\u002Fusage\u002Feditor\u002Fsettings","docs\u002F2.usage\u002F4.editor\u002F01.settings",{"title":213,"icon":184,"path":214,"stem":215,"children":216},"Процессы","\u002Fdocs\u002Fusage\u002Feditor\u002Fprocesses","docs\u002F2.usage\u002F4.editor\u002F02.processes\u002Findex",[217,218,222,226],{"title":213,"path":214,"stem":215},{"title":219,"path":220,"stem":221},"Настройки","\u002Fdocs\u002Fusage\u002Feditor\u002Fprocesses\u002Fsettings","docs\u002F2.usage\u002F4.editor\u002F02.processes\u002F1.settings",{"title":223,"path":224,"stem":225},"История Запусков и логи","\u002Fdocs\u002Fusage\u002Feditor\u002Fprocesses\u002Fhistory-logs","docs\u002F2.usage\u002F4.editor\u002F02.processes\u002F2.history-logs",{"title":227,"path":228,"stem":229},"Сохранение, запуск и отладка","\u002Fdocs\u002Fusage\u002Feditor\u002Fprocesses\u002Fsave-run-debug","docs\u002F2.usage\u002F4.editor\u002F02.processes\u002F3.save-run-debug",{"title":231,"path":232,"stem":233},"Библиотека","\u002Fdocs\u002Fusage\u002Feditor\u002Flibrary","docs\u002F2.usage\u002F4.editor\u002F03.library",{"title":235,"path":236,"stem":237},"Воркспейсы","\u002Fdocs\u002Fusage\u002Feditor\u002Fworkspaces","docs\u002F2.usage\u002F4.editor\u002F04.workspaces",{"title":239,"path":240,"stem":241},"Секреты","\u002Fdocs\u002Fusage\u002Feditor\u002Fsecrets","docs\u002F2.usage\u002F4.editor\u002F05.secrets",{"title":243,"path":244,"stem":245},"Плагины","\u002Fdocs\u002Fusage\u002Feditor\u002Fplugins","docs\u002F2.usage\u002F4.editor\u002F06.plugins",{"title":247,"path":248,"stem":249},"Шаблоны","\u002Fdocs\u002Fusage\u002Feditor\u002Ftemplates","docs\u002F2.usage\u002F4.editor\u002F07.templates",{"title":251,"path":252,"stem":253},"Консоль логов","\u002Fdocs\u002Fusage\u002Feditor\u002Flog-console","docs\u002F2.usage\u002F4.editor\u002F08.log-console",{"title":255,"path":256,"stem":257},"Подтверждения шагов","\u002Fdocs\u002Fusage\u002Feditor\u002Fstep-confirmations","docs\u002F2.usage\u002F4.editor\u002F09.step-confirmations",{"title":259,"path":260,"stem":261},"Внешние инструменты","\u002Fdocs\u002Fusage\u002Feditor\u002Fexternal-tools","docs\u002F2.usage\u002F4.editor\u002F10.external-tools",{"title":263,"path":264,"stem":265},"Работа с аккаунтом","\u002Fdocs\u002Fusage\u002Feditor\u002Faccount","docs\u002F2.usage\u002F4.editor\u002F11.account",{"title":267,"path":268,"stem":269},"Работа с API","\u002Fdocs\u002Fusage\u002Fapi","docs\u002F2.usage\u002F5.api",{"title":271,"path":272,"stem":273},"MCP: платформа как сервер","\u002Fdocs\u002Fusage\u002Fmcp","docs\u002F2.usage\u002F6.mcp",{"title":243,"icon":275,"path":276,"stem":277,"children":278},"i-lucide-blocks","\u002Fdocs\u002Fplugins","docs\u002F3.plugins\u002Findex",[279,281,285,289],{"title":280,"path":276,"stem":277},"Плагины и интеграции",{"title":282,"path":283,"stem":284},"Разработка плагина (SDK)","\u002Fdocs\u002Fplugins\u002Fdevelop","docs\u002F3.plugins\u002F1.develop",{"title":286,"path":287,"stem":288},"Подключение и интеграции","\u002Fdocs\u002Fplugins\u002Fconnect","docs\u002F3.plugins\u002F2.connect",{"title":290,"path":291,"stem":292},"API и MCP","\u002Fdocs\u002Fplugins\u002Fapi","docs\u002F3.plugins\u002F3.api",{"id":294,"title":41,"body":295,"description":1209,"extension":1210,"meta":1211,"navigation":1212,"path":42,"seo":1213,"stem":43,"__hash__":1214},"docs\u002Fdocs\u002F1.guide\u002F2.operations\u002F1.architecture.md",{"type":296,"value":297,"toc":1187},"minimark",[298,302,312,317,332,387,392,590,615,619,622,626,630,717,721,740,743,747,750,754,782,786,790,882,886,1081,1085,1089,1092,1096,1109,1125,1129,1158,1162],[299,300,301],"p",{},"Объяснение устройства продукта: какие компоненты есть, как они связаны и почему именно\nтак. Опора для архитектора при оценке масштабирования, отказоустойчивости и периметра\nданных.",[303,304,305],"blockquote",{},[299,306,307,311],{},[308,309,310],"strong",{},"На какие вопросы отвечает раздел:"," Из чего собран продукт? Как компоненты общаются\nмежду собой? Что крутится в demo-образе и что входит в полноценный on-prem? Какие\nпорты задействованы?",[313,314,316],"h2",{"id":315},"компоненты-системы","Компоненты системы",[299,318,319,320,323,324,327,328,331],{},"Платформа состоит из ",[308,321,322],{},"редактора",", ",[308,325,326],{},"ядра оркестрации"," и ",[308,329,330],{},"подключаемых плагинов",". В\nproduction каждый блок может работать отдельно и масштабироваться независимо.",[333,334,335,348],"table",{},[336,337,338],"thead",{},[339,340,341,345],"tr",{},[342,343,344],"th",{},"Компонент",[342,346,347],{},"Роль",[349,350,351,368,378],"tbody",{},[339,352,353,359],{},[354,355,356],"td",{},[308,357,358],{},"Редактор",[354,360,361,362,327,365],{},"Процессы, библиотека узлов, секреты, ",[308,363,364],{},"Запуски",[308,366,367],{},"Трассировка Запуска",[339,369,370,375],{},[354,371,372],{},[308,373,374],{},"Ядро",[354,376,377],{},"REST API, оркестрация, очереди, хранение данных и секретов",[339,379,380,384],{},[354,381,382],{},[308,383,243],{},[354,385,386],{},"Внешние интеграции и пользовательские узлы (TCP SDK)",[388,389,391],"h3",{"id":390},"сервисы-ядра","Сервисы ядра",[333,393,394,406],{},[336,395,396],{},[339,397,398,401,403],{},[342,399,400],{},"Сервис",[342,402,347],{},[342,404,405],{},"Транспорт внутри сети",[349,407,408,431,444,458,479,491,504,517,530,543,559,575],{},[339,409,410,414,425],{},[354,411,412],{},[308,413,74],{},[354,415,416,417,420,421],{},"REST API диаграмм, процессов, библиотеки, секретов; SSE по ",[308,418,419],{},"Запускам","; прокси ",[422,423,424],"code",{},"\u002Fauth",[354,426,427,428],{},"HTTP ",[422,429,430],{},":3000",[339,432,433,437,440],{},[354,434,435],{},[308,436,78],{},[354,438,439],{},"Логин, JWT, WebAuthn (passkeys), письма подтверждения",[354,441,427,442],{},[422,443,430],{},[339,445,446,450,453],{},[354,447,448],{},[308,449,82],{},[354,451,452],{},"Оркестратор выполнения процессов (только TCP RPC, без HTTP)",[354,454,455,456],{},"TCP ",[422,457,430],{},[339,459,460,464,471],{},[354,461,462],{},[308,463,86],{},[354,465,466,467,470],{},"Ingress исполнителей (ack\u002Fresult), policy dispatch, прокси ",[422,468,469],{},"\u002Fmetrics"," движка",[354,472,427,473,475,476],{},[422,474,430],{}," + TCP ",[422,477,478],{},":3001",[339,480,481,485,488],{},[354,482,483],{},[308,484,90],{},[354,486,487],{},"Встроенный исполнитель узлов ядра (HTTP, email, LLM, системные операции, пользовательский ввод)",[354,489,490],{},"очереди BullMQ (транспорт встроенных узлов)",[339,492,493,497,500],{},[354,494,495],{},[308,496,102],{},[354,498,499],{},"Cron- и webhook-триггеры",[354,501,455,502],{},[422,503,430],{},[339,505,506,510,513],{},[354,507,508],{},[308,509,94],{},[354,511,512],{},"Хранение секретов (Postgres + Vault Transit)",[354,514,455,515],{},[422,516,430],{},[339,518,519,523,526],{},[354,520,521],{},[308,522,106],{},[354,524,525],{},"Раздача каталога пресетов",[354,527,455,528],{},[422,529,430],{},[339,531,532,536,539],{},[354,533,534],{},[308,535,110],{},[354,537,538],{},"Загрузка и отдача файлов",[354,540,427,541],{},[422,542,430],{},[339,544,545,549,552],{},[354,546,547],{},[308,548,98],{},[354,550,551],{},"Приём манифестов плагинов по SDK, запись каталога в БД",[354,553,455,554,556,557],{},[422,555,430],{}," + health ",[422,558,478],{},[339,560,561,565,568],{},[354,562,563],{},[308,564,114],{},[354,566,567],{},"Генерация процессов по описанию и чат-агент (Ollama)",[354,569,455,570,572,573],{},[422,571,430],{}," + метрики ",[422,574,478],{},[339,576,577,581,584],{},[354,578,579],{},[308,580,118],{},[354,582,583],{},"Семантический поиск, индексы, граф совместимости",[354,585,455,586,556,588],{},[422,587,430],{},[422,589,478],{},[303,591,592],{},[299,593,594,597,598,600,601,604,605,607,608,323,611,614],{},[308,595,596],{},"Конвенция портов:"," внутри Docker-сети каждый сервис слушает ",[422,599,430],{}," (HTTP ",[308,602,603],{},"или","\nTCP), а где нужен второй слушатель (метрики, health, отдельный TCP) — ",[422,606,478],{},". Наружу\nпроброшенные номера (",[422,609,610],{},"4001",[422,612,613],{},"4013",", …) во внутренних peer-URL не используются — между\nсобой сервисы ходят по DNS-имени и внутреннему порту.",[313,616,618],{"id":617},"on-prem-prod-топология","On-prem \u002F prod-топология",[299,620,621],{},"В полноценном развёртывании каждый сервис — отдельный процесс (контейнер), редактор и\nплагины масштабируются независимо, инфраструктура (PostgreSQL, Redis, Vault и опционально\nQdrant\u002FNeo4j\u002FJaeger) разворачивается в вашем контуре.",[623,624],"mermaid",{"id":625},"prod-deploy",[388,627,629],{"id":628},"как-связаны-сервисы","Как связаны сервисы",[631,632,633,647,660,676,686,698,704],"ul",{},[634,635,636,639,640,643,644,646],"li",{},[308,637,638],{},"Редактор → api"," — REST + SSE (",[422,641,642],{},"NUXT_PUBLIC_API_BASE","). Auth-вызовы api проксирует на\n",[422,645,78],{},".",[634,648,649,652,653,656,657,659],{},[308,650,651],{},"api → engine",": создание ",[308,654,655],{},"Запуска"," через очередь BullMQ. ",[422,658,82],{}," строит снимок\nграфа и оркестрирует его, выбирая готовые узлы из БД.",[634,661,662,665,666,669,670,672,673,675],{},[308,663,664],{},"engine ↔ runtime-control-plane"," — TCP RPC в обе стороны (\n",[422,667,668],{},"CONTROL_PLANE_TCP_CONNECT"," → CP ",[422,671,478],{},"; CP → engine RPC ",[422,674,430],{},").",[634,677,678,681,682,685],{},[308,679,680],{},"executor → control-plane"," — ack\u002Fresult шага по внутреннему HTTP (\n",[422,683,684],{},"RUNTIME_INTERNAL_BASE_URL","); BullMQ — только транспорт встроенного executor.",[634,687,688,691,692,695,696,675],{},[308,689,690],{},"Процессы плагинов → plugin-manager"," — TCP: манифест и batch-pull пакетов; ",[308,693,694],{},"→\ncontrol-plane"," — TCP step-ack\u002Fresult (",[422,697,478],{},[634,699,700,703],{},[308,701,702],{},"secret-manager → Vault Transit"," — секреты шифруются перед записью в Postgres.",[634,705,706,709,710,712,713,716],{},[308,707,708],{},"flow-agent \u002F search-service"," — опциональны. При включении используют Ollama, Qdrant\nи Neo4j. ",[308,711,118],{}," дополнительно требует ",[308,714,715],{},"Redis"," (очередь индексации BullMQ).",[313,718,720],{"id":719},"demo-один-docker-образ","Demo: один Docker-образ",[299,722,723,724,727,728,731,732,735,736,739],{},"Demo-сценарий упаковывает ",[308,725,726],{},"весь стек в один контейнер"," (",[422,729,730],{},"kosolapus\u002Fconveyor-demo"," на\nHub): PostgreSQL, Redis, Vault (file-storage на томе), нужные Nest-процессы,\n",[422,733,734],{},"workflow-manager"," (production Nitro) и ",[308,737,738],{},"Nginx"," как единая HTTP-точка для UI и API.",[623,741],{"id":742},"demo-deploy",[388,744,746],{"id":745},"состав-demo-образа","Состав demo-образа",[299,748,749],{},"Demo включает ядро оркестрации, редактор, PostgreSQL, Redis и Vault на томах. Опциональные\nкомпоненты полного стека (flow-agent, search-service, Qdrant, Neo4j) в образ не входят.\nИнструменты разработки и наблюдаемости (Mailcatcher, Jaeger, Adminer) подключают отдельно\nпри локальной разработке.",[388,751,753],{"id":752},"границы-demo","Границы demo",[631,755,756,763,772,779],{},[634,757,758,759,762],{},"наружу проброшены только ",[308,760,761],{},"5 портов"," (см. ниже): сайт, каналы для внешних плагинов,\nпроверка готовности ядра, ответы о шагах процесса и служебный HTTP движка;",[634,764,765,766,771],{},"внешние плагины подключаются отдельно (\nсм. ",[767,768,770],"a",{"href":769},"\u002Fdocs\u002Fplugins\u002Fconnect#demo-compose-%D1%81-%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8","Плагины → Demo Compose",");",[634,773,774,775,778],{},"секреты переживают рестарт только при подключённом томе ",[422,776,777],{},"demo_vault",";",[634,780,781],{},"образ рассчитан на локальное демо, не на production (об этом предупреждает статус-бар\nредактора).",[313,783,785],{"id":784},"порты-приложения-по-режимам","Порты приложения по режимам",[388,787,789],{"id":788},"demo-проброшено-на-хост-по-умолчанию","Demo (проброшено на хост, по умолчанию)",[333,791,792,805],{},[336,793,794],{},[339,795,796,799,802],{},[342,797,798],{},"Порт",[342,800,801],{},"Зачем нужен",[342,803,804],{},"Переменная",[349,806,807,822,837,852,867],{},[339,808,809,814,817],{},[354,810,811],{},[308,812,813],{},"8080",[354,815,816],{},"Сайт: редактор, вход, API",[354,818,819],{},[422,820,821],{},"DEMO_WEB_PORT",[339,823,824,829,832],{},[354,825,826],{},[308,827,828],{},"4016",[354,830,831],{},"Подключение плагинов к ядру",[354,833,834],{},[422,835,836],{},"DEMO_PM_TCP_PORT",[339,838,839,844,847],{},[354,840,841],{},[308,842,843],{},"4017",[354,845,846],{},"Проверка, что ядро поднялось",[354,848,849],{},[422,850,851],{},"DEMO_PM_HEALTH_PORT",[339,853,854,859,862],{},[354,855,856],{},[308,857,858],{},"4021",[354,860,861],{},"Ответы плагинов о выполнении шагов",[354,863,864],{},[422,865,866],{},"DEMO_CP_TCP_PORT",[339,868,869,874,877],{},[354,870,871],{},[308,872,873],{},"4020",[354,875,876],{},"Служебный HTTP движка (метрики, отладка)",[354,878,879],{},[422,880,881],{},"DEMO_CP_HTTP_PORT",[388,883,885],{"id":884},"dev-стек-локальная-разработка-проброшено-на-хост","Dev-стек (локальная разработка, проброшено на хост)",[333,887,888,900],{},[336,889,890],{},[339,891,892,894,897],{},[342,893,400],{},[342,895,896],{},"Хост",[342,898,899],{},"Контейнер",[349,901,902,918,931,946,960,974,989,1003,1018,1033,1048,1062],{},[339,903,904,906,914],{},[354,905,74],{},[354,907,908,727,910,913],{},[308,909,610],{},[422,911,912],{},"API_PUBLISH_PORT",")",[354,915,916],{},[422,917,430],{},[339,919,920,923,927],{},[354,921,922],{},"runtime-engine RPC",[354,924,925],{},[308,926,613],{},[354,928,929],{},[422,930,430],{},[339,932,933,936,941],{},[354,934,935],{},"search-service TCP \u002F health",[354,937,938],{},[308,939,940],{},"4014 \u002F 4015",[354,942,943],{},[422,944,945],{},":3000 \u002F :3001",[339,947,948,951,956],{},[354,949,950],{},"plugin-manager TCP \u002F health",[354,952,953],{},[308,954,955],{},"4016 \u002F 4017",[354,957,958],{},[422,959,945],{},[339,961,962,965,970],{},[354,963,964],{},"runtime-control-plane HTTP \u002F TCP",[354,966,967],{},[308,968,969],{},"4020 \u002F 4021",[354,971,972],{},[422,973,945],{},[339,975,976,979,984],{},[354,977,978],{},"Postgres",[354,980,981],{},[308,982,983],{},"5432",[354,985,986],{},[422,987,988],{},":5432",[339,990,991,993,998],{},[354,992,715],{},[354,994,995],{},[308,996,997],{},"6379",[354,999,1000],{},[422,1001,1002],{},":6379",[339,1004,1005,1008,1013],{},[354,1006,1007],{},"Qdrant",[354,1009,1010],{},[308,1011,1012],{},"6333",[354,1014,1015],{},[422,1016,1017],{},":6333",[339,1019,1020,1023,1028],{},[354,1021,1022],{},"Neo4j HTTP \u002F Bolt",[354,1024,1025],{},[308,1026,1027],{},"7474 \u002F 7687",[354,1029,1030],{},[422,1031,1032],{},":7474 \u002F :7687",[339,1034,1035,1038,1043],{},[354,1036,1037],{},"Vault",[354,1039,1040],{},[308,1041,1042],{},"8200",[354,1044,1045],{},[422,1046,1047],{},":8200",[339,1049,1050,1053,1057],{},[354,1051,1052],{},"Adminer",[354,1054,1055],{},[308,1056,813],{},[354,1058,1059],{},[422,1060,1061],{},":8080",[339,1063,1064,1071,1076],{},[354,1065,1066,1067,1070],{},"Mailcatcher web (SMTP ",[422,1068,1069],{},"1025"," внутри)",[354,1072,1073],{},[308,1074,1075],{},"1080",[354,1077,1078],{},[422,1079,1080],{},":1080",[313,1082,1084],{"id":1083},"ключевые-механизмы","Ключевые механизмы",[388,1086,1088],{"id":1087},"редактирование-процесса-в-рантайме","Редактирование процесса в рантайме",[299,1090,1091],{},"Граф меняется в редакторе без перезапуска платформы. Контракты узлов проверяются до\nзапуска. Уже запущенное исполнение работает с тем графом, от которого оно строилось.",[388,1093,1095],{"id":1094},"stateless-исполнители-и-состояние-в-бд","Stateless-исполнители и состояние в БД",[299,1097,1098,1099,1102,1103,1105,1106,1108],{},"Статусы и ",[308,1100,1101],{},"результаты выполнения шагов"," всех узлов ",[308,1104,655],{}," хранятся в БД.\nОркестратор выбирает готовые узлы из записей БД и передаёт payload исполнителю.\nВстроенные исполнители работают через очередь BullMQ. Plugin executors отправляют\nack\u002Fresult в ",[308,1107,86],{}," по TCP. Долгоживущие сценарии не создают\nдополнительной нагрузки на оркестратор: состояние остаётся в БД.",[1110,1111,1113,1120],"tradeoff",{"label":1112},"Наперекор классике",[1114,1115,1117],"template",{"v-slot:idea":1116},"",[299,1118,1119],{},"Нет скрытого \"состояния\" самого процесса - каждый исполнитель может манипулировать\nтолько теми данными, которые в него переданы.",[1114,1121,1122],{"v-slot:reasons":1116},[299,1123,1124],{},"Это упрощает горизонтальное масштабирование, трассировку и наблюдаемость, но\nпереносит ответственность за контекст на разработчика: данные между шагами приходится явно\nпрокидывать через payload, а «тяжёлое» состояние (большие файлы, длинные диалоги)\nтребует отдельного хранилища. Для сценариев с богатым общим состоянием модель ощущается\nизбыточно строгой.",[388,1126,1128],{"id":1127},"контур-данных","Контур данных",[631,1130,1131,1138,1141,1144,1152,1155],{},[634,1132,1133,1134,1137],{},"оркестрация и данные ",[308,1135,1136],{},"Запусков"," — в вашей инфраструктуре;",[634,1139,1140],{},"секреты и пароли шифруются Vault Transit, в БД лежит только ciphertext;",[634,1142,1143],{},"плагины можно изолировать сетью по политике безопасности;",[634,1145,1146,1148,1149,1151],{},[308,1147,367],{},": ",[308,1150,1101],{}," от исполнителей и события узлов;",[634,1153,1154],{},"журнал аудита: критические действия пользователей (только в БД\u002Fвнешней системе);",[634,1156,1157],{},"метрики и распределённые трейсы выгружаются через явно настроенные порты и экспорт\nOpenTelemetry",[313,1159,1161],{"id":1160},"дальше","Дальше",[631,1163,1164,1169,1175,1181],{},[634,1165,1166,1168],{},[767,1167,46],{"href":47},": demo, on-prem,\nпеременные окружения и порты по шагам;",[634,1170,1171,1174],{},[767,1172,1173],{"href":129},"Конфигурация и справочник",": полный перечень переменных\nокружения;",[634,1176,1177,1180],{},[767,1178,1179],{"href":291},"API",": контракты и интеграции;",[634,1182,1183,1186],{},[767,1184,1185],{"href":52},"Безопасность",": контур данных и изоляция.",{"title":1116,"searchDepth":27,"depth":27,"links":1188},[1189,1192,1195,1199,1203,1208],{"id":315,"depth":27,"text":316,"children":1190},[1191],{"id":390,"depth":32,"text":391},{"id":617,"depth":27,"text":618,"children":1193},[1194],{"id":628,"depth":32,"text":629},{"id":719,"depth":27,"text":720,"children":1196},[1197,1198],{"id":745,"depth":32,"text":746},{"id":752,"depth":32,"text":753},{"id":784,"depth":27,"text":785,"children":1200},[1201,1202],{"id":788,"depth":32,"text":789},{"id":884,"depth":32,"text":885},{"id":1083,"depth":27,"text":1084,"children":1204},[1205,1206,1207],{"id":1087,"depth":32,"text":1088},{"id":1094,"depth":32,"text":1095},{"id":1127,"depth":32,"text":1128},{"id":1160,"depth":27,"text":1161},"Реальное устройство Conveyor — микросервисы NestJS, плагины, редактор, инфраструктура, а также границы demo- и on-prem-сценариев.","md",{},{"order":44},{"title":41,"description":1209},"YGu15nPameFZxxienxhlCY-T4zvLA3u6upsXptfUjs0",[1216,1218],{"title":29,"path":30,"stem":31,"description":1217,"order":32,"children":-1},"Docker demo и первые шаги с Conveyor — от запуска до первого процесса.",{"title":46,"path":47,"stem":48,"description":1219,"order":49,"children":-1},"Docker demo, on-prem и SaaS — топологии, переменные окружения и ссылки на рецепты.",1782081967028]