コンテンツにスキップ

MCP API キー削除

メソッド

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

HTTPメソッド

DELETE: MCP APIキー削除(論理削除)

命名規則

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

リクエストとレスポンス

ヘッダー

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

リクエストヘッダー

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

レスポンスヘッダー

  • Content-Type

MCP APIキー削除

URI

DELETE /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です。

{
  "id": 1,
  "userId": 1,
  "projectId": 2,
  "name": "mcp for project A",
  "keyPrefix": "abc123",
  "permission": 0,
  "expiresAt": 1735689600000,
  "revokedAt": null,
  "lastUsedAt": 1234567890000,
  "createdAt": 1234567890000,
  "updatedAt": 1234567899999,
  "deletedAt": 1234567899999,
  "createdBy": "user-cognito-sub",
  "updatedBy": "user-cognito-sub",
  "deletedBy": "deleter-cognito-sub"
}

レスポンスフィールド

名前 型 説明
id integer MCP APIキーID
userId integer | null ユーザーID(スコープがuserの場合)
projectId integer | null プロジェクトID(スコープがprojectの場合)
name string APIキーの名前
keyPrefix string キープレフィックス
permission integer アクセス権限(0: READ、1: WRITE)
expiresAt number | null 有効期限(エポックミリ秒)
revokedAt number | null 無効化日時(エポックミリ秒)
lastUsedAt number | null 最終使用日時(エポックミリ秒)
createdAt number 作成日時(エポックミリ秒)
updatedAt number 更新日時(エポックミリ秒)
deletedAt number 削除日時(エポックミリ秒)
deletedBy string 削除者のCognito sub

認証

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

例外処理

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

説明 ステータスコード ステータス名
認証情報不足 401 Unauthorized
実行権限不足 403 Forbidden
MCP APIキーが見つかりません 404 Not Found
内部サーバーエラー 500 Internal Server Error

処理フロー

  1. パスパラメータから組織ID、プロジェクトID、MCP APIキーIDを抽出
  2. ユーザーがプロジェクトへのアクセス権限を持つことを確認
  3. キーが存在することを確認
  4. キーが指定されたプロジェクトに関連していることを確認
  5. ユーザーがキーを削除する権限があることを確認
  6. 論理削除を実行(deletedAtとdeletedByを設定)
  7. 更新日時を設定
  8. 削除されたキー情報を返す

論理削除

  • 物理削除ではなく、deletedAtフィールドにタイムスタンプを設定します
  • 削除されたキーは通常のクエリから除外されます
  • 削除者情報はdeletedByフィールドに記録されます

特記事項

このエンドポイントは論理削除を実行します。レコードはデータベースから物理的に削除されず、deletedAtとdeletedByフィールドが設定されます。

詳細フローチャート

flowchart TD
    Start([DELETE Request]) --> Auth[認証・パラメータ取得]
    Auth --> Service[Service Layer]
    Service --> AccessCheck[権限チェック]
    AccessCheck --> HasAccess{Write権限?}
    HasAccess -->|なし| Err404[404 Not Found]
    HasAccess -->|あり| CheckExist[既存確認]
    CheckExist --> Exists{存在?}
    Exists -->|なし| Err404
    Exists -->|あり| SoftDelete[論理削除<br/>deletedAt設定]
    SoftDelete --> Success[200 OK]