For the complete documentation index, see llms.txt. This page is also available as Markdown.

Webhooks

Webhooks are only available on Scale and Enterprise plans

IcePanel can notify your server in real time whenever model objects or model connections change in your organization. You register a subscription pointing to a public HTTPS endpoint, and IcePanel will POST a signed JSON payload to that URL for every matching event.

Subscriptions

A subscription tells IcePanel where to deliver events. All webhook subscriptions live under your organization settings. To create one, navigate to your organization settings, select Webhooks, then select Create webhook. Fill in the dialog , adding a custom name for your webhook so you can identify and add the endpoint URL.

Select Create webhook, and copy the signing secret displayed as it will not be shown again.

Events

When model object or connection data in your organization changes, IcePanel fires an event for each enabled subscription and sends a `POST` request with `Content-Type: application/json` to the endpoint configured on each subscription.

The request body looks like this:

Consumers should consider that the before and after values will vary depending on the collection the operation was executed on, while the top-level fields are always present.

Each field in the payload is described below:

Field
Type
Description

collection

string

Check table bellow

operation

string

Check table bellow

organizationId

string

Organization the event belongs to

subscriptionId

string

Subscription that dispatched this event

resourceId

string

ID of the affected resource

before

object | null

State before the change. null for created events

after

object | null

State after the change. null for deleted events

Webhook consumers are encouraged to call back the IcePanel API to fetch the full, up-to-date state of the affected resource. The following table describes the collections and operations that are currently supported by IcePanel webhooks.

Collection
Operations
API reference

model object

created updated deleted

model connection

created updated deleted

Signature Validation

Signature validation is a way to verify that an incoming HTTP request was genuinely sent by IcePanel and has not been tampered with in transit. IcePanel signs each request using a shared secret known only to IcePanel and the user who created the webhook subscription.

Each incoming webhook request sent by IcePanel includes headers that should be used to perform signature validation:

  • X-IcePanel-Signature— an HMAC-SHA256 hex digest

  • X-IcePanel-Timestamp — a Unix timestamp in seconds

To verify the received webhook request, check the X-IcePanel-Timestamp header and reject requests older than 5 minutes to prevent replay attacks. Then recompute the HMAC-SHA256 signature using the received timestamp, body and your subscription secret. Compare the recomputed signature against the received X-IcePanel-Signature header value. Both should be equal for the signature validation to pass.

Below is an example of how to verify using Node.js:

Disabling webhooks

IcePanel allows you to disable webhooks that have been created. This means that if you wish to stop receiving events to a particular endpoint temporarily, you can disable the active webhook for as long as desired, then re-enable it when ready. This prevents you needing to completely delete the webhook, and is designed to give you greater control.

To disable a webhook, select the ellipsis button that appears when you hover over a webhook. Here you can select “Disable webhook”. To re-enable it follow the same steps, but instead select the updated button “Enable webhook”.

Last updated

Was this helpful?