Getting Started
How to setup your first webhook
Paradime's webhook system supports JSON payloads to your application's endpoint URL when your webhook is triggered.
Paradime supports the below events for Bolt runs:
bolt.run.started
— Triggered when a Bolt run is startedbolt.run.completed
— Triggered when a Bolt run is completed. This can be a run that has failed or succeeded.
Examples of JSON payloads
An example of a webhook payload for a completed run:
The bolt.run.completed
event provide all the data required to see the details of the execution for a schedule. This event also enables you to query additional metadata for each dbt™️ command using a pre-populate graphql endpoint provided in the fields:
api_query
- this endpoint will allow you to query and extract for each command in the schedule the raw console logsresource_query
- this endpoint will allow you to query and extract for each command the relate resources generated by the execution of the command, for example therun_results.json
or themanifest.json
{
"api_url":"https://api.demo.paradime.io/api/v1/uany7edagtovarzx/graphql",
"commands":[
{
"api_query":"query BoltCommand {\n boltCommand(commandId: 193439) {\n command\n startDttm\n endDttm\n stdout\n stderr\n returnCode\n scheduleRunId\n resources {\n id\n path\n }\n }\n}",
"command":"git clone ...",
"end_dttm":"2023-10-15 16:44:16.986049",
"id":193439,
"json_resources":[
],
"return_code":0,
"start_dttm":"2023-10-15 16:44:14.576471",
"status":"succeeded"
},
{
"api_query":"query BoltCommand {\n boltCommand(commandId: 193440) {\n command\n startDttm\n endDttm\n stdout\n stderr\n returnCode\n scheduleRunId\n resources {\n id\n path\n }\n }\n}",
"command":"dbt deps",
"end_dttm":"2023-10-15 16:44:19.831942",
"id":193440,
"json_resources":[
],
"return_code":0,
"start_dttm":"2023-10-15 16:44:17.109897",
"status":"succeeded"
},
{
"api_query":"query BoltCommand {\n boltCommand(commandId: 193441) {\n command\n startDttm\n endDttm\n stdout\n stderr\n returnCode\n scheduleRunId\n resources {\n id\n path\n }\n }\n}",
"command":"dbt seed",
"end_dttm":"2023-10-15 16:44:29.552605",
"id":193441,
"json_resources":[
{
"id":1205731,
"path":"target/manifest.json",
"resource_query":"query BoltResourceUrl {\n boltResourceUrl(resourceId: 1205731) {\n ok\n url\n }\n}"
},
{
"id":1205739,
"path":"target/run_results.json",
"resource_query":"query BoltResourceUrl {\n boltResourceUrl(resourceId: 1205739) {\n ok\n url\n }\n}"
}
],
"return_code":0,
"start_dttm":"2023-10-15 16:44:19.886774",
"status":"succeeded"
},
{
"api_query":"query BoltCommand {\n boltCommand(commandId: 193442) {\n command\n startDttm\n endDttm\n stdout\n stderr\n returnCode\n scheduleRunId\n resources {\n id\n path\n }\n }\n}",
"command":"dbt run",
"end_dttm":"2023-10-15 16:44:37.422950",
"id":193442,
"json_resources":[
{
"id":1205743,
"path":"target/manifest.json",
"resource_query":"query BoltResourceUrl {\n boltResourceUrl(resourceId: 1205743) {\n ok\n url\n }\n}"
},
{
"id":1205761,
"path":"target/run_results.json",
"resource_query":"query BoltResourceUrl {\n boltResourceUrl(resourceId: 1205761) {\n ok\n url\n }\n}"
}
],
"return_code":1,
"start_dttm":"2023-10-15 16:44:29.586366",
"status":"failed"
}
],
"end_dttm":"2023-10-15 16:44:39.891890",
"environment":{
"actor":"Manual",
"branch":"main",
"commit_hash":"54a134583ef6dccbe154e30e1cd09a9d94b6bda0",
"email":"[email protected]"
},
"error_string":null,
"id":63187,
"run_url":"https://app.demo.paradime.io/bolt/run_id/63187",
"schedule":{
"commands":[
"dbt seed",
"dbt run"
],
"deferred_schedule":null,
"email_notify":[
"[email protected]",
"[email protected]"
],
"email_on":[
"passed",
"failed"
],
"environment":"production",
"git_branch":null,
"hightouch":null,
"name":"daily_run",
"owner_email":"[email protected]",
"schedule":"@daily",
"slack_notify":[
"data-alerts"
],
"slack_on":[
"passed",
"failed"
],
"turbo_ci":null
},
"schedule_name":"daily_run",
"start_dttm":"2023-10-15 16:44:01.476190",
"status":"failed",
"uuid":"a7e76080-b371-369f-a93f-4a4969617ab6",
"workspace":{
"name":"demo-jaffle",
"uid":"n0sg8br1m44k0ryj"
}
}
An example of a webhook payload for a started run:
{
"api_url":"https://api.paradime.io/api/v1/abc/graphql",
"environment":{
"actor":"Scheduler",
"branch":null,
"commit_hash":null,
"email":null
},
"id":1234,
"run_url":"https://app.paradime.io/bolt/run_id/1234",
"schedule":{
"commands":[
"dbt seed",
"dbt run"
],
"deferred_schedule":null,
"email_notify":[
"[email protected]",
"[email protected]"
],
"email_on":[
"passed",
"failed"
],
"environment":"production",
"git_branch":null,
"hightouch":null,
"name":"daily_run",
"owner_email":"[email protected]",
"schedule":"@daily",
"slack_notify":[
"data-alerts"
],
"slack_on":[
"passed",
"failed"
],
"turbo_ci":null
},
"schedule_name":"daily_run",
"start_dttm":"2023-10-15 16:44:01.476190",
"status":"failed",
"uuid":"a7e76080-b371-369f-a93f-4a4969617ab6",
"workspace":{
"name":"demo-jaffle",
"uid":"n0sg8br1m44k0ryj"
}
}
Last updated
Was this helpful?