开发指南生命周期插件开发
插件注册与管理
生命周期插件管理服务的定义字段、创建、更新、查询、停用和响应契约。
插件注册记录是插件服务目录,不是模块或 Bundle 版本内容。插件提供方先部署 Endpoint,再通过
平台管理入口创建注册记录。模块兼容绑定只引用 pluginId 和非敏感配置,不复制 executeUrl。
管理入口的能力状态
当前插件定义管理由平台受控入口使用,还没有对外开放的通用开发者 API 或 CLI 注册命令。 本页定义当前数据契约,不授权绕过平台入口直接访问内部服务。
定义字段
| 字段 | 类型 | 创建时 | 语义 |
|---|---|---|---|
id | integer | 平台生成 | 注册记录主键,用于精确查询、更新和停用 |
userId | integer/null | 平台生成 | 记录所有者;null 表示平台全局定义 |
pluginId | string | 必填 | 插件稳定逻辑标识,绑定和执行用它解析注册记录 |
name | string | 必填 | 面向管理界面的名称 |
executorType | string | 可选 | 历史兼容字段,缺省为 HTTP_ENDPOINT;当前不参与执行分发 |
executeUrl | string | 必填 | 插件 Endpoint 的完整 http:// 或 https:// URL |
protocolVersion | string | 可选 | 声明协议版本,缺省为 v1;当前执行链还未强制校验 |
supportedHooks | string[] | 可选 | 插件支持的 Hook;管理服务会去除空值和重复值并转为大写 |
requiredInterfaces | string[] | 可选 | 声明需要的上下文块;当前执行链还未强制校验 |
defaultConfig | object | 可选 | 非敏感默认配置,缺省为空对象 |
description | string/null | 可选 | 插件用途、外部资源所有者和边界说明 |
createTime | datetime/null | 平台生成 | 创建时间 |
updateTime | datetime/null | 平台生成 | 最后更新时间 |
isDeleted | integer | 平台生成 | 软删除标记;正常查询只返回未停用记录 |
pluginId 必须按插件能力命名,不得使用环境 ID、工作区 ID、主机、端口或其他可变部署事实。
当前实现允许平台全局定义和当前所有者定义;新增记录应保持 pluginId 唯一,不应依赖重复记录的
查询顺序。
管理操作
| 操作 | 请求 | 成功数据 |
|---|---|---|
| 创建 | pluginId、name、executeUrl 必填,其余创建字段可选 | 完整插件定义 |
| 更新 | id 必填,其余可写字段均可选 | 更新后的完整插件定义 |
| 查询单条 | id 必填 | 完整插件定义 |
| 查询列表 | includeGlobal 可选,缺省为 true | 当前所有者定义,以及按选项包含的平台全局定义 |
| 停用 | id 必填 | 空对象;底层使用软删除 |
查询、更新和停用都必须经平台入口校验当前操作者对记录的访问权限。请求体中的同名用户字段 不能代替可信调用身份。
统一响应
管理操作成功响应使用完整 CModel envelope:
{
"errorCode": "0",
"value": "success",
"systemCurrentTime": 1786665600000,
"data": {}
}失败响应至少包含 errorCode、value 和 systemCurrentTime;HTTP 状态用于区分请求错误、未授权、上游插件错误
和服务内部错误。
敏感字段边界
当前单条和列表查询会返回完整 executeUrl 和 defaultConfig,不进行字段脱敏。因此:
defaultConfig只能保存非敏感策略、字段名、功能开关和公开引用。- 不得保存 token、密码、API Key、数据库凭据或可直接使用的签名材料。
executeUrl不得携带 URL userinfo、query token 或临时签名。- 插件服务的凭据必须保留在该服务自己的受控配置边界内。
如果已有记录在 defaultConfig 中保存敏感值,不应用文档补充代替治理;应由配置所有者轮换凭据、移出敏感值,
并核对历史访问范围。