mcpField
O
omni-api-keys

omni-api-keys

github.com/cheaper-inferenceセキュリティ82.3k1.0k 回インストール今日更新
リポジトリ

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/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)を参照してください。

コメント