feat: complete unified plugin admin v1.1.0
This commit is contained in:
@@ -9,11 +9,17 @@ HTTP API、管理员鉴权和 `custom_menu_items` 接入 Core;插件不导入
|
||||
|
||||
- `plugins/plugin-admin`:通用插件管理控制面,负责清单、签名、插件市场、
|
||||
下载入库、启用、停用、升级、回滚、删除、配置、健康检查、审计和菜单注入。
|
||||
- `plugins/subscription-admin`:可选的订阅管理业务插件。它不是插件管理
|
||||
控制面,只有安装、启用并应用菜单后才会出现。
|
||||
- `plugins/subscription-admin`:可选的订阅管理业务模块后端。它不是插件管理
|
||||
控制面;只有安装并启用后才会挂载到 Plugin Admin 的统一导航中。
|
||||
- `docs/`:插件框架、清单、边界、架构、开发和验收契约。
|
||||
|
||||
两个插件都是独立 Go module,可以分别构建和发布。生产环境应使用独立的
|
||||
Plugin Admin 的浏览器控制面位于 `plugins/plugin-admin/ui-vue`,基于腾讯
|
||||
TDesign Vue Next starter。运行 `plugins/plugin-admin/build-ui.sh` 会完成
|
||||
TypeScript/Vite 构建,并把本地打包的 TDesign、线性图标和 ECharts 嵌入
|
||||
Go 服务;官方 Core 的 `frontend/` 不参与构建。
|
||||
|
||||
控制面和业务模块后端可以独立构建和发布,但浏览器端只有一个 Plugin Admin
|
||||
登录入口。生产环境应使用独立的
|
||||
低权限服务账号、HTTPS 反向代理、签名包和稳定的 Core API 兼容基线。
|
||||
|
||||
## 推荐部署顺序
|
||||
@@ -48,12 +54,16 @@ Core 仓库,也不要让插件连接 Core PostgreSQL/Redis。
|
||||
|
||||
## 接入顺序
|
||||
|
||||
1. 启动 `plugin-admin` 和需要的业务插件,各自监听独立端口。
|
||||
2. 使用 Core 管理员账号登录插件服务;普通账号被拒绝。
|
||||
1. 启动 `plugin-admin` 和需要的业务模块后端,各自监听独立端口。
|
||||
2. 使用 Core 管理员账号登录 Plugin Admin 一次;普通账号被拒绝,业务模块不再单独登录。
|
||||
3. 在 `plugin-admin` 上传或从插件市场下载并校验业务插件包;包只进入“已入库,待启用”状态。
|
||||
4. 配置 loopback `service_url`,点击启用并完成健康检查后,插件才会启动。
|
||||
5. 预览、确认并应用插件声明的管理员菜单;停用后可删除插件。
|
||||
|
||||
订阅模块进入统一控制面后使用 `/modules/subscription/*` 路由。Plugin Admin
|
||||
通过同源 BFF 代理固定的套餐、订阅和用户只读接口,浏览器不再访问订阅
|
||||
服务的登录页,也不会创建第二个管理员会话。
|
||||
|
||||
Core 继续作为用户、余额、订阅、计费和用量账本的权威来源。插件浏览器端
|
||||
不持有 Core JWT、Admin Key 或其他服务密钥。
|
||||
|
||||
@@ -62,14 +72,22 @@ Core 继续作为用户、余额、订阅、计费和用量账本的权威来源
|
||||
Linux + systemd 环境可直接使用仓库内的安装脚本:
|
||||
|
||||
```sh
|
||||
curl -fsSL https://git.awaioi.com/awaioi/sub2api-add/raw/branch/main/deploy/install.sh \
|
||||
| sudo bash -s -- --plugin all
|
||||
RELEASE_SHA=COMMIT_SHA_40_HEX
|
||||
curl -fsSL "https://git.awaioi.com/awaioi/sub2api-add/raw/commit/${RELEASE_SHA}/deploy/install.sh" \
|
||||
| sudo env PLUGIN_REF=v1.1.0 PLUGIN_COMMIT_SHA="$RELEASE_SHA" bash -s -- --plugin all
|
||||
```
|
||||
|
||||
生产安装必须提供发布提交的 `PLUGIN_COMMIT_SHA`;上面的 `RELEASE_SHA`
|
||||
应从受信任的发布记录中复制,并与 `PLUGIN_REF` 对应。脚本默认使用
|
||||
`v1.1.0` tag,但 tag 本身不作为完整性证明。可变分支和未 pin 的 tag
|
||||
仅能在开发环境分别显式开启 `PLUGIN_ALLOW_MUTABLE_REF=true` 或
|
||||
`PLUGIN_ALLOW_UNPINNED_TAG=true`。
|
||||
|
||||
默认卸载并保留配置/数据:
|
||||
|
||||
```sh
|
||||
curl -fsSL https://git.awaioi.com/awaioi/sub2api-add/raw/branch/main/deploy/uninstall.sh \
|
||||
RELEASE_SHA=COMMIT_SHA_40_HEX
|
||||
curl -fsSL "https://git.awaioi.com/awaioi/sub2api-add/raw/commit/${RELEASE_SHA}/deploy/uninstall.sh" \
|
||||
| sudo bash -s -- --plugin all
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user