MCP API キー更新
メソッド
RESTメソッドを採用しています。
HTTPメソッド
PUT: MCP APIキー情報更新
命名規則
クエリパラメータとノードの命名を統一し、可読性を向上させるため、リクエスト時のURIとJSON内のノードにはsnake_caseを使用します。
リクエストとレスポンス
ヘッダー
メタ情報はレスポンスボディではなく、HTTPヘッダーに設定されます。
リクエストヘッダー
AuthorizationContent-TypeAcceptAccept-language
レスポンスヘッダー
Content-Type
MCP APIキー情報更新
URI
パスパラメータ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
| organization_id | integer | 必須 | 組織ID |
| project_id | integer | 必須 | プロジェクトID |
| mcp_api_key_id | integer | 必須 | MCP APIキーID |
リクエストボディ
リクエストボディはJSONです。
リクエストパラメータ
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
| 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 |
処理フロー
- パスパラメータから組織ID、プロジェクトID、MCP APIキーIDを抽出
- リクエストボディから更新パラメータを抽出
- ユーザーがプロジェクトへのアクセス権限を持つことを確認
- キーが存在し、削除されていないことを確認
- キーが指定されたプロジェクトに関連していることを確認
- ユーザーがキーを更新する権限があることを確認
- データベースでキーを更新
- 更新日時と更新者を設定
- フォーマットされた更新後のキー情報を返す
制約
- 無効化されたキー(
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]