docs(wiki): 全景梳理 — 更新 9 个 wiki + CLAUDE.md scope + 头脑风暴记录
Some checks failed
CI / security-audit (push) Has been cancelled
CI / rust-check (push) Has been cancelled
CI / rust-test (push) Has been cancelled
CI / frontend-build (push) Has been cancelled

基于 3 个并行探索代理的全面扫描结果,更新 wiki 数据至实际状态:
- index.md: 18 crate / 76 迁移 / 44 实体 / 77k 行 / 409 提交
- erp-health.md: 44 实体 / 21 handler / 22 权限 / 25 事件 / 6 消费者
- erp-server.md: 9 后台任务 / RLS 中间件栈
- architecture.md: 新增 erp-ai/dialysis 到依赖图 / 测试覆盖表
- testing.md: 225 单元 + 159 集成 / 4 模块零测试警告
- database.md: 76 迁移 / RLS+哈希链+盲索引+Dead Letter
- erp-core.md: PiiCrypto 加密体系 / EventBus 完整描述
- frontend.md: 163 文件 / 5 store / 10 API 文件
- CLAUDE.md: 新增 health/ai/dialysis/assessment scope

头脑风暴 4 个议题决策:
- dialysis: 接入激活
- 测试: 按风险排序(workflow > ai > message > config)
- AI: 数据桥接优先
- 路线图: AI 驱动 3 个月 5 Phase
This commit is contained in:
iven
2026-04-28 14:53:04 +08:00
parent ac1033dbaf
commit 75cd305996
10 changed files with 359 additions and 91 deletions

View File

@@ -1,6 +1,6 @@
---
title: 架构决策记录
updated: 2026-04-25
updated: 2026-04-28
status: stable
tags: [architecture, decisions, design-principles]
---
@@ -22,13 +22,16 @@ HMS 继承 ERP 底座的所有基础模块,`erp-health` 作为原生 Rust 模
```
HMS 平台
├── 基础模块(继承 ERP: auth, config, workflow, message, plugin
├── 核心业务模块: erp-health原生 Rust18 实体/14 权限/13 页面)★ 已实现
├── 核心业务模块: erp-health原生 Rust44 实体/22 权限/25+ 页面)★ 已实现
├── AI 模块: erp-ai3 实体SSE 流式分析Phase 1 MVP
├── 透析模块: erp-dialysis已拆分为独立 crate
└── 可选插件: crm, inventory, freelance, itops, assessmentWASM
└── 可选插件: crm, inventory, freelance, itopsWASM
```
### 为什么 erp-health 用原生模块?
医疗业务需要 18 强类型实体、自定义 API趋势分析/统计报表、PII 数据加密AES-256-GCM、文件上传、未来 AI 集成。WASM 插件的 JSONB 动态存储和 20 实体上限无法满足。详见 [[erp-health]]。
医疗业务需要 44 强类型实体、自定义 API趋势分析/统计报表、PII 数据加密AES-256-GCM + KEK/DEK 分层)、文件上传、未来 AI 集成。WASM 插件的 JSONB 动态存储和 20 实体上限无法满足。详见 [[erp-health]]。
### 为什么用 UUIDv7
@@ -81,8 +84,10 @@ hms/
|
+--------------+--------------+--------------+-----------+
| | | | |
erp-auth erp-config erp-workflow erp-message erp-health (L2)
erp-auth erp-config erp-workflow erp-message erp-health erp-ai (L2)
| | | | |
|
erp-dialysis
+--------------+--------------+--------------+-----------+
|
erp-server (L3: 唯一组装点)
@@ -94,14 +99,16 @@ hms/
### 模块实现状态
| 模块 | 状态 | 实体数 | 权限数 | 页面数 |
|------|------|--------|--------|--------|
| erp-auth | ✅ 完成 | 11 表 | - | 用户/角色/组织 |
| erp-config | ✅ 完成 | 6 表 | - | 设置/字典/菜单 |
| erp-workflow | ✅ 完成 | 5 表 | - | 工作流管理 |
| erp-message | ✅ 完成 | 3 表 | - | 消息中心 |
| erp-plugin | ✅ 完成 | 4 表 | - | 插件管理/市场 |
| erp-health | ✅ 完成 | 18 表 | 14 | 13 页面 + 11 组件 |
| 模块 | 状态 | 实体数 | 权限数 | 页面数 | 测试覆盖 |
|------|------|--------|--------|--------|---------|
| erp-auth | ✅ 完成 | 11 表 | - | 用户/角色/组织 | 38 单元 + 3 集成 |
| erp-config | ✅ 完成 | 6 表 | - | 设置/字典/菜单 | ⚠️ 0 测试 |
| erp-workflow | ✅ 完成 | 5 表 | - | 工作流管理 | ⚠️ 0 测试 |
| erp-message | ✅ 完成 | 3 表 | - | 消息中心 | ⚠️ 0 测试 |
| erp-plugin | ✅ 完成 | 4 表 | - | 插件管理/市场 | 31 单元 + 2 集成 |
| erp-health | ✅ 完成 | 44 表 | 22 | 25+ 页面 + 11 组件 | 104 单元 + 159 集成 |
| erp-ai | 🔄 Phase 1 | 3 表 | - | AI 分析/Prompt/用量 | ⚠️ 0 测试 |
| erp-dialysis | 🔄 已拆分 | - | - | - | 10 单元 |
### 技术选型
@@ -188,10 +195,14 @@ impl ErpModule for AuthModule {
- 不硬编码密钥 — 使用环境变量或配置文件
- 用户输入验证 — 所有 API 端点验证输入
- SQL 注入防护 — SeaORM 参数化查询
- 限流 — Redis token bucket
- 限流 — Redis token bucket(用户 100/minIP 分级)
- CORS — 白名单制,默认拒绝
- 审计日志 — 所有关键操作记录变更前后状态
- 审计日志 — 所有关键操作记录变更前后状态 + 哈希链防篡改
- 动态表 SQL — 使用 `sanitize_identifier` 防注入
- PII 加密 — AES-256-GCM + KEK/DEK 分层管理(每租户独立 DEK
- HMAC 盲索引 — 支持加密字段的等值查询
- RLS 行级安全 — PostgreSQL Row Level Policy中间件 SET `app.current_tenant_id`
- Dead Letter — 失败事件自动写入 dead_letter_events 表
## 5. 代码逻辑