Skip to main content

Webhook / Interlock Configuration

Overview

Occasionally it can be desirable to trigger remote actions in response to actions that occur in the resource system. Use cases include remote logging or instrument interlock control. To support these remote actions the resource system provides HTTP webhooks for the following actions:

  • Order Creation
  • Order Updates
  • Order Deletion
  • Event Creation
  • Event Updates
  • Event Deletion
  • Interlock Unlock Request
  • Interlock Status Request
  • Interlock Lock Request

Using the Service Webhook Manager facility staff can configure single or multiple webhooks to be triggered when any of the above events occur. 

ServiceWebhookManager.png

Configurations can be specified for HTTP Headers, HTTP Auth, request HTTP Verb/Type and request body data.

Note: all request bodies will be encoded as "application/json"

HTTP Verb/Type settings can be set to standard or "insecure". Insecure requests will ignore all TLS certificate errors and are not recommended.

Payload

By default the payload for requests will include the following in the request body: 

  • Order ID (order_id)
  • Line Item or Event ID (line_id / event_id)

Any additional data elements as configured by the webhook settings will be attached to the data object.

Data keyed with the same key as any of the above will be OVERWRITTEN by the system provided value

Multiple Webhooks

Multiple webhooks on the same event can be configured. Order of execution is NOT guaranteed.

Interlock Configuration

Interlocks are a special use case for webhooks. Scheduled instruments/services can be configured to display an interlock control UI element by attaching the has_interlock tag to the service in question under the "Service Tags" configuration using the "Manual Tag Wizard"

HasInterlocksSTW.png

After event creation / during event viewing services with this tag will display a set of interlock controls

EventInterlockControls.png

 

The 3 actions correspond to the "interlock" action type and subtype.

InterlockWebhook.png

The lock and unlock actions are "push-only" webhooks. Any response traffic to these calls is discarded. Valid HTTP Error codes will generate an error message with the reason for the error displayed.

The "Query Lock Status" action will parse the response from the target and expects an "application/json" body with a "status" key containing either a "locked" or "unlocked" value.