docs(wiki): 全景梳理 — 更新 9 个 wiki + CLAUDE.md scope + 头脑风暴记录
基于 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:
@@ -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(原生 Rust,18 实体/14 权限/13 页面)★ 已实现
|
||||
├── 核心业务模块: erp-health(原生 Rust,44 实体/22 权限/25+ 页面)★ 已实现
|
||||
├── AI 模块: erp-ai(3 实体,SSE 流式分析,Phase 1 MVP)
|
||||
├── 透析模块: erp-dialysis(已拆分为独立 crate)
|
||||
└── 可选插件: crm, inventory, freelance, itops, assessment(WASM)
|
||||
└── 可选插件: crm, inventory, freelance, itops(WASM)
|
||||
```
|
||||
|
||||
### 为什么 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/min,IP 分级)
|
||||
- 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. 代码逻辑
|
||||
|
||||
|
||||
Reference in New Issue
Block a user