32 lines
3.4 KiB
Markdown
32 lines
3.4 KiB
Markdown
# 通用资源退役与接入体验验收
|
||
|
||
日期:2026-09-27。范围:平台、Go SDK、控制台及通用示例;不包含接入方业务处理器、支付渠道或业务数据变更。
|
||
|
||
## 实现
|
||
|
||
迁移 000034 增加队列/订阅退役时间及订阅提交水位、活动索引和约束,无外键。退役、不可变审计、原操作回执同事务;新工作不能复用退役队列,已完成流程的原启动回执仍可重放。订阅结清释放名额,暂停仍占名额,不删除或伪造确认历史。
|
||
|
||
控制台增加明确队列选择/记忆、暂停/退役状态和名额统计,提供带原因和版本的退役入口。凭据未补存时统一提示补存,不能静默换队列复制。没有修改任何现有应用的 Token、权限或过渡期。
|
||
|
||
## 回归结果
|
||
|
||
- `make test`、`make vet build`、`make sdk-check protocol-check docs-check`、JavaScript 语法检查全部退出 0;七个模块的基础竞态回归与 SDK 独立构建通过。
|
||
- `make integration` 最终完整重跑退出 0:真实 MySQL 存储/迁移、HTTP、SDK、Worker/事件/流程进程故障、Outbox 与 HTTP 宿主链路通过。SDK 生命周期示例实际输出 `retired=true history_preserved=true subscription_replay=true`。
|
||
- 新增真实 MySQL 8 项场景通过:未物化/租约/耗尽交付保护、64 名额释放且历史保留、任务/订阅依赖、计划恢复阻止、等待流程保护、完成流程原回执和历史、真实锁竞争、审计失败回滚。保留零外键断言。
|
||
- `make console-e2e` 退出 0:跨应用管理员范围、CSRF、退役幂等、名额变化、历史读取,以及原登录/任务/计划/归档链路通过。
|
||
- 初轮完整 MySQL 回归发现两处旧升级夹具未计入新约束/索引,修正后完整重跑通过:旧结构还原时移除 000034 新字段与约束;原索引对比排除新加活动索引。没有放宽原索引、数据和零外键断言。
|
||
- 当前协议契约检查通过,未重跑历史版本服务端与历史 SDK 的双向兼容矩阵;不能把本次结果等同于重新验收所有历史组合。
|
||
|
||
|
||
## 本地部署与页面核对
|
||
|
||
持久 Compose 环境已在备份数据库和凭据保管密钥后升级到 000034,迁移及零外键核验成功,readiness 通过。原应用、凭据和过渡截止保持。部署脚本同时修正了重复构建时的版本时间戳,`/version` 不再沿用首次初始化时间。
|
||
|
||
浏览器已验证:多队列时不默认第一条,手动选择后刷新保留;暂停队列有标签;历史 Token 未补存时说明一致;队列还有订阅时显示中文阻止原因。使用独占空订阅验证了实际退役提交、退役状态、详情和历史仍可读,且不再出现恢复入口;活动名额从 7/64 回到 6/64。随后从页面退役对应空队列,配置选择中标记已退役并禁选。没有对接入方既有队列或凭据执行退役、轮换或提前结束过渡。
|
||
|
||
## 明确边界
|
||
|
||
不提供强制忽略结果或批量硬删除。历史未确认/未知效果须先核查;没有消费者时需要恢复消费并确认积压。资源名称不回收。归档仍按已有配置导出并保留源记录,退役不缩减物理存储。
|
||
|
||
新服务端禁止与忽略退役状态的旧写节点混跑。旧 SDK 既有 API 兼容;新的退役方法使用 v0.1.2。隔离回归不代替目标生产环境的容量、跨故障域或真实业务验收。
|