feat: 完善匿名只读管理台
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
| 请求明细 | 分页查看请求结果、上游、Token、性能和成本,执行组合筛选 |
|
||||
| 价格配置 | 维护本地价格,并搜索、导入和确认更新 models.dev 参考价格 |
|
||||
|
||||
页面顶部统一提供实时/测试模式切换和 CPA 管理密钥输入。
|
||||
页面顶部保留 CPA 管理密钥输入。留空时页面进入匿名只读模式;输入有效密钥后进入管理模式。
|
||||
|
||||
## 用户 Key 页面
|
||||
|
||||
@@ -29,7 +29,7 @@ Key 列表展示:
|
||||
- 自动或严格上游路由;
|
||||
- 允许的模型规则。
|
||||
|
||||
管理员可以创建 Key、显示已归档项、刷新列表,并通过侧边抽屉完成以下操作:
|
||||
管理员可以创建 Key,并通过侧边抽屉完成以下操作。列表默认不显示已归档项:
|
||||
|
||||
- 修改名称和状态;
|
||||
- 选择自动路由或指定上游账号;
|
||||
@@ -44,7 +44,7 @@ Key 列表展示:
|
||||
|
||||
## 请求明细页面
|
||||
|
||||
请求明细默认每页显示 100 条,页码、上一页、下一页、选择列和刷新操作位于同一顶部工具区。
|
||||
请求明细默认每页显示 100 条,页码、上一页、下一页、查询过滤、列和刷新操作位于同一顶部工具区。查询过滤默认折叠,按需展开。
|
||||
|
||||
当前筛选项包括:
|
||||
|
||||
@@ -56,13 +56,13 @@ Key 列表展示:
|
||||
- Responses、Compact 或 Chat 端点;
|
||||
- 完整 Request ID。
|
||||
|
||||
筛选和分页由服务端执行。应用新筛选会返回第一页;刷新保持当前页和筛选条件。只有页面可见、位于请求明细且处于第一页时,实时模式才每三秒自动刷新,避免用户查看历史页时列表自行跳动。
|
||||
筛选和分页由服务端执行。应用新筛选会返回第一页;刷新保持当前页和筛选条件。只有页面可见、位于请求明细且处于第一页时才每三秒自动刷新,避免用户查看历史页时列表自行跳动。
|
||||
|
||||
“选择列”用于控制明细表可见字段,不改变服务端保存的数据。
|
||||
“列”用于控制明细表可见字段,不改变服务端保存的数据。
|
||||
|
||||
## 价格配置页面
|
||||
|
||||
价格页面采用左侧模型列表、右侧编辑区:
|
||||
价格页面采用左侧模型列表、右侧编辑区。未选择模型时右侧留空,点击左侧任意模型项后加载价格详情:
|
||||
|
||||
- 新增或选择一个精确模型名称;
|
||||
- 设置输入、缓存读取、缓存写入和输出的基础价格;
|
||||
@@ -79,30 +79,26 @@ Key 列表展示:
|
||||
|
||||
点击普通“保存价格”始终把该模型切换为手动配置。目录更新或下载失败不会改变本地价格,也不会影响用户请求。
|
||||
|
||||
## 实时模式
|
||||
## 匿名只读模式
|
||||
|
||||
实时模式连接当前 CLIProxyAPI 实例:
|
||||
直接打开资源 URL 且不填写管理密钥时,页面读取当前 CLIProxyAPI 实例的真实数据:
|
||||
|
||||
- 需要输入 CPA Management Key;
|
||||
- 所有读取来自真实管理接口;
|
||||
- 创建、编辑、归档、重置和价格保存会修改真实数据;
|
||||
- 请求明细和汇总反映真实请求事实。
|
||||
- 可以查看汇总、请求明细和已配置价格;完整用户 Key 管理表不展示;
|
||||
- 可以执行分页、筛选、刷新和选择显示列;
|
||||
- Key 只由服务端返回 `00******0000` 形式的脱敏值,不能复制完整 Key;
|
||||
- 历史 Usage 中可能存在的旧 `api_key` 值在匿名响应中统一清空;
|
||||
- 创建、管理、保存、删除、归档、重置、目录更新和参考价导入入口不显示。
|
||||
|
||||
管理台资源本身可以被 CPA 加载,但敏感管理接口仍由 CLIProxyAPI 的管理认证保护。
|
||||
匿名读取使用单独的 GET-only 插件资源,不复用受保护的完整 Key 接口,也不提供任何修改方法。
|
||||
|
||||
## 测试模式
|
||||
## 管理模式
|
||||
|
||||
测试模式用于管理员熟悉页面和验证交互,与真实数据完全隔离:
|
||||
输入有效 CPA Management Key 后,页面切换到受保护的 Management API:
|
||||
|
||||
- 不需要管理密钥;
|
||||
- 不访问任何真实 billing 管理接口;
|
||||
- 使用浏览器本地的模拟 Key、上游、请求、价格和账目;
|
||||
- 使用浏览器本地的参考价格样例测试搜索和导入,不访问 models.dev;
|
||||
- 创建、编辑、归档、重置和删除只修改本地模拟状态;
|
||||
- 提供放大的请求记录量,便于测试分页、筛选和表格布局;
|
||||
- 可以一键恢复初始测试数据。
|
||||
|
||||
测试数据保存在浏览器本地存储中,当前选择的实时/测试模式保存在当前会话。切换模式不会把测试数据导入真实数据库,也不会用真实数据覆盖测试样例。
|
||||
- 读取完整管理数据,脱敏 Key 可以点击复制完整值;
|
||||
- 显示创建、管理、归档、额度重置、价格保存和目录更新等操作;
|
||||
- 所有修改仍由 CLIProxyAPI 管理认证和 billing 服务端规则校验;
|
||||
- 密钥无效时回退匿名只读数据,不额外显示状态标签。
|
||||
|
||||
## 管理接口
|
||||
|
||||
@@ -134,6 +130,12 @@ Key 列表展示:
|
||||
/v0/resource/plugins/billing/ui
|
||||
```
|
||||
|
||||
匿名只读 JSON 复用同一个 GET-only 页面资源,页面通过 `view` 查询参数选择数据:
|
||||
|
||||
```text
|
||||
/v0/resource/plugins/billing/ui?view=keys
|
||||
```
|
||||
|
||||
管理接口返回结构化 JSON 和明确的 HTTP 状态码;未知路径返回 `not_found`,数据库不可用、请求字段错误等情况返回对应错误码和消息。
|
||||
|
||||
## 界面与数据原则
|
||||
@@ -141,7 +143,7 @@ Key 列表展示:
|
||||
- 管理台不直接操作 SQLite,只调用公开管理接口。
|
||||
- 统计卡片和图表使用服务端汇总,不从当前明细页推算。
|
||||
- 业务校验由服务端完成,前端校验只用于尽早提示。
|
||||
- 完整 Key 仅由受管理认证保护的 Key 接口返回;页面列表脱敏显示,点击后复制完整值。
|
||||
- 完整 Key 仅由受管理认证保护的 Key 接口返回;匿名接口只返回服务端生成的脱敏值。
|
||||
- 上游 Token、Cookie 和原始凭证不进入管理台。
|
||||
- 界面保持单个嵌入资源,避免运行时依赖外部 CDN。
|
||||
- 窄屏下表单和工具栏自动重排,明细表保留横向滚动能力。
|
||||
@@ -152,13 +154,13 @@ Key 列表展示:
|
||||
|
||||
- 提供统一管理页面;
|
||||
- 调用并呈现 billing Management API;
|
||||
- 管理实时和测试数据模式;
|
||||
- 提供匿名只读和密钥管理两种访问状态;
|
||||
- 提供紧凑、可筛选、可分页的操作界面。
|
||||
|
||||
本模块不负责:
|
||||
|
||||
- 绕过 CLIProxyAPI 管理认证;
|
||||
- 允许匿名调用任何修改接口;
|
||||
- 在浏览器中直接执行业务扣费或访问控制;
|
||||
- 保存真实业务数据;
|
||||
- 提供普通用户自助页面;
|
||||
- 提供普通用户自助修改能力;
|
||||
- 提供登录、角色和多管理员权限体系。
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
| 上游账号 | 严格路由时绑定的 CPA 上游账号 |
|
||||
| 模型规则 | 允许全部模型,或一组模型匹配规则 |
|
||||
|
||||
Key 值允许 1–256 个非空白、非控制字符。未手动填写时,系统生成以 `cpa_` 开头的随机值。
|
||||
Key 值允许 6–256 个非空白、非控制字符。未手动填写时,系统生成以 `cpa_` 开头的随机值。
|
||||
|
||||
## 状态规则
|
||||
|
||||
@@ -125,7 +125,7 @@ Key 值允许 1–256 个非空白、非控制字符。未手动填写时,系
|
||||
- 根据历史请求和价格配置获得模型名称建议;
|
||||
- 查看该 Key 的累计、今日和最近使用记录。
|
||||
|
||||
管理操作通过受 CLIProxyAPI Management Key 保护的管理接口完成。测试模式使用独立模拟数据,不读取或修改这里描述的真实 Key 和路由配置。
|
||||
管理操作通过受 CLIProxyAPI Management Key 保护的管理接口完成。匿名页面只能读取服务端脱敏后的真实数据,不返回完整 Key,也不能创建、修改、重置或归档。
|
||||
|
||||
## 模块边界
|
||||
|
||||
|
||||
Reference in New Issue
Block a user