mcpField
O
omni-api-keys

omni-api-keys

github.com/diegosouzapw安全82.2k905 次安装今天更新
代码仓库

关于 omni-api-keys

omni-api-keys 是用于管理 OmniRoute API 密钥及其访问策略的技能,涵盖密钥生命周期、按密钥设置限制、设备记录,以及带权限的密钥组管理。

主要功能

  1. 01创建、列出、轮换和撤销密钥
  2. 02设置范围、上限和到期时间
  3. 03管理模型与组合的访问权限
  4. 04跟踪密钥关联的设备
  5. 05管理密钥组及其权限

适用场景

  1. 01轮换或撤销 API 密钥
  2. 02限制密钥可访问的模型
  3. 03查看密钥记录的设备
  4. 04通过组权限组织密钥

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/diegosouzapw/omniroute --skill omni-api-keys

安装后在 Claude Code 中输入/omni-api-keys确认已加载。

详细介绍

概述

创建、列出、轮换和撤销 OmniRoute API 密钥。控制每个密钥的作用域、支出限额和有效期。密钥用于控制对所有代理和管理端点的访问。

身份验证

所有请求都需要有效的 Bearer 令牌或会话 Cookie。通过 POST /api/auth/login 获取令牌,或在本地开发时配置 REQUIRE_API_KEY=false。

端点

GET /api/keys

列出 API 密钥

curl http://localhost:20128/api/keys \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/keys

创建 API 密钥

curl -X POST http://localhost:20128/api/keys \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
GET /api/keys/{id}

获取 API 密钥

curl http://localhost:20128/api/keys/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
PATCH /api/keys/{id}

更新 API 密钥

curl -X PATCH http://localhost:20128/api/keys/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
DELETE /api/keys/{id}

删除 API 密钥

curl -X DELETE http://localhost:20128/api/keys/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/keys/{id}/access

以原子方式添加或移除 API 密钥允许使用的模型和组合

添加或移除 API 密钥允许使用的模型和组合,避免更新丢失。 按密钥 ID 使用进程内异步锁进行串行化。 允许所有模型的密钥(modelAccessMode: all)或允许所有组合的密钥(allowedCombos 中包含 'combo/*'), 添加新模型或组合时必须设置 switchToRestricted: true,否则返回 409 Conflict。 切换到受限模式时,允许列表将精确包含净新增的项目(至少需要一个)。 直接并发调用 PATCH /api/keys/{id} 会在此锁之外完全覆盖策略。

curl -X POST http://localhost:20128/api/keys/{id}/access \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
GET /api/keys/{id}/devices

列出 API 密钥对应的设备

列出内存设备跟踪器为 API 密钥跟踪的不同设备(经过遮蔽的 IP + User-Agent 指纹)。IP 在存储前会被遮蔽;此路由永远不会看到原始客户端 IP。

curl http://localhost:20128/api/keys/{id}/devices \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/keys/{id}/regenerate

POST keys › › regenerate

curl -X POST http://localhost:20128/api/keys/{id}/regenerate \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
GET /api/keys/{id}/reveal

GET keys › › reveal

curl http://localhost:20128/api/keys/{id}/reveal \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/keys/{id}/usage-limits

GET keys › › usage limits

curl http://localhost:20128/api/keys/{id}/usage-limits \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/keys/groups

GET keys › groups

curl http://localhost:20128/api/keys/groups \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/keys/groups

POST keys › groups

curl -X POST http://localhost:20128/api/keys/groups \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
GET /api/keys/groups/{id}

GET keys › groups ›

curl http://localhost:20128/api/keys/groups/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
PUT /api/keys/groups/{id}

PUT keys › groups ›

更新组。将 isActive 设为 false 会暂停其允许规则,同时保留成员限制和拒绝规则。其他启用的组仍可授予访问权限,除非有匹配的拒绝规则。仅属于非活动组的密钥不会获得组授予的权限。不属于任何组的密钥不受组策略限制;但仍受每个密钥自身限制。

curl -X PUT http://localhost:20128/api/keys/groups/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
DELETE /api/keys/groups/{id}

DELETE keys › groups ›

curl -X DELETE http://localhost:20128/api/keys/groups/{id} \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/keys/groups/{id}/keys

GET keys › groups › › keys

curl http://localhost:20128/api/keys/groups/{id}/keys \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/keys/groups/{id}/keys

POST keys › groups › › keys

curl -X POST http://localhost:20128/api/keys/groups/{id}/keys \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
DELETE /api/keys/groups/{id}/keys

DELETE keys › groups › › keys

curl -X DELETE http://localhost:20128/api/keys/groups/{id}/keys \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
GET /api/keys/groups/{id}/permissions

GET keys › groups › › permissions

curl http://localhost:20128/api/keys/groups/{id}/permissions \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"
POST /api/keys/groups/{id}/permissions

POST keys › groups › › permissions

curl -X POST http://localhost:20128/api/keys/groups/{id}/permissions \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
DELETE /api/keys/groups/{id}/permissions

DELETE keys › groups › › permissions

curl -X DELETE http://localhost:20128/api/keys/groups/{id}/permissions \
  -H "Authorization: Bearer $OMNIROUTE_TOKEN"

负载

详细的请求/响应架构请参阅 GET /api/openapi/spec 获取完整的 OpenAPI 规范,或查看 docs/openapi.yaml。

评论

支持 Markdown