文档
项目进度

Core Key 管理执行记录

创建、修改、启停、软删除和搜索的可运行闭环

2026-09-12 已在前一批真实登录/会话基础上完成 Key 创建、修改、启停、软删除和搜索。方法与正常返回沿用固定 new-api,Core 当前在显式身份模式中提供 13 条业务路由。

本批新增接口

方法与路径行为
POST /api/token/创建本人 Key;仅返回 success/message,刷新列表后取得 ID,不返回完整 Key
PUT /api/token/body.id 指定本人记录;普通更新替换可编辑字段,返回掩码记录
PUT /api/token/?status_only=1启停同一个接口的分支;任意非空参数(包括 false)只改状态,不覆盖其他字段
DELETE /api/token/:id本人 Key 软删除,重复删除返回失败,列表/详情/搜索/取回排除已删除记录
GET /api/token/searchkeyword/token 与既有分页;显式 % 通配、转义 _/!、可识别查询 sk- 前缀,结果只返回掩码

Key 管理接口规范候选包含 4 条方法/路径,status_only 属于 PUT 的分支,不重复计算一条接口。既有会话规范Key 读取规范继续有效;未发布 SDK。

写入边界

owner、Key、创建时间、使用量等字段由服务端持有,客户端传入这些字段不会改变它们。创建使用源 48 字符随机 Key,每账户最多 1000 个未删除记录;数量检查和写入在同一用户行锁事务中,避免并发超限。

每次写事务重新核对权威用户、会话、认证版本和撤销状态。审计和写入原子提交,审计失败则创建/更新/删除全部回滚。审计只存操作、账户、会话和记录 ID,不记录完整 Key。

价格组只允许空值继承或当前账户自己的组;暂不开放 auto 与其他价格组。普通更新会清空跨组重试/自动组设置;启用 Key 前也检查当前组仍可用。该限制等待后续目录与价格授权替代,不能让客户自由选择企业低价组。

额度是 Key 使用上限,不是钱包余额。固定源 5e14 验证上界不代表 OceanWay 人民币/积分兑换率。非法额度、过期时间、IP/CIDR、超长字段和无效 JSON 被拒绝;普通 PUT 不是 PATCH,省略可编辑字段会使用其零值。创建零值过期时间沿用 GORM 默认 -1。

验证结果

  • SQLite 与隔离 PostgreSQL:完整生命周期、只读字段保护、跨账户/未登录/错误 Origin 拒绝、状态恢复条件、价格组限制、搜索转义及掩码。
  • 同时创建接近上限的账户:只允许剩余名额数量成功,不超过 1000;已撤销会话无法继续写入。
  • 模拟审计表不可用:创建、普通更新、启停和删除均失败,数据库原状态保留。
  • 真实进程经登录调用创建/搜索/修改/启停/取回/删除全部通过,原登录/刷新/退出回归仍通过。
  • Go 竞态检查、静态检查、构建与 Contracts 完整性检查通过;临时数据库和测试进程在验证后清理。

证据:本机 coordination/core-key-management-execution.jsoncoordination/core-key-management-smoke.json。实现:platform/oceanway-core;行为差异见该仓 docs/token-management.md。本轮使用已有版本化表,没有修改已应用的 0001 迁移或现网数据。

下一步

Core 的单账户身份与 Key 管理基础已形成闭环。继续 AUTH-G01 跨站会话交接/产品回调,以及 Edge 模型发现、调用和流式接入;价格、预算和结算仍需在调用链中实现。

批量 Key 操作、自动组授权、共享 Redis 限流、多节点容量和真实供应网关联调尚未完成。Key 的模型/IP 配置已经存储,但 Edge 尚未执行这些准入限制;Key 管理成功不等于已能调用模型。

会话执行记录 · Core 计划 · 当前进度

On this page