omni-api-keys について
omni-api-keysは、運用担当者向けのOmniRoute APIキー管理スキルです。キーのライフサイクル、キー単位のアクセスと使用量の制御、複数キーの権限を扱うグループ管理に対応します。
主な機能
- 01キーの作成、一覧、更新、失効
- 02キーのローテーションと再生成
- 03モデルアクセスと支出上限の設定
- 04キーに関連付けられたデバイスの追跡
- 05キーグループと権限の管理
活用シーン
- 01プロキシアクセス用APIキーの発行
- 02キーの許可モデルの制限
- 03漏えいしたキーのローテーションや失効
- 04共通権限によるキーの整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ cheaper-inference/ 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 が返されます。 制限モードに切り替えると、許可リストは追加した項目の正味の集合のみになります(少なくとも 1 項目が必要です)。 このロックの対象外では、同時に実行される /api/keys/{id} への PATCH 呼び出しによってポリシーが完全に上書きされます。
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"
ペイロード
リクエスト/レスポンスのスキーマの詳細については、完全な OpenAPI 仕様(GET /api/openapi/spec または docs/openapi.yaml)を参照してください。