R91 A5-A6 收口公网门禁与备份恢复

这个提交包含在:
2026-05-05 20:25:30 +08:00
父节点 4b08cb455e
当前提交 fced77a567
共修改 2 个文件,包含 35 行新增和 4 行删除
+31
查看文件
@@ -269,3 +269,34 @@ R70 初次试运行暂停项已在 2026-04-28 的 R71 定向修复后关闭。
- 当前仍需收口:
- 部署 R89/R90 最新代码到公网后,再用真实手机企业微信打开一次应用,确认已绑定账号直接进入 `/mobile`
- 用既有测试账号或 smoke 账号跑公网 live smoke,不使用真实业务账号
## R91 公网部署、live smoke 与备份恢复
- 时间:`2026-05-05 20:13 - 20:24 CST`
- 本轮部署:
- 已执行 `bash deploy/trialrun/deploy.sh`
- 远端已重建 `hyb-oa-trialrun-server`
- 前端 build 通过;仍保留既有 Vite circular chunk 警告
- `smoke-external-deps.js`:通过,当前 OCR 仍为 `mock provider`
- 企微移动入口复核:
- `GET https://oa.hyinda.com/api/auth/wecom/config`:`loginUrl=/api/auth/wecom/login?returnTo=%2Fmobile`、`defaultReturnTo=/mobile`
- `GET https://oa.hyinda.com/api/auth/wecom/login`:`HTTP 302` 到企业微信 OAuth,state 中 `returnTo=/mobile`
- Playwright 使用 iPhone + 企业微信 UA 打开公网 `/login`:主 CTA 可见,点击后请求 `/api/auth/wecom/login?returnTo=%2Fmobile` 并跳转 `open.weixin.qq.com`
- 截图:`output/playwright/r91-public-mobile-wecom-login.png`
- Runtime smoke:
- 首次手动补跑发现 `global_search_v1` 仍为 `force_off`
- 已备份远端 feature flag 状态:`/opt/hyb-oa-trialrun/deploy/trialrun/backups/feature-flags-r91-before-20260505-2018.csv`
- 已将 trialrun 必需的 11 个 `force_off` flag 改为 `inherit`
- 再次执行 `docker-compose ... exec -T server node src/scripts/smoke-trialrun-runtime.js`:通过
- Live smoke:
- 已确认远端存在 `SMOKE001` / `SMOKE002` 独立账号
- 已在本次会话内重置 smoke 账号随机密码用于自动化;密码未写入 git、不打印
- `LIVE_EXPECT_WECOM_STATUS=ready bash scripts/qa/run-web-gates.sh smoke-live`:`3 passed`
- 备份与恢复演练:
- DB 备份:`/opt/hyb-oa-trialrun/deploy/trialrun/backups/hyb-oa-db-20260505_202239.dump`
- Storage 备份:`/opt/hyb-oa-trialrun/deploy/trialrun/backups/hyb-oa-storage-20260505_202241.tar.gz`
- DB 恢复演练:已恢复到临时库 `hyb_oa_restore_check`,确认 `public` schema 下 96 张表,随后删除临时库
- Storage 恢复演练:已恢复到 `/tmp/hyb-oa-storage-restore-check-20260505_202241`,确认可解包,随后清理临时目录
- 演练后 `GET https://oa.hyinda.com/ready`:通过
- 当前仍需人工完成:
- 用真实手机企业微信从工作台打开 OA 应用一次,确认已绑定账号直接进入 `/mobile`