feat(plugins): 插件管理 - 区分系统与官方插件权限 (#329)
This commit is contained in:
@@ -18,7 +18,7 @@ description: 影策统一插件系统的扩展边界、Manifest 合同与 Eagle
|
||||
## 2. 设计目标
|
||||
|
||||
- 第三方开发者可以独立开发、构建和发布插件。
|
||||
- 用户可以查看插件信息、安装、启用、停用、更新和卸载插件。
|
||||
- 普通用户可以查看并启用官方应用插件;管理员统一安装、更新、停用和卸载系统协议及自定义插件。
|
||||
- 插件不直接依赖页面内部 React 组件和 Zustand store。
|
||||
- 宿主可以通过 `apiVersion` 和权限声明控制兼容性与风险。
|
||||
- 插件的错误、超时、权限拒绝和版本不兼容必须可见,不能静默降级。
|
||||
@@ -41,6 +41,18 @@ description: 影策统一插件系统的扩展边界、Manifest 合同与 Eagle
|
||||
|
||||
插件分类用于权限、市场筛选和能力发现,不直接决定代码目录结构。
|
||||
|
||||
### 4.0 管理分类与权限
|
||||
|
||||
插件的管理分类由宿主根据插件 ID 和安装来源计算,不能由上传包自行声明:
|
||||
|
||||
| 分类 | 典型插件 | 平台可用性 | 用户启用状态 | 配置范围 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 系统插件 | OpenAI、Gemini、即梦等协议 Provider | 管理员 | 不适用 | 管理员 |
|
||||
| 官方插件 | RunningHub、ComfyUI Bridge、Eagle、提示词优化器、肖像排查 | 管理员作为硬上限 | 每个用户独立 | 按插件为用户级或无配置 |
|
||||
| 自定义插件 | 管理员上传的 `.yingce-plugin` | 管理员 | 不适用 | 管理员 |
|
||||
|
||||
`/plugins` 是用户发现、个人启用和个人配置入口;`/admin/plugins` 是平台可用性、上传、卸载和启用人数入口。普通用户是否能看到只读的系统/自定义插件由“向普通用户显示系统插件”功能开关控制,但官方应用插件始终保留个人开关。
|
||||
|
||||
### 4.1 画布节点插件
|
||||
|
||||
新增自定义节点类型、节点内容渲染、节点详情面板、节点工具栏和节点输入输出资源。
|
||||
@@ -179,6 +191,8 @@ export interface PluginSetupApi {
|
||||
5. 卸载阶段清理插件存储、事件订阅、注册命令和可选的插件节点数据。
|
||||
6. 更新失败时保留旧版本,不能留下半启用状态。
|
||||
|
||||
平台状态与用户状态分开保存:`effectiveEnabled = platformAvailable && userEnabled`。协议和自定义插件只有平台状态。用户停用工作流插件后禁止新任务进入,但已经接收的任务和 Bridge 结果回传继续完成;管理员停用属于平台硬上限,同样不强行破坏已进入执行阶段的任务。
|
||||
|
||||
## 8. Eagle 外部素材来源方案
|
||||
|
||||
Eagle 插件的主分类是“素材与数据连接器”,可以附带一个 `EagleAsset` 画布节点。
|
||||
|
||||
Reference in New Issue
Block a user