issue.updated
DUET sends this event when an issue field changes and no other issue event covers the change.
x-duet-signature*stringThe 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*stringThe event ID. It equals the envelope id and doesn't change on a retry. Use it to deduplicate deliveries.
x-duet-event-type*stringThe event type. It equals the envelope type.
application/json- body
schema_version*1The version of the envelope and data schema. An additive change keeps the version. A breaking change increments it.
1id*stringThe event ID. It equals X-Duet-Event-Id. Use it to deduplicate deliveries.
type*"issue.updated""issue.updated"occurred_at*stringdate-timeorganization_id*stringproject_id*stringdata*An issue, as it was when the change happened, with its devices and work orders.
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.
{ "schema_version": 1, "id": "string", "type": "issue.updated", "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" }}{ "x-duet-signature": "string", "x-duet-event-id": "string", "x-duet-event-type": "string"}
