@kentico/kontent-webhook-helper
v1.2.0
Published
This utility helps with webhook notifications from Kentico Kontent
Downloads
5,640
Readme
Kontent Webhook helper
This package aims to help you with Webhooks received from Kentico Kontent projects. Currently, it:
- Helps with signature verification as per signatures
- Provides types for webhook response (only for
Typescript
)
Installation
Install package:
npm i @kentico/kontent-webhook-helper
Signature verification
To verify whether a signature is valid use:
import { signatureHelper } from '@kentico/kontent-webhook-helper';
const isValid = signatureHelper.isValidSignatureFromString(
payload, // payload converted to string
secret, // secret can be obtained from Webhook definition in Kentico Kontent project
signature // can be obtained from 'x-kc-signature' header present in webhook request);
Generate hash
import { signatureHelper } from '@kentico/kontent-webhook-helper';
const hash = signatureHelper.getHashFromString(payload, secret);
Response model types
If you are using Typescript
you may use provided interfaces to access webhook properties in a strongly typed manner.
Delivery webhook response
import { IWebhookDeliveryResponse } from '@kentico/kontent-webhook-helper';
const rawResponse = {
"data": {
"items": [
{
"id": "e5d575fe-9608-4523-a07d-e32d780bf92a",
"codename": "this_article_changed",
"collection": "default",
"language": "en-US",
"type": "article"
}
],
"taxonomies": [
{
"id": "4794dde6-f700-4a5d-b0dc-9ae16dcfc73d",
"codename": "personas"
}
]
},
"message": {
"id": "e1b372a2-1186-4929-b370-904c59f060b7",
"project_id": "bf32e7ab-85c3-0073-47b9-90838a8462de",
"type": "taxonomy",
"operation": "upsert",
"api_name": "delivery_production",
"created_timestamp": "2019-07-18T10:52:33.1059256Z",
"webhook_url": "https://myapp.com/webhook-endpoint"
}
};
const response = rawResponse as IWebhookDeliveryResponse;
Workflow webhook response
import { IWebhookWorkflowResponse } from '@kentico/kontent-webhook-helper';
const rawResponse = {
"data": {
"items": [
{
"item": {
"id": "65f05e0f-40c3-436b-a641-e2d4cae16e46"
},
"language": {
"id": "00000000-0000-0000-0000-000000000000"
},
"transition_from": {
"id": "eee6db3b-545a-4785-8e86-e3772c8756f9"
},
"transition_to": {
"id": "03b6ebd3-2f49-4621-92fd-4977b33681d1"
}
}
]
},
"message": {
"id": "e1b372a2-1186-4929-b370-904c59f060b7",
"project_id": "bf32e7ab-85c3-0073-47b9-90838a8462de",
"type": "taxonomy",
"operation": "upsert",
"api_name": "delivery_production",
"created_timestamp": "2019-07-18T10:52:33.1059256Z",
"webhook_url": "https://myapp.com/webhook-endpoint"
}
};
const response = rawResponse as IWebhookWorkflowResponse;