Files
ctms/docs/guides/release-checklist.md
T
Cheng Zhou 44db5db838
Client Quality Gates / Shared client and Web (push) Has been cancelled
Client Quality Gates / macOS Desktop (push) Has been cancelled
功能(文档与桌面):完善文件预览下载与客户端构建基线
- 保存文档版本原始文件名,规范下载响应并持久化上传目录\n- 增加 PDF.js 预览、桌面保存打开流程及统一错误反馈\n- 统一 Node.js 22.13 构建基线并收紧临时文件权限门禁\n- 补充迁移、单元测试、发布检查与运维文档
2026-07-13 18:40:48 +08:00

3.4 KiB
Raw Blame History

立项配置发布清单

状态: active 适用范围: setup-config 最后更新: 2026-03-30

1. 构建与迁移

  • docker compose run --rm --build backend-init
  • cd backend && python3 -m compileall app scripts
  • cd frontend && npm run build

1.1 容器构建校验

  • docker compose config 渲染成功
  • 后端 /code/app/uploads 已持久化挂载到宿主机 backend/app/uploads
  • docker compose build backend frontend 成功
  • docker compose run --rm --build backend-init 成功

2. 接口与权限回归

  • ADMIN 账号可 GET/PUT/PUBLISH/IMPORT-EXCEL/EXPORT-EXCEL
  • PM 账号可 GET/PUT/PUBLISH/IMPORT-EXCEL/EXPORT-EXCEL
  • CRA 账号可 GET/EXPORT-EXCELPUT/PUBLISH/IMPORT-EXCEL 返回 403
  • 非项目成员访问返回 403

3. 并发冲突回归

  • 双开两个窗口同项目配置
  • A 保存后,B 再保存触发 409
  • 前端显示冲突对比弹窗(可读 diff + JSON)
  • 选择“使用服务器版本”后版本同步
  • 选择“用本地草稿覆盖”后保存成功且版本递增
  • 409 响应结构包含 detail.code=SETUP_CONFIG_VERSION_CONFLICT

3.1 业务校验回归(422

  • enrollmentPlan.startDate > endDate 返回 422
  • 非本项目 siteId 返回 422
  • centerConfirm 状态为“已确认”但无 confirmDate 返回 422
  • 422 响应包含 detail.errors[].fielddetail.errors[].message

4. 发布快照回归

  • 草稿保存后 publish_status=DRAFT
  • 发布后 publish_status=PUBLISHED
  • 发布后可切换“已发布快照”并只读
  • 再修改草稿后状态回到 DRAFT

5. 导入导出回归

  • 导出 Excel 文件可打开且结构完整
  • 导入有效 Excel 成功,页面数据刷新
  • 导入非法 Excel 给出错误提示
  • 导入冲突时触发 409 提示并刷新版本

6. 锁定与审计回归

  • 项目锁定后 PUT/PUBLISH/IMPORT-EXCEL 返回 403
  • 页面进入只读态,编辑按钮不可用
  • 审计日志可按对象类型筛选 立项配置
  • 审计事件包含:
    • CREATE_SETUP_CONFIG
    • UPDATE_SETUP_CONFIG
    • PUBLISH_SETUP_CONFIG
    • IMPORT_SETUP_CONFIG_EXCEL

7. 监控埋点回归

  • 访问 GET /health/setup-config-stats 可返回 JSON
  • by_endpoint 中可看到 setup-config 各接口 2xx/4xx/5xx 计数
  • 人为制造一次冲突或锁定写入后,4xx 计数增加

8. 冒烟脚本

  • cd backend && docker compose exec -T backend python scripts/smoke_setup_config.py
  • 使用 BASE_URL/EMAIL/PASSWORD/STUDY_ID 环境变量执行一次(覆盖指定项目)
  • BASE_URL=http://localhost:8888 EMAIL=... PASSWORD=... STUDY_ID=... bash docs/setup-config-curl-smoke.sh
  • 导入并执行 Postman 集合 docs/postman/setup-config.postman_collection.json

9. 发布前确认

  • 文档已更新:docs/guides/setup-config-api.md
  • 本清单已全量勾选
  • 发布说明已包含新增接口与权限规则

10. Enterprise UI 发布门禁

  • cd frontend && npm run ui:contract
  • cd frontend && npm run type-check
  • cd frontend && npm run build
  • docs/audits/enterprise-ui-acceptance-checklist.md 状态为 PASS 且记录审阅日期
  • 管理层演示路径已走查:/project/overview -> /project/milestones -> /risk-issues/sae -> /fees/contracts -> /file-versions -> /admin/projects/:id