# `approval_requests`
<!-- generated by `orchestrator understand`; the PKG is source of truth, edits here are advisory -->

[← Episteme](../README.md) · [Domain model](../domain-model.md)

**Defined in:** [`src/orchestrator/registry/db/models.py:127`](../../src/orchestrator/registry/db/models.py#L127)

21 fields · references 0 · referenced by 0

## Fields

- `action_summary`
- `affected_resources`
- `approvers_json`
- `before_hash`
- `before_node_id`
- `created_at`
- `decided_at`
- `decided_by`
- `decision_rationale`
- `description`
- `id`
- `modified_input_json`
- `notification_channels`
- `pk`
- `risk_classification`
- `state`
- `task_id`
- `tenant_id`
- `timeout_json`
- `title`
- `trace_id`

## Read by

[`_latest_hash_for_task`](../../src/orchestrator/approval/repository.py#L130), [`decide`](../../src/orchestrator/approval/repository.py#L97), [`get`](../../src/orchestrator/approval/repository.py#L52), [`list_pending`](../../src/orchestrator/approval/repository.py#L82), [`list_timed_out`](../../src/orchestrator/approval/repository.py#L62)

## Written by

[`test_list_timed_out_returns_only_expired_pending`](../../tests/integration/test_approvals_api.py#L199)
