1.8 KiB
1.8 KiB
设计:报销详情修复部署与公网验证
当前依赖
部署候选必须包含 Task A 和 08-28-reimbursement-nonparticipant-readonly-projection。后者未提交前不冻结 SHA、不运行来源发布、不连接生产。
发布流
冻结并发布候选 SHA
-> 生产身份与 existing 部署合同只读 preflight
-> 期望 migration 清单核对
-> deploy-existing.sh(SYNC_ENV=0)
-> init + migrate deploy + post migration status
-> /ready + runtime/external smoke + bundle marker
-> 备份合同 refresh
-> 角色化公网检查和材料预览
-> 归档部署子任务与 Task A
- 正式入口使用仓库现有 wrapper,不手工 rsync、不 source 或覆盖远端
.env。 - 本轮代码不包含新 schema,但 init 和 pre/post migration status 仍是必需证据。
pdf-v2缓存仅在进程内,应用重启后自然失效,无缓存迁移或清理动作。- 真实材料检查只记录页数、页序、比例和成功/失败,不保存截图、原件或票面字段。
固定回滚
- 切换前失败:停止,不进入回滚,因为生产应用尚未改变。
- 切换后任一必需门禁失败:停止新版本验证,使用同一 existing 部署入口发布固定提交
f178aa0,保持SYNC_ENV=0,不回退或 reset migration。 - 回滚后必须确认
/ready和 bundle marker 为f178aa0的短 SHA,并复核 migration status、runtime/external smoke、DB/附件挂载与公网入口。 - 回滚来源同样必须干净、已发布且远端可验证;不得以 unpublished override 绕过正式 wrapper。
授权边界
任务规划批准不等于部署批准。推送候选、连接生产、应用切换和合成 owner 撤回写入均需最终部署方案通过后的单独明确授权;真实报销永不作为撤回测试对象。