参考来源与基线
# 参考来源与基线
调研日期:2026-10-22,用户时区 Asia/Shanghai。源码事实与本项目设计建议分开,本文不表示依赖已经安装。
# 1. 上游快照
| 项目 | 调研基线 | 用途 |
|---|---|---|
| Vben Admin | main,bd7b04d28a4c7ea87cae72b549d3eecff4643e1e | 前端工程与接入方式;package version 为 5.7.0 |
| ruoyi-vue-pro 官方 GitHub 镜像 | master-jdk17,7c397bbfae3e768b26e3ee962c5aa7064e8d7c96 | 后端模块与认证入口参考,不作为新 API 合同 |
| 用户提供的 Gitee 仓库 | 浏览其当前页面结构 | 产品能力地图;未断言其 HEAD 与 GitHub 镜像完全一致 |
SHA 经 GitHub commit API 读取。Vben 锁定快照的 package.json、core auth/user/menu API 和 access store 已读取;request/router 接入方式同时参考官方源码与文档。后续初始化应下载此快照或显式选择新基线并更新本文件。
- Vben 固定提交 (opens new window)
- 固定 package.json (opens new window)
- 固定身份 API (opens new window)
- 固定 access store (opens new window)
- 固定官方后台布局接入 (opens new window)
- 固定官方启动装配 (opens new window)
- 固定参考提交 (opens new window)
- 用户提供的参考仓库 (opens new window)
# 2. 核实结论
Vben 5 支持后端路由模式、权限码和多 UI 应用;本项目默认选择 web-antd 是设计建议。所读 package.json 声明 Node 为 ^22.18.0 或 ^24.12.0,pnpm >=11.0.0,packageManager 为 pnpm@11.16.0;实施应按快照和锁文件选择环境,不套用旧 Vben 版本要求。工程基线 (opens new window)
示例 API 的刷新/登出使用带 cookie 请求,access store 默认有 token 持久化。本方案选择内存 access 和标准刷新 DTO,因此需要调整示例行为,不是开箱即用的完整安全实现。身份 API (opens new window)、access store (opens new window)
多模块通过 Go workspace 协同开发可行,但独立模块依赖仍需声明和验证;本项目的模块拆分和发布流程属于设计决策。Go workspace 教程 (opens new window)
GORM 的数据库连接文档提供多种后端接入,Oracle 与 DM 存在各自驱动/环境要求。这些资料支持适配路径的可行性,不是本项目已经通过认证的证据。GORM (opens new window)、DM (opens new window)
# 3. 官方设计资料
| 主题 | 来源 | 本方案使用方式 |
|---|---|---|
| Vben 5 版本与功能 | 介绍 (opens new window) | 前端工程参考 |
| 动态菜单与按钮权限 | 权限 (opens new window) | backend 模式与本地组件映射 |
| Vben 工程启动 | 本地开发 (opens new window) | workspace 与脚本 |
| Gin | 文档 (opens new window) | HTTP 层选型 |
| GORM 事务 | 事务 (opens new window) | 本地事务传播 |
| GORM Scope | Scope (opens new window) | 查询条件复用,不能替代隔离测试 |
| OIDC | Core 1.0 (opens new window) | 身份提供方与应用边界 |
| 原生客户端 | RFC 8252 (opens new window)、PKCE (opens new window) | 外部浏览器和授权码保护 |
| Cookie 前缀 | MDN Set-Cookie (opens new window) | __Secure- 必须带 Secure,HTTP 开发使用独立无前缀名称 |
| Go IdP 候选 | ZITADEL (opens new window) | 仅列入 PoC;需验证部署、存储及许可后再选择 |
| Go BPMN 候选 | olive-io/bpmn (opens new window) | runtime/schema 可复用性初筛,未做认证 |
| Go 持久工作流候选 | go-workflows (opens new window) | 代码编排、存储与恢复参考,非完整审批平台结论 |
| 其他持久编排 | Temporal (opens new window) | 代码工作流/重放参考,不作为必选运行时 |
| Flowable 语义 | BPMN 构件 (opens new window) | 只做功能语义参照,不作为运行依赖 |
| BPMN 编辑器 | bpmn-js (opens new window) | 可视化建模建议,需定义本项目支持的流程子集与扩展属性 |
| Redis Streams | 流式处理 (opens new window) | 分组确认与故障恢复 |
| RabbitMQ | 确认机制 (opens new window) | 发送确认和消费确认分开 |
| Kafka | 协议 (opens new window) | topic/partition/consumer 协议边界 |
| RocketMQ | 消费重试 (opens new window) | retry/DLQ 和版本联测 |
# 4. 尚需实施阶段核实
Go/Gin/GORM 精确版本;各数据库和驱动版本、OS/arch 与许可环境;Oracle/DM 迁移 runner;Redis及各 broker 客户端;Go workflow-core 状态机和恢复合同、候选库复用范围;BPMN/动态表单组件版本;IdP 的 back-channel logout 行为;CI 所需镜像与密钥管理。
上线支持清单只能根据实际运行测试结果更新,不能由上述链接自动推导。
# 5. 最新工作流选型说明
本次读取了 olive-io/bpmn 与 go-workflows 的官方 README 及 Temporal 文档。其公开定位分别是 Go BPMN runtime、Go 代码定义的持久工作流和持久执行平台;是否满足企业审批、文件资源 ACL、七库支持和设计器要求尚未通过本项目验证。因此采用自有契约与 Go 组件、自研缺口的设计,不写“已找到完整替代”或“现有方案都不可用”。
Flowable 文档保留作能力对标资料;本项目不部署它,不引入 Java bridge。未来若复用第三方源码,先固定提交、记录许可证及依赖、执行恢复与语义验收,再更新基线。
# M0 已锁定与已验证基线
Go 1.27.3(用户要求 1.27 系列,已核对官方稳定版本并实际执行);Node 24.12.0、pnpm 11.16.0、Gin 1.12.0、GORM 1.31.1、MySQL dialect 1.6.0、PostgreSQL dialect 1.6.0、Redis client 9.16.0。实际数据库实例为 MySQL 8.4.13 与 PostgreSQL 14.18,Redis 8.0.3。精确依赖以各 go.mod/go.sum、前端派生锁文件及 baselines/sources.json 为准。Vben 原始 lockfile 另存基线,MIT 许可证保留。Oracle 探针使用 go-ora/v2 2.9.0、SQL Server 使用 go-mssqldb 1.9.5,仅构建通过不代表实例认证。
Dex 2.44.0 作为独立 Go 测试进程完成双应用协议探测,local-password 配置被淘汰。olive-io/bpmn 1.3.4 仅作源码评估,不引入生产依赖;生产恢复、完整 BPMN 和七库能力均未据此宣称通过。Go 技能安装固定于 samber/cc-skills-golang 的 8e899e20ff0cd4dc524af3993e4c62d8ee8c5717。详细结论见 M0 实施。
# 平台基础设施Cron增量依赖
fago-infra固定使用github.com/robfig/cron/v3 v3.0.1(MIT),仅调用五段Parser/Schedule计算UTC触发点,不运行其内存调度循环;可靠执行仍由本项目数据库状态机承担。来源为官方仓库 (opens new window)和固定版本API (opens new window),精确依赖与校验和以当前go.mod/go.sum为准,不将该固定选择表述为最新版本。
上游版权与MIT许可原文保存在fago/fago-server/third_party/robfig-cron/LICENSE,分发包含该依赖的API/worker时须随附。平台分层、DST与持久恢复行为来自本项目实际测试,不能仅凭上游库文档推导生产可靠性或数据库支持。