Events

POST /events/app-events

List application events

Get a list of application events with optional filters and their linked platform events

Request JSON Object:
  • action (string)

  • archived (boolean)

  • created_at_from (string)

  • created_at_to (string)

  • error_message (string)

  • keyword (string)

  • level (string)

  • page (integer)

  • page_size (integer)

  • resource_type (string)

  • resource_uuid (string)

  • sort_by (string)

  • sort_order (string)

  • status (string)

  • user_id (integer)

  • username (string)

Status Codes:
GET /events/app-events/{id}

Get application event by ID

Get a specific application event and its linked platform events

Parameters:
  • id (string) – App Event ID

Status Codes:
Response JSON Object:
  • app_event.action (string)

  • app_event.archived (boolean)

  • app_event.completed_at (string)

  • app_event.correlation_id (string) – CorrelationID ties the lifecycle of ONE operation together: a start event (IN_PROGRESS, completed_at NULL) and its terminal transition (SUCCESS/FAILED) share it. NULL for in-process one-shots. Both Postgres and SQLite treat NULLs as distinct in a unique index, so many rows carry no id while any non-null id stays unique — and a guarded upsert on it (advance-only, see persistEvent) makes an out-of-process producer’s replay idempotent AND its start→terminal transition update the same row instead of writing a second.

  • app_event.created_at (string)

  • app_event.cs_start_id (integer)

  • app_event.description (string) – Description is the human sentence shown in the track/timeline (“Configured node 10.60.0.60”, “BIOS update failed for 172.18.100.29: timeout”). Producers set it; persistEvent derives a default from action+uuid+status when it is empty.

  • app_event.error_message (string)

  • app_event.id (string)

  • app_event.level (string)

  • app_event.progress (integer) – Progress is the 0..100 completion of a long-running operation. Streamed live on every progress tick; the row is checkpointed only on a throttle (see progress.go) so the column is ~current for a cold reader without a per-tick write. 0 for instantaneous events.

  • app_event.resource_type (string)

  • app_event.resource_uuid (string)

  • app_event.status (string)

  • app_event.tenant_id (string)

  • app_event.user_id (integer)

  • app_event.username (string)

  • sub_events (any)

POST /events/archive

Archive events

Archive old events for long-term storage

Status Codes:
POST /events/list

List events

Get a list of all events with optional filters

Status Codes:
GET /events/sse

SSE Event Stream

Subscribe to real-time VM state change events via Server-Sent Events (SSE)

Status Codes:
GET /events/types

List event types

Retrieve a list of all available event types

Status Codes: