fix(release): protect backend recovery races
This commit is contained in:
@@ -31,6 +31,7 @@
|
||||
| 法务静态页 | `https://peilian.njzhmj.top/legal/terms.html` 与 `https://peilian.njzhmj.top/legal/privacy.html` 已部署并可访问;发布前站点备份为 `/opt/wygj/backups/www-20260728224710` |
|
||||
| 生产 API 只读契约 | 线上与候选包的 9 个关键控制器 class 哈希逐一相同,短信登录、移动首页、查/练/问、直通车和 ASR/TTS 路由均存在;未登录探针得到公开首页 `200`、5 个鉴权入口 `401`、13 个仅 POST 入口 `405`,全程未发送业务 POST、未创建账号或数据 |
|
||||
| 定向发布预检 | `566f222e` 已支持只核对后端 + schema;`feece9bb` 进一步允许以冻结提交和解压后的候选 JAR 为准。两次实际只读运行均跳过管理端/H5,根站、租户、移动首页和生产禁 DDL 门禁通过;后端 + schema 模式另通过 64/64 schema。冻结物模式确认本地 JAR SHA-256 为 `8c676f2f…`,最终均仅因现网/候选模块哈希 `15f5513a…` / `c93460e8…` 不同而按预期失败 |
|
||||
| 后端发布/回滚计划 | `release-backend.sh` 固定生产 JAR 与 systemd 服务,默认只读,部署/回滚分别要求完整哈希授权串和干净工作区;备份、原子切换、发布后预检、失败恢复及并发改包保护均有回归。冻结 JAR 实跑只读计划通过:候选 `8c676f2f…`、现网 `46c99cff…`,服务 active、空间充足、三个公开入口和 64/64 schema 通过,全程未备份、上传、重启或改库 |
|
||||
|
||||
## No-Go 阻断项
|
||||
|
||||
@@ -38,14 +39,14 @@
|
||||
2. **原生人工反例未完成。** 覆盖升级和冷启动已通过,媒体取消状态机已自动化修复;仍缺用户亲自执行的同意/拒绝、拒绝后退出、同意后登录、短信失败与重新登录、麦克风允许/拒绝、真实系统选择器取消、登录后前后台切换和弱网验证。
|
||||
3. **核心业务真机闭环未完成。** 仍缺认证账号下完整“查/练/问”、五个直通渠道、五个正式对练场景、ASR/TTS、附件上传下载和越权反例。
|
||||
4. **内容与业务验收不足。** 当前仅收到 1/24 份生活顾问访谈。技术侧已把调研整理为 30 道政策题候选和 5 个场景候选,但全部保持待审/禁用,正式可发布场景和正式有据标准答案仍为 0/0;五渠道真实处理人也没有业务签认证据。
|
||||
5. **发布与回滚未签认。** 本地已有 APK/后端最小版本矩阵、构建证据和回滚边界,但尚无负责人签字、完整预检通过和回滚演练记录。当前 APK 已关闭明文流量但仍使用 DCloud 测试证书,只能用于受控内测;企业签名和公司法务正式签认仍是正式发布门槛。
|
||||
5. **发布与回滚尚未签认。** 固定目标、默认只读、显式授权、备份、原子切换、失败恢复和并发保护的后端工具已经落地,冻结候选的只读发布计划也已通过;但尚无负责人发布授权、实际发布后匹配结果或回滚演练记录。当前 APK 已关闭明文流量但仍使用 DCloud 测试证书,只能用于受控内测;企业签名和公司法务正式签认仍是正式发布门槛。
|
||||
|
||||
## 转为 Go 的最短路径
|
||||
|
||||
| 顺序 | 必须完成 | 验收证据 |
|
||||
|---|---|---|
|
||||
| 已完成 | 确定 APK、后端、管理端/H5、数据库四个发布单元,提交并冻结 release commit | `dc20b920`、`releaseEligible=true`、`output/aug1-rc/0.1.10-110-dc20b920-frozen/`、`bangdao-aug1-0.1.10-110-dc20b920.zip`(SHA-256 `4BAA79B2CA2C4D486B6194288D90022D5F994A4D8C8E05D7C2DDD87F9BF5B3B7`) |
|
||||
| 1 | 获得授权后只发布上述 3 个服务类语义修复所在的候选后端 JAR;管理端/H5 延期,schema 本批不变;先备份当前生产 JAR,发布后重跑后端 + schema 预检并执行无工单冒充反例 | 候选 JAR SHA-256 `8C676F2FBFCCB4F4573CBCA1259E8B26EB83EBDB469ADCBAF714C5931EF3CF2D`;生产 `ruoyi-aihr` 模块与候选匹配,64/64 schema 继续通过,兜底回答不显示已创建/已派发状态 |
|
||||
| 1 | 获得明确授权后使用已通过只读计划的 `release-backend.sh deploy`,只发布上述 3 个服务类语义修复所在的候选后端 JAR;管理端/H5 延期,schema 本批不变;不得手工覆盖或绕过脚本失败恢复 | 候选 JAR SHA-256 `8C676F2FBFCCB4F4573CBCA1259E8B26EB83EBDB469ADCBAF714C5931EF3CF2D`;输出备份目录,生产 `ruoyi-aihr` 模块与候选匹配,64/64 schema 继续通过,兜底回答不显示已创建/已派发状态 |
|
||||
| 2 | 用户在已连接 Android 手机上完成隐私选择和权限正反例 | 设备、包版本、步骤、结果;不记录手机号、验证码和个人内容 |
|
||||
| 3 | 用正式测试账号完成“查/练/问”、五直通渠道及附件/语音闭环 | 每条用例的时间、结果、失败截图或日志 |
|
||||
| 4 | 业务方审核当前 30 道题和 5 个场景候选,补齐正式来源并签认五渠道处理人 | 审核单、正式内容版本、授权矩阵;正式可发布计数从 0/0 提升到至少 5/30 |
|
||||
|
||||
Reference in New Issue
Block a user