コンテンツにスキップ

Code2WF テーブル

概要

1件のCode2WF generationについて、lifecycleとFigma destinationを保存します。生成specはS3とFigmaに保持します。

テーブル定義

論理名 物理名 カラム名 データ型 主キー リレーション ユニーク NULL 許可 デフォルト値 備考
Code2WF code2wf id string ◯ backend生成UUIDv7(varchar(255))。code2wfId として公開し、workerへ code2wf_id として送信
organization_id number organization:id organization scope
project_id number project:id project scope
page_import_id string page_import:id source Page Import(varchar(255))
figma_file_key string plugin discoveryとmaterialization対象のFigma file(varchar(255))
screen_id string generated screen identifier(varchar(255))
placement_target string ◯ placement referenceとして使う任意のFigma node(varchar(255))
status enum '0' wf2des_status。型コード参照
attempt number 1 generation attempt。V1では1固定
flag_count number ◯ generated spec内のflagged=true outcome数
result_url string ◯ 不変resultまたはfailure artifactのS3 key(varchar(500))
error_message string ◯ 安全なfailure message(text)
materialized_at datetime ◯ pluginがFigma placementを完了した時刻
created_at datetime CURRENT_TIMESTAMP 共有 audit field
updated_at datetime CURRENT_TIMESTAMP 共有 audit field
deleted_at datetime ◯ 共有 soft-delete field
created_by string 共有audit actor string
updated_by string 共有audit actor string
deleted_by string ◯ 共有audit actor string

リレーション

  • organization_id → organization.id
  • project_id → project.id
  • page_import_id → page_import.id。作成時は同じproject内のcompleted Page Importを必須とする
  • audit actor fieldはCognito subjectまたはbackend actor名を保存する

インデックス

  • PRIMARY KEY (id)
  • INDEX code2wf_project_id_deleted_at_idx (project_id, deleted_at)
  • INDEX code2wf_project_status_idx (project_id, status)
  • INDEX code2wf_org_project_file_status_idx (organization_id, project_id, figma_file_key, status)
  • INDEX code2wf_page_import_id_idx (page_import_id)

型コード

Database enumは wf2des_status です。Code2WFは次の値を使用します:

値 意味
'0' processing
'1' completed
'2' failed

Code2WFはenum値'3'と'4'を生成しません。

備考

  • Rowにはpage_import_idを保存し、Page Import manifest/hashはS3に保持します。
  • backendが id をUUIDv7で生成します。有効なPOSTごとに新しいrowを作成し、新しいjobをdispatchします。Code2WFにrequest deduplication indexはありません。
  • backend は queue dispatch 前に row を作成し、PostgreSQL write をすべて所有します。worker に PostgreSQL credential は渡しません。
  • attempt は generation fence であり、V1 では 1 固定です。失敗した generation は既存行を更新せず、新しい Code2WF 行を作成して再実行します。
  • Terminal webhookはresult_url、flag_countまたはerror_message、audit fieldを更新します。
  • Placementはmaterialized_atを設定します。PostgreSQLにはgenerated Figma node IDやgenerated node treeを保存しません。