chore: initialize standalone business plugin repository
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# Sub2API Business Plugins
|
||||
|
||||
独立的 Sub2API 业务插件仓库。插件作为独立服务运行,通过 Sub2API 的公开
|
||||
HTTP API、管理员鉴权和 `custom_menu_items` 接入 Core;插件不导入 Core
|
||||
源码、不连接 Core 数据库,也不修改 Core 的 Go、Vue、迁移或现有
|
||||
`.s2plugin` transport ABI。
|
||||
|
||||
## 目录
|
||||
|
||||
- `plugins/plugin-admin`:通用插件管理控制面,负责清单、签名、安装、启用、
|
||||
停用、升级、回滚、卸载、配置、健康检查、审计和菜单注入。
|
||||
- `plugins/subscription-admin`:可选的订阅管理业务插件。它不是插件管理
|
||||
控制面,只有安装、启用并应用菜单后才会出现。
|
||||
- `docs/`:插件框架、清单、边界、架构、开发和验收契约。
|
||||
|
||||
两个插件都是独立 Go module,可以分别构建和发布。生产环境应使用独立的
|
||||
低权限服务账号、HTTPS 反向代理、签名包和稳定的 Core API 兼容基线。
|
||||
|
||||
## 快速验证
|
||||
|
||||
```sh
|
||||
(cd plugins/plugin-admin && go test -race ./... && go vet ./...)
|
||||
(cd plugins/subscription-admin && go test -race ./... && go vet ./...)
|
||||
(cd plugins/subscription-admin && go run ./tools/manifestcheck)
|
||||
```
|
||||
|
||||
生成订阅插件包:
|
||||
|
||||
```sh
|
||||
(cd plugins/subscription-admin && ./package.sh)
|
||||
```
|
||||
|
||||
构建脚本只生成本地二进制或 `dist/` 包,不将它们提交到仓库。
|
||||
|
||||
## 接入顺序
|
||||
|
||||
1. 启动 `plugin-admin` 和需要的业务插件,各自监听独立端口。
|
||||
2. 使用 Core 管理员账号登录插件服务;普通账号被拒绝。
|
||||
3. 在 `plugin-admin` 上传并校验业务插件包,配置 loopback `service_url`。
|
||||
4. 启用插件并完成健康检查。
|
||||
5. 预览、确认并应用插件声明的管理员菜单。
|
||||
|
||||
Core 继续作为用户、余额、订阅、计费和用量账本的权威来源。插件浏览器端
|
||||
不持有 Core JWT、Admin Key 或其他服务密钥。
|
||||
Reference in New Issue
Block a user