[{"data":1,"prerenderedAt":2549},["ShallowReactive",2],{"docs-navigation":3,"docs-page:\u002Fdocs\u002Fguide\u002Freference\u002Fconfig":293,"docs-surround:\u002Fdocs\u002Fguide\u002Freference\u002Fconfig":2544},[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":128,"body":295,"description":2538,"extension":2539,"meta":2540,"navigation":2541,"path":129,"seo":2542,"stem":130,"__hash__":2543},"docs\u002Fdocs\u002F1.guide\u002F4.reference\u002F1.config.md",{"type":296,"value":297,"toc":2519},"minimark",[298,302,312,322,327,330,451,467,471,487,492,735,737,899,901,1009,1013,1154,1156,1287,1291,1433,1437,1499,1503,1588,1592,1651,1677,1683,2113,2117,2182,2189,2193,2196,2318,2324,2328,2453,2457,2460,2488,2491,2495,2515],[299,300,301],"p",{},"Справочник для быстрого поиска значений. На него ссылаются другие страницы документации. Только факты и значения по умолчанию, без обучающего текста.",[303,304,305],"blockquote",{},[299,306,307,311],{},[308,309,310],"strong",{},"На какие вопросы отвечает раздел:"," Как называется эта команда\u002Fпеременная? Что значит этот код ошибки? Какое значение по умолчанию?",[303,313,314],{},[299,315,316,317,321],{},"Контракты HTTP API: автогенерируемый Swagger на ",[318,319,320],"code",{},"\u002Fapi"," (Basic-auth).",[323,324,326],"h2",{"id":325},"cli-и-команды","CLI и команды",[299,328,329],{},"Основные команды репозитория ядра (on-prem разработка и эксплуатация):",[331,332,333,346],"table",{},[334,335,336],"thead",{},[337,338,339,343],"tr",{},[340,341,342],"th",{},"Команда",[340,344,345],{},"Назначение",[347,348,349,364,386,399,409,422,438],"tbody",{},[337,350,351,361],{},[352,353,354,357,358],"td",{},[318,355,356],{},"npm run docker:dev"," \u002F ",[318,359,360],{},"docker:dev:build",[352,362,363],{},"Локальный dev-стек в Docker",[337,365,366,383],{},[352,367,368,357,371,357,374,357,377,357,380],{},[318,369,370],{},"npm run start:api",[318,372,373],{},"start:engine",[318,375,376],{},"start:control-plane",[318,378,379],{},"start:executor",[318,381,382],{},"start:scheduler",[352,384,385],{},"Запуск отдельных сервисов",[337,387,388,396],{},[352,389,390,357,393],{},[318,391,392],{},"npm run sc:m",[318,394,395],{},"sc:g",[352,397,398],{},"Миграции Drizzle (apply \u002F generate)",[337,400,401,406],{},[352,402,403],{},[318,404,405],{},"npm run studio",[352,407,408],{},"Drizzle Studio для просмотра БД",[337,410,411,419],{},[352,412,413,357,416],{},[318,414,415],{},"npm run lint",[318,417,418],{},"format",[352,420,421],{},"ESLint и Prettier",[337,423,424,435],{},[352,425,426,357,429,357,432],{},[318,427,428],{},"npm run test",[318,430,431],{},"test:e2e",[318,433,434],{},"release-readiness",[352,436,437],{},"Тесты и проверка перед релизом",[337,439,440,445],{},[352,441,442],{},[318,443,444],{},"npx ts-node scripts\u002Faudit-retention.ts",[352,446,447,448],{},"Purge журнала аудита старше ",[318,449,450],{},"AUDIT_RETENTION_DAYS",[299,452,453,454,457,458,462,463,466],{},"Demo на Hub: ",[318,455,456],{},"docker run",". Подробнее в ",[459,460,461],"a",{"href":30},"Быстром старте"," и ",[459,464,465],{"href":160},"Cookbook → Deploy",".",[323,468,470],{"id":469},"конфигурация-и-переменные-окружения","Конфигурация и переменные окружения",[299,472,473,474,477,478,482,483,486],{},"Полный шаблон on-prem лежит в репозитории ядра (файл ",[318,475,476],{},".env.example","). Для ",[459,479,481],{"href":480},"\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 с плагинами"," используйте ",[318,484,485],{},"compose.env.example",". Ниже сгруппированный справочник наиболее значимых переменных.",[488,489,491],"h3",{"id":490},"общая-инфраструктура","Общая инфраструктура",[331,493,494,506],{},[334,495,496],{},[337,497,498,501,503],{},[340,499,500],{},"Переменная",[340,502,345],{},[340,504,505],{},"По умолчанию",[347,507,508,523,559,580,599,626,647,679,700,721],{},[337,509,510,515,518],{},[352,511,512],{},[318,513,514],{},"DATABASE_URL",[352,516,517],{},"Подключение Drizzle к Postgres",[352,519,520],{},[318,521,522],{},"postgresql:\u002F\u002Fpostgres:postgres@postgres:5432\u002Fpostgres",[337,524,525,542,545],{},[352,526,527,357,530,357,533,357,536,357,539],{},[318,528,529],{},"POSTGRES_HOST",[318,531,532],{},"POSTGRES_PORT",[318,534,535],{},"POSTGRES_USER",[318,537,538],{},"POSTGRES_PASSWORD",[318,540,541],{},"POSTGRES_DB",[352,543,544],{},"Параметры Postgres",[352,546,547,357,550,357,553,357,555,357,557],{},[318,548,549],{},"postgres",[318,551,552],{},"5432",[318,554,549],{},[318,556,549],{},[318,558,549],{},[337,560,561,569,572],{},[352,562,563,357,566],{},[318,564,565],{},"REDIS_HOST",[318,567,568],{},"REDIS_PORT",[352,570,571],{},"Redis (BullMQ)",[352,573,574,357,577],{},[318,575,576],{},"redis",[318,578,579],{},"6379",[337,581,582,590,593],{},[352,583,584,357,587],{},[318,585,586],{},"VAULT_ADDR",[318,588,589],{},"VAULT_TOKEN",[352,591,592],{},"Адрес и токен Vault",[352,594,595,598],{},[318,596,597],{},"http:\u002F\u002Fvault:8200"," \u002F —",[337,600,601,612,615],{},[352,602,603,357,606,357,609],{},[318,604,605],{},"VAULT_MOUNT",[318,607,608],{},"VAULT_TRANSIT_MOUNT",[318,610,611],{},"VAULT_TRANSIT_KEY_NAME",[352,613,614],{},"KV-mount, Transit-mount, имя ключа",[352,616,617,357,620,357,623],{},[318,618,619],{},"secret",[318,621,622],{},"transit",[318,624,625],{},"autokey",[337,627,628,639,642],{},[352,629,630,357,633,357,636],{},[318,631,632],{},"QDRANT_URL",[318,634,635],{},"QDRANT_HOST",[318,637,638],{},"QDRANT_PORT",[352,640,641],{},"Qdrant (опц., для search)",[352,643,644],{},[318,645,646],{},"http:\u002F\u002Fqdrant:6333",[337,648,649,663,666],{},[352,650,651,357,654,357,657,357,660],{},[318,652,653],{},"NEO4J_HOST",[318,655,656],{},"NEO4J_USER",[318,658,659],{},"NEO4J_PASSWORD",[318,661,662],{},"NEO4J_BOLT_PORT",[352,664,665],{},"Neo4j (опц.)",[352,667,668,357,671,357,673,357,676],{},[318,669,670],{},"neo4j",[318,672,670],{},[318,674,675],{},"neo4j-local",[318,677,678],{},"7687",[337,680,681,692,695],{},[352,682,683,357,686,357,689],{},[318,684,685],{},"OLLAMA_BASE_URL",[318,687,688],{},"OLLAMA_HOST",[318,690,691],{},"OLLAMA_PORT",[352,693,694],{},"Ollama для LLM\u002Fembeddings",[352,696,697],{},[318,698,699],{},"http:\u002F\u002Fhost.docker.internal:11434",[337,701,702,710,713],{},[352,703,704,357,707],{},[318,705,706],{},"LOG_LEVEL",[318,708,709],{},"LOG_FORMAT",[352,711,712],{},"Логи Pino\u002FNest",[352,714,715,357,718],{},[318,716,717],{},"info",[318,719,720],{},"json",[337,722,723,727,730],{},[352,724,725],{},[318,726,450],{},[352,728,729],{},"Хранение записей аудита, дней",[352,731,732],{},[318,733,734],{},"365",[488,736,74],{"id":74},[331,738,739,749],{},[334,740,741],{},[337,742,743,745,747],{},[340,744,500],{},[340,746,345],{},[340,748,505],{},[347,750,751,771,784,796,811,826,860,880],{},[337,752,753,761,764],{},[352,754,755,357,758],{},[318,756,757],{},"API_HTTP_LISTEN",[318,759,760],{},"API_PATH",[352,762,763],{},"Адрес прослушивания и префикс REST",[352,765,766,357,769],{},[318,767,768],{},"0.0.0.0:3000",[318,770,74],{},[337,772,773,778,781],{},[352,774,775],{},[318,776,777],{},"JWT_SECRET",[352,779,780],{},"Подпись JWT access\u002Frefresh",[352,782,783],{},"—",[337,785,786,791,794],{},[352,787,788],{},[318,789,790],{},"ORIGIN_REGEXP",[352,792,793],{},"Allowlist Origin (CORS)",[352,795],{},[337,797,798,806,809],{},[352,799,800,357,803],{},[318,801,802],{},"SWAGGER_USER",[318,804,805],{},"SWAGGER_PASSWORD",[352,807,808],{},"Basic-auth Swagger UI",[352,810,783],{},[337,812,813,818,821],{},[352,814,815],{},[318,816,817],{},"PAYLOAD_LIMIT",[352,819,820],{},"Лимит тела запроса",[352,822,823],{},[318,824,825],{},"50mb",[337,827,828,852,855],{},[352,829,830,833,834,833,837,833,840,833,843,833,846,833,849],{},[318,831,832],{},"AUTH_SERVICE_BASE_URL",", ",[318,835,836],{},"SECRETS_TCP_CONNECT",[318,838,839],{},"PRESET_TCP_CONNECT",[318,841,842],{},"SCHEDULER_TCP_CONNECT",[318,844,845],{},"FILE_SERVICE_BASE_URL",[318,847,848],{},"FLOW_AGENT_TCP_CONNECT",[318,850,851],{},"SEARCH_SERVICE_TCP_CONNECT",[352,853,854],{},"Адреса микросервисов",[352,856,857],{},[318,858,859],{},"\u003Cservice>:3000",[337,861,862,870,873],{},[352,863,864,357,867],{},[318,865,866],{},"FLOW_AGENT_ENABLED",[318,868,869],{},"AGENT_CHAT_ENABLED",[352,871,872],{},"Клиент flow-agent и чат-API",[352,874,875,357,878],{},[318,876,877],{},"false",[318,879,877],{},[337,881,882,890,893],{},[352,883,884,357,887],{},[318,885,886],{},"API_SENSITIVE_ROUTE_CIDRS",[318,888,889],{},"API_TRUST_PROXY_HOPS",[352,891,892],{},"Защита маршрутов за прокси",[352,894,895,896],{},"— \u002F ",[318,897,898],{},"0",[488,900,78],{"id":78},[331,902,903,913],{},[334,904,905],{},[337,906,907,909,911],{},[340,908,500],{},[340,910,345],{},[340,912,505],{},[347,914,915,929,950,977],{},[337,916,917,922,925],{},[352,918,919],{},[318,920,921],{},"AUTH_SERVICE_HTTP_LISTEN",[352,923,924],{},"Адрес прослушивания",[352,926,927],{},[318,928,768],{},[337,930,931,939,942],{},[352,932,933,357,936],{},[318,934,935],{},"JWT_ACCESS_TTL",[318,937,938],{},"JWT_REFRESH_TTL",[352,940,941],{},"TTL токенов",[352,943,944,357,947],{},[318,945,946],{},"15m",[318,948,949],{},"7d",[337,951,952,963,966],{},[352,953,954,357,957,357,960],{},[318,955,956],{},"WEBAUTHN_RP_ID",[318,958,959],{},"WEBAUTHN_RP_NAME",[318,961,962],{},"WEBAUTHN_ORIGIN",[352,964,965],{},"Параметры WebAuthn (passkeys)",[352,967,968,357,971,357,974],{},[318,969,970],{},"localhost",[318,972,973],{},"Conveyor",[318,975,976],{},"https:\u002F\u002Flocalhost:3000",[337,978,979,993,996],{},[352,980,981,357,984,357,987,357,990],{},[318,982,983],{},"SMTP_HOST",[318,985,986],{},"SMTP_PORT",[318,988,989],{},"SMTP_FROM",[318,991,992],{},"SMTP_SECURE",[352,994,995],{},"Исходящая почта",[352,997,998,357,1001,357,1004,357,1007],{},[318,999,1000],{},"mailcatcher",[318,1002,1003],{},"1025",[318,1005,1006],{},"noreply@flowforge.local",[318,1008,877],{},[488,1010,1012],{"id":1011},"runtime-engine-и-runtime-control-plane","runtime-engine и runtime-control-plane",[331,1014,1015,1025],{},[334,1016,1017],{},[337,1018,1019,1021,1023],{},[340,1020,500],{},[340,1022,345],{},[340,1024,505],{},[347,1026,1027,1042,1057,1077,1091,1106,1118,1133],{},[337,1028,1029,1034,1037],{},[352,1030,1031],{},[318,1032,1033],{},"RUNTIME_ENGINE_RPC_TCP_PORT",[352,1035,1036],{},"TCP RPC движка в контейнере",[352,1038,1039],{},[318,1040,1041],{},"3000",[337,1043,1044,1049,1052],{},[352,1045,1046],{},[318,1047,1048],{},"CONTROL_PLANE_TCP_CONNECT",[352,1050,1051],{},"engine → control-plane TCP",[352,1053,1054],{},[318,1055,1056],{},"runtime-control-plane:3001",[337,1058,1059,1067,1070],{},[352,1060,1061,357,1064],{},[318,1062,1063],{},"RUNTIME_CONTROL_PLANE_HTTP_PORT",[318,1065,1066],{},"RUNTIME_CONTROL_PLANE_TCP_PORT",[352,1068,1069],{},"HTTP и TCP control-plane",[352,1071,1072,357,1074],{},[318,1073,1041],{},[318,1075,1076],{},"3001",[337,1078,1079,1084,1087],{},[352,1080,1081],{},[318,1082,1083],{},"RUNTIME_ENGINE_TCP_HOST",[352,1085,1086],{},"control-plane → engine RPC hostname",[352,1088,1089],{},[318,1090,82],{},[337,1092,1093,1098,1101],{},[352,1094,1095],{},[318,1096,1097],{},"RUNTIME_INTERNAL_BASE_URL",[352,1099,1100],{},"base-URL control-plane для SDK исполнителя",[352,1102,1103],{},[318,1104,1105],{},"http:\u002F\u002Fruntime-control-plane:3000",[337,1107,1108,1113,1116],{},[352,1109,1110],{},[318,1111,1112],{},"PLUGIN_CONTROL_PLANE_KEY",[352,1114,1115],{},"Ключ внутренних маршрутов",[352,1117,783],{},[337,1119,1120,1125,1128],{},[352,1121,1122],{},[318,1123,1124],{},"PLUGIN_CONTROL_PLANE_ALLOW_CIDRS",[352,1126,1127],{},"Allowlist исполнителей\u002Fплагинов",[352,1129,1130],{},[318,1131,1132],{},"0.0.0.0\u002F0",[337,1134,1135,1143,1146],{},[352,1136,1137,357,1140],{},[318,1138,1139],{},"DISPATCH_MAX_ATTEMPTS",[318,1141,1142],{},"DISPATCH_RETRY_BASE_MS",[352,1144,1145],{},"Ретраи диспетчеризации",[352,1147,1148,357,1151],{},[318,1149,1150],{},"5",[318,1152,1153],{},"300",[488,1155,98],{"id":98},[331,1157,1158,1168],{},[334,1159,1160],{},[337,1161,1162,1164,1166],{},[340,1163,500],{},[340,1165,345],{},[340,1167,505],{},[347,1169,1170,1189,1204,1218,1233,1248,1272],{},[337,1171,1172,1180,1183],{},[352,1173,1174,357,1177],{},[318,1175,1176],{},"PLUGIN_MANAGER_TCP_PORT",[318,1178,1179],{},"PLUGIN_MANAGER_HEALTH_PORT",[352,1181,1182],{},"TCP приёма SDK и HTTP health",[352,1184,1185,357,1187],{},[318,1186,1041],{},[318,1188,1076],{},[337,1190,1191,1196,1199],{},[352,1192,1193],{},[318,1194,1195],{},"PLUGIN_MANAGER_INGRESS_TOKEN",[352,1197,1198],{},"Токен в TCP-payload плагинов",[352,1200,1201],{},[318,1202,1203],{},"dev-plugin-ingress",[337,1205,1206,1211,1214],{},[352,1207,1208],{},[318,1209,1210],{},"PLUGIN_MANAGER_ALLOW_CIDRS",[352,1212,1213],{},"Allowlist TCP-подключений плагинов",[352,1215,1216],{},[318,1217,1132],{},[337,1219,1220,1225,1228],{},[352,1221,1222],{},[318,1223,1224],{},"PLUGIN_MANAGER_FILE_SERVICE_URL",[352,1226,1227],{},"file-service для блобов",[352,1229,1230],{},[318,1231,1232],{},"http:\u002F\u002Ffile-service:3000",[337,1234,1235,1240,1243],{},[352,1236,1237],{},[318,1238,1239],{},"PLUGIN_MANAGER_STARTUP_RECONCILE",[352,1241,1242],{},"Reconcile при старте",[352,1244,1245],{},[318,1246,1247],{},"true",[337,1249,1250,1255,1265],{},[352,1251,1252],{},[318,1253,1254],{},"PLUGIN_MANAGER_PLUGIN_HEALTH_INTERVAL_MS",[352,1256,1257,1258,1260,1261,1264],{},"Периодический TCP-опрос pull-endpoint плагинов (мс); ",[318,1259,898],{}," или ",[318,1262,1263],{},"\u003C15000"," — выключено",[352,1266,1267,1269,1270],{},[318,1268,898],{}," (on-prem); demo Compose — ",[459,1271,243],{"href":480},[337,1273,1274,1279,1282],{},[352,1275,1276],{},[318,1277,1278],{},"PLUGIN_MANAGER_PLUGIN_HEALTH_JITTER_RATIO",[352,1280,1281],{},"Джиттер перед sweep (0–0.5)",[352,1283,1284],{},[318,1285,1286],{},"0.2",[488,1288,1290],{"id":1289},"secret-manager-file-service-preset-service-scheduler-search-service","secret-manager, file-service, preset-service, scheduler, search-service",[331,1292,1293,1303],{},[334,1294,1295],{},[337,1296,1297,1299,1301],{},[340,1298,500],{},[340,1300,345],{},[340,1302,505],{},[347,1304,1305,1319,1336,1353,1373,1393,1412],{},[337,1306,1307,1312,1315],{},[352,1308,1309],{},[318,1310,1311],{},"SECRETS_TCP_LISTEN",[352,1313,1314],{},"Адрес secret-manager",[352,1316,1317],{},[318,1318,768],{},[337,1320,1321,1329,1332],{},[352,1322,1323,357,1326],{},[318,1324,1325],{},"FILE_SERVICE_HTTP_LISTEN",[318,1327,1328],{},"FILE_STORAGE_PATH",[352,1330,1331],{},"Адрес и каталог хранения файлов",[352,1333,1334,598],{},[318,1335,768],{},[337,1337,1338,1346,1349],{},[352,1339,1340,357,1343],{},[318,1341,1342],{},"PRESET_TCP_LISTEN",[318,1344,1345],{},"PRESET_CATALOG_PATH",[352,1347,1348],{},"Адрес и каталог пресетов",[352,1350,1351,598],{},[318,1352,768],{},[337,1354,1355,1363,1366],{},[352,1356,1357,357,1360],{},[318,1358,1359],{},"SCHEDULER_TCP_LISTEN",[318,1361,1362],{},"SCHEDULER_MIN_CRON_PERIOD_MINUTES",[352,1364,1365],{},"Адрес и мин. период cron",[352,1367,1368,357,1370],{},[318,1369,768],{},[318,1371,1372],{},"60",[337,1374,1375,1383,1386],{},[352,1376,1377,357,1380],{},[318,1378,1379],{},"SEARCH_SERVICE_TCP_LISTEN",[318,1381,1382],{},"SEARCH_SERVICE_HEALTH_HTTP_LISTEN",[352,1384,1385],{},"TCP и health search",[352,1387,1388,357,1390],{},[318,1389,768],{},[318,1391,1392],{},"0.0.0.0:3001",[337,1394,1395,1401,1404],{},[352,1396,1397,357,1399],{},[318,1398,565],{},[318,1400,568],{},[352,1402,1403],{},"Redis для search-service",[352,1405,1406,1407,1409,1410],{},"BullMQ outbox индексации; в prod задайте ",[318,1408,576],{},", не ",[318,1411,970],{},[337,1413,1414,1422,1425],{},[352,1415,1416,357,1419],{},[318,1417,1418],{},"EMBEDDING_MODEL",[318,1420,1421],{},"SEARCH_SERVICE_START_MODE",[352,1423,1424],{},"Модель эмбеддингов и режим старта",[352,1426,1427,357,1430],{},[318,1428,1429],{},"embeddinggemma",[318,1431,1432],{},"normal",[488,1434,1436],{"id":1435},"наблюдаемость","Наблюдаемость",[331,1438,1439,1449],{},[334,1440,1441],{},[337,1442,1443,1445,1447],{},[340,1444,500],{},[340,1446,345],{},[340,1448,505],{},[347,1450,1451,1466,1487],{},[337,1452,1453,1458,1461],{},[352,1454,1455],{},[318,1456,1457],{},"OTEL_EXPORTER_OTLP_ENDPOINT",[352,1459,1460],{},"OTLP-endpoint Jaeger (пусто — трассировка выкл.)",[352,1462,1463],{},[318,1464,1465],{},"http:\u002F\u002Fjaeger:4318",[337,1467,1468,1476,1479],{},[352,1469,1470,357,1473],{},[318,1471,1472],{},"OTEL_SERVICE_NAME",[318,1474,1475],{},"OTEL_SERVICE_VERSION",[352,1477,1478],{},"Имя и версия сервиса в телеметрии",[352,1480,1481,357,1484],{},[318,1482,1483],{},"flow-forge",[318,1485,1486],{},"0.0.1",[337,1488,1489,1494,1497],{},[352,1490,1491],{},[318,1492,1493],{},"OTEL_SDK_DISABLED",[352,1495,1496],{},"Полностью отключить OpenTelemetry",[352,1498,783],{},[488,1500,1502],{"id":1501},"редактор-workflow-manager","Редактор (workflow-manager)",[331,1504,1505,1515],{},[334,1506,1507],{},[337,1508,1509,1511,1513],{},[340,1510,500],{},[340,1512,345],{},[340,1514,505],{},[347,1516,1517,1532,1545,1558,1573],{},[337,1518,1519,1524,1527],{},[352,1520,1521],{},[318,1522,1523],{},"NUXT_PUBLIC_API_BASE",[352,1525,1526],{},"Базовый URL backend (единая точка входа)",[352,1528,1529],{},[318,1530,1531],{},"http:\u002F\u002Flocalhost:4001",[337,1533,1534,1539,1542],{},[352,1535,1536],{},[318,1537,1538],{},"NUXT_PUBLIC_EDITOR_CONFIG_AGENT_ENABLED",[352,1540,1541],{},"AI-агент в шапке",[352,1543,1544],{},"выкл.",[337,1546,1547,1552,1555],{},[352,1548,1549],{},[318,1550,1551],{},"NUXT_PUBLIC_EDITOR_CONFIG_USER_MANAGEMENT_ENABLED",[352,1553,1554],{},"Логин\u002Fрегистрация в UI",[352,1556,1557],{},"вкл.",[337,1559,1560,1568,1571],{},[352,1561,1562,357,1565],{},[318,1563,1564],{},"NUXT_PUBLIC_EDITOR_CONFIG_USER_MESSAGE",[318,1566,1567],{},"_TONE",[352,1569,1570],{},"Сообщение в статус-баре",[352,1572,783],{},[337,1574,1575,1583,1586],{},[352,1576,1577,357,1580],{},[318,1578,1579],{},"NUXT_PUBLIC_LEGAL_TERMS_URL",[318,1581,1582],{},"NUXT_PUBLIC_LEGAL_PRIVACY_URL",[352,1584,1585],{},"Внешние юридические ссылки",[352,1587,783],{},[488,1589,1591],{"id":1590},"docker-demo-контейнер-и-compose","Docker demo (контейнер и Compose)",[331,1593,1594,1604],{},[334,1595,1596],{},[337,1597,1598,1600,1602],{},[340,1599,500],{},[340,1601,345],{},[340,1603,505],{},[347,1605,1606,1621,1636],{},[337,1607,1608,1613,1616],{},[352,1609,1610],{},[318,1611,1612],{},"PUBLIC_SITE_URL",[352,1614,1615],{},"Origin UI и WebAuthn в demo-контейнере",[352,1617,1618],{},[318,1619,1620],{},"http:\u002F\u002Flocalhost:8080",[337,1622,1623,1628,1631],{},[352,1624,1625],{},[318,1626,1627],{},"DEMO_SEED_PASSWORD",[352,1629,1630],{},"Пароль встроенных демо-учёток",[352,1632,1633],{},[318,1634,1635],{},"Test123456!",[337,1637,1638,1643,1646],{},[352,1639,1640],{},[318,1641,1642],{},"DEMO_PLUGIN_HEALTH_INTERVAL_MS",[352,1644,1645],{},"TCP-опрос pull-endpoint плагинов",[352,1647,1648],{},[318,1649,1650],{},"1200000",[299,1652,1653,1654,833,1656,833,1659,1661,1662,1666,1667,833,1670,1673,1674,466],{},"Секреты (",[318,1655,777],{},[318,1657,1658],{},"PLUGIN_*",[318,1660,538],{},") и полная таблица demo: ",[459,1663,1665],{"href":1664},"\u002Fdocs\u002Fguide\u002Foperations\u002Fdeployment#%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D0%BE%D0%BA%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F-demo","Развёртывание → Docker demo",".\nПеременные Compose с плагинами (",[318,1668,1669],{},"DEMO_IMAGE_REF",[318,1671,1672],{},"DEMO_*_EXECUTOR_PORT",", …): ",[459,1675,1676],{"href":480},"Плагины → Demo Compose",[299,1678,1679,1680,1682],{},"Фрагмент шаблона on-prem. Полный построчный список в ",[318,1681,476],{}," репозитория ядра.",[1684,1685,1690],"pre",{"className":1686,"code":1687,"language":1688,"meta":1689,"style":1689},"language-env shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# -----------------------------------------------------------------------------\n# Общие — Postgres Redis Vault URLs, общая инфра и observability\n# -----------------------------------------------------------------------------\n# Строка подключения Drizzle ORM к Postgres (в docker-all: хост postgres, не localhost)\nDATABASE_URL=postgresql:\u002F\u002Fpostgres:postgres@postgres:5432\u002Fpostgres\n# Хост экземпляра Postgres\nPOSTGRES_HOST=postgres\n# Порт Postgres для строки подключения\nPOSTGRES_PORT=5432\n# Имя пользователя базы Postgres\nPOSTGRES_USER=postgres\n# Пароль пользователя Postgres\nPOSTGRES_PASSWORD=postgres\n# Имя базы данных приложения\nPOSTGRES_DB=postgres\n# Хост Redis для очередей BullMQ\nREDIS_HOST=redis\n# Порт процесса Redis\nREDIS_PORT=6379\n# Базовый URL Vault для клиентов SDK\nVAULT_ADDR=http:\u002F\u002Fvault:8200\n# Токен аутентификации в Vault dev\nVAULT_TOKEN=\n# Путь KV secrets engine в Vault\nVAULT_MOUNT=secret\n# Путь Transit mount для шифрования\nVAULT_TRANSIT_MOUNT=transit\n# Имя ключа Transit для секретов\nVAULT_TRANSIT_KEY_NAME=autokey\n# OTLP хост для трейсов Jaeger (сервис jaeger из docker-compose.observability.yml)\nOTEL_OTLP_HOST=jaeger\n# OTLP порт HTTP ingest\nOTEL_OTLP_PORT=4318\n# Полный endpoint OTLP экспортёра\nOTEL_EXPORTER_OTLP_ENDPOINT=http:\u002F\u002Fjaeger:4318\n# Имя сервиса в телеметрии\nOTEL_SERVICE_NAME=flow-forge\n# Версия сервиса в телеметрии\nOTEL_SERVICE_VERSION=0.0.1\n# Полностью отключить OpenTelemetry SDK\n# OTEL_SDK_DISABLED=true\n# -----------------------------------------------------------------------------\n# Сервис — plugin-manager, приём SDK и запись каталога в БД\n# -----------------------------------------------------------------------------\n# Порт TCP приёма SDK plugin-manager в контейнере (с хоста — PLUGIN_MANAGER_TCP_PUBLISH_PORT→3000)\nPLUGIN_MANAGER_TCP_PORT=3000\n# Порт HTTP только health проверок plugin-manager\nPLUGIN_MANAGER_HEALTH_PORT=3001\n# Тот же токен, что у плагинов в TCP payload\nPLUGIN_MANAGER_INGRESS_TOKEN=dev-plugin-ingress\n# Таймаут TCP batch pull plugin-manager → plugin (мс); наследие: PLUGIN_MANAGER_CONTROL_PLANE_HTTP_TIMEOUT_MS\nPLUGIN_MANAGER_EXECUTOR_PULL_TIMEOUT_MS=30000\n# Базовый URL HTTP file-service для блобов\nPLUGIN_MANAGER_FILE_SERVICE_URL=http:\u002F\u002Ffile-service:3000\n# Allowlist CIDR подключений TCP SDK\nPLUGIN_MANAGER_ALLOW_CIDRS=0.0.0.0\u002F0\n# Размер батча публикации исполнителей плагина\nPLUGIN_MANAGER_PUBLICATION_EXECUTOR_BATCH_SIZE=50\n# Максимум статических assets одной публикации\nPLUGIN_MANAGER_PUBLICATION_MAX_STATIC=200\n# Максимум исполнителей одного запроса манифеста\nPLUGIN_MANAGER_PUBLICATION_MAX_EXECUTORS=500\n# Список pluginId разрешённых публикации пусто все\nPLUGIN_MANAGER_PUBLICATION_ALLOWED_PLUGIN_IDS=\n# Включить reconcile при старте plugin-manager\nPLUGIN_MANAGER_STARTUP_RECONCILE=true\n# Таймаут TCP probe startup reconcile миллисекунды\nPLUGIN_MANAGER_STARTUP_PULL_TIMEOUT_MS=3000\n# Интервал периодического health sweep миллисекунды ноль выкл\nPLUGIN_MANAGER_PLUGIN_HEALTH_INTERVAL_MS=0\n# Джиттер доля перед периодическим health sweep\nPLUGIN_MANAGER_PLUGIN_HEALTH_JITTER_RATIO=0.2\n","env","",[318,1691,1692,1700,1705,1709,1715,1721,1726,1731,1736,1741,1746,1752,1758,1763,1768,1773,1779,1785,1791,1797,1803,1809,1815,1821,1827,1833,1839,1845,1851,1857,1863,1869,1875,1881,1887,1893,1899,1905,1911,1917,1923,1929,1934,1940,1945,1951,1957,1963,1969,1975,1981,1987,1993,1999,2005,2011,2017,2023,2029,2035,2041,2047,2053,2059,2065,2071,2077,2083,2089,2095,2101,2107],{"__ignoreMap":1689},[1693,1694,1697],"span",{"class":1695,"line":1696},"line",1,[1693,1698,1699],{},"# -----------------------------------------------------------------------------\n",[1693,1701,1702],{"class":1695,"line":27},[1693,1703,1704],{},"# Общие — Postgres Redis Vault URLs, общая инфра и observability\n",[1693,1706,1707],{"class":1695,"line":32},[1693,1708,1699],{},[1693,1710,1712],{"class":1695,"line":1711},4,[1693,1713,1714],{},"# Строка подключения Drizzle ORM к Postgres (в docker-all: хост postgres, не localhost)\n",[1693,1716,1718],{"class":1695,"line":1717},5,[1693,1719,1720],{},"DATABASE_URL=postgresql:\u002F\u002Fpostgres:postgres@postgres:5432\u002Fpostgres\n",[1693,1722,1723],{"class":1695,"line":44},[1693,1724,1725],{},"# Хост экземпляра Postgres\n",[1693,1727,1728],{"class":1695,"line":49},[1693,1729,1730],{},"POSTGRES_HOST=postgres\n",[1693,1732,1733],{"class":1695,"line":54},[1693,1734,1735],{},"# Порт Postgres для строки подключения\n",[1693,1737,1738],{"class":1695,"line":59},[1693,1739,1740],{},"POSTGRES_PORT=5432\n",[1693,1742,1743],{"class":1695,"line":64},[1693,1744,1745],{},"# Имя пользователя базы Postgres\n",[1693,1747,1749],{"class":1695,"line":1748},11,[1693,1750,1751],{},"POSTGRES_USER=postgres\n",[1693,1753,1755],{"class":1695,"line":1754},12,[1693,1756,1757],{},"# Пароль пользователя Postgres\n",[1693,1759,1760],{"class":1695,"line":141},[1693,1761,1762],{},"POSTGRES_PASSWORD=postgres\n",[1693,1764,1765],{"class":1695,"line":146},[1693,1766,1767],{},"# Имя базы данных приложения\n",[1693,1769,1770],{"class":1695,"line":151},[1693,1771,1772],{},"POSTGRES_DB=postgres\n",[1693,1774,1776],{"class":1695,"line":1775},16,[1693,1777,1778],{},"# Хост Redis для очередей BullMQ\n",[1693,1780,1782],{"class":1695,"line":1781},17,[1693,1783,1784],{},"REDIS_HOST=redis\n",[1693,1786,1788],{"class":1695,"line":1787},18,[1693,1789,1790],{},"# Порт процесса Redis\n",[1693,1792,1794],{"class":1695,"line":1793},19,[1693,1795,1796],{},"REDIS_PORT=6379\n",[1693,1798,1800],{"class":1695,"line":1799},20,[1693,1801,1802],{},"# Базовый URL Vault для клиентов SDK\n",[1693,1804,1806],{"class":1695,"line":1805},21,[1693,1807,1808],{},"VAULT_ADDR=http:\u002F\u002Fvault:8200\n",[1693,1810,1812],{"class":1695,"line":1811},22,[1693,1813,1814],{},"# Токен аутентификации в Vault dev\n",[1693,1816,1818],{"class":1695,"line":1817},23,[1693,1819,1820],{},"VAULT_TOKEN=\n",[1693,1822,1824],{"class":1695,"line":1823},24,[1693,1825,1826],{},"# Путь KV secrets engine в Vault\n",[1693,1828,1830],{"class":1695,"line":1829},25,[1693,1831,1832],{},"VAULT_MOUNT=secret\n",[1693,1834,1836],{"class":1695,"line":1835},26,[1693,1837,1838],{},"# Путь Transit mount для шифрования\n",[1693,1840,1842],{"class":1695,"line":1841},27,[1693,1843,1844],{},"VAULT_TRANSIT_MOUNT=transit\n",[1693,1846,1848],{"class":1695,"line":1847},28,[1693,1849,1850],{},"# Имя ключа Transit для секретов\n",[1693,1852,1854],{"class":1695,"line":1853},29,[1693,1855,1856],{},"VAULT_TRANSIT_KEY_NAME=autokey\n",[1693,1858,1860],{"class":1695,"line":1859},30,[1693,1861,1862],{},"# OTLP хост для трейсов Jaeger (сервис jaeger из docker-compose.observability.yml)\n",[1693,1864,1866],{"class":1695,"line":1865},31,[1693,1867,1868],{},"OTEL_OTLP_HOST=jaeger\n",[1693,1870,1872],{"class":1695,"line":1871},32,[1693,1873,1874],{},"# OTLP порт HTTP ingest\n",[1693,1876,1878],{"class":1695,"line":1877},33,[1693,1879,1880],{},"OTEL_OTLP_PORT=4318\n",[1693,1882,1884],{"class":1695,"line":1883},34,[1693,1885,1886],{},"# Полный endpoint OTLP экспортёра\n",[1693,1888,1890],{"class":1695,"line":1889},35,[1693,1891,1892],{},"OTEL_EXPORTER_OTLP_ENDPOINT=http:\u002F\u002Fjaeger:4318\n",[1693,1894,1896],{"class":1695,"line":1895},36,[1693,1897,1898],{},"# Имя сервиса в телеметрии\n",[1693,1900,1902],{"class":1695,"line":1901},37,[1693,1903,1904],{},"OTEL_SERVICE_NAME=flow-forge\n",[1693,1906,1908],{"class":1695,"line":1907},38,[1693,1909,1910],{},"# Версия сервиса в телеметрии\n",[1693,1912,1914],{"class":1695,"line":1913},39,[1693,1915,1916],{},"OTEL_SERVICE_VERSION=0.0.1\n",[1693,1918,1920],{"class":1695,"line":1919},40,[1693,1921,1922],{},"# Полностью отключить OpenTelemetry SDK\n",[1693,1924,1926],{"class":1695,"line":1925},41,[1693,1927,1928],{},"# OTEL_SDK_DISABLED=true\n",[1693,1930,1932],{"class":1695,"line":1931},42,[1693,1933,1699],{},[1693,1935,1937],{"class":1695,"line":1936},43,[1693,1938,1939],{},"# Сервис — plugin-manager, приём SDK и запись каталога в БД\n",[1693,1941,1943],{"class":1695,"line":1942},44,[1693,1944,1699],{},[1693,1946,1948],{"class":1695,"line":1947},45,[1693,1949,1950],{},"# Порт TCP приёма SDK plugin-manager в контейнере (с хоста — PLUGIN_MANAGER_TCP_PUBLISH_PORT→3000)\n",[1693,1952,1954],{"class":1695,"line":1953},46,[1693,1955,1956],{},"PLUGIN_MANAGER_TCP_PORT=3000\n",[1693,1958,1960],{"class":1695,"line":1959},47,[1693,1961,1962],{},"# Порт HTTP только health проверок plugin-manager\n",[1693,1964,1966],{"class":1695,"line":1965},48,[1693,1967,1968],{},"PLUGIN_MANAGER_HEALTH_PORT=3001\n",[1693,1970,1972],{"class":1695,"line":1971},49,[1693,1973,1974],{},"# Тот же токен, что у плагинов в TCP payload\n",[1693,1976,1978],{"class":1695,"line":1977},50,[1693,1979,1980],{},"PLUGIN_MANAGER_INGRESS_TOKEN=dev-plugin-ingress\n",[1693,1982,1984],{"class":1695,"line":1983},51,[1693,1985,1986],{},"# Таймаут TCP batch pull plugin-manager → plugin (мс); наследие: PLUGIN_MANAGER_CONTROL_PLANE_HTTP_TIMEOUT_MS\n",[1693,1988,1990],{"class":1695,"line":1989},52,[1693,1991,1992],{},"PLUGIN_MANAGER_EXECUTOR_PULL_TIMEOUT_MS=30000\n",[1693,1994,1996],{"class":1695,"line":1995},53,[1693,1997,1998],{},"# Базовый URL HTTP file-service для блобов\n",[1693,2000,2002],{"class":1695,"line":2001},54,[1693,2003,2004],{},"PLUGIN_MANAGER_FILE_SERVICE_URL=http:\u002F\u002Ffile-service:3000\n",[1693,2006,2008],{"class":1695,"line":2007},55,[1693,2009,2010],{},"# Allowlist CIDR подключений TCP SDK\n",[1693,2012,2014],{"class":1695,"line":2013},56,[1693,2015,2016],{},"PLUGIN_MANAGER_ALLOW_CIDRS=0.0.0.0\u002F0\n",[1693,2018,2020],{"class":1695,"line":2019},57,[1693,2021,2022],{},"# Размер батча публикации исполнителей плагина\n",[1693,2024,2026],{"class":1695,"line":2025},58,[1693,2027,2028],{},"PLUGIN_MANAGER_PUBLICATION_EXECUTOR_BATCH_SIZE=50\n",[1693,2030,2032],{"class":1695,"line":2031},59,[1693,2033,2034],{},"# Максимум статических assets одной публикации\n",[1693,2036,2038],{"class":1695,"line":2037},60,[1693,2039,2040],{},"PLUGIN_MANAGER_PUBLICATION_MAX_STATIC=200\n",[1693,2042,2044],{"class":1695,"line":2043},61,[1693,2045,2046],{},"# Максимум исполнителей одного запроса манифеста\n",[1693,2048,2050],{"class":1695,"line":2049},62,[1693,2051,2052],{},"PLUGIN_MANAGER_PUBLICATION_MAX_EXECUTORS=500\n",[1693,2054,2056],{"class":1695,"line":2055},63,[1693,2057,2058],{},"# Список pluginId разрешённых публикации пусто все\n",[1693,2060,2062],{"class":1695,"line":2061},64,[1693,2063,2064],{},"PLUGIN_MANAGER_PUBLICATION_ALLOWED_PLUGIN_IDS=\n",[1693,2066,2068],{"class":1695,"line":2067},65,[1693,2069,2070],{},"# Включить reconcile при старте plugin-manager\n",[1693,2072,2074],{"class":1695,"line":2073},66,[1693,2075,2076],{},"PLUGIN_MANAGER_STARTUP_RECONCILE=true\n",[1693,2078,2080],{"class":1695,"line":2079},67,[1693,2081,2082],{},"# Таймаут TCP probe startup reconcile миллисекунды\n",[1693,2084,2086],{"class":1695,"line":2085},68,[1693,2087,2088],{},"PLUGIN_MANAGER_STARTUP_PULL_TIMEOUT_MS=3000\n",[1693,2090,2092],{"class":1695,"line":2091},69,[1693,2093,2094],{},"# Интервал периодического health sweep миллисекунды ноль выкл\n",[1693,2096,2098],{"class":1695,"line":2097},70,[1693,2099,2100],{},"PLUGIN_MANAGER_PLUGIN_HEALTH_INTERVAL_MS=0\n",[1693,2102,2104],{"class":1695,"line":2103},71,[1693,2105,2106],{},"# Джиттер доля перед периодическим health sweep\n",[1693,2108,2110],{"class":1695,"line":2109},72,[1693,2111,2112],{},"PLUGIN_MANAGER_PLUGIN_HEALTH_JITTER_RATIO=0.2\n",[323,2114,2116],{"id":2115},"порты-по-умолчанию","Порты по умолчанию",[331,2118,2119,2131],{},[334,2120,2121],{},[337,2122,2123,2126,2128],{},[340,2124,2125],{},"Режим",[340,2127,345],{},[340,2129,2130],{},"Порт",[347,2132,2133,2149,2160,2171],{},[337,2134,2135,2138,2141],{},[352,2136,2137],{},"Внутри сети",[352,2139,2140],{},"Любой сервис (HTTP\u002FTCP), второй слушатель",[352,2142,2143,833,2146],{},[318,2144,2145],{},":3000",[318,2147,2148],{},":3001",[337,2150,2151,2154,2157],{},[352,2152,2153],{},"Demo",[352,2155,2156],{},"Сайт \u002F плагины \u002F health \u002F шаги \u002F отладка движка",[352,2158,2159],{},"8080 \u002F 4016 \u002F 4017 \u002F 4021 \u002F 4020",[337,2161,2162,2165,2168],{},[352,2163,2164],{},"Dev",[352,2166,2167],{},"api \u002F engine RPC \u002F search TCP+health",[352,2169,2170],{},"4001 \u002F 4013 \u002F 4014+4015",[337,2172,2173,2176,2179],{},[352,2174,2175],{},"Dev (инфра)",[352,2177,2178],{},"Postgres \u002F Qdrant \u002F Neo4j \u002F Vault \u002F Adminer \u002F Mailcatcher",[352,2180,2181],{},"5432 \u002F 6333 \u002F 7474+7687 \u002F 8200 \u002F 8080 \u002F 1080",[299,2183,2184,2185,466],{},"Порты внешних плагинов: ",[459,2186,2188],{"href":2187},"\u002Fdocs\u002Fplugins\u002Fconnect#%D0%BF%D0%BE%D1%80%D1%82%D1%8B-%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD%D0%BE%D0%B2","Плагины → Порты плагинов",[323,2190,2192],{"id":2191},"коды-ошибок","Коды ошибок",[299,2194,2195],{},"REST API использует стандартные HTTP-коды NestJS:",[331,2197,2198,2211],{},[334,2199,2200],{},[337,2201,2202,2205,2208],{},[340,2203,2204],{},"Код",[340,2206,2207],{},"Типичная причина",[340,2209,2210],{},"Действие",[347,2212,2213,2226,2242,2257,2274,2292,2305],{},[337,2214,2215,2220,2223],{},[352,2216,2217],{},[318,2218,2219],{},"400",[352,2221,2222],{},"Невалидный запрос, несовместимый контракт, неизвестный MCP-tool",[352,2224,2225],{},"Проверить тело запроса и схему входа",[337,2227,2228,2233,2236],{},[352,2229,2230],{},[318,2231,2232],{},"401",[352,2234,2235],{},"Нет или просрочен JWT\u002Fключ",[352,2237,2238,2239],{},"Обновить токен или ключ ",[318,2240,2241],{},"afk_*",[337,2243,2244,2249,2252],{},[352,2245,2246],{},[318,2247,2248],{},"403",[352,2250,2251],{},"Нет прав на ресурс (scope, capability, CIDR)",[352,2253,2254,2255],{},"Проверить capabilities и ",[318,2256,886],{},[337,2258,2259,2264,2271],{},[352,2260,2261],{},[318,2262,2263],{},"404",[352,2265,2266,2267,2270],{},"Процесс, ",[308,2268,2269],{},"Запуск"," или файл не найден",[352,2272,2273],{},"Проверить ID и владельца",[337,2275,2276,2284,2287],{},[352,2277,2278,357,2281],{},[318,2279,2280],{},"413",[318,2282,2283],{},"FILE_TOO_LARGE",[352,2285,2286],{},"Превышен лимит загрузки файла",[352,2288,2289,2290],{},"Уменьшить размер или поднять ",[318,2291,817],{},[337,2293,2294,2299,2302],{},[352,2295,2296],{},[318,2297,2298],{},"429",[352,2300,2301],{},"Rate limit",[352,2303,2304],{},"Повторить с backoff",[337,2306,2307,2312,2315],{},[352,2308,2309],{},[318,2310,2311],{},"500",[352,2313,2314],{},"Внутренняя ошибка сервиса",[352,2316,2317],{},"Логи сервиса, трассировка OTEL",[299,2319,2320,2321,2323],{},"Контракты HTTP API генерируются автоматически (Swagger на ",[318,2322,320],{}," с Basic-auth).",[323,2325,2327],{"id":2326},"лимиты-и-значения-по-умолчанию","Лимиты и значения по умолчанию",[331,2329,2330,2341],{},[334,2331,2332],{},[337,2333,2334,2337,2339],{},[340,2335,2336],{},"Параметр",[340,2338,500],{},[340,2340,505],{},[347,2342,2343,2356,2369,2382,2395,2411,2424,2438],{},[337,2344,2345,2348,2352],{},[352,2346,2347],{},"Лимит тела HTTP-запроса",[352,2349,2350],{},[318,2351,817],{},[352,2353,2354],{},[318,2355,825],{},[337,2357,2358,2361,2365],{},[352,2359,2360],{},"Срок access-токена",[352,2362,2363],{},[318,2364,935],{},[352,2366,2367],{},[318,2368,946],{},[337,2370,2371,2374,2378],{},[352,2372,2373],{},"Срок refresh-токена",[352,2375,2376],{},[318,2377,938],{},[352,2379,2380],{},[318,2381,949],{},[337,2383,2384,2387,2391],{},[352,2385,2386],{},"Срок хранения журнала аудита",[352,2388,2389],{},[318,2390,450],{},[352,2392,2393],{},[318,2394,734],{},[337,2396,2397,2399,2405],{},[352,2398,1145],{},[352,2400,2401,357,2403],{},[318,2402,1139],{},[318,2404,1142],{},[352,2406,2407,357,2409],{},[318,2408,1150],{},[318,2410,1153],{},[337,2412,2413,2416,2420],{},[352,2414,2415],{},"Мин. период cron",[352,2417,2418],{},[318,2419,1362],{},[352,2421,2422],{},[318,2423,1372],{},[337,2425,2426,2429,2433],{},[352,2427,2428],{},"Период TCP-опроса плагинов",[352,2430,2431],{},[318,2432,1254],{},[352,2434,2435,2437],{},[318,2436,898],{}," (выкл.)",[337,2439,2440,2443,2448],{},[352,2441,2442],{},"Размер пакета публикации исполнителей",[352,2444,2445],{},[318,2446,2447],{},"PLUGIN_MANAGER_PUBLICATION_EXECUTOR_BATCH_SIZE",[352,2449,2450],{},[318,2451,2452],{},"50",[323,2454,2456],{"id":2455},"матрица-совместимости-версий","Матрица совместимости версий",[299,2458,2459],{},"Соответствие версий: ядро ↔ плагины ↔ API\u002FSDK.",[331,2461,2462,2475],{},[334,2463,2464],{},[337,2465,2466,2469,2472],{},[340,2467,2468],{},"Версия ядра",[340,2470,2471],{},"@kosolapus\u002Fplugin-ts-sdk",[340,2473,2474],{},"Совместимость",[347,2476,2477],{},[337,2478,2479,2482,2485],{},[352,2480,2481],{},"2026.06.11",[352,2483,2484],{},"0.0.9",[352,2486,2487],{},"да",[299,2489,2490],{},"Матрица поставляется с каждым релизом платформы и обновляется при каждом релизе ядра. Совместимость плагинов проверяйте по semver SDK и notes релиза.",[323,2492,2494],{"id":2493},"дальше","Дальше",[2496,2497,2498,2504,2510],"ul",{},[2499,2500,2501,2503],"li",{},[459,2502,66],{"href":68},": зона ответственности каждого микросервиса.",[2499,2505,2506,2509],{},[459,2507,2508],{"href":47},"Развёртывание",": demo, on-prem и полные таблицы env.",[2499,2511,2512,2514],{},[459,2513,1436],{"href":57},": OTEL, метрики и health.",[2516,2517,2518],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":1689,"searchDepth":27,"depth":27,"links":2520},[2521,2522,2533,2534,2535,2536,2537],{"id":325,"depth":27,"text":326},{"id":469,"depth":27,"text":470,"children":2523},[2524,2525,2526,2527,2528,2529,2530,2531,2532],{"id":490,"depth":32,"text":491},{"id":74,"depth":32,"text":74},{"id":78,"depth":32,"text":78},{"id":1011,"depth":32,"text":1012},{"id":98,"depth":32,"text":98},{"id":1289,"depth":32,"text":1290},{"id":1435,"depth":32,"text":1436},{"id":1501,"depth":32,"text":1502},{"id":1590,"depth":32,"text":1591},{"id":2115,"depth":27,"text":2116},{"id":2191,"depth":27,"text":2192},{"id":2326,"depth":27,"text":2327},{"id":2455,"depth":27,"text":2456},{"id":2493,"depth":27,"text":2494},"CLI, конфигурация, переменные окружения, коды ошибок и лимиты.","md",{},true,{"title":128,"description":2538},"1na7ca0L2LBYlf41npF-r-jxqGudU-EtZ7TwaqR4ldI",[2545,2547],{"title":118,"path":119,"stem":120,"description":2546,"children":-1},"Семантический поиск Conveyor — индексация и retrieval по узлам, плагинам и документации через Qdrant и embeddings.",{"title":138,"path":139,"stem":140,"description":2548,"order":141,"children":-1},"Критерии выбора, миграция и чек-лист оценки.",1782081969896]