Schema/Metadata API Reference: Scheduled Triggers

Scheduled triggers are used to invoke webhooks based on a timestamp or cron.

create_cron_trigger

create_cron_trigger is used to create a new cron trigger.

POST /v1/query HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin

{
    "type" : "create_cron_trigger",
    "args" : {
        "name": "sample_cron",
        "webhook": "https://httpbin.org/post",
        "schedule":  "* * * * *",
        "payload": {
            "key1": "value1",
            "key2": "value2"
        },
        "include_in_metadata":false,
        "comment":"sample_cron commment"
    }
}

Args syntax

Key Required Schema Description
name true TriggerName Name of the cron trigger
webhook true WebhookURL URL of the webhook
schedule true Cron Expression Cron expression at which the trigger should be invoked.
payload false JSON Any JSON payload which will be sent when the webhook is invoked.
headers false [ HeaderFromValue | HeaderFromEnv ] List of headers to be sent with the webhook
retry_conf false RetryConfST Retry configuration if scheduled invocation delivery fails
include_in_metadata true Boolean Flag to indicate whether a trigger should be included in the metadata. When a cron trigger is included in the metadata, the user will be able to export it when the metadata of the graphql-engine is exported.
comment false Text Custom comment.
replace false Bool When replace is set to true, the cron trigger will be updated(if exists) and when it’s false or the field is omitted, then a new cron trigger will be created.

delete_cron_trigger

delete_cron_trigger is used to delete an existing cron trigger. The scheduled events associated with the cron trigger will also be deleted.

POST /v1/query HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin

{
    "type" : "delete_cron_trigger",
    "args" : {
        "name": "sample_cron"
    }
}

Args syntax

Key Required Schema Description
name true TriggerName Name of the cron trigger

create_scheduled_event

create_scheduled_event is used to create a scheduled event.

POST /v1/query HTTP/1.1
Content-Type: application/json
X-Hasura-Role: admin

{
    "type" : "create_scheduled_event",
    "args" : {
        "webhook": "https://httpbin.org/post",
        "schedule_at": "2019-09-09T22:00:00Z",
        "payload": {
            "key1": "value1",
            "key2": "value2"
        },
        "headers" : [{
            "name":"header-key",
            "value":"header-value"
        }],
        "comment":"sample scheduled event comment"
    }
}

Args syntax

Key Required Schema Description
webhook true WebhookURL URL of the webhook
schedule_at true Timestamp (ISO8601 format) The time at which the invocation should be invoked.
payload false JSON Any JSON payload which will be sent when the webhook is invoked.
headers false [ HeaderFromValue | HeaderFromEnv ] List of headers to be sent with the webhook
retry_conf false RetryConfST Retry configuration if scheduled event delivery fails
comment false Text Custom comment.

UrlFromEnv

Key required Schema Description
from_env true String Name of the environment variable which has the URL

RetryConfST

Key required Schema Description
num_retries false Integer Number of times to retry delivery. Default: 0
retry_interval_seconds false Integer Number of seconds to wait between each retry. Default: 10
timeout_seconds false Integer Number of seconds to wait for response before timing out. Default: 60
tolerance_seconds false Integer Number of seconds between scheduled time and actual delivery time that is acceptable. If the time difference is more than this, then the event is dropped. Default: 21600 (6 hours)