91 行
5.0 KiB
Markdown
91 行
5.0 KiB
Markdown
# hyb-oa 试运行发布 Checklist(E19)
|
||
|
||
> 目标:一次发布可追踪、可回归、可回滚(10 分钟内恢复到上个版本)。
|
||
|
||
## A. 发布前(Pre-flight)
|
||
- [ ] 确认当前版本已打 tag:`git tag -a trialrun-YYYYMMDD-NN -m "trialrun release"`
|
||
- [ ] 本地门禁:`./scripts/check-minimal.sh`
|
||
- [ ] 全量回归(建议):`cd server && RUN_AUDIT_REGRESSION=1 RUN_OCR_REGRESSION=1 ./scripts/regression-all.sh`
|
||
- [ ] 备份(DB + 文件存储):
|
||
- [ ] `set -a && source deploy/trialrun/.env && set +a`
|
||
- [ ] `./scripts/backup-db.sh`(记录输出文件名)
|
||
- [ ] `./scripts/backup-storage.sh`(记录输出文件名)
|
||
|
||
## B. 发布(Deploy)
|
||
- [ ] `git checkout <tag>`
|
||
- [ ] 构建并启动:
|
||
- [ ] `docker compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env up -d --build server`
|
||
- [ ] `docker compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env run --rm init`
|
||
- [ ] 探活:
|
||
- [ ] `curl -fsS http://127.0.0.1:3000/ready`
|
||
- [ ] 登录验证(管理员账号):
|
||
- [ ] 访问 `http://127.0.0.1:3000`
|
||
- [ ] 登录成功,菜单权限正确
|
||
|
||
## C. 发布后(Post-check)
|
||
- [ ] 关键链路手工验证(建议至少一次):
|
||
- [ ] 员工:新建报销 → 上传票据 → 绑定 → 提交
|
||
- [ ] 经理:待办审批(approve)
|
||
- [ ] 财务:付款(含凭证字段)
|
||
- [ ] 查看 server 日志(无异常错误风暴):
|
||
- [ ] `docker logs --tail=200 hyb-oa-trialrun-server`
|
||
|
||
## D. 回滚(Rollback)
|
||
> 原则:如果涉及迁移,最快回滚通常是 “恢复备份 + 回到上个 tag”。
|
||
|
||
- [ ] 停止 server:`docker compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env stop server`
|
||
- [ ] 恢复 DB:`./scripts/restore-db.sh <db.dump>`
|
||
- [ ] 恢复存储:`./scripts/restore-storage.sh <storage.tar.gz> deploy/trialrun/data/storage`
|
||
- [ ] 回到上个版本:`git checkout <previous-tag>`
|
||
- [ ] 重启并探活:
|
||
- [ ] `docker compose -f deploy/trialrun/docker-compose.yml --env-file deploy/trialrun/.env up -d --build server`
|
||
- [ ] `curl -fsS http://127.0.0.1:3000/ready`
|
||
|
||
|
||
|
||
## E. R12-lite 试点切换检查
|
||
- [ ] 已执行 `cd server && DATABASE_URL=postgresql://hyboa_user:[email protected]:5432/hyb_oa_r12?schema=public npm run seed:config`
|
||
- [ ] 运行环境已打开 R12-lite 所需 env 开关
|
||
- [ ] 功能开关页已将 `budget_precheck_v1`、`payment_batch_v1`、`portal_home_v1`、`global_search_v1`、`announcements_v1`、`workflow_definition_admin_v1`、`cutover_console_v1` 切到 `inherit` 或 `force_on`
|
||
- [ ] 旧 OA 主数据 CSV 已完成 dry-run,结果为 `dry_run_ok`
|
||
- [ ] `docs/migration-mapping.md` 已按试点范围人工核对
|
||
- [ ] 旧 OA 新单停用时间已公告,未完结事项已人工清空或冻结
|
||
- [ ] 仅按部门 / 法体 / 域粒度创建 `CutoverScope`
|
||
- [ ] 先开 `portal`,再逐域灰度打开业务入口
|
||
- [ ] Portal、待办、预算预校验、支付批次、公告、搜索已在试点部门可用
|
||
- [ ] 回退方案已演练:关闭 `CutoverScope` + 恢复旧入口
|
||
|
||
## F. R17 小团队上线检查
|
||
- [ ] 工作区模式已确认为 `small_team_internal`
|
||
- [ ] 主导航已收敛为 `Portal / 团队 / 请假 / 报销 / 资产 / 周报 / 待办 / 公告`
|
||
- [ ] 采购 / 差旅 / 预算 / 支付批次 / AP 运营已降级为管理员备用入口
|
||
- [ ] 已打开 `portal_home_v1`、`announcements_v1`、`presence_board_v1`、`weekly_report_v1`、`employee_lifecycle_v1`、`todo_board_v1`
|
||
- [ ] 员工账号、档案、部门、直属上级已补齐
|
||
- [ ] 资产台账与员工领用关系已核对
|
||
- [ ] 至少 1 条公告已发布并在 `Portal` 可见
|
||
- [ ] 至少 1 次入职/离职/资产交接已演练
|
||
- [ ] 全员已知晓每周周报和今日状态使用要求
|
||
- [ ] 已建立连续 4 周观测记录方式(建议直接使用 `deploy/trialrun/observation-template.md`)
|
||
|
||
## R18-R22 上线补充检查项
|
||
- [ ] `APP_ORIGIN` 已切到公网 HTTPS 域名
|
||
- [ ] `COOKIE_SECURE=true`
|
||
- [ ] `PUBLIC_SECURITY_HARDENING_ENABLED=true`
|
||
- [ ] `OPENAPI_DOCS_ENABLED=false`
|
||
- [ ] 企业微信应用已配置工作台入口和回调地址
|
||
- [ ] 至少 1 个管理员已完成企微绑定
|
||
- [ ] 项目模块、项目关联、合同台账已在试点环境可见
|
||
- [ ] 涉密正文与附件未上传到 OA
|
||
- [ ] 企业微信提醒仅包含脱敏标题 / 编号 / deeplink
|
||
- [ ] 员工可从企业微信进入 `Portal`,并继续完成周报、待办、项目更新
|
||
|
||
## R23 试点收口 Checklist
|
||
- [ ] `project_communication_log_v1` 已开启并可在项目详情页使用
|
||
- [ ] `project_closure_checklist_v1` 已开启并可自动 bootstrap
|
||
- [ ] 管理员已知晓“软约束”策略,不把收口面板误认为硬阻断审批
|
||
- [ ] 员工已知晓“24h 回填”规则
|
||
- [ ] 至少 1 个项目已验证:沟通回填 -> Portal 待跟进统计生效
|
||
- [ ] 至少 1 个项目已验证:收口清单 -> Portal 待收口统计生效
|
||
- [ ] 至少 1 条涉密合同或资料引用已验证搜索边界
|
||
- [ ] 每周五复盘模板中已加入“聊天/表格补流程案例”字段
|