improved

[Webhooks Promotion] Duplicate Webhooks for `beta` and stable versions

Duplicate webhook notifications (one v0-beta and one v0) are sent for each single trigger to ease the migration from beta to stable webhooks. Developers should acknowledge a single notification, depending on whether they’re using v0-beta or v0, and ignore the other. v0-beta webhooks are now deprecated, and will be sunset at some point in the near future.

What’s changing?

Previously, app developers subscribing to Benchling Webhooks would expect that a single trigger will result in a single webhook notification. For example, a user in Benchling clicking a button in an app canvas will result in a single webhook notification similar to the following:

{
   "version": "0",
   "baseURL": "tenant.benchling.com",
   "tenantId": "ten_foo",
   "app": {
        "id": "app_bar",
        "version": "x.y.z",
   },
   "channel": "app_signals",
   "message": {
        "type": "v0-beta.x.y"
        ...
   },
}

As a part of the promotion of Benchling Webhooks from beta to stable, Benchling will eventually transition to sending the stable version of webhooks (i.e. v0 instead of v0-beta). To ease the migration process, Benchling will be temporarily sending two webhook notifications for each trigger; a v0-beta and a v0 webhook notification. For the example above, two distinct webhook notifications would be sent:

{
   "version": "0",
   "baseURL": "tenant.benchling.com",
   "tenantId": "ten_foo",
   "app": {
        "id": "app_bar",
        "version": "x.y.z",
   },
   "channel": "app_signals",
   "message": {
        "type": "v0-beta.x.y"
        ...
   },
}
// Separately:
{
   "version": "0",
   "baseURL": "tenant.benchling.com",
   "tenantId": "ten_foo",
   "app": {
        "id": "app_bar",
        "version": "x.y.z",
   },
   "channel": "app_signals",
   "message": {
        "type": "v0.x.y"
        ...
   },
}

It’s important to note that these are duplicate notifications send for the purposes of providing simultaneous support for apps that depend on either v0-beta or v0 webhooks. They do not represent distinct user interactions or triggers; developers should expect to receive both webhooks, but only respond to one of them. We recommend working to support stable webhooks (i.e. v0) as soon as possible.

v0-beta webhooks are now officially marked as deprecated, and will be fully sunset at some point in the near future. A full sunset announcement will be posted to the changelog when a firm date has been established. Two important things to note about the webhooks promotion:

  • As a part of the promotion of Webhooks to stable, app->version will be removed from all webhook versions.
  • App activation webhooks (i.e. lifecycle.activateRequested) will continue to be sent in duplicate indefinitely due to legacy dependencies

When is this happening?

Both v0-beta and v0 webhook notifications are currently being sent; this will be the case for at least 30 days, or until Webhook’s full promotion to stable. A separate sunset announcement with a firm sunset date is forthcoming; after, Benchling will no longer send v0-beta webhooks nor app->version in the payloads.