平台功能(自研)参考
术语表
应用与市场
| 术语 | 英文 / 代码名 | 含义 |
|---|---|---|
| 应用 | app | 可独立上架、安装、升级的业务单元。代码里也叫"插件" |
| 应用编码 | appCode / code | 应用的唯一标识,如 gallery。同时用作表名前缀、权限前缀、远程视图前缀 |
| 应用清单 | app.json / manifest | 应用的唯一权威描述:编码、版本、产物路径、菜单树、依赖 |
| 目录 | catalog | 平台级数据:app_info / app_version / app_category 等,全局一份 |
| 安装实例 | install | 某个部署装了哪个应用的哪个版本、状态如何。每个部署各一份 |
| 上架端 | console | 维护目录的界面:应用、版本、分类、安装包上传。用户版没有它 |
| 市场 | market | 安装侧浏览与安装应用的界面 |
| 版本形态 | edition | official(官方版,有上架端)/ client(用户版,无上架端) |
| 套餐 | plan | 应用定价与套餐(预留,当前未见实现) |
运行时
| 术语 | 代码名 | 含义 |
|---|---|---|
| 宿主 | host | 平台本身,即 ruoyi-admin 启动的那个应用 |
| 插件 | plugin | 应用的后端实现,一个独立 jar |
| 契约 | — | 实体 / Mapper 接口与 XML / Service 接口。2026-09-30 起随插件走 —— 平台里没有 *-api 模块,契约就在插件自己的 src/ 下 |
| 类加载器 | PluginClassLoader | 每个插件一个,parent-first |
| 子上下文 | plugin context | 插件自己的 Spring 上下文,以宿主为 parent |
| 落位 | deploy/release | 把包解开、jar 放到插件目录、前端产物放到远程应用目录 |
| 热加载 | hot load | 不重启就完成卸载旧插件 + 装载新插件 + 注册接口 |
| 卸载 | unload | 关子上下文 + 关类加载器 + 注销接口(不等于删数据) |
| 插件目录 | plugin-dir | jar 落位目录,必须与 -Dloader.path 一致 |
| 前端产物目录 | frontend-dir | 远程应用产物落位目录,必须与 nginx /remote-apps/ 的物理路径一致 |
| 生效 jar 记录 | active-plugins.txt | 记录每个应用当前生效哪个 jar,清理与加载都按它 |
| 路由墓碑 | retired pattern | 记录"这条路径曾经属于哪个应用",用于给出对症的 404 提示 |
| 服务定位器 | XxxServiceLocator | 宿主侧拿插件服务的代理(每次调用都反查) |
| 插件服务提供者 | PluginServiceProvider | 通用 SPI:按 appCode + 类型取插件 bean |
前端
| 术语 | 含义 |
|---|---|
| 远程应用 | 前端产物:一份独立的 ESM,宿主运行期 import() 加载 |
| 视图键 | 清单里 component = "remote:<appCode>/<视图键>" 的后半部分,与 views 的键对应 |
| 运行时垫片 | app-runtime/*.js:把共享依赖的导出转发到宿主实例的 ESM |
| 宿主运行时 | window.__APP_MARKET_RUNTIME__,通过 install(runtime) 传给应用 |
| 宿主 SDK 组件 | 白名单里的 K* 组件等,从 @dromara/components 取 |
| 入口清单 | GET /app/runtime/remote-apps 的返回,告诉宿主去哪加载应用 |
菜单与权限
| 术语 | 含义 |
|---|---|
| 菜单键 | menu_key,菜单的身份,幂等 upsert 的依据(小写 kebab,2–63 位) |
| 归属映射 | app_version_menu:(version_id, menu_id, menu_key),菜单归属的权威记录 |
| 过时菜单 | obsolete,新版本清单里已移除的菜单(应停用而非删除) |
| 菜单计划 | 菜单计划器算出的"每个 key 该新建还是复用哪个 menu_id" |
数据与迁移
| 术语 | 含义 |
|---|---|
| 迁移脚本 | migrations/*.sql,随应用包走,安装/升级时按文件名排序执行 |
| 迁移账本 | app_schema_history,键是 (app_code, script),含摘要与执行耗时 |
| 声明表 | 迁移脚本里 CREATE TABLE 的表名 —— 也是"彻底删除"的删表依据 |
| 种子数据 | 随包走的示例 / 必需基础数据、字典、站点配置 |
| 摘要 | checksum,脚本内容的 SHA-256(LF 归一化),用于拒绝"改了已执行的脚本" |
安全
| 术语 | 含义 |
|---|---|
| 产物白名单 | 包内允许出现哪些文件类型(挡结构性问题,不挡恶意代码) |
| 分离式签名 | 包根一个 signature.txt,覆盖除它自己以外的全部文件 |
| 签名模式 | off / warn / enforce |
| 签名就绪度 | GET /app/console/signature-readiness,回答"现在能不能切 enforce" |
| 共享令牌 | 目录服务 /app/catalog/** 的请求头令牌(X-Catalog-Token) |
状态
| 术语 | 含义 |
|---|---|
system / optional | 系统应用(不进市场、不可卸载)/ 可选应用(市场里可见) |
audience | 可见身份:platform / tenant / member |
home_path | 应用入口路由,如 /gallery |
| 任务状态 | app_install_task 的执行状态;进度与日志边跑边落库 |