Docs

Python: Version history

Read the project configuration at any point in time, preview and apply a restore, and manage timelines and snapshots with the Python SDK.

Updated Oct 16, 2026

Every change to policies, tables, functions, settings, buckets and keys is recorded on the project's timeline. Background: Version history: see, undo and restore changes.

plan = await sovaria.chrono_restore_plan("2026-10-15T09:00:00Z")
for action in plan["actions"]:
    print(action["path"], "manual" if action.get("manual") else "auto")
await sovaria.chrono_restore("2026-10-15T09:00:00Z")

Methods

sovaria.chrono_commit

Create a Chrono commit.

await sovaria.chrono_commit(
    *, timeline: str,
    message: str,
    author: str,
    event_type: str = 'update',
) -> dict[str, Any]

Parameters

timelinestrrequired
messagestrrequired
authorstrrequired
event_typestroptionaldefault 'update'
Returns
dict[str, Any]

sovaria.chrono_converge

Converge source timeline into target timeline.

await sovaria.chrono_converge(
    *, target: str,
    source: str,
    author: str,
    message: str,
) -> dict[str, Any]

Parameters

targetstrrequired
sourcestrrequired
authorstrrequired
messagestrrequired
Returns
dict[str, Any]

sovaria.chrono_create_snapshot

Create a system snapshot.

await sovaria.chrono_create_snapshot(message: str) -> dict[str, Any]

Parameters

messagestrrequired
Returns
dict[str, Any]

sovaria.chrono_delete_timeline

Delete a timeline.

await sovaria.chrono_delete_timeline(name: str) -> dict[str, Any]

Parameters

namestrrequired
Returns
dict[str, Any]

sovaria.chrono_jump_timeline

Force-jump a timeline head.

await sovaria.chrono_jump_timeline(
    name: str,
    target_hex: str,
) -> dict[str, Any]

Parameters

namestrrequired
target_hexstrrequired
Returns
dict[str, Any]

sovaria.chrono_list_snapshots

List known snapshots.

await sovaria.chrono_list_snapshots() -> dict[str, Any]
Returns
dict[str, Any]

sovaria.chrono_list_timelines

List available timelines.

await sovaria.chrono_list_timelines() -> dict[str, Any]
Returns
dict[str, Any]

sovaria.chrono_restore

Go back to at: applies the plan's automated changes with this client's own permissions.

await sovaria.chrono_restore(
    at: str,
    *, timeline: str = 'main',
) -> dict[str, Any]

Parameters

atstrrequired
timelinestroptionaldefault 'main'
Returns
dict[str, Any]

sovaria.chrono_restore_plan

What going back to at changes, file by file, and who would gain or lose access.

await sovaria.chrono_restore_plan(
    at: str,
    *, timeline: str = 'main',
) -> dict[str, Any]

Writes nothing.

Parameters

atstrrequired
timelinestroptionaldefault 'main'
Returns
dict[str, Any]

sovaria.chrono_restore_snapshot

Restore a snapshot by id.

await sovaria.chrono_restore_snapshot(
    snapshot_id: int,
) -> dict[str, Any]

Parameters

snapshot_idintrequired
Returns
dict[str, Any]

sovaria.chrono_spawn_timeline

Spawn a new timeline from a source chronon.

await sovaria.chrono_spawn_timeline(
    *, name: str,
    source_hex_id: str | None = None,
) -> dict[str, Any]

Parameters

namestrrequired
source_hex_idstr | Noneoptionaldefault None
Returns
dict[str, Any]

sovaria.chrono_state

The project's configuration (policies, schema, functions, settings, buckets, keys) at a commit id or ISO time (now when at is omitted), optionally one folder.

await sovaria.chrono_state(
    *, at: str | None = None,
    prefix: str = '',
    timeline: str = 'main',
) -> dict[str, Any]

Parameters

atstr | Noneoptionaldefault None
prefixstroptionaldefault ''
timelinestroptionaldefault 'main'
Returns
dict[str, Any]

sovaria.chrono_timeline_history

Fetch timeline history chronons.

await sovaria.chrono_timeline_history(
    name: str,
    *, limit: int = 50,
    offset: int = 0,
) -> dict[str, Any]

Parameters

namestrrequired
limitintoptionaldefault 50
offsetintoptionaldefault 0
Returns
dict[str, Any]

sovaria.chrono_topology

Return timeline graph topology.

await sovaria.chrono_topology(
    *, timeline: str = 'main',
    limit: int = 50,
) -> dict[str, Any]

Parameters

timelinestroptionaldefault 'main'
limitintoptionaldefault 50
Returns
dict[str, Any]

sovaria.chrono_variance

Calculate variance between two chronons.

await sovaria.chrono_variance(
    *, old_chronon_hex: str,
    new_chronon_hex: str,
    domain_filter: str | None = None,
) -> dict[str, Any]

Parameters

old_chronon_hexstrrequired
new_chronon_hexstrrequired
domain_filterstr | Noneoptionaldefault None
Returns
dict[str, Any]
Something unclear or missing on this page?Tell us