ユーザーフォーム

User Forms のドキュメント

User Forms

ベースパス: /api/v1/user-forms

ユーザーフォームは、続行前に人間のレビューを必要とするワークフローステップによって生成される human-in-the-loop 承認/レビューフォームです。ワークフローステップが人間入力ステップとして設定されると、実行が一時停止しレビュー用フォームが作成されます。


エンドポイント概要

MethodPathAuthDescription
GET/api/v1/user-formsJWT認証済みユーザーのフォームを一覧
GET/api/v1/user-forms/:formIdNoneフォーム HTML コンテンツを取得
POST/api/v1/user-forms/:activityRunId/:statusNoneフォームの承認/却下を送信

GET /api/v1/user-forms

認証済みユーザーが所有するワークフローの全ユーザーフォームを一覧します。

認証

JWT が必要です(authMiddleware + activeOrgPreferenceMiddleware)。

クエリパラメータ

ParameterTypeDefaultDescription
pagenumber1ページ番号(最小: 1)
limitnumber201 ページあたり件数(最小: 1、最大: 100)
searchstringワークフロー名で検索(大文字小文字を区別しない)
sortBystring"createdAt"ソートフィールド: createdAtupdatedAtworkflowNamestatus
sortOrderstring"desc"ソート方向: ascdesc
statusstringステータスでフィルター: pendingapprovedrejected

レスポンス 200 OK

json

フォームオブジェクトフィールド:

FieldTypeDescription
idstring (UUID)フォーム ID
workflowIdstring (UUID)関連ワークフロー ID
workflowNamestringワークフロー名
workflowDescriptionstring | nullワークフローの説明
workflowRunIdstring (UUID)このフォームを作成したワークフロー実行
activityRunIdstring (UUID)このフォームで一時停止したアクティビティ(ステップ)実行
workflowStepNamestring承認が必要なステップ名
workflowStepDescriptionstring | nullステップの説明
status"pending" | "approved" | "rejected"レビューステータス
reviewedBystring | nullレビュアーのユーザー ID(レビュー済みの場合)
reviewedAtstring (ISO 8601) | nullフォームがレビューされた日時
createdAtstring (ISO 8601)フォーム作成日時
updatedAtstring (ISO 8601)最終更新日時

GET /api/v1/user-forms/:formId

ユーザーフォームの HTML コンテンツを返します。このエンドポイントは 公開 です(認証不要)— フォームはレビュアーに送られるリンク経由でアクセスされます。

認証

不要(一意のフォーム ID 経由で公開アクセス可能)。

パスパラメータ

ParameterTypeDescription
formIdstring (UUID)フォーム ID

レスポンス 200 OK

json
FieldTypeDescription
htmlstringブラウザで描画可能なフォームの HTML 定義

使用パターン

フォームは通常 iframe で描画するか、新しいブラウザタブで開きます。HTML には approve/reject エンドポイントへ送信するフォームが含まれます。


POST /api/v1/user-forms/:activityRunId/:status

フォームの承認または却下を送信します。一時停止中のワークフローをフォームデータで再開します。このエンドポイントは 公開 です — レビュアーがフォーム内の承認/却下をクリックして送信します。

認証

不要(フォームリンクが認可として機能します)。

パスパラメータ

ParameterTypeDescription
activityRunIdstring (UUID)フォームに関連するアクティビティ実行 ID
status"approve" | "reject"承認決定

リクエストボディ(multipart/form-data)

レビュアーが入力した任意のフォームフィールド値。ファイルフィールドは自動的にオブジェクトストレージにアップロードされ、送信データ内のファイルはプリサイン URL に置き換えられます。

レスポンス

送信確認の HTML ページを返します。

  • 成功時: 「Form Submitted Successfully」の成功ページ
  • 既に送信済み: 「Form Already Submitted」の情報ページ

どちらの場合も HTTP ステータスは 200 OK です(ブラウザ遷移向け HTML レスポンス)。

エラー

StatusReason
404 Not Foundアクティビティ実行またはワークフロー実行が見つからない
500 Internal Server Errorワークフローに Temporal ワークフロー関連付けがない

ワークフロー連携に関する注記

ユーザーフォームは以下の場合にワークフロー実行中に表示されます。

  1. ワークフローステップの定義で is_human_input_step: true である
  2. エグゼキューターが Temporal ワークフローを一時停止しフォームレコードを作成する
  3. フォームリンクがレビュアーに通知される(通常メールまたは通知)
  4. レビュアーがフォームを送信し、Temporal シグナルで実行を再開する

フォームデータ(レビュアー入力を含む)は後続処理のステップ入力としてワークフローステップへ渡されます。

ja/api-docs/user-forms