记录(08-08-production-deployment-execution): 追溯部署输入来源
ci-e2e / e2e (push) Canceled after 0s
ci-minimal / check-minimal (push) Canceled after 0s

这个提交包含在:
2026-08-08 12:49:31 +08:00
父节点 a87cd4ce4e
当前提交 e2ad1e2932
共修改 2 个文件,包含 8 行新增和 1 行删除
@@ -71,3 +71,10 @@
- 生产输入存在性检查:`EXPECTED_PRODUCTION_ORIGIN`、`EXPECTED_PRODUCTION_DB_NAME`、`EXPECTED_PENDING_MIGRATIONS`、`DEPLOY_SERVER`、`DEPLOY_REFRESH_SERVER` 五个进程输入均未注入;受控 contract 路径按设计应在连接目标后由 systemd unit 读取,未把它们误当作本地输入缺失。
- 生产动作:未执行 SSH、target gate、`prisma migrate status`、`migrate deploy`、数据库写入、refresh、公网 smoke 或真机验证;AC1 的生产体检及 AC2–AC7 保持未验收并标记 PAUSED。
- 失败分流:停止在生产输入门禁,未出现“门禁失败但继续推进”。后续必须在同一受控执行环境注入输入后,从 target gate 重新开始。
## Input Traceback Evidence (2026-08-08)
- 当前 OPS7 运维交接 Runbook 仍提供公网 origin 作为只读检查基准;它没有提供生产数据库名或 SSH 身份。
- 仓库外的三份验收 env 文件仍存在且为受控用户、`0600` 权限;它们只包含 live smoke、SMTP 或一次性账号键,不包含生产部署身份/数据库输入,未被本 task 读取或 source。
- Git 历史没有 `deploy/trialrun/.env`、`deploy.env` 或上述验收 env 文件的删除记录;`.gitignore` 从始终将 `.env` 排除在版本库之外。
- shell 历史没有五个部署变量的字面赋值记录。结论:部署输入不是被本 task 删除,而是按运维合同设计为每次执行时临时注入。