Skip to content

Notify a participant of a quarantine (outbound)

POST

Aerandil sends this request to participants affected by a federated-output quarantine. The request body is a CloudEvents JSON-format envelope with type = aerandil.participant_dispatch.quarantine_notice; data.quarantine identifies the output, incident, and operator follow-up actions.

Signature. Same data.signature Ed25519 detached signature contract as participant dispatch envelopes. Receivers treat this as an authenticated coordinator notice, not as an OAuth-protected Aerandil API call.

Receiver contract. Return any 2xx after recording the notice locally. Non-2xx responses mean the participant has not accepted custody of the quarantine notice and may be retried by the emitting delivery path.

Coordinator-signed quarantine_notice envelope (proposal 0022 §7.5).

Media typeapplication/cloudevents+json

Envelope with type = aerandil.participant_dispatch.quarantine_notice (§7.5). Body of the outbound webhooks.aerandil_participant_quarantine_notice request.

object
data
required

Aerandil-specific payload (§5.5). Shape varies by type; the schema at dataschema is the contract.

object
datacontenttype
required
string
Allowed value: application/json
dataschema
required

URL of the schema describing data. v1 URLs are https://schema.aerandil.example/0022/...; receivers match on this to dispatch parsing.

string format: uri
id
required

UUID v7 per §5.1; reused across retries of the same logical dispatch.

string format: uuid
source
required

Producer URI; e.g. aerandil://coordinator/tenant=T-1/program=... or aerandil://participant/....

string
specversion
required

CloudEvents specversion — pinned at 1.0.

string
Allowed value: 1.0
subject
required

Composite key (e.g. <run_id>/<participation_id>/<slot>).

string
>= 1 characters
time
required

RFC 3339; checked against the ±5-minute replay window.

string format: date-time
type
required

Reverse-DNS message kind.

string
Allowed values: aerandil.participant_dispatch.dispatched aerandil.participant_dispatch.acknowledged aerandil.participant_dispatch.result_submitted aerandil.participant_dispatch.delivery_failed aerandil.participant_dispatch.quarantine_notice
data
required
object
coordinator
required
object
aerandil_coordinator_identity_ref
string format: uri-reference
aerandil_correlation_id
string
aerandil_run_id
string
aerandil_tenant_id
string
dispatch_kind
required
string
Allowed value: federated_output_quarantine
envelope_version
required
string
Allowed value: 1.0
participant
required
object
aerandil_participation_id
string
quarantine
required
object
compliance_scope_only_read_url
string format: uri
incident_id
required
string
>= 1 characters
operator_actions_required
required
Array<string>
output_id
required
string
>= 1 characters
quarantine_reason
required
string
>= 1 characters
signature
required

Ed25519 detached signature over the canonical bytes of the surrounding envelope (RFC 8785 JCS with the signature field elided). Proposal 0022 §8.2.

object
alg
required

Signature algorithm — v1 supports ed25519 only.

string
Allowed value: ed25519
kid
required

Key identifier. Resolves against federated_participation.runner_signing_key_ref for participant-signed envelopes, or the coordinator signing config for coordinator-signed.

string
>= 1 characters
value
required

Base64 (RFC 4648 §4) detached signature bytes.

string
>= 1 characters
dataschema
required

Stable schema URI for data; normally <dataschema_base>/quarantine_notice.v1.json.

string format: uri
type
required
Allowed value: aerandil.participant_dispatch.quarantine_notice

Receiver accepted the quarantine notice. Any 2xx status counts as success.

Receiver did not accept the notice; the emitting delivery path decides whether to retry.