Files
erp/wiki/index.md
iven ff352a4c24 feat(plugin): 集成 WASM 插件系统到主服务并修复链路问题
- 新增 erp-plugin crate:插件管理、WASM 运行时、动态表、数据 CRUD
- 新增前端插件管理页面(PluginAdmin/PluginCRUDPage)和 API 层
- 新增插件数据迁移(plugins/plugin_entities/plugin_event_subscriptions)
- 新增权限补充迁移(为已有租户补充 plugin.admin/plugin.list 权限)
- 修复 PluginAdmin 页面 InstallOutlined 图标不存在的崩溃问题
- 修复 settings 唯一索引迁移顺序错误(先去重再建索引)
- 更新 wiki 和 CLAUDE.md 反映插件系统集成状态
- 新增 dev.ps1 一键启动脚本
2026-04-15 23:32:02 +08:00

3.8 KiB
Raw Permalink Blame History

ERP 平台底座 — 知识库

项目画像

模块化 SaaS ERP 底座Rust + React 技术栈,提供身份权限/工作流/消息/配置/插件五大基础模块,支持行业业务模块快速插接。

关键数字:

  • 11 个 Rust crate9 个已实现 + 2 个插件原型1 个前端 SPA
  • 34 个数据库迁移
  • 6 个业务模块 (auth, config, workflow, message, plugin, 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 插件系统已集成到主服务

模块导航树

L1 基础层

  • erp-core — 错误体系 · 事件总线 · 模块 trait · 共享类型
  • erp-common — ID 生成 · 时间戳 · 编号生成工具

L2 业务层

  • erp-auth — 用户/角色/权限/组织/部门/岗位管理 · JWT 认证 · RBAC
  • erp-config — 字典/菜单/设置/编号规则/主题/语言
  • erp-workflow — BPMN 解析 · Token 驱动执行 · 任务分配 · 流程设计器
  • erp-message — 消息 CRUD · 模板管理 · 订阅偏好 · 通知面板 · 事件集成
  • erp-plugin — 插件管理 · WASM 运行时 · 动态表 · 数据 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。详见 databasearchitecture

错误怎么传播? 业务 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