hook.receive-webhook ​
Handle webhook receipt, storage, and forwarding to DevKit
Complete webhook delivery workflow.
Tracks full lifecycle from public endpoint receipt through DevKit forwarding to local development server.
Overview ​
| Property | Value |
|---|---|
| Workflow type | Linear |
| Library | App-hookredirect |
| Version | 1.0 |
Input Schema ​
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
workflow_run_id | string | No | — | DAG-stamped parent run id |
signed_uuid | string | Yes | — | Signed public redirect token in token.signature format |
method | string | No | POST | — |
path | string | No | / | — |
headers | json | No | {} | — |
body | string | No | — | — |
raw_body_base64 | string | No | — | Exact raw request body as base64 for downstream signature verification |
query_params | json | No | {} | — |
content_type | string | No | — | — |
source_ip | string | No | — | — |
user_agent | string | No | — | — |
skip_hmac_validation | boolean | No | False | Internal replay-only bypass for HMAC verification |
replay_of_event_uuid | string | No | — | Original event UUID when this run is a replay |
Output Schema ​
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
workflow_run_id | string | No | — | DAG-stamped parent run id |
signed_uuid | string | No | — | Signed public redirect token in token.signature format |
method | string | No | POST | — |
path | string | No | / | — |
headers | json | No | {} | — |
body | string | No | — | — |
raw_body_base64 | string | No | — | Exact raw request body as base64 for downstream signature verification |
query_params | json | No | {} | — |
content_type | string | No | — | — |
source_ip | string | No | — | — |
user_agent | string | No | — | — |
skip_hmac_validation | boolean | No | False | Internal replay-only bypass for HMAC verification |
replay_of_event_uuid | string | No | — | Original event UUID when this run is a replay |
redirect_uuid | string | No | — | — |
organization_uuid | string | No | — | — |
validation_passed | boolean | No | — | — |
rate_limit_checked_at | string | No | — | — |
event_uuid | string | No | — | — |
stored_at | string | No | — | — |
dispatch_workflow_type | string | No | — | — |
dispatch_workflow_uuid | string | No | — | — |
dispatch_status | string | No | — | — |
dispatch_error | string | No | — | — |
dispatch_output | json | No | — | — |
hook_response | json | No | — | — |
challenge_handshake | boolean | No | — | — |
queued_at | string | No | — | — |
ready_for_pickup | boolean | No | — | — |
picked_up_at | string | No | — | — |
picked_up_by | string | No | — | — |
devkit_client_ref | string | No | — | — |
ack_timeout_workflow_uuid | string | No | — | — |
forwarded_at | string | No | — | — |
delivery_time_seconds | float | No | — | — |
devkit_response | json | No | — | — |
completed_at | string | No | — | — |
failure_reason | string | No | — | — |
failed_step | json | No | — | — |
failed_layer | json | No | — | — |
failed_at_state | string | No | — | — |
error | string | No | — | — |
error_type | string | No | — | — |
error_message | string | No | — | — |
success | boolean | No | — | — |
failed_at | string | No | — | — |
failure_type | string | No | — | — |
retried_from | string | No | — | — |
retry_count | integer | No | — | — |
States ​
| State | Initial | Terminal | Success | Auto-advance | Description |
|---|---|---|---|---|---|
received | Yes | No | — | validate | — |
forwarded | No | No | — | complete | — |
pending_forward | No | No | — | — | — |
picked_up | No | No | — | — | — |
stored | No | No | — | queue_for_forward | — |
validated | No | No | — | store | — |
completed | No | Yes | Yes | — | — |
failed | No | Yes | No | — | — |
State Diagram ​
Transitions ​
| From | Action | To | Description |
|---|---|---|---|
received | validate | validated | — |
validated | store | stored | — |
validated | challenge_complete | completed | — |
stored | queue_for_forward | pending_forward | — |
pending_forward | mark_picked_up | picked_up | — |
picked_up | mark_forwarded | forwarded | — |
forwarded | complete | completed | — |
* (any state) | fail | failed | — |
API Usage ​
bash
POST /api/workflows/start
Content-Type: application/json
{
"workflow_type": "hook.receive-webhook",
"initial_data": {
"signed_uuid": "value"
}
}