# Kestra V51 验证记录 - 代码分支:`codex/kestra-v50` - 验证日期:2026-07-19 - 变更范围:Kestra/MCP 本地部署、统一工作流引擎接口、n8n/Kestra 适配器、WorkflowSpec 到 Kestra YAML 的确定性编译 ## 实现结果 - Kestra 固定为 `kestra/kestra:v1.3.20`,管理端口仅绑定 `127.0.0.1:18080`,使用独立 `kestra` PostgreSQL 数据库和独立存储卷。 - 本地 standalone Worker 固定为 16 个线程,不挂载 Docker Socket,不持有平台 业务数据源账号或连接串,并关闭匿名使用报告和教程流程自动初始化。 - Kestra MCP 固定为官方镜像摘要 `sha256:1fd62028f60914af31e244ddb0086ed5017420313e2c8547ea9c01b8d24dfc1d`。 MCP 只通过 stdio 按需启动,没有发布端口,并关闭 `ee`、`files`、`kv` 和 `namespace` 工具组。 - 新增统一引擎生命周期:校验、禁用发布、启停、执行、暂停、终止、重放、回填、 执行查询和日志查询。 - n8n 适配器复用现有客户端。n8n 不具备的暂停、终止、重放、回填和独立日志能力 会明确返回“不支持”,不会伪装成功。 - Kestra 适配器映射官方流程、执行、触发器和日志 API。禁用发布会同时要求流程级 `disabled: true` 和定时触发器 `disabled: true`。 - 编译器使用 Kestra DAG 表达节点依赖,每个业务节点只调用内部 `dataops-runner` 契约;编译产物包含 DataFlow UID、数据源 UID、版本和执行 关联信息,但不包含数据库连接串或凭据。 ## TDD 与定向验证 ### V51 L1 测试均先确认缺失实现或安全约束导致失败,再实现转绿: - Kestra/MCP Compose 与隔离契约:4 项。 - 引擎接口与两个适配器:5 项。 - 确定性编译、安全默认值和不等价语义拒绝:6 项。 真实 Kestra 校验首次发现空参数列表被 YAML 渲染为 `null`,补充空集合渲染后 重新验证通过。 ### V51 L2/L3 - Docker Compose 展开配置通过,确认镜像版本/摘要、网络、端口、环境变量和 独立数据库符合契约。 - PostgreSQL `kestra` 数据库创建成功,Kestra 完成 52 项内部迁移并达到健康状态。 - 日志确认 Kestra 版本为 `1.3.20`、Worker 为 16 线程、Scheduler 已启动。 - 编译出的真实 YAML 通过 Kestra API 校验。 - 测试流程完成真实禁用发布;API 回读确认流程与 Schedule Trigger 均为禁用, 随后完成测试流程清理。 - 官方 Kestra MCP 容器完成 JSON-RPC initialize 和 tools/list stdio 握手; Flow、Execution 等调度能力可见,被禁用的文件、KV、命名空间和企业能力未暴露。 - 首次启动时由 Kestra 默认生成的 6 个教程流程已清理;关闭教程初始化后当前 本地实例流程总数为 0。 最终定向回归: ```text 51 passed, 1 skipped, 1 warning ``` 跳过项是需要 `TEST_POSTGRES_ADMIN_URL` 的通用数据库迁移测试;V51 没有新增 DataOps 数据库迁移,且 V50 已单独完成真实 PostgreSQL 升级、重复升级和降级验证。 警告来自本机 Python/LibreSSL 组合,与 V51 逻辑无关。 ## 未执行的验证 - 未运行全仓库测试、前端构建或全量容器验收;本次只运行 V50/V51 相关定向集合。 - 未执行编译后的业务节点;`dataops-runner` 属于 V52,本阶段流程保持禁用。 - 未通过平台 MCP Gateway 做策略、审批和审计验收;该治理层属于 V53。本次只验证 官方 MCP stdio 服务和最小工具面。 ## 已知限制 - V51 编译器支持 Manual 和 Cron。`at`、`event`、条件边以及 `cancel_previous` 因当前阶段无法保证语义等价而失败关闭,待 V52/V53 按受治理 Runner 和策略模型实现。 - 当前为本地 standalone 拓扑。生产部署需要独立密钥注入、资源限制、高可用 PostgreSQL,以及按容量拆分 Kestra 组件。 - Kestra 启动日志存在 Prometheus meter tag 与 PostgreSQL/jOOQ 支持矩阵警告; 当前健康检查、API、数据库迁移和调度器均正常,后续升级镜像时应复核。 ## 结论 V51 的部署、引擎抽象、编译器、真实 Kestra API 和官方 MCP stdio 验收通过, 当前 **允许进入 V52**。V52 应实现 DataOps Runner、数据源资源池受控执行、 幂等/超时/取消和任务日志回传,不扩大本阶段 Kestra 对业务数据库的访问权限。