Webhook
Webhook endpoints, event subscriptions, and delivery tracking.
Source: packages/db/src/schema/webhook.ts
Enums
| Enum | Values |
|---|---|
webhook_status | active, paused, disabled, failed |
webhook_delivery_status | pending, success, failed, retrying |
webhook
| Column | Type | Notes |
|---|---|---|
id | text | PK, prefix wh_ |
name | varchar(255) | NOT NULL |
url | text | NOT NULL |
secret | text | NOT NULL |
organization_id | text | FK → organization.id, CASCADE |
user_id | text | FK → user.id, CASCADE |
status | webhook_status | default active |
custom_headers | jsonb | |
rate_limit_enabled | boolean | default true |
max_requests_per_minute | integer | default 60 |
max_retries | integer | default 3 |
retry_backoff_multiplier | integer | default 2 |
filtering_options | jsonb | |
last_triggered_at | timestamp | |
success_count | integer | default 0 |
failure_count | integer | default 0 |
consecutive_failures | integer | default 0 |
deleted_at | timestamp | |
created_at | timestamp | |
updated_at | timestamp |
webhook_event_subscription
| Column | Type | Notes |
|---|---|---|
id | text | PK, prefix whsub_ |
webhook_id | text | FK → webhook.id, CASCADE |
event_id | text | NOT NULL |
is_enabled | boolean | default true |
created_at | timestamp | |
updated_at | timestamp |
webhook_event
| Column | Type | Notes |
|---|---|---|
id | text | PK, prefix evt_ |
event | text | NOT NULL |
payload | jsonb | NOT NULL |
source | varchar(100) | NOT NULL |
organization_id | text | FK → organization.id, CASCADE |
user_id | text | FK → user.id, SET NULL |
created_at | timestamp |
webhook_delivery
| Column | Type | Notes |
|---|---|---|
id | text | PK, prefix whde_ |
webhook_id | text | FK → webhook.id, CASCADE |
webhook_event_id | text | FK → webhook_event.id, SET NULL |
event_type | text | NOT NULL |
event_data | jsonb | NOT NULL |
status | webhook_delivery_status | default pending |
request_url | text | NOT NULL |
request_headers | jsonb | |
request_body | jsonb | |
response_status | integer | |
response_body | text | |
response_headers | jsonb | |
attempt_number | integer | default 1 |
max_attempts | integer | default 3 |
next_retry_at | timestamp | |
last_attempt_at | timestamp | |
error_message | text | |
error_details | jsonb | |
completed_at | timestamp | |
duration_ms | integer | |
created_at | timestamp |
webhook_delivery_attempt
| Column | Type | Notes |
|---|---|---|
id | text | PK, prefix whda_ |
webhook_delivery_id | text | FK → webhook_delivery.id, CASCADE |
attempt_number | integer | NOT NULL |
status | webhook_delivery_status | NOT NULL |
response_status | integer | |
response_body | text | |
response_headers | jsonb | |
duration_ms | integer | |
error_message | text | |
created_at | timestamp |
Was this page helpful?