Skip to content

Snapshots

Snapshots are derived read models for the .firecube/ control plane. They make inspection and cleanup commands faster, but the WAL under .firecube/runs/ is the authoritative state.

Set The Product

Set the full product URI:

PRODUCT_URI="file:///data/products/MY_PRODUCT.zarr"

Pass the full URI through --product-name to bind the command directly to the product without a storage configuration.

Check Snapshot Status

firecube chunks snapshots status --product-name "$PRODUCT_URI"

Expected output when no snapshot exists:

No snapshot found for MY_PRODUCT.zarr

Use JSON when automation needs to branch on exists:

firecube chunks snapshots status \
  --product-name "$PRODUCT_URI" \
  --format json

Expected output after a rebuild resembles:

{
  "exists": true,
  "completed_before": "2026-06-03T15:54:27.100797+00:00",
  "age_human": "3m",
  "generation": "1780502101660654725",
  "records": 0
}

Rebuild A Snapshot

Preview:

firecube chunks snapshots rebuild \
  --product-name "$PRODUCT_URI" \
  --dry-run

Expected output:

[dry-run] Would rebuild snapshot for product 'MY_PRODUCT.zarr'

Rebuild:

firecube chunks snapshots rebuild --product-name "$PRODUCT_URI"

Expected output:

Rebuilt snapshot for MY_PRODUCT.zarr: generation=1780502101660654725 records=4

Use JSON if you need the snapshot path:

firecube chunks snapshots rebuild \
  --product-name "$PRODUCT_URI" \
  --format json

Expected output resembles:

{
  "product": "MY_PRODUCT.zarr",
  "generation": "1780502101660654725",
  "records": 4,
  "snapshot_path": "file:///data/products/MY_PRODUCT.zarr/.firecube/snapshots/snapshot-1780502101660654725.jsonl",
  "locked": false,
  "remote": false
}

Next Steps