{
  "schema_version": "helix-feishu-approval-definition-v1",
  "flow_key": "data_access_personal_grant",
  "name": "Helix BigQuery Personal Access Request",
  "description": "Approves Helix-originated personal work-account read access to BigQuery datasets.",
  "deploy_mode": "manual_feishu_admin",
  "origin": "helix_only",
  "accept_external_origin": false,
  "callback_path": "/api/v1/approval/feishu/callback",
  "form_widgets": [
    {"canonical_field": "request_summary", "custom_id": "dax_personal_request_summary", "label": "Request summary", "type": "textarea", "required": true},
    {"canonical_field": "requested_access", "custom_id": "dax_personal_requested_access", "label": "Access to grant", "type": "textarea", "required": true},
    {"canonical_field": "dataset_list", "custom_id": "dax_personal_dataset_list", "label": "Datasets", "type": "textarea", "required": true},
    {"canonical_field": "business_reason", "custom_id": "dax_personal_business_reason", "label": "Business reason", "type": "textarea", "required": true},
    {"canonical_field": "detail_url", "custom_id": "dax_personal_detail_url", "label": "Open in Helix", "type": "input", "required": true}
  ],
  "approval_process": {
    "recommended_nodes": [
      {"key": "data_owner_review", "label": "Dataset owner review", "sequence": 1, "approver_source": "helix_resource_owner", "feishu_node_id": "data_owner_review", "instance_payload_field": "node_approver_open_id_list"}
    ]
  },
  "feishu_v4_api_contract": {
    "endpoint": "/open-apis/approval/v4/approvals?user_id_type=open_id&department_id_type=open_department_id",
    "update_existing_definition": "Include approval_code in the POST body to update an existing disposable/test definition; omit approval_code to create a new definition.",
    "approval_name_key": "@i18n@approval_name",
    "description_key": "@i18n@description",
    "form_content_source": "Build form.form_content from form_widgets with id=custom_id, type, required, and name=i18n_keys.form_widgets[canonical_field].",
    "i18n_keys": {
      "form_widgets": {
        "request_summary": "@i18n@request_summary",
        "requested_access": "@i18n@requested_access",
        "dataset_list": "@i18n@dataset_list",
        "business_reason": "@i18n@business_reason",
        "detail_url": "@i18n@detail_url"
      },
      "nodes": {
        "data_owner_review": "@i18n@data_owner_review"
      }
    },
    "i18n_resources": [
      {"locale": "en-US", "is_default": true, "texts": [
        {"key": "@i18n@approval_name", "value": "Helix BigQuery Personal Access Request"},
        {"key": "@i18n@description", "value": "Approves Helix-originated personal work-account read access to BigQuery datasets."},
        {"key": "@i18n@request_summary", "value": "Request summary"},
        {"key": "@i18n@requested_access", "value": "Access to grant"},
        {"key": "@i18n@dataset_list", "value": "Datasets"},
        {"key": "@i18n@business_reason", "value": "Business reason"},
        {"key": "@i18n@detail_url", "value": "Open in Helix"},
        {"key": "@i18n@data_owner_review", "value": "Dataset owner review"}
      ]},
      {"locale": "zh-CN", "is_default": false, "texts": [
        {"key": "@i18n@approval_name", "value": "Helix BigQuery 个人访问申请"},
        {"key": "@i18n@description", "value": "审批由 Helix 发起的个人工作账号 BigQuery 数据集只读访问。"},
        {"key": "@i18n@request_summary", "value": "申请摘要"},
        {"key": "@i18n@requested_access", "value": "拟授予的访问"},
        {"key": "@i18n@dataset_list", "value": "数据集"},
        {"key": "@i18n@business_reason", "value": "业务用途"},
        {"key": "@i18n@detail_url", "value": "在 Helix 打开"},
        {"key": "@i18n@data_owner_review", "value": "数据集负责人审批"}
      ]},
      {"locale": "ja-JP", "is_default": false, "texts": [
        {"key": "@i18n@approval_name", "value": "Helix BigQuery 個人アクセス申請"},
        {"key": "@i18n@description", "value": "Helix 起点の個人業務アカウントによる BigQuery データセット読み取りを承認します。"},
        {"key": "@i18n@request_summary", "value": "申請概要"},
        {"key": "@i18n@requested_access", "value": "付与するアクセス"},
        {"key": "@i18n@dataset_list", "value": "データセット"},
        {"key": "@i18n@business_reason", "value": "業務理由"},
        {"key": "@i18n@detail_url", "value": "Helix で開く"},
        {"key": "@i18n@data_owner_review", "value": "データセット owner レビュー"}
      ]}
    ],
    "viewers": [{"viewer_type": "TENANT"}],
    "node_list": [
      {"id": "START"},
      {"id": "data_owner_review", "name": "@i18n@data_owner_review", "node_type": "OR", "approver": [{"type": "Free"}], "approver_chosen_multi": true},
      {"id": "END"}
    ],
    "instance_dynamic_approver_payload": {
      "node_approver_open_id_list": [
        {"key": "data_owner_review", "value": ["ou_xxx"]}
      ]
    }
  }
}
