跳到主要内容
AidoSaaS-CMS 企业主题 · 全站可视化编辑 订阅 站点地图

XinWork 平台架构与插件机制:单体仓库、SSO 与单库共享

XinWork 平台架构与插件机制:单体仓库、SSO 与单库共享

为什么 XinWork 的 15 个插件能像乐高一样拆装,数据却始终在一处?拆解平台基座、插件协议、统一鉴权与部署形态。

XinWork 的架构目标只有一个:插件像乐高一样拆装,数据始终在一处。本文拆解它是怎么做到的。

XinWork 平台拓扑
占位图:XinWork 基座 + 15 插件的平台拓扑,替换为真实架构图

单体仓库,插件化应用

整个平台是一个 pnpm 单体仓库:backend/(Laravel 13)提供 API 与 SSO,frontend/(React 19 + Vite)构建各插件 SPA,packages/ui 沉淀共享 UI 组件。每个插件是 plugins/<id>/ 下的独立应用:manifest 描述元信息与权限,backend 提供路由与迁移,frontend 提供界面——有独立的版本号,却没有独立的服务器。

统一鉴权:平台签发,全平台信任

登录只发生一次:平台基座完成认证后签发 JWT,各插件按统一规则校验,用户体系与组织架构由基座统一提供(Work IdP)。插件不建用户表、不建组织树——这是 15 个插件能快速挂载的前提。

单库共享,独立迁移

全平台共用一个数据库连接(单库多连接架构),但每个插件维护自己的迁移表(如 mail_migrations),升级互不干扰。业务单据跨插件引用因此是天然能力:OA 审批引用 CRM 合同、BI 汇总 ERP 指标,都不需要数据同步。

部署形态

  • subpath 模式:统一域名下按路径分发(/erp、/oa、/disk),前端构建产物带各自 base path;
  • 子域模式:每个插件一个子域(erp.example.com),适合按部门分域的大企业;
  • 私有化交付:整平台落在你自己的服务器,数据不出网。

接下来读哪里

常见问题

插件是独立进程吗?

不是。每个插件是基座内的独立 app(后端 + 前端),共享平台运行时;这换来单库数据共享与统一运维,代价是插件需遵循平台协议。

接入模式怎么选?

子域模式适合大企业按部门分域;subpath 模式(/erp、/oa)适合统一域名下快速上线,配置更简单。

分享

李文心

本文作者 · 发布于 2026-09-10

全部文章

评论 (0)

还没有评论,来抢沙发吧。