Event schema
Every event is a CloudEvents 1.0 JSON document with extension attributes prefixed myrtille. The schema is the most durable part of Myrtille: it is useful without the town, and any change goes through an architecture decision and a schema version.
{ "specversion": "1.0", "id": "01J9ZX3K8Q4N2M7P6R5S4T3V2W", "source": "courier/coolify/inst-7f3a", "type": "eu.myrtille.deploy.failed", "time": "2026-10-14T16:02:11.482Z", "subject": "coolify:app:9c1e", "datacontenttype": "application/json", "myrtilleschema": "1", "myrtilletown": "acme", "myrtilledistrict": "production", "myrtillecitizen": "coolify:app:9c1e", "myrtilleseverity": "error", "myrtilleidempotency": "sha256:...", "data": { "deploymentId": "coolify:deploy:2b44", "message": "Build failed: exit code 1" }}typefollowseu.myrtille.<domain>.<verb>and belongs to a closed catalogue.subjectandmyrtillecitizenare opaque citizen identifiers:<courier>:<kind>:<ref>.myrtilleseverityis one ofdebug,info,notice,warning,error,critical.myrtilleidempotencyis a stable hash of the source content: duplicates are ignored.datais validated per type and never contains a secret, an environment value or a full log.- Log lines are not events: they stream on demand and are never persisted.
Catalogue (schema version 1)
Section titled “Catalogue (schema version 1)”| Domain | Types |
|---|---|
| citizen | discovered, removed, state, heartbeat |
| deploy | started, progress, succeeded, failed, cancelled |
| container | started, stopped, restarted, unhealthy, oom, restart_limit |
| server | reachable, unreachable, disk_warning |
| backup | succeeded, failed |
| task | started, progress, succeeded, failed |
| preview | opened, ready, closed |
| agent | session.started, session.ended, turn.started, turn.ended, tool.started, tool.ended, tool.failed, subagent.started, subagent.ended, task.created, task.completed, permission.requested, permission.decided, notification |
| mission | requested, started, progress, completed, failed |
created, decided, expired, dismissed |
|
| action | requested, confirmed, executed, failed, denied |
| courier | connected, disconnected, reconciled, error |
| local | service.up, service.down |
Citizen states
Section titled “Citizen states”idle, running, waiting, error, done, offline, unknown. A citizen without news for longer than its time-to-live becomes unknown; a disconnected source makes its citizens offline. Grey is honest: uncertainty is always visible.