Console 与 Admin 接口映射
需求 ID、真实路由、鉴权、响应差异和扩展缺口
本页的 new-api 路由是固定源码参考,不代表 OceanWay 已部署该接口。现行实现责任按 Core、API Edge、Contracts 分仓;已有契约默认沿用 new-api,新增/变更部分单独定义并验证。
核查日期:2026-09-12。固定提交 385d2dfd10d821b25c8a6766bd16eea248cb1652,工作区 references/new-api。以下“已有”指路由和代表性处理代码已读取;未启动新后台,未证明所有请求或权限运行正确。
产品行为以 Console PRD 和 Admin PRD 为准。本页管理接口依据,不将原型字段自动当作后台已返回字段。
最新调用目标
客户账户、Key、订单、积分和客户价格端点属于 OceanWay 客户后台;渠道、供应商、供应配置和任务插件等端点属于独立 new-api 网关。本表仍用于定位共同上游源码,不意味着两边使用同一个 API 地址,也不表示平台必须实时依赖网关所有私有管理端点。首期内部供应维护建议沿用网关原生后台。跨边界只约定必要的模型协议、任务、结果与用量,详见边界设计。
来源
读取约定
- 多数管理端接口使用
success/message/data包装,业务失败可能仍为 HTTP 200;前端同时处理 HTTP 状态与业务结果。会话和 Relay 错误格式不同,不能套用单一解包逻辑。 - 使用
GetPageQuery的列表请求采用p、page_size,响应为page/page_size/total/items;页大小上限 100。不是全部端点都分页。 /api/models的 UserAuth 仪表盘端点与/api/models/的 Admin 元数据列表分别注册,代理或客户端不得擅自统一末尾斜杠。- UserAuth 不表示任何凭据都适用于所有页面;会话管理额外要求浏览器 Session。模型 Key、管理 PAT 和用户会话是不同凭据。
- 权限返回可用于界面能力判断,实际授权仍由后台路由/处理器执行。不能把宽权限接口暴露后仅在前端减字段。
页面范围与操作台账
Console 首期范围与 Admin 首期范围共 39 个页面操作,分别绑定 CA-C / CA-A 操作 ID、CON / ADM 需求和固定 API ID。以下旧表为来源说明;供应类行不是 OceanWay Admin 首期页面范围。
Console 映射
| 需求 | 已有端点 | 核查到的限制/待验证项 |
|---|---|---|
| CON-01 | GET /api/status;POST /api/user/register、/api/user/login、/api/user/login/2fa、/api/user/login/verify | 按配置和实际挑战分支;密码加密与第三方登录流程进一步按处理器对齐 |
| CON-01 | POST /api/user/auth/refresh、/api/user/auth/logout | Origin 校验与 Cookie;不是现成多子站 SSO |
| CON-02/09 | GET、PUT /api/user/self | 本人 DTO 含身份、quota、used_quota、request_count、setting、permissions;不含密码、管理 PAT 或管理员备注 |
| CON-02/05 | GET /api/data/self、/api/data/flow/self;GET /api/log/self/stat | 数据点、周期和指标含义需逐端点映射;不承诺产品收入/成本 |
| CON-03 | GET、POST、PUT /api/token/;GET、DELETE /api/token/:id | 列表和详情返回掩码;对象按当前用户取得 |
| CON-03 | GET /api/token/search;POST /api/token/:id/key | 列表掩码旁复制按钮触发取回完整 Key,然后写剪贴板;不增加强制详情步骤 |
| CON-03 | PUT /api/token/?status_only=true;GET /api/token/auto-groups | 启停和自动分组;字段、状态映射按实际返回;过期/耗尽不可直接恢复 |
| CON-04 | GET /api/user/models;POST /pg/chat/completions | 是否保留待定;uumi 复用需核对接口,不假定此路由覆盖全部功能 |
| CON-05 | GET /api/log/self | type、start_timestamp、end_timestamp、token_name、model_name、group、request_id、upstream_request_id |
| CON-05 | GET /api/log/self/stat | 返回 quota/rpm/tpm;统计不接收 request_id、upstream_request_id,不能假装所有筛选可同步 |
| CON-06 | GET /api/task/self;GET /api/task/:task_id/artifacts | 本人任务列表及受控结果;platform/task_id/status/action/时间筛选;不是产品工作流编辑 |
| CON-07 | GET /api/user/topup/info、/api/user/topup/self | 支付能力与记录;实际订单查询/恢复范围需接入验证 |
| CON-07 | POST /api/user/amount、/api/user/pay;POST /api/user/stripe/amount、/api/user/stripe/pay 等 | 按选定提供方接入报价/创建;不一次承诺所有渠道可用 |
| CON-07 | POST /api/user/topup | 兑换码请求 key;不是通用创建充值订单 |
| CON-08 | GET /api/subscription/plans、/api/subscription/self | self 返回 billing_preference、subscriptions、all_subscriptions |
| CON-08 | PUT /api/subscription/self/preference;POST /api/subscription/balance/pay 及提供方支付端点 | 余额购买读取 plan_id;重试与重复购买需实测 |
| CON-09 | PUT /api/user/setting;POST /api/oauth/email/bind/start、/api/oauth/email/bind/resend、/api/oauth/email/bind | 通知设置与邮箱验证分开;方法不可混用 |
| CON-10 | GET /api/user/sessions;DELETE /api/user/sessions/:sid;POST /api/user/sessions/revoke-others | 处理器 requireBrowserSession;撤销当前会话返回 current |
| CON-10 | GET /api/user/2fa/status;POST /api/user/2fa/setup、enable、disable、backup_codes;Passkey/绑定端点 | 表中省略项须按路由补全请求规范,不能拼接猜测凭据协议 |
| CON-10 | GET /api/audit/self | self 范围强制当前用户;username 查询不能越权 |
| CON-12 | GET /api/user/models、/api/user/self/groups、/api/pricing;OW-01 新增提案 | 可用模型与参考价已有;本人完整协议价仍需扩展 |
| CON-01/10/11、AUTH-G01 | 全局登录已确认;已有会话 API + OW-07/08 交接提案 | GAP-01/05;必须实现全平台恢复身份,原型使用统一模拟上下文 |
Token 表单真实字段包括 name、expired_time、remain_quota、unlimited_quota、model_limits_enabled、model_limits、allow_ips、group,以及自动组相关设置。名称上限按服务端长度规则验证。创建处理器返回 {success:true,message:""},未返回 ID 或密钥;必须正视此响应差异。
Admin 映射
| 需求 | 已有端点 | 权限及限制 |
|---|---|---|
| ADM-01/08 | GET /api/log/、/api/log/stat、/api/data/、/api/data/users、/api/data/flow | Admin;各统计含义不同,不能视为统一财务报表 |
| ADM-02 | GET /api/user/、/api/user/search、/api/user/:id;POST/PUT /api/user/ | Admin;详细字段与可管理目标进一步受处理器限制 |
| ADM-02/06/10 | POST /api/user/manage | id/action/value/mode;含账户启停、角色升降及 add_quota 等;不是通用业务命令接口 |
| ADM-03 | GET /api/channel/、/api/channel/:id | Admin + channel.read |
| ADM-03 | GET /api/channel/test/:id;POST /api/channel/:id/status、/api/channel/status/batch | Admin + channel.operate;GET 测试有动作副作用,不能预取执行 |
| ADM-03 | POST、PUT /api/channel/ | 创建用 sensitive_write;普通更新路由用 write,敏感字段还需核对处理器 |
| ADM-03 | POST /api/channel/:id/key | Root + 限流 + 禁缓存 + 安全验证 |
| ADM-04 | GET/POST/PUT /api/models/、GET/DELETE /api/models/:id;GET/POST/PUT /api/vendors/ | Admin;目录和公开 pricing 区分 |
| ADM-04 | GET /api/models/sync_upstream/preview;POST /api/models/sync_upstream | 预览与应用不同操作;不自动应用所有差异 |
| ADM-05/12 | GET/PUT /api/option/;GET/PATCH /api/option/model_pricing;POST /api/option/model_pricing/preview | Root;是否能覆盖所需定价场景需验证 |
| ADM-06 | GET /api/user/topup;POST /api/user/topup/complete | Admin;补单读取 trade_no;业务理由/稳定操作 ID 不在已核请求中 |
| ADM-07 | GET/POST /api/subscription/admin/plans;PUT/PATCH /api/subscription/admin/plans/:id | Admin;套餐表单后端强制币种 USD |
| ADM-07 | GET/POST /api/subscription/admin/users/:id/subscriptions;POST /api/subscription/admin/user_subscriptions/:id/invalidate | Admin;分配和失效与删除不同 |
| ADM-07 | POST /api/subscription/admin/plans/:id/subscriptions/reset、/api/subscription/admin/users/:id/subscriptions/reset | Admin;范围/重复执行/部分失败需验证 |
| ADM-08 | GET /api/task;GET /api/task/:task_id/artifacts | 全任务列表 Admin;结果访问还有处理器授权;不能通过 UserAuth 路由标记推断任意用户可看 |
| ADM-09 | GET/POST/PUT /api/plugin/task;GET /api/plugin/task/runtime/status | Root;上传及列表 |
| ADM-09 | GET /api/plugin/task/:key/versions;POST activate、status、dryrun 等固定路由 | Root;版本生命周期,完整路径见已核主要路由 |
| ADM-09 | GET /api/task_plugin_options | Admin + task_plugin.bind;不代表可管理插件生命周期 |
| ADM-10 | GET /api/authz/catalog;GET /api/user/self 的权限;用户管理处理器的授权更新 | 目录读取用 Admin;不是已证明完整自定义角色 CRUD |
| ADM-11 | GET /api/audit | Admin + audit.read;非 Root 不能取得 Root 审计 |
| ADM-12 | GET /api/system-info/instances;GET /api/system-task/list;POST /api/system-task/log-cleanup | Root;实例与维护任务,不是完整监控平台 |
必须保留的响应差异
- 日志旧
/api/log/search与/api/log/self/search虽在路由注册,处理器明确返回已废弃;新页面用列表查询参数。 - 任务列表使用 platform、task_id、status、action、时间;管理员另有 channel_id。未发现该列表读取 user_id 或产品字段,用户任务聚合不能直接套上游现有筛选。
- 调用统计只返回 quota/rpm/tpm 等有限字段,不直接返回利润、全站失败率、逐产品预算或完整财务账本。
- 订阅 self 查询在部分读取错误下返回空数组;产品要区分“确无订阅”和“读取失败”时需要进一步改进错误可观测性,不能仅凭空数组做账务结论。
- 补单有订单处理和锁;人工额度调整有持久变更与审计,但请求尚无业务操作 ID/理由。上述机制不是通用跨实例幂等证明,仍需故障测试。
缺口与负责人模块
| 缺口 | 对应需求 | 需交付内容 | 原型处理 |
|---|---|---|---|
| GAP-01 | CON-01/10/11 | 身份模块:任一平台发起全局登录、全平台识别与返回、会话同步/撤销传播、服务端委托协议 | 模拟登录及失效,标明待接入 |
| GAP-02 | CON-03 | Token 模块:若需创建后直接展示,返回确定 ID;核对重复创建恢复 | 先列表选定记录查看;增强路径标待扩展 |
| GAP-03 | CON-07/08、ADM-06/07 | 账务模块:订单查询、操作理由、持久去重与结果恢复、人民币/积分规则与客户价格 | 模拟 pending/unknown,不承诺已到账或可自动退款 |
| GAP-04 | ADM-02/10/11 | 授权模块:扩展员工角色需要收窄宽 Admin 接口;逐动作审计覆盖 | 使用当前 Admin/Root;拟角色明确标注 |
| GAP-05 | CON-05/06/11、ADM-02/08 | 调用模块与产品:产品/业务任务/请求/费用关联;可授权查询 | 用明确虚拟关联,缺失时退回任务 ID 查找 |
| GAP-06 | CON-02/05、ADM-01 | 查询模块:相同筛选的聚合、产品归属统计、数据更新时间和错误状态 | 无数据不填零、不算虚构利润 |
| GAP-07 | CON-06、ADM-08/09 | 执行模块:取消、重试、恢复的命令语义与费用影响 | 查询可用;其他按钮标未接入 |
| GAP-08 | ADM-05/07/09/12 | 配置模块:生效范围、价格/插件版本、在途兼容、批量结果 | 显示范围与实际结果,不虚构回滚或审批接口 |
缺口的名称是需求标识,不是已发布的 API。新增路径、DTO 和状态枚举需在对应工作包定义并接受验证,再更新本页。不要一次新建第二套账户/钱包后端。
下一轮 API 文档交付
逐个被首期页面使用的端点补:来源提交、请求方法与完整路径、身份、字段类型/必填/单位、成功及错误样例、分页与筛选、重试语义、关联需求及运行证据。先完成 CON-01/03/07/12 与 ADM-02/05/06 的端点,覆盖首个客户和运营闭环;其他能力继续列入范围,不自动取消。
本轮新增的产品缺口
| ID | 页面与必须补齐的要求 | API 依据与边界 |
|---|---|---|
| GAP-09 | CON-12、ADM-02/05:本人有效价、企业绑定、覆盖/回退、版本与有效期 | OW-01/02/03 仅为提案;通用模型价和组倍率不足以证明全部满足 |
| GAP-10 | CON-07、ADM-02/06:订单精确状态及按用户定位 | topup/self 与 topup 目前读取 keyword/分页,未证实精确 user_id/状态过滤;新增或适配协议待定 |
| GAP-11 | ADM-07、CON-07:充值商品与周期权益分离 | 现有 Option/充值配置作为基础;商品版本、适用客户、购买/赠送来源须补齐,不另把 USD 周期套餐当人民币充值包 |
原有 GAP-01 至 GAP-08 继续有效。GAP-09/10/11 分别细化原定价、订单和商品缺口,使用产品操作 ID 关联,不能将这些缺口当作既有接口已完成。