コンテンツにスキップ

Figma OAuth Grant テーブル

概要

wf2des スケジューラが使用する組織単位の Figma OAuth 認証情報です。組織ごとに 1 行を保持します。

認可、暗号化、保存、リフレッシュは Admin API が担当します。wf2des ワーカーは PostgreSQL 認証情報を持たず、Figma 呼び出し時に有効なアクセストークンだけを Admin API から取得します。

このテーブルは、ユーザー単位の Personal Access Token(PAT)を保存し、リフレッシュトークンを持たない figma_token とは分離されています。

テーブル定義

論理名 物理名 カラム名 データ型 主キー リレーション ユニーク NULL許容 デフォルト値 備考
Figma OAuth Grant figma_oauth_grant organization_id integer ◯ organization:id 組織ごとに 1 グラント
access_token text AES-256-GCM で暗号化して保存
refresh_token text AES-256-GCM で暗号化して保存。OAuth グラント専用で、figma_token には保存しない
expires_at datetime アクセストークンの有効期限
scopes string スペース区切りの OAuth スコープ
authorized_user_id string 認可した Figma ユーザー。監査用途のみ
created_at datetime
updated_at datetime
deleted_at datetime ◯
created_by string user:cognito_sub グラントを認可した管理者
updated_by string user:cognito_sub
deleted_by string user:cognito_sub ◯

リレーション

  • organization_id → organization.id(cascade delete)
  • created_by / updated_by / deleted_by → user.cognito_sub

インデックス

  • PRIMARY KEY (organization_id)

備考

  • Admin API はプラットフォームの ENCRYPTION_KEY で両トークンを暗号化してから保存します。
  • リフレッシュは PostgreSQL のトランザクション advisory lock により組織単位で直列化します。永続的な refresh marker カラムは不要です。
  • Admin API は失効前にアクセストークンをリフレッシュし、Figma のレスポンスにリフレッシュトークンが含まれない場合は既存値を保持します。
  • 内部 token provider は現在のアクセストークンと有効期限だけを返します。リフレッシュトークン、OAuth クライアントシークレット、暗号鍵、PostgreSQL 認証情報は AI ランタイムへ渡しません。
  • 再認可時は組織の行を upsert します。