CRM 插件专家组头脑风暴 — 综合发现

6 个专家组深度分析结果 · 28 项发现 · 4 个 Critical 级别

严重程度分布

4
Critical
必须立即修复
8
High
下一版本必须解决
10
Medium
应规划解决
6
Low/Info
记录待定

6 专家组核心发现

🏗️ 后端架构师

核心判断:当前是"声明式插件框架"穿了"命令式 WASM 沙箱"的外衣。CRM 的 WASM Guest 仅 30 行空壳,100% 流量绕过 WASM 层。

推荐方案:三层插件模型 — L1 声明式(80%) / L2 钩子式(15%) / L3 计算密集(5%)。JSONB + PostgreSQL Generated Column 混合存储。

  • C-01: db_query 不可用(Host API 半成品)
  • H-01: JSONB 类型安全缺失(字符串排序非数值排序)
  • H-02: 无插件版本升级迁移能力

💼 CRM 产品专家

核心判断:当前是"客户通讯录"而非 CRM。缺少销售流程引擎(线索→商机→漏斗→赢单)这个灵魂。

推荐路线:MVP 加 lead+opportunity 实体 + kanban 页面 → V2 团队协作+公海池 → V3 智能化+跨模块联动。

  • C-02: 无商机/漏斗管理 — CRM 不是 CRM
  • H-03: JSONB 零 FK 完整性
  • H-04: 无数据校验(手机号/邮箱格式)
  • H-05: 无跟进提醒机制

🔐 安全工程师

核心判断:行级数据权限完全缺失是最大的安全风险。plugin.admin 权限过宽等同于超级用户。

紧急修复:① 收紧权限 fallback ② 行级数据权限框架 ③ 插件间 entity 白名单。

  • C-03: 行级数据权限缺失(销售A看销售B客户)
  • C-04: plugin.admin 获得所有插件的超级权限
  • H-06: 插件间无 entity 白名单隔离
  • H-07: JSONB 查询注入风险

🎨 前端架构师

核心判断:Schema 驱动 UI 已覆盖 70% 后台场景,但无法描述"行为"。关联选择器、批量操作、看板是三个最高优先级突破。

推荐策略:声明式 DSL 扩展(短期)→ Iframe 沙箱自定义 UI(中期)→ Web Component(远期)。

  • H-08: 无 entity_select 关联选择器
  • H-09: 无批量操作(多选+批量处理)
  • M-01: visible_when 只支持 field==value
  • M-02: 图谱/树全量加载性能问题

🔌 平台架构师

核心判断:插件是信息孤岛,无法互相发现和协作。PluginEngine 的 DashMap key 设计阻碍多版本共存。

三层通信模型:事件契约注册 → 跨插件只读查询 → 插件间 RPC(远期)。自定义 API 用通配路由分发。

  • H-10: dependencies 字段已声明但从未校验
  • M-03: DashMap key 为 manifest id,多版本冲突
  • M-04: 无自定义 API 端点能力
  • M-05: WIT 接口无版本化

⚡ 性能工程师

核心判断:JSONB 排序无 B-tree 索引、ILIKE '%..%' 全表扫描、深翻页 OFFSET 退化是三大性能瓶颈。当前在万级数据以内可用,十万级会崩。

核心方案:Generated Column 提取高频字段 + pg_trgm 加速搜索 + Keyset Pagination + 聚合 Redis 缓存。

  • M-06: ORDER BY data->>'field' 全表扫描
  • M-07: ILIKE '%keyword%' 无法用索引
  • M-08: OFFSET 深翻页线性退化
  • M-09: 每次请求双重查库(schema 解析)
  • M-10: Dashboard 串行聚合

跨专家组共识 Top 5

#1 JSONB + Generated Column 混合存储 后端+性能+产品 三组一致推荐
#2 ref_entity 应用层外键校验 + 级联策略 后端+产品+安全 三组一致推荐
#3 entity_select 关联选择器 + kanban 看板页面 前端+产品 两组核心诉求
#4 行级数据权限 + 权限 fallback 收紧 安全 Critical + 平台架构支持
#5 跨插件事件契约 + 只读数据查询 平台+产品 两组跨模块联动需求

请在终端中回复,告诉我你的优先级偏好