# Data Access Personal Grant Feishu Approval

This separately deployed, manually reviewed Feishu definition authorizes a
Helix-originated BigQuery dataset-read request for the authenticated employee's
own work account. Runtime never creates or changes the definition.

- Flow key: `data_access_personal_grant`
- Target identity: the current Helix employee only; the client cannot supply another email
- Review order: every selected dataset/table owner; no line-manager stage
- BigQuery mutation owner: the data-access reconciler only, never this callback

Helix snapshots the employee UUID and work email before creating the approval.
If the employee becomes inactive or their work email changes before the callback,
the request becomes stale without a binding, compiled effect, or BigQuery write.
Existing personal bindings are converted to reconcile-owned absent effects when
the identity is no longer active or its work email changes.

Build the Feishu v4 payload before any network call:

```bash
python3 deploy/feishu/deploy_data_access_group_grant.py \
  --definition deploy/feishu/approval-definitions/data_access_personal_grant/definition.json \
  --dry-run
```

For a controlled release, run `Deploy DAX Feishu Approval` on `main` with
`flow_key=data_access_personal_grant`. It stores the returned code only in
`FEISHU_APPROVAL_DATA_ACCESS_PERSONAL_GRANT_CODE` and upserts the same Helix
flow key after independent definition readback.
