Metadata API Reference: Event Triggers
Introductionβ
Event triggers are used to capture database changes and send them to a configured webhook.
Supported from
The metadata API is supported for versions v2.0.0
and above and
replaces the older schema/metadata API.
pg_create_event_triggerβ
pg_create_event_trigger
is used to create a new event trigger or
replace an existing event trigger.
POST /v1/metadata HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin
{
"type" : "pg_create_event_trigger",
"args" : {
"name": "sample_trigger",
"table": {
"name": "users",
"schema": "public"
},
"source": "default",
"webhook": "https://httpbin.org/post",
"insert": {
"columns": "*",
"payload": ["username"]
},
"update": {
"columns": ["username", "real_name"],
"payload": "*"
},
"delete": {
"columns": "*"
},
"headers":[
{
"name": "X-Hasura-From-Val",
"value": "myvalue"
},
{
"name": "X-Hasura-From-Env",
"value_from_env": "EVENT_WEBHOOK_HEADER"
}
],
"replace": false
}
}
Args syntaxβ
Key | Required | Schema | Description |
---|---|---|---|
name | true | TriggerName | Name of the event trigger |
table | true | QualifiedTable | Object with table name and schema |
source | false | SourceName | Name of the source database of the table (default: default ) |
webhook | false | String | Full url of webhook (*) |
webhook_from_env | false | String | Environment variable name of webhook (must exist at boot time) (*) |
insert | false | OperationSpec | Specification for insert operation |
update | false | OperationSpec | Specification for update operation |
delete | false | OperationSpec | Specification for delete operation |
headers | false | [ HeaderFromValue | HeaderFromEnv ] | List of headers to be sent with the webhook |
retry_conf | false | RetryConf | Retry configuration if event delivery fails |
replace | false | Boolean | If set to true, the event trigger is replaced with the new definition |
enable_manual | false | Boolean | If set to true, the event trigger can be invoked manually |
request_transform | false | RequestTransformation | Attaches a Request Transformation to the Event Trigger. |
response_transform | false | ResponseTransformation | Attaches a Request Transformation to the Event Trigger. |
(*) Either webhook
or webhook_from_env
are required.
pg_delete_event_triggerβ
pg_delete_event_trigger
is used to delete an event trigger.
POST /v1/metadata HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin
{
"type" : "pg_delete_event_trigger",
"args" : {
"name": "sample_trigger",
"source": "default"
}
}
Args syntaxβ
Key | Required | Schema | Description |
---|---|---|---|
name | true | TriggerName | Name of the event trigger |
source | false | SourceName | Name of the source database of the trigger (default: default ) |
pg_redeliver_eventβ
redeliver_event
is used to redeliver an existing event. For example,
if an event is marked as error ( say it did not succeed after retries),
you can redeliver it using this API. Note that this will reset the count
of retries so far. If the event fails to deliver, it will be retried
automatically according to its retry_conf
.
POST /v1/metadata HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin
{
"type" : "pg_redeliver_event",
"args" : {
"event_id": "ad4f698f-a14e-4a6d-a01b-38cd252dd8bf"
}
}
Args syntaxβ
Key | Required | Schema | Description |
---|---|---|---|
event_id | true | String | UUID of the event |
pg_invoke_event_triggerβ
invoke_event_trigger
is used to invoke an event trigger with custom payload.
POST /v1/metadata HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin
{
"type" : "pg_invoke_event_trigger",
"args" : {
"name": "sample_trigger",
"source": "default",
"payload": {}
}
}
Args syntaxβ
Key | Required | Schema | Description |
---|---|---|---|
name | true | TriggerName | Name of the event trigger |
payload | true | JSON | Some JSON payload to send to trigger |
source | false | SourceName | Name of the source database of the trigger (default: default ) |
mssql_create_event_triggerβ
mssql_create_event_trigger
is used to create a new event trigger or
replace an existing event trigger.
POST /v1/metadata HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin
{
"type" : "mssql_create_event_trigger",
"args" : {
"name": "sample_trigger",
"table": {
"name": "users",
"schema": "public"
},
"source": "default",
"webhook": "https://httpbin.org/post",
"insert": {
"columns": "*",
"payload": ["username"]
},
"update": {
"columns": ["username", "real_name"],
"payload": "*"
},
"delete": {
"columns": "*"
},
"headers":[
{
"name": "X-Hasura-From-Val",
"value": "myvalue"
},
{
"name": "X-Hasura-From-Env",
"value_from_env": "EVENT_WEBHOOK_HEADER"
}
],
"replace": false
}
}
Args syntaxβ
Key | Required | Schema | Description |
---|---|---|---|
name | true | TriggerName | Name of the event trigger |
table | true | QualifiedTable | Object with table name and schema |
source | false | SourceName | Name of the source database of the table (default: default ) |
webhook | false | String | Full url of webhook (*) |
webhook_from_env | false | String | Environment variable name of webhook (must exist at boot time) (*) |
insert | false | OperationSpec | Specification for insert operation |
update | false | OperationSpec | Specification for update operation |
delete | false | OperationSpec | Specification for delete operation |
headers | false | [ HeaderFromValue | HeaderFromEnv ] | List of headers to be sent with the webhook |
retry_conf | false | RetryConf | Retry configuration if event delivery fails |
replace | false | Boolean | If set to true, the event trigger is replaced with the new definition |
enable_manual | false | Boolean | If set to true, the event trigger can be invoked manually |
request_transform | false | RequestTransformation | Attaches a Request Transformation to the Event Trigger. |
response_transform | false | ResponseTransformation | Attaches a Request Transformation to the Event Trigger. |
(*) Either webhook
or webhook_from_env
are required.
mssql_delete_event_triggerβ
mssql_delete_event_trigger
is used to delete an event trigger.
POST /v1/metadata HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin
{
"type" : "mssql_delete_event_trigger",
"args" : {
"name": "sample_trigger",
"source": "default"
}
}
Args syntaxβ
Key | Required | Schema | Description |
---|---|---|---|
name | true | TriggerName | Name of the event trigger |
source | false | SourceName | Name of the source database of the trigger (default: default ) |
mssql_redeliver_eventβ
mssql_redeliver_event
is used to redeliver an existing event. For example,
if an event is marked as error (say it did not succeed after retries),
you can redeliver it using this API. Note that this will reset the count
of retries so far. If the event fails to deliver, it will be retried
automatically according to its retry_conf
.
POST /v1/metadata HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin
{
"type" : "mssql_redeliver_event",
"args" : {
"event_id": "ad4f698f-a14e-4a6d-a01b-38cd252dd8bf"
}
}
Args syntaxβ
Key | Required | Schema | Description |
---|---|---|---|
event_id | true | String | UUID of the event |
mssql_invoke_event_triggerβ
invoke_event_trigger
is used to invoke an event trigger with custom payload.
POST /v1/metadata HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin
{
"type" : "mssql_invoke_event_trigger",
"args" : {
"name": "sample_trigger",
"source": "default",
"payload": {}
}
}
Args syntaxβ
Key | Required | Schema | Description |
---|---|---|---|
name | true | TriggerName | Name of the event trigger |
payload | true | JSON | Some JSON payload to send to trigger |
source | false | SourceName | Name of the source database of the trigger (default: default ) |