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. 01API キーのローテーションまたは失効
  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 が返されます。 制限モードに切り替えると、許可リストは追加した項目の正味の集合のみになります(少なくとも 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)を参照してください。

コメント