- Run cargo fmt on all Rust crates for consistent formatting - Update CLAUDE.md with WASM plugin commands and dev.ps1 instructions - Update wiki: add WASM plugin architecture, rewrite dev environment docs - Minor frontend cleanup (unused imports)
81 lines
3.7 KiB
Markdown
81 lines
3.7 KiB
Markdown
# ERP 平台底座 — 知识库
|
||
|
||
## 项目画像
|
||
|
||
**模块化 SaaS ERP 底座**,Rust + React 技术栈,提供身份权限/工作流/消息/配置四大基础模块,支持行业业务模块快速插接。
|
||
|
||
关键数字:
|
||
- 10 个 Rust crate(8 个已实现 + 2 个插件原型),1 个前端 SPA
|
||
- 32 个数据库迁移
|
||
- 5 个业务模块 (auth, config, workflow, message, server)
|
||
- 2 个插件 crate (plugin-prototype Host 运行时, plugin-test-sample 测试插件)
|
||
- Health Check API (`/api/v1/health`)
|
||
- OpenAPI JSON (`/api/docs/openapi.json`)
|
||
- Phase 1-6 全部完成,WASM 插件原型 V1-V6 验证通过
|
||
|
||
## 模块导航树
|
||
|
||
### L1 基础层
|
||
- [[erp-core]] — 错误体系 · 事件总线 · 模块 trait · 共享类型
|
||
- [[erp-common]] — ID 生成 · 时间戳 · 编号生成工具
|
||
|
||
### L2 业务层
|
||
- erp-auth — 用户/角色/权限/组织/部门/岗位管理 · JWT 认证 · RBAC
|
||
- erp-config — 字典/菜单/设置/编号规则/主题/语言
|
||
- erp-workflow — BPMN 解析 · Token 驱动执行 · 任务分配 · 流程设计器
|
||
- erp-message — 消息 CRUD · 模板管理 · 订阅偏好 · 通知面板 · 事件集成
|
||
|
||
### L3 组装层
|
||
- [[erp-server]] — Axum 服务入口 · AppState · ModuleRegistry 集成 · 配置加载 · 数据库连接 · 优雅关闭
|
||
|
||
### 插件系统
|
||
- [[wasm-plugin]] — Wasmtime 运行时 · WIT 接口契约 · Host API · Fuel 资源限制 · 插件制作完整流程
|
||
|
||
### 基础设施
|
||
- [[database]] — SeaORM 迁移 · 多租户表结构 · 软删除模式
|
||
- [[infrastructure]] — Windows 开发环境 · PostgreSQL 16 · Redis 7 · 一键启动脚本
|
||
- [[frontend]] — React SPA · Ant Design 布局 · Zustand 状态
|
||
- [[testing]] — 测试环境指南 · 验证清单 · 常见问题
|
||
|
||
### 横切关注点
|
||
- [[architecture]] — 架构决策记录 · 设计原则 · 技术选型理由
|
||
|
||
## 核心架构决策
|
||
|
||
**模块间如何通信?** 通过 [[erp-core]] 的 EventBus 发布/订阅 DomainEvent,不直接依赖。
|
||
|
||
**多租户怎么隔离?** 共享数据库 + tenant_id 列过滤,中间件从 JWT 注入 TenantContext。详见 [[database]] 和 [[architecture]]。
|
||
|
||
**错误怎么传播?** 业务 crate 用 thiserror → AppError → Axum IntoResponse 自动转 HTTP。详见 [[erp-core]] 错误处理链。
|
||
|
||
**状态如何共享?** AppState 包含 DB、Config、EventBus、ModuleRegistry,通过 Axum State 提取器注入所有 handler。
|
||
|
||
**ModuleRegistry 怎么工作?** 每个 Phase 2+ 的业务模块实现 ErpModule trait,在 main.rs 中链式注册。registry 自动构建路由和事件处理器。
|
||
|
||
**插件系统怎么扩展业务?** 通过 [[wasm-plugin]] 的 WASM 沙箱运行第三方插件,插件通过 WIT 定义的 Host API 与系统交互。详细流程见插件制作指南。
|
||
|
||
**版本差异怎么办?** package.json 使用 React 19 + Ant Design 6(比规格文档更新),以实际代码为准。
|
||
|
||
## 开发进度
|
||
|
||
| Phase | 内容 | 状态 |
|
||
|-------|------|------|
|
||
| 1 | 基础设施 | 完成 |
|
||
| 2 | 身份与权限 | 完成 |
|
||
| 3 | 系统配置 | 完成 |
|
||
| 4 | 工作流引擎 | 完成 |
|
||
| 5 | 消息中心 | 完成 |
|
||
| 6 | 整合与打磨 | 完成 |
|
||
| - | WASM 插件原型 | V1-V6 验证通过 |
|
||
|
||
## 关键文档索引
|
||
|
||
| 文档 | 位置 |
|
||
|------|------|
|
||
| 设计规格 | `docs/superpowers/specs/2026-04-10-erp-platform-base-design.md` |
|
||
| 实施计划 | `docs/superpowers/plans/2026-04-10-erp-platform-base-plan.md` |
|
||
| WASM 插件设计 | `docs/superpowers/specs/2026-04-13-wasm-plugin-system-design.md` |
|
||
| WASM 插件计划 | `docs/superpowers/plans/2026-04-13-wasm-plugin-system-plan.md` |
|
||
| 协作规则 | `CLAUDE.md` |
|
||
| 设计评审 | `plans/squishy-pondering-aho-agent-a23c7497aadc6da41.md` |
|