docs(wiki): 关键数字更新 — 迁移 157 + 提交 933 + 3 项安全修复已标记
This commit is contained in:
@@ -4,37 +4,37 @@
|
||||
|
||||
## 关键数字
|
||||
|
||||
> 最后更新: 2026-05-20 | 数据截止: feat/media-library-banner 分支(V1 全面端到端测试完成)
|
||||
> 最后更新: 2026-05-20 | 数据截止: feat/media-library-banner 分支(六维度全面均衡分析,V1 CONDITIONAL GO)
|
||||
|
||||
| 指标 | 值 |
|
||||
|------|-----|
|
||||
| Rust crate | 17 个(erp-core + 5 基础业务 + erp-health + erp-ai + erp-dialysis + erp-plugin + 7 插件/原型) |
|
||||
| Rust 源文件 | **652 个**(136,908 行) |
|
||||
| Rust 源文件 | **694 个**(~125,000 行) |
|
||||
| 数据库表 | 30 基础表 + 49 健康业务表 + 13 AI 表(+4 会话/消息/tool_log/user_profile) + 3 媒体库/轮播图表 |
|
||||
| 数据库迁移 | **156 个**(最新 m20260519_000156) |
|
||||
| 后端路由 | 260+ 个(11 公开 + 14 FHIR + 2 网关 + ~240 受保护) |
|
||||
| 数据库迁移 | **157 个**(最新 m20260520_000157) |
|
||||
| 后端路由 | **376+ 个**(11 公开 + 14 FHIR + 2 网关 + ~350 受保护) |
|
||||
| 核心模块 | 5 基础 (auth/config/workflow/message/plugin) + 3 业务 (health + ai + dialysis) |
|
||||
| erp-health 实体 | **59 个** Entity(32 handler / 41 service / 22 DTO,214 文件) |
|
||||
| erp-ai 实体 | 9 个 Entity(62 文件,4 AI Provider,chat_handler 支持 FC/Ollama fallback) |
|
||||
| 全系统 Entity | **109 个** / Handler **47 个** / Service **107 个** / DTO **29 个** |
|
||||
| Web 前端 | 307 个 TS/TSX 文件(36 活跃路由 + 5 冻结路由,42 API 模块,161 页面) |
|
||||
| 微信小程序 | Taro 4.2 + React 18,161 个 TS/TSX 文件 / 60 页面 / 4 TabBar + 医生端分包,统一组件库 + CSS 变量主题(75 页面 SCSS 全量接入 `var(--tk-*)`,字号 token 对齐原型统计,医生端 `.doctor-mode` 靛蓝覆盖,登录页账号密码+微信一键登录);**并发安全**:长轮询独立通道 `requestUnlimited` + ConcurrencyLimiter(12) + safeNavigateTo 全局页栈保护 + reLaunch 去重 + 分包预加载 preloadRule |
|
||||
| Web 前端 | 316 个 TS/TSX 文件(36 活跃路由 + 6 冻结路由,54 API 模块,161 页面) |
|
||||
| 微信小程序 | Taro 4.2 + React 18,167 个 TS/TSX 文件 / 59 页面(12 主包 + 47 子包) / 4 TabBar + 医生端分包,34 组件 / 38 service 文件,统一组件库 + CSS 变量主题(93 页面 SCSS 全量接入 `var(--tk-*)`,字号 token 对齐原型统计,医生端 `.doctor-mode` 靛蓝覆盖,登录页账号密码+微信一键登录);**并发安全**:长轮询独立通道 `requestUnlimited` + ConcurrencyLimiter(12) + safeNavigateTo 全局页栈保护 + reLaunch 去重 + 分包预加载 preloadRule |
|
||||
| 前端测试 | Web 62 单元测试文件(~693 断言) + 17 E2E spec(13 Web + 4 MP,~64 断言);小程序 0 单元测试 |
|
||||
| 后端测试 | **943 个函数**(762 同步 + 181 异步),103 个文件含测试 |
|
||||
| 后端测试 | **990+ 个函数**(802 同步 + 188 异步),110 个文件含测试 |
|
||||
| 事件系统 | 31 事件类型(health)/ 51 全系统 / 82 发布点 / 12 消费者模块 / Outbox + LISTEN/NOTIFY |
|
||||
| 权限码 | **132 个**(health 52 + ai 20(+4 chat 权限) + auth/workflow/dialysis/plugin/config/message/copilot 60) |
|
||||
| utoipa 注解 | **89 个**文件含注解 |
|
||||
| 权限码 | **140 个**(health 57 + ai 21 + auth 24 + config 18 + workflow 8 + message 5 + plugin 2 + dialysis 5) |
|
||||
| utoipa 注解 | **94 个**文件含注解 |
|
||||
| Clippy | **全 workspace 0 警告**(2026-05-07 清零) |
|
||||
| 依赖版本 | 全部最新主版本线(Rust edition 2024) |
|
||||
| API 文档 | `http://localhost:3000/api/docs/openapi.json` |
|
||||
| Git 提交 | **862 次** |
|
||||
| 系统分析评分 | **6.8/10 (B)**(六维度全面均衡分析,2026-05-17:架构 8.5 / 安全 7.5 / 测试 5.5 / 前端 7.2 / DevOps 3.8 / 产品 8.0) |
|
||||
| Git 提交 | **933+ 次** |
|
||||
| 系统分析评分 | **6.3/10 (B-)**(六维度全面均衡分析,2026-05-20:架构 8.0 / 安全 7.5 / 测试 5.5 / 前端 7.2 / DevOps 3.8 / 产品 7.0) |
|
||||
| 审计状态 | V1: 83% → V2: 85%,P0 安全修复已完成;E2E 测试 157 端点(Health 63% / AI+Plugin 92.4%),CRITICAL×2 待修复 |
|
||||
| 角色测试 | R01-R05 全角色验证完成,86.5% 通过率,5 个 BUG 已修复;小程序 MP 多角色 96.2% 通过率 |
|
||||
| Design Token | 11 级字号(对齐 18 份原型稿 fontSize 统计:h1=28/h2=22/body-lg=18/body=16/body-sm=14/cap=13)+ 12 结构 token,75 SCSS 页面全量接入 `var(--tk-*)`,`.doctor-mode` / `.elder-mode` CSS 变量级联覆盖,ContentCard 支持 padding+margin prop |
|
||||
| 长者模式 | 58/58 页面 100% 覆盖 |
|
||||
| UI 合规审计 | T40: 60 页面全覆盖(PASS 24 / PASS_WITH_ISSUES 36 / NEEDS_WORK 0),HIGH×2 + MEDIUM×6 + LOW×67 全部修复,评分 95/100 |
|
||||
| 项目阶段 | **V1 全面端到端测试修复完成** — GO,原 2 CRITICAL + 7 HIGH 全部解决(1 修复 + 1 误报 + 5 路径错误 + 1 修复),综合 6.2/10 B- |
|
||||
| 项目阶段 | **V1 CONDITIONAL GO** — 六维度分析综合 6.3/10 B-,P0 阻塞项约 4 天(备份加密 + 安全头 + analytics 权限 + TLS + 迁移回滚),P1 测试约 3 天 |
|
||||
|
||||
## 症状导航
|
||||
|
||||
@@ -104,11 +104,14 @@
|
||||
| copilot 患者风险 500 | [[erp-ai]] risk_service | SQL 列名/表名与实际 schema 不匹配 | **已修复:** `vital_signs_daily.device_type/avg_val` + `lab_report`(单数)+ JSON 查询 |
|
||||
| DTO 校验缺失(Update 无 Validate) | [[architecture]] §4 DTO 校验规范 | handler 层未调 `.validate()` | **已修复:** 6 个 crate / 8 个文件 / 44 处缺失修复(erp-auth + erp-config + erp-workflow + erp-message + erp-plugin + erp-health/oauth) |
|
||||
| SSRF 通过 ServiceTaskConfig.url | [[architecture]] §4 DTO 校验规范 | 工作流 ServiceTask 可访问内网 | **已修复:** 禁止 localhost/127.0.0.1 + 仅 http/https + method 白名单 GET/POST |
|
||||
| 空标签名导致 500 | [[erp-health]] patient_tags | DTO 缺少 name 字段校验 | **已修复:** CreateTagReq 添加 `validate(length(min=1))` + handler 调 `.validate()` |
|
||||
| 媒体库 folders 路由冲突 | [[erp-health]] media_handler | `/media/{id}` 先匹配,folders 被 UUID 解析 | **非 BUG:** 实际路径为 `/health/media-folders`(连字符),测试使用错误路径 |
|
||||
| 积分商城路由缺失 | [[erp-health]] points | rules/account/checkin/transactions 5 个端点 404 | **非 BUG:** 实际路径 `/health/admin/points/rules`(管理端)和 `/health/points/account`(患者端) |
|
||||
| 未来出生日期未校验 | [[erp-health]] patient_handler | birth_date=2099 被接受创建 | **已修复:** handler 添加 birth_date ≤ today 校验 |
|
||||
| 空标签名导致 500 | [[erp-health]] patient_tags | DTO 缺少 name 字段校验 | **已修复:** CreateTagReq 添加 `validate(length(min=1))` + handler 调 `.validate()`(2026-05-20 确认已修复) |
|
||||
| 媒体库 folders 路由冲突 | [[erp-health]] media_handler | `/media/{id}` 先匹配,folders 被 UUID 解析 | **非 BUG:** 实际路径为 `/health/media-folders`(连字符),测试使用错误路径(2026-05-20 确认无冲突) |
|
||||
| 积分商城路由缺失 | [[erp-health]] points | rules/account/checkin/transactions 5 个端点 404 | **非 BUG:** 实际路径 `/health/admin/points/rules`(管理端)和 `/health/points/account`(患者端),21 条路由已覆盖(2026-05-20 确认) |
|
||||
| 未来出生日期未校验 | [[erp-health]] patient_handler | birth_date=2099 被接受创建 | **已修复:** handler 添加 birth_date ≤ today 校验(2026-05-20 确认已修复) |
|
||||
| 插件 metrics 500 | [[erp-plugin]] plugin_handler | get_metrics 手动 map_err 覆盖了错误映射 | **已修复:** 移除手动 map_err,使用 From trait 自动映射(NotFound→404) |
|
||||
| Analytics 批量埋点越权 | [[erp-server]] analytics_handler | `batch()` 未调用 `require_permission` | **已修复:** 添加 require_permission + 事件数上限 100 |
|
||||
| 缺少 HSTS/CSP 安全头 | [[erp-server]] main.rs | security_headers_middleware 未添加 HSTS/CSP | **已修复:** 添加 HSTS + CSP + Permissions-Policy |
|
||||
| SSE token URL query parameter 泄漏 | [[erp-message]] sse_handler | JWT 支持从 URL `?token=` 提取(SSE 兼容) | **已修复:** SSE 响应添加 Cache-Control: no-store |
|
||||
|
||||
## 模块导航
|
||||
|
||||
@@ -160,14 +163,15 @@
|
||||
| 媒体库+轮播图设计规格 | `docs/superpowers/specs/2026-05-10-media-library-banner-design.md` |
|
||||
| Copilot 基因化设计 | `docs/superpowers/specs/2026-05-11-copilot-gene-design.md` |
|
||||
| 六维度全面均衡分析 | `docs/superpowers/specs/2026-05-11-system-comprehensive-analysis-design.md`(6.9/10 B,六维度评估) |
|
||||
| V1 发布就绪度六维度分析 | `docs/superpowers/specs/2026-05-20-v1-readiness-six-dimension-analysis.md`(6.3/10 B-,V1 CONDITIONAL GO) |
|
||||
| PII 加密扩展规格 | `docs/superpowers/specs/2026-04-26-pii-encryption-expansion-design.md` |
|
||||
| 设计规格(活跃) | `docs/superpowers/specs/` (32 份) |
|
||||
| 设计规格(活跃) | `docs/superpowers/specs/` (33 份) |
|
||||
| 实施计划(活跃) | `docs/superpowers/plans/` (30 份) |
|
||||
| UI/UX 重构设计规格 | `docs/superpowers/specs/2026-04-28-ui-ux-overhaul-design.md` |
|
||||
| UI/UX 重构实施计划 | `docs/superpowers/plans/2026-04-28-ui-ux-overhaul-plan.md` |
|
||||
| 全系统审计报告(V1) | `docs/archive/audits-v1/08-audit-report-2026-04-30.md`(已归档) |
|
||||
| 全系统审计报告(V2) | `docs/audits/v2/13-final-report.md`(85% 总体完成度,P0 安全修复已完成) |
|
||||
| 讨论记录 | `docs/discussions/` (41 份) |
|
||||
| 讨论记录 | `docs/discussions/` (42 份) |
|
||||
| 事件注册表 | `docs/event-registry.md` |
|
||||
| 角色测试计划(全量) | `docs/qa/role-test-plans/` (R01-R05) |
|
||||
| 角色测试结果 | `docs/qa/role-test-results/` (R01 100% / R02 100% / R03 90.9% / R04 90.0% / R05 72.7% → 修复后待复测) |
|
||||
|
||||
Reference in New Issue
Block a user