# n8n 归档与退役运行手册

## 原则

n8n 退役是独立变更，不随单流程切换自动发生。只有所有统一退出门禁和独立评审
同时通过后，才允许从 `kestra_primary_n8n_standby` 进入
`kestra_primary`。门禁未通过时必须保留 n8n 容器、API、前端兼容入口和历史数据。

## 必须归档的内容

- 全部 Workflow 定义、标签、激活状态和定义摘要；
- Workflow 到 DataFlow、WorkflowSpec、Kestra namespace/flow ID 的版本映射；
- 执行历史、关键失败和回切证据；
- Webhook、脚本、前端入口和外部调用方清单；
- 凭据类型、引用名和版本清单。

归档中不得保存明文密码、API Key、访问令牌或完整连接串。凭据只记录 DataOps
凭据引用和版本；归档包需加密、限制访问并验证恢复。

## 统一退出门禁

- 所有生产 n8n Workflow 已迁移、归档或有正式保留说明；
- 所有正式 DataFlow 已在 `kestra_primary`，不存在未处理双轨差异；
- 关键流程经过完整业务周期和至少一次恢复/回切演练；
- Standby 观察期没有实际回切；
- Kestra、Runner、Gateway、Context MCP、智能体和对账指标都有监控告警；
- 模型离线、Kestra/Runner 重启和单数据源故障均不破坏正式状态；
- 安全归档和恢复验证完成；
- 独立评审确认没有 Webhook、前端、脚本或外部依赖；
- 唯一一次最终 L4 验证通过。

任何一项为假或缺少证据，退役决定都是 `blocked`。

## 退役顺序

1. 禁止新建和激活 n8n Workflow。
2. 停止 n8n 调度，保留只读管理和归档访问。
3. 完成 Standby 观察和归档恢复演练。
4. 执行独立下线评审及唯一一次最终 L4。
5. 单独变更 Docker、后端兼容 API、前端入口和部署文档。
6. 最后移除运行容器；历史表和 `n8n_workflow_id` 字段通过后续独立迁移处理。

禁止在同一变更中同时退役 n8n、重构 WorkflowSpec 和升级 Kestra。

## V55 当前决定

当前仓库只完成了双轨、对账、事务化切换、自动回切和本地受控演练。尚无生产
Workflow 全量处置、完整业务周期、Standby 观察、完整依赖扫描、安全归档、独立
评审和最终 L4 证据。因此当前退役状态是 `blocked`：

- 不修改 `deploy/docker/docker-compose.yml` 移除 n8n；
- 不删除 n8n API、前端入口、历史字段或执行历史；
- V55 阶段性交付上限为 `kestra_primary_n8n_standby`。
