文件
hyb-oa/.trellis/tasks/08-28-reimbursement-detail-material-preview-deploy/design.md
T

1.8 KiB
原始文件 Blame 文件历史

设计:报销详情修复部署与公网验证

当前依赖

部署候选必须包含 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 撤回写入均需最终部署方案通过后的单独明确授权;真实报销永不作为撤回测试对象。