mirror of
https://github.com/zyycn/codex-proxy-rs.git
synced 2026-11-06 08:06:19 +00:00
feat(plugins): provision owned resources and reconcile account changes (#292)
Co-authored-by: Zyy <zyycn@users.noreply.github.com> Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
@@ -139,11 +139,16 @@ flowchart LR
|
||||
正文按需读取,透传无需额外读取权限;转换和改写不能绕过 Core 的交付、取消与结算边界。
|
||||
数据面插件通过受管 HTTP 已发送或无法证明未发送时,Runtime 把该事实并入 Core 的请求副作用水位,后续不能按
|
||||
Provider 的 `not_sent` 结果透明重放。
|
||||
- **访问域不跨调用。** `network`、`models`、`accounts`、`data`、`requests`、`public_endpoints` 只开放对应资源域;
|
||||
- **访问域不跨调用。** `network`、`models`、`accounts`、`data`、`requests`、`public_endpoints`、`groups`、`keys` 只开放对应资源域;
|
||||
账号、HTTP、模型、私有状态和日志回调仍绑定有效父调用与阶段。管理页和 CLI 不预绑定 Client Key,模型调用按次
|
||||
选择当前 Key;页面 Responses 桥还复核精确实例目标和 `models` 域,并在等待与交付期间持续撤销检查。
|
||||
`frontend_authentication` 必须显式配置 principal 到 Key 的映射;公开登录回调使用一次性票据且不继承宿主回调权限。
|
||||
`data` 仅向管理和命令阶段提供账号基础投影与已有额度观测,不提供凭据、预测或 SQL,不进入客户端请求链。
|
||||
`data` 仅向管理、命令和维护阶段提供账号基础投影与已有额度观测,不提供凭据、预测或 SQL,不进入客户端请求链。
|
||||
- **维护只作用于已发布实例。** `maintenance` 由 Host 监督的 Runtime worker 调用,启用、恢复、配置发布和周期补偿共用幂等对账入口。
|
||||
发布通知只用于唤醒,事实始终来自当前快照与数据库;同实例串行,通知合并,停用与版本替换取消旧任务。
|
||||
自有分组和 Key 按实例、资源类型与稳定资源键登记;Admin 组织用例,Store 在同一事务复核当前启用 revision、
|
||||
制品授权与归属,并复用原生资源写入、审计和配置发布。无变化不递增 revision;插件不能接管管理员资源,
|
||||
成员变更不覆盖账号的其他分组。停用保留资源;删除实例只解除归属。
|
||||
- **版本切换保持数据一致。** 同一插件最多启用一个实例;每个实例与制品摘要保存最近启用时提交的配置、密钥和绑定,
|
||||
快照与实例修改共享事务,停用草稿不覆盖恢复点。版本切换优先恢复目标快照,否则合并缺失默认值并保留显式设置。
|
||||
私有状态按实例、schema 与配置版本隔离,写入使用精确记录版本。
|
||||
|
||||
+8
-2
@@ -34,7 +34,7 @@ flowchart LR
|
||||
确认安装后,若该插件还没有任何配置,宿主会:
|
||||
|
||||
1. 从 schema 填入普通配置默认值,不把敏感字段的默认值写入普通配置
|
||||
2. 为需要实例范围的贡献项生成默认绑定;管理页面和命令行按声明注册,入口认证不自动绑定
|
||||
2. 为需要实例范围的贡献项生成默认绑定;管理页面、命令行和自动维护按声明注册,入口认证不自动绑定
|
||||
3. 配置完整时直接启用并发布;仅缺少必填项时保存为停用并打开配置页
|
||||
|
||||
类型错误、非法 schema 或把敏感值混入普通配置会直接拒绝,不会伪装成“待配置”。更新已有插件时不会创建另一套配置,
|
||||
@@ -49,9 +49,11 @@ flowchart LR
|
||||
| `network` | 访问网络 |
|
||||
| `models` | 查询模型和 Client Key 基本信息并调用模型,可能产生消耗 |
|
||||
| `accounts` | 读取和修改账号,包括访问原始凭据 |
|
||||
| `data` | 仅在管理或命令入口只读全部账号的基础信息和已有额度观测,不含凭据或预测 |
|
||||
| `data` | 仅在管理、命令或维护入口只读全部账号的基础信息和已有额度观测,不含凭据或预测 |
|
||||
| `requests` | 查看和处理请求、响应、路由及账号选择 |
|
||||
| `public_endpoints` | 提供无需登录即可访问的资源与回调入口 |
|
||||
| `groups` | 创建插件自有分组,可将所有现有及未来账号加入或移出这些分组 |
|
||||
| `keys` | 创建绑定插件自有分组的 Client Key,不读取密钥明文 |
|
||||
|
||||
访问域不是操作列表或资源白名单。实例配置不能扩大、缩小或伪造制品声明;切换版本后使用目标制品已经接受的精确声明。
|
||||
插件进程与网关使用相同的系统身份,接受访问域不是操作系统沙箱,因此只安装可信来源的包。
|
||||
@@ -73,6 +75,9 @@ flowchart LR
|
||||
也不会自动删除历史配置、密钥或私有数据。升级前已经启用多套的插件会提示整理,宿主不会擅自选择停用对象,后续启用或更新
|
||||
必须收敛到一套配置。
|
||||
|
||||
声明自动维护的插件可自行准备已授权的分组和 Key,无需提供管理员密码。停用会停止维护,但保留这些资源及其原生启用状态;
|
||||
删除插件配置也不自动删除资源。需要撤销 Key 访问时,在 Key 管理中停用或删除相应 Key。
|
||||
|
||||
“已启用”表示配置已经发布,不是外部服务的健康证明。“等待生效”表示候选仍在准备;“需要处理”会显示发布或运行失败原因。
|
||||
并发编辑冲突时应重新加载当前 revision 后确认,不能覆盖另一窗口的修改。
|
||||
|
||||
@@ -81,6 +86,7 @@ flowchart LR
|
||||
| 功能 | 使用方式 |
|
||||
| --- | --- |
|
||||
| 管理页面 | 从插件详情或左侧插件导航打开;页面在隔离 iframe 中运行 |
|
||||
| 自动维护 | 启用、重启及账号等配置变化后自动对账;失败重试,周期补漏 |
|
||||
| 页面模型请求 | 每次选择 Client Key,经固定实例版本的 Responses 桥执行,返回原生 JSON 或 SSE |
|
||||
| 请求中间件、模型路由、账号调度、重试策略、请求观察 | 匹配功能范围的正常网关请求自动使用;重试策略故障时交给后续处理 |
|
||||
| 模型目录 | 启用后原子发布别名,列表与路由继承目标模型的能力和现有访问范围 |
|
||||
|
||||
Reference in New Issue
Block a user