DUET PlatformDocs
API referenceWebhooksIssue webhooks

issue.resolved

available

DUET sends this event when the issue status changes to a terminal value, resolved or closed.

Header Parameters

x-duet-signature*string

The signatures, in the form t=<Unix seconds>,v1=<hex HMAC-SHA256>,v1a=<hex Ed25519>. Every delivery carries both signatures, and both sign the same string: <t>.<raw request body>.

v1= is an HMAC-SHA256 keyed with the subscription's signing secret. During a secret rotation, the header carries two v1= values.

v1a= is an Ed25519 signature made with the DUET signing key. To verify it, fetch the public keys from GET /webhooks/jwks.json, decode the hex value to 64 bytes, and verify it over the UTF-8 bytes of <t>.<raw request body> with each key. During a key rotation, the header carries two v1a= values.

Accept the delivery if any value of the kind you check verifies, and reject it if t is more than 300 seconds from your clock. Ignore keys in the header that you don't recognize.

x-duet-event-id*string

The event ID. It equals the envelope id and doesn't change on a retry. Use it to deduplicate deliveries.

x-duet-event-type*string

The event type. It equals the envelope type.

Request Body

application/json
  1. body
schema_version*1

The version of the envelope and data schema. An additive change keeps the version. A breaking change increments it.

Value in1
id*string

The event ID. It equals X-Duet-Event-Id. Use it to deduplicate deliveries.

type*"issue.resolved"
Value in"issue.resolved"
occurred_at*string
Formatdate-time
organization_id*string
project_id*string
data*

An issue, as it was when the change happened, with its devices and work orders.

Response Body

Any 2xx status acknowledges the delivery. Return it as soon as you receive the delivery, and process the event asynchronously. DUET waits 10 seconds for the response by default, and a subscription can set its own timeout from 1 to 30 seconds. A delivery that times out counts as failed and is retried.

Example Requests
POST/issue.resolved
Request Body
application/json
{  "schema_version": 1,  "id": "string",  "type": "issue.resolved",  "occurred_at": "2019-08-24T14:15:22Z",  "organization_id": "string",  "project_id": "string",  "data": {    "id": "string",    "number": 0,    "organization_id": "string",    "project_id": "string",    "project": {      "key": "string"    },    "sentinel_tag": "string",    "name": "string",    "description": "string",    "status": "string",    "priority": "urgent",    "source": "string",    "effective_from": "2019-08-24T14:15:22Z",    "effective_to": "2019-08-24T14:15:22Z",    "resolved_at": "2019-08-24T14:15:22Z",    "assigned_to": {      "id": "string",      "first_name": "string",      "last_name": "string",      "email": "string"    },    "created_by": {      "id": "string",      "first_name": "string",      "last_name": "string",      "email": "string"    },    "devices": [      {        "device_id": "string",        "component": "string",        "effective_from": "2019-08-24T14:15:22Z",        "effective_to": "2019-08-24T14:15:22Z"      }    ],    "work_orders": [      {        "id": "string",        "number": 0,        "organization_id": "string",        "project_id": "string",        "project": {          "key": "string"        },        "issue_id": "string",        "title": "string",        "description": "string",        "status": "string",        "priority": "urgent",        "due_date": "2019-08-24T14:15:22Z",        "work_type": "string",        "external_system": "string",        "external_id": "string",        "external_ref": "string",        "external_url": "string",        "payload": {          "property1": null,          "property2": null        },        "assigned_to": {          "id": "string",          "first_name": "string",          "last_name": "string",          "email": "string"        },        "devices": [          {            "device_id": "string",            "component": "string",            "status": "string",            "completed_at": "2019-08-24T14:15:22Z"          }        ],        "created_at": "2019-08-24T14:15:22Z",        "updated_at": "2019-08-24T14:15:22Z"      }    ],    "created_at": "2019-08-24T14:15:22Z",    "updated_at": "2019-08-24T14:15:22Z"  }}
Header Parameters
{  "x-duet-signature": "string",  "x-duet-event-id": "string",  "x-duet-event-type": "string"}