Files
2026-07-24 09:41:02 +08:00

5.4 KiB
Raw Blame History

ADDED Requirements

Requirement: 本里程碑仅面向测试环境部署

本 Change 的近期发布目标 SHALL 是在 2026-07-27 前部署到测试环境,不得将其描述为正式生产验收或七月迭代全链路完成。测试环境发布状态 MUST 与生产发布状态分开记录。

Scenario: 测试环境部署完成

  • WHEN 数据库迁移、API、Worker、前端和配置已按本 Change 装配到测试环境
  • THEN 发布状态 MAY 标记为“测试环境已部署”,但生产发布、真实外部验收和延期门禁 MUST 保持未完成

Requirement: 自动化测试豁免仅限本次测试环境里程碑

本轮实施 MUST 不新增 _test.go、不运行 go test,也不执行真实 PostgreSQL、Redis、企微、支付或 Gateway 自动验收。每批实现仅要求执行 gofmt、必要代码生成、go build ./... 和部署检查。自动化测试、真实外部验收和生产发布门禁 MUST 登记为延期项,未执行验证不得标记通过。

Scenario: 完成一批业务代码

  • WHEN 某实施批次完成代码修改
  • THEN 执行者 MUST 运行该批约定的格式化、必要生成、go build ./... 与部署检查,不得新增或运行自动化测试

Scenario: 未执行测试

  • WHEN 任务因本次豁免没有自动化或真实外部验证证据
  • THEN 验证状态 MUST 标记“代码完成、验证延期”或“待前端/人工验收”,不得标记“验收完成”

Requirement: Audit Event 专项不得阻塞测试环境里程碑

.scratch/tech-global-audit/issues/01192021 及其他 Audit Event 写入、审计中心、历史投影、敏感读取、导出、保留清理和一次性审计切换任务 MUST 不进入本轮实现任务,也不得作为其他七月需求的测试环境阻塞项。提交 ff44305 已存在的审计代码 MUST 原样冻结,不删除、不回滚、不继续扩展。

Scenario: 下游原 Ticket 依赖全局审计

  • WHEN 某七月 PRD/Ticket 原先把 Audit Event 或一次性审计发布门禁列为 blocker
  • THEN 本 Change MUST 移除该测试环境阻塞边,同时保留其生产发布前恢复义务

Scenario: 审计冻结代码存在

  • WHEN 构建包含 integrationlog.Repositorycmd/audit-coveragepkg/sanitizer 或迁移 000167_create_audit_integration_log
  • THEN 不得为冻结目的删除这些代码;未装配到生产组合根的审计组件不得被本轮业务主动启用

Requirement: 可靠性日志与 Audit Event 必须保持边界清晰

Access Log SHALL 继续负责 HTTP 调试并使用现有递归脱敏Integration Log SHALL 记录外部交互及结果未知恢复事实Domain Ledger SHALL 继续作为金额、订单、退款、充值、审批和状态的业务权威Outbox SHALL 继续作为可靠副作用投递事实。Audit Event 仅作为“谁对什么做了什么”的治理能力暂缓,其他三类事实不得被停用或合并。

Scenario: 新业务调用外部系统

  • WHEN 本轮新业务调用企微、支付、Gateway 或接收运营商回调
  • THEN 仍 MUST 写 Integration Log 并保留幂等、事务与恢复语义,即使本次不写 Audit Event

Scenario: Access Log 处理敏感正文

  • WHEN 登录、Token、支付、企微、运营商回调或文件路由产生请求响应日志
  • THEN 现有 Sanitizer 与安全摘要策略 MUST 继续生效,不得因审计冻结恢复原文记录

Requirement: 测试环境发布必须按停机依赖顺序执行

测试环境发布 MUST 按“确认变更与配置 → 停止相关写入和 Worker → 执行增量迁移 → 发布 API 与 Relay/Worker → 发布前端 → 装配企微/支付/Gateway/运营商/对象存储配置 → 执行部署检查 → 恢复 Worker 与访问”的顺序。涉及旧接口停用和新契约同批切换的需求 MUST 在解除访问前完成版本一致性检查。

Scenario: 部署检查失败

  • WHEN 迁移、构建、配置、路由、Worker 注册或前后端版本一致性检查失败
  • THEN 测试环境 MUST 保持维护或停止新入口,不得将该批标记部署完成

Requirement: 回滚必须保留不可逆业务事实

开放访问前失败 MAY 回滚应用和可逆迁移一旦产生审批、支付、资金流水、订单、退款、充值、Outbox、Integration Log、通知或部分成功批量任务回滚 MUST 保留这些事实,暂停异常生产者并采用前向修复。不得通过清表、恢复旧 Writer 或要求用户重复支付来回滚。

Scenario: 支付成功但钱包尚未入账

  • WHEN 测试环境回滚时存在已支付未入账充值
  • THEN 系统 MUST 保留支付与 Outbox/恢复事实,并在恢复后幂等完成入账,不得关闭原事实或要求重新支付

Requirement: 生产发布不得继承测试豁免

生产发布前 MUST 恢复并完成自动化测试、真实 PostgreSQL/Redis/企微/支付/Gateway 验收、前后端联调、历史数据抽样与迁移演练、性能/权限/安全检查,以及 Audit Event 专项的重新评审、写入覆盖和发布门禁。延期项 MUST 保持未勾选,直至产生真实证据;不得把本测试环境豁免升级为永久 N/A。

Scenario: 准备生产发布

  • WHEN 团队从测试环境里程碑推进正式生产
  • THEN 发布负责人 MUST 重新启用延期验证与治理清单,全部完成前不得声明生产验收通过