修正CEO报销财务兜底与部署护栏(07-28-ceo-finance-fallback)
这个提交包含在:
@@ -0,0 +1,45 @@
|
||||
# CEO 本人报销财务兜底实施计划
|
||||
|
||||
## 1. Implementation
|
||||
|
||||
- [x] 扩展后端 owner-self fallback 白名单为 `finance|finance_mgr`,创建默认值改为 `finance`。
|
||||
- [x] 将三档种子默认规则统一为财务 `finance` 收口,保留大额 `ceo` 节点。
|
||||
- [x] 更新前端 API 类型、创建/编辑选项、默认值和推荐文案;兼容展示 `finance_mgr`。
|
||||
- [x] 更新工作流、规则 API、报销提交回归测试,覆盖 CEO 三档唯一 `finance`、普通员工链、自审、无持有人和 legacy `finance_mgr`。
|
||||
- [x] 修正 `seed:config` 对既有审批规则的删除重建副作用;仅空库创建默认规则,生产既有规则保留到独立原子回填阶段。
|
||||
- [x] 新增默认 dry-run、双确认 apply 的生产规则回填脚本;事务内锁定并校验三档规则、CEO/财务/admin/binding 基线,更新三条规则、写三条脱敏审计并复核受保护计数。
|
||||
- [x] 更新当前业务事实源,区分目标、代码部署和生产规则回填状态。
|
||||
|
||||
## 2. Local Validation
|
||||
|
||||
- [x] `cd server && node --check src/utils/workflow.js && node --check src/routes/approvalRules.js && node --check src/scripts/seed-config.js && node --check src/scripts/apply-ceo-finance-fallback.js`
|
||||
- [x] `cd server && npx vitest run tests/unit/utils/workflow.test.js tests/unit/routes/approvalRules.permissions.test.js tests/unit/routes/reimbursements.expense-standards.test.js tests/unit/scripts/seed-config.defaults.test.js tests/unit/scripts/apply-ceo-finance-fallback.test.js`(58 项通过)
|
||||
- [x] `cd server && npm run prisma:validate`
|
||||
- [x] `cd client && npm run typecheck && npm run build`
|
||||
- [x] `node scripts/qa/check-process-contract.mjs --baseline --json`
|
||||
- [x] `node scripts/qa/audit-docs.mjs --check-registry`(0 error,保留既有 22 个未注册文档 warning)
|
||||
- [x] `python3 ./.trellis/scripts/task.py validate 07-28-ceo-finance-fallback`
|
||||
- [x] `node scripts/qa/check-trellis-governance.mjs && git diff --check`
|
||||
- [x] `bash scripts/check-minimal.sh`(167 个测试文件、1053 项后端测试、前端 build 与矩阵门禁通过)
|
||||
|
||||
## 3. Review Gate
|
||||
|
||||
- [x] 只读 review 权限白名单、自审阻断、普通员工链、历史快照不回写、API/UI 类型一致性和生产事务边界;发现并修复部署 seed 提前覆盖规则问题后复核无剩余阻断。
|
||||
|
||||
## 4. Deployment And Production Apply
|
||||
|
||||
- [ ] 提交并推送已验证代码。
|
||||
- [x] 修复部署脚本已知的数据目录保护缺陷:同步根目录与数据目录任一方向重叠时在 SSH 前阻断,自定义同步树内 `.env` 动态保护;隔离备份/恢复合同通过。
|
||||
- [ ] 部署后核对 `/ready` 构建号、migration 状态、runtime smoke、external deps smoke 和前端 bundle。
|
||||
- [ ] 生产只读冻结规则结构、active `finance`、CEO、角色、binding、历史快照和审计基线。
|
||||
- [ ] 原子更新恰好 3 条启用规则并逐条写脱敏审计;任一预条件漂移则零写入停止。
|
||||
- [ ] 只读解析 CEO 小/中/大额快照均为唯一 `finance`,普通员工链符合目标;不创建真实报销。
|
||||
- [ ] 复核无角色、主管、binding、历史快照或企微写入变化。
|
||||
|
||||
## 5. Stop Conditions
|
||||
|
||||
- 生产 active `finance` 不是唯一非 CEO 持有人,或目标人员 inactive/unbound。
|
||||
- 启用规则不是恰好 3 条,金额区间或角色结构与冻结基线不符。
|
||||
- 部署路径仍可能删除 `.env`、附件或数据库宿主目录。
|
||||
- 任一测试出现自审、管理员代批、历史快照重写或普通员工链异常。
|
||||
- 真实 CEO 报销验证未取得单独批准。
|
||||
在新工单中引用
屏蔽一个用户