MCP API Keys Table
概要
管理用のテーブル MCP API key 情報
テーブル定義
| 論理名 | 物理名 | カラム名 | データ型 | 主キー | リレーション | ユニーク | NULL許可 | デフォルト値 | 備考 |
|---|---|---|---|---|---|---|---|---|---|
| MCP API Key Information | mcp_api_keys | id | serial | ◯ | |||||
| user_id | string | ◯ | user.cognito_subへの論理参照 (FK制約なし) | ||||||
| project_id | number | project:id | ◯ | ||||||
| name | string | ex) mcp for project A | |||||||
| key_prefix | string | ◯ | Key構造: guinness_{prefix}_{secrets}、プレフィックス検索を可能にする | ||||||
| key_hash | string | ◯ | ハッシュ化されたAPIキー | ||||||
| salt | string | ◯ | ランダム値 | ||||||
| permission | number | 0: READ 1: WRITE |
|||||||
| expires_at | datetime | ◯ | |||||||
| revoked_at | datetime | ◯ | |||||||
| last_used_at | datetime | ◯ | |||||||
| created_at | datetime | ◯ | |||||||
| updated_at | datetime | ||||||||
| deleted_at | datetime | ◯ | |||||||
| created_by | string | ||||||||
| updated_by | string | ||||||||
| deleted_by | string |
リレーション
- user_id → user.cognito_sub (論理参照、FK制約なし)
- project_id → project.id
インデックス
- 主キー (id)
- UNIQUE (key_prefix)
- UNIQUE (key_hash)
- UNIQUE (salt)
注記
- MCP API key 情報の認証と認可を管理
- 各カラム (user_id, project_id) は nullable だが、少なくとも1つは設定する必要がある
key_prefixはユニーク制約があり、重複は許可されない- Key構造は guinness_{prefix}_{secrets} 形式で、プレフィックス検索を可能にする
- キーの有効期限をサポート (expires_at)
- 最終使用時刻を追跡 (last_used_at)
- 失効日時を記録 (revoked_at)
- セキュリティのため、key hash と salt は別々に保存される
- permission フィールドはアクセスレベルを指定: 0 で READ、1 で WRITE
- user_id は Cognito の subject(文字列)を格納する
- 論理削除をサポート (deleted_at カラム)
- 監査ログサポート (created_by、updated_by、deleted_by)