Skip to content

9. Events

This section is informative.

Implementations that exchange OIS records as events SHOULD use CloudEvents 1.0. This section is informative in v0.1 and is expected to become normative once design partners have tested it.

Each event carries one record as data, with datacontenttype application/vnd.ois+json. The subject attribute holds the record id, and source identifies the producer. Trace context MAY be propagated with the CloudEvents distributed tracing extension.

Event type Emitted when
ois.intent.approved An intent version reaches status approved
ois.intent.withdrawn An intent version with status withdrawn is recorded
ois.artifact.recorded An artifact record is created
ois.evidence.recorded An evidence record is created
ois.decision.recorded A decision record is created
ois.finding.recorded A finding record is created, including one that supersedes another
ois.passport.issued A Quality Passport is issued

The ois. prefix is a placeholder. CloudEvents recommends a reverse-DNS prefix, which will be set together with the project domain (Appendix C).

{
"specversion": "1.0",
"type": "ois.evidence.recorded",
"source": "https://ci.acme.example/pipelines/portal",
"id": "b6f1c2e0-5a8d-4c1e-9a77-2f3e8d1c0b44",
"subject": "https://ois.acme.example/evidence/EV-9021",
"time": "2026-10-20T14:32:05Z",
"datacontenttype": "application/vnd.ois+json",
"data": { "ois": "0.1", "type": "evidence", "id": "https://ois.acme.example/evidence/EV-9021" }
}

The data member is shortened here. A real event carries the complete record.