release(main): 清理本地配置并重组文档结构

This commit is contained in:
Cheng Zhou
2026-03-30 19:03:17 +08:00
parent 244c424126
commit aa6cdd40e9
23 changed files with 215 additions and 541 deletions
+75
View File
@@ -0,0 +1,75 @@
# 立项配置发布清单
状态: `active`
适用范围: `setup-config`
最后更新: `2026-03-30`
## 1. 构建与迁移
- [ ] `docker compose run --rm backend-init`
- [ ] `cd backend && python3 -m compileall app scripts`
- [ ] `cd frontend && npm run build`
## 2. 接口与权限回归
- [ ] ADMIN 账号可 `GET/PUT/PUBLISH/IMPORT-EXCEL/EXPORT-EXCEL`
- [ ] PM 账号可 `GET/PUT/PUBLISH/IMPORT-EXCEL/EXPORT-EXCEL`
- [ ] CRA 账号可 `GET/EXPORT-EXCEL``PUT/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[].field``detail.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 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`