Event contracts
Event payloads are versioned JSON Schemas under contracts/events/. Every RabbitMQ message uses the shared envelope; per-event files describe the data object. Living index:Event catalog. Hub: Contracts.
| Event | Schema | Notes |
|---|---|---|
| Envelope | event-envelope.v1.json | Wraps every outbox / RabbitMQ message |
user.created v1 | user.created.v1.json | OL → CAP/LMS/WorkMasters provisioning |
user.deleted v1 | user.deleted.v1.json | OL → CAP PII anonymize |
payment.completed v1 | payment.completed.v1.json | OL → CAP / LMS unlock |
payment.failed v1 | payment.failed.v1.json | OL → CAP (and later LMS) |
notification.requested v1 | notification.requested.v1.json | Any business service → OL Notify |
application.stage_changed v1 | application.stage_changed.v1.json | CAP → Audit / analytics |
application.evaluation_inconclusive v1 | application.evaluation_inconclusive.v1.json | CAP → LMS recommendations |
application.certified v1 | application.certified.v1.json | CAP → WorkMasters, LMS |
lms.enrollment.activated v1 | lms.enrollment.activated.v1.json | LMS → analytics / notify |
lms.course.completed v1 | lms.course.completed.v1.json | LMS → CAP (GAP_TRAINING), WorkMasters later |
lms.certificate.issued v1 | lms.certificate.issued.v1.json | LMS → WorkMasters later |
Raw files live at contracts/events/ and are copied topublic/contracts/events/ via pnpm sync:contracts.