コンテンツにスキップ

MCP API キー更新

メソッド

RESTメソッドを採用しています。

HTTPメソッド

PUT: MCP APIキー情報更新

命名規則

クエリパラメータとノードの命名を統一し、可読性を向上させるため、リクエスト時のURIとJSON内のノードにはsnake_caseを使用します。

リクエストとレスポンス

ヘッダー

メタ情報はレスポンスボディではなく、HTTPヘッダーに設定されます。

リクエストヘッダー

  • Authorization
  • Content-Type
  • Accept
  • Accept-language

レスポンスヘッダー

  • Content-Type

MCP APIキー情報更新

URI

PUT /v1/organizations/{organization_id}/projects/{project_id}/mcp_api_key/{mcp_api_key_id}

パスパラメータ

名前 型 必須 説明
organization_id integer 必須 組織ID
project_id integer 必須 プロジェクトID
mcp_api_key_id integer 必須 MCP APIキーID

リクエストボディ

リクエストボディはJSONです。

{
  "name": "Updated API Key Name",
  "permission": 1,
  "expiresAt": 1735689600000
}

リクエストパラメータ

名前 型 必須 説明
name string 任意 APIキーの名前(最大255文字)
permission integer 任意 アクセス権限(0: READ、1: WRITE)
expiresAt integer 任意 有効期限(エポックミリ秒、nullの場合は無期限)

レスポンス

レスポンスはJSONです。

{
  "id": 1,
  "userId": 1,
  "projectId": 2,
  "name": "Updated API Key Name",
  "keyPrefix": "abc123",
  "permission": 1,
  "expiresAt": 1735689600000,
  "revokedAt": null,
  "lastUsedAt": 1234567890000,
  "createdAt": 1234567890000,
  "updatedAt": 1234567899999,
  "deletedAt": null,
  "createdBy": "user-cognito-sub",
  "updatedBy": "updater-cognito-sub",
  "deletedBy": null
}

認証

認証はAmazon Cognitoから発行されるJSON Web Tokens (JWT)を使用して行われます。

例外処理

例外処理のステータスコードは以下の通りです。

説明 ステータスコード ステータス名
無効なリクエスト(名前が空、長すぎるなど) 400 Bad Request
認証情報不足 401 Unauthorized
実行権限不足 403 Forbidden
MCP APIキーが見つかりません 404 Not Found
内部サーバーエラー 500 Internal Server Error

処理フロー

  1. パスパラメータから組織ID、プロジェクトID、MCP APIキーIDを抽出
  2. リクエストボディから更新パラメータを抽出
  3. ユーザーがプロジェクトへのアクセス権限を持つことを確認
  4. キーが存在し、削除されていないことを確認
  5. キーが指定されたプロジェクトに関連していることを確認
  6. ユーザーがキーを更新する権限があることを確認
  7. データベースでキーを更新
  8. 更新日時と更新者を設定
  9. フォーマットされた更新後のキー情報を返す

制約

  • 無効化されたキー(revokedAtがnullでない)は更新できません
  • 削除されたキー(deletedAtがnullでない)は更新できません
  • userId、projectId、keyPrefix、scopeは更新できません

詳細フローチャート

flowchart TD
    Start([PUT Request]) --> Auth[認証・パラメータ取得]
    Auth --> Service[Service Layer]
    Service --> AccessCheck[権限チェック]
    AccessCheck --> HasAccess{Write権限?}
    HasAccess -->|なし| Err404[404 Not Found]
    HasAccess -->|あり| CheckExist[既存確認]
    CheckExist --> Exists{存在?}
    Exists -->|なし| Err404
    Exists -->|あり| CheckOwner{所有者確認}
    CheckOwner -->|NG| Err404
    CheckOwner -->|OK| UpdateDB[DB更新]
    UpdateDB --> Success[200 OK]