docs: add phase 04-06 recovery reports, gate outputs and execution plan

This commit is contained in:
Codex
2026-09-14 10:01:41 +08:00
parent 1aea6f7791
commit 0518cda95c
20 changed files with 669 additions and 0 deletions
@@ -0,0 +1,56 @@
# Phase 04 V1.1 恢复复验 Completion Report
日期:2026-09-12
分支:`codex/ui-v11-fidelity`
## 结论
**Phase 04 COMPLETE / 项目整体继续 NO-GO。**
Profile、Preference 保持现有兼容行为;本地资格声明、状态、补证、提交及 `/me/status` 已重新核验。Phase 05 及以后未获准开始。
## 本阶段修复
- 将 U62/U63 从空白 JavaScript 脚手架恢复为真实 API 链路。
- U62 查询当前用户本地资格状态,覆盖未声明、已声明、待补证、审核中、已核验、未通过。
- U63 完成本地资格声明、私有材料上传、佐证登记和提交审核。
- 修正佐证实体 `fileId` 与数据库 `file_key` 的 MyBatis 映射。
- 后端执行佐证上传开关、数量上限、类型白名单和文件归属校验。
- 增加佐证保留期配置,默认 365 天;实际清理由运维任务按配置执行。
- 图片大小上限和允许类型由 FeatureFlag 配置控制。
## 权限与数据边界
- 用户端 Controller 的 userId 仅取自 `UserPrincipal`,不接受请求体 userId。
- 佐证文件经认证接口上传到私有存储。
- 登记佐证前校验文件属于当前用户;其他用户文件被拒绝。
- 本地资格使用独立的 `user_local_eligibilities`、`local_eligibility_evidences` 表,不写入 `user_identities`。
## 自动化与运行验证
| 检查 | 结果 |
|---|---|
| `LocalEligibilityServiceTest` | 3/3 通过,0 failure,0 error;BUILD SUCCESS |
| `phase04-local-eligibility-contracts.mjs` | 通过 |
| Backend Docker build | 通过 |
| Flyway | 33 个迁移校验通过,Schema 版本 033 |
| PostgreSQL / Redis / MinIO / Backend | 全部 healthy |
| `/api/v1/health/live` | UP |
## 门禁核对
- [x] 本地资格与实名认证表独立。
- [x] 非本人不能将他人私有文件登记为佐证。
- [x] 数量、大小、类型和保留期限配置化。
- [x] U62/U63 使用真实接口而非占位提示。
- [x] `/me/status` 返回本地资格状态。
## 已知限制
- 小程序仍同时保留 `.ts` 与运行时 `.js`;统一 TypeScript 唯一源属于 Phase 07 门禁。
- 佐证到期清理调度任务尚未实现,本阶段只完成保留期配置;生产启用前需在 Phase 22 运维阶段核验清理作业。
- 微信开发者工具真机/模拟器视觉验收仍属于后续 UI/UAT 门禁。
## 下一阶段
Phase 05:统一审核扩展。进入前须由用户明确确认;不得自动进入。