Sonar
Webhook Events

revoke_drive_item_permission_request.created

Fires when Riot decides a third-party permission should be revoked. The customer is expected to perform the revocation on the corresponding provider using the identifiers in data.provider_data.

postWebhookrevoke_drive_item_permission_request.created

Headers

webhook-idstring uuid required

Unique identifier of this webhook event. The same id is sent on every retry; use it as an idempotency key.

webhook-timestampinteger required
Example:1780000000

Unix timestamp (seconds) at which this delivery attempt was made. Used together with webhook-id and the body to verify the signature.

webhook-signaturestring required
Example:v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=

Space-delimited list of signatures, one per active endpoint secret (e.g. v1,sig1 v1,sig2).

Each signature is v1,<base64(HMAC-SHA256(secret, "<webhook-id>.<webhook-timestamp>.<body>"))>. Verify against the raw request body; re-serializing the JSON will change the bytes and invalidate the signature.

webhook-test'true'

true on a test delivery. A real event never carries this header.

Payload

timestampstring date-time required

ISO 8601 timestamp at which the event was created in Riot. This is the event time, not the delivery attempt time. The delivery time is sent in the webhook-timestamp header.

type'revoke_drive_item_permission_request.created' required

Example payload

{
  "data": {
    "provider": "google",
    "provider_data": {
      "drive_item_id": "0BxYzAbCdEfGhIjKlMnOp",
      "owner_id": "owner@example.com",
      "permission_id": "anyoneWithLink",
      "shared_drive_id": "b!abc123"
    }
  }
}

Response

Event accepted. Any 2xx status code is treated as success; the receiver does not need to return a body.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.