VersionListItemSchema
changed_by objectnullable
User who produced the version, or null when the commit had no authenticated Flask user (CLI, Celery, import).
changes object[]
Structured diff records describing the atomic field-level changes at this version, ordered by emission sequence. Empty for baseline (op=0) transactions per spec M4.
Value at path before the save; null when the field did not exist.
Semantic category of the change. First-class values in V1: 'filter', 'metric', 'dimension', 'column', 'chart', 'time_range', 'color_palette'. Falls back to 'field' for generic scalar changes that don't map to a named kind.
The verb for this change: 'add', 'remove', 'move', 'edit', 'update' (a collapsed-summary record for a field whose per-leaf changes exceeded the cap), or 'announce' (a synthetic headline record). Surfaced explicitly so consumers need not infer the verb from from_value/to_value null-tests — 'move' in particular cannot be derived that way.
Array of segments locating the change in the entity's state. Example: ['params', 'adhoc_filters', 'country'].
Value at path after the save; null when the field was removed.
UTC timestamp of the commit that produced the row
One of 'baseline', 'update', or 'delete', derived from the Continuum integer constant. Restore is not a distinct operation_type: a restore surfaces as 'update' carrying action_kind='restore' (see ACTIVITY_ACTION_KINDS).
Underlying Continuum transaction id
0-based position in the history, oldest first
Deterministic UUIDv5 derived from the entity UUID and the Continuum transaction id — stable across replicas and retention pruning. The handle accepted by the get/restore version endpoints.
{
"changed_by": {
"first_name": "string",
"id": 0,
"last_name": "string"
},
"changes": [
{
"kind": "string",
"operation": "string"
}
],
"issued_at": "2024-07-29T15:51:28.071Z",
"operation_type": "string",
"transaction_id": 0,
"version_number": 0,
"version_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}