{
  "schema_version": "helix-feishu-approval-definition-v1",
  "flow_key": "data_access_group_grant",
  "name": "Helix BigQuery Dataset Access Request",
  "description": "Approves Helix-originated Google Group read access to one or more BigQuery datasets.",
  "deploy_mode": "manual_feishu_admin_or_github_action",
  "origin": "helix_only",
  "accept_external_origin": false,
  "callback_path": "/api/v1/approval/feishu/callback",
  "form_widgets": [
    {
      "canonical_field": "request_summary",
      "custom_id": "dax_request_summary",
      "label": "Request summary",
      "type": "textarea",
      "required": true
    },
    {
      "canonical_field": "requested_access",
      "custom_id": "dax_requested_access",
      "label": "Access to grant",
      "type": "textarea",
      "required": true
    },
    {
      "canonical_field": "dataset_list",
      "custom_id": "dax_dataset_list",
      "label": "Datasets",
      "type": "textarea",
      "required": true
    },
    {
      "canonical_field": "business_reason",
      "custom_id": "dax_business_reason",
      "label": "Requester note / business reason",
      "type": "textarea",
      "required": true
    },
    {
      "canonical_field": "detail_url",
      "custom_id": "dax_detail_url",
      "label": "Open in Helix",
      "type": "input",
      "required": true
    }
  ],
  "approval_process": {
    "recommended_nodes": [
      {
        "key": "requester_line_manager_review",
        "label": "Requester line manager review",
        "approver_source": "feishu_requester_line_manager",
        "sequence": 1,
        "feishu_node_type": "line_manager_auto",
        "instance_payload_field": null
      },
      {
        "key": "data_owner_review",
        "label": "Data owner review",
        "sequence": 2,
        "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": {
        "requester_line_manager_review": "@i18n@requester_line_manager_review",
        "data_owner_review": "@i18n@data_owner_review"
      }
    },
    "i18n_resources": [
      {
        "locale": "en-US",
        "is_default": true,
        "texts": [
          {
            "key": "@i18n@approval_name",
            "value": "Helix BigQuery Dataset Access Request"
          },
          {
            "key": "@i18n@description",
            "value": "Approves Helix-originated Google Group read access to one or more 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": "Requester note / business reason"
          },
          {
            "key": "@i18n@detail_url",
            "value": "Open in Helix"
          },
          {
            "key": "@i18n@requester_line_manager_review",
            "value": "Requester line manager review"
          },
          {
            "key": "@i18n@data_owner_review",
            "value": "Data owner review"
          }
        ]
      },
      {
        "locale": "zh-CN",
        "is_default": false,
        "texts": [
          {
            "key": "@i18n@approval_name",
            "value": "Helix BigQuery Dataset Access Request"
          },
          {
            "key": "@i18n@description",
            "value": "Approves Helix-originated Google Group read access to one or more 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": "Requester note / business reason"
          },
          {
            "key": "@i18n@detail_url",
            "value": "Open in Helix"
          },
          {
            "key": "@i18n@requester_line_manager_review",
            "value": "Requester line manager review"
          },
          {
            "key": "@i18n@data_owner_review",
            "value": "Data owner review"
          }
        ]
      },
      {
        "locale": "ja-JP",
        "is_default": false,
        "texts": [
          {
            "key": "@i18n@approval_name",
            "value": "Helix BigQuery Dataset Access Request"
          },
          {
            "key": "@i18n@description",
            "value": "Approves Helix-originated Google Group read access to one or more 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": "Requester note / business reason"
          },
          {
            "key": "@i18n@detail_url",
            "value": "Open in Helix"
          },
          {
            "key": "@i18n@requester_line_manager_review",
            "value": "Requester line manager review"
          },
          {
            "key": "@i18n@data_owner_review",
            "value": "Data owner review"
          }
        ]
      }
    ],
    "viewers": [
      {
        "viewer_type": "TENANT"
      }
    ],
    "node_list": [
      {
        "id": "START"
      },
      {
        "id": "requester_line_manager_review",
        "name": "@i18n@requester_line_manager_review",
        "node_type": "AND",
        "approver": [
          {
            "type": "Supervisor",
            "level": "1"
          }
        ]
      },
      {
        "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"
          ]
        }
      ]
    }
  }
}
