Documentation CLI 0.1.1 · development llms.txt
DOCUMENTATION / CONCEPTS

Cloud synchronization

One-way metadata reports connect your local lifecycle to the Cloud console.

Authentication

Create a lifecycle token in the intended workspace, then supply its secret through COLDCTL_CLOUD_TOKEN. Cloud stores a hash and validates token expiry, revocation and creator membership. Legacy scan tokens and persisted tokens without a scope cannot sync lifecycle metadata. Legacy scan endpoints have been removed. Previously received reports remain after revocation.

Upload boundary

The allowlist includes installation ID/version, source/destination names/types, policy retention metadata and job counters/stages/verification times. It excludes endpoints, passwords, credential environment references, filter values, filesystem paths, row keys, row contents and raw errors. Metadata names can still be sensitive; inspect --dry-run before selecting a destination.

Report semantics

Sync atomically replaces one installation report within the token-derived workspace. Collection reads local tables sequentially, not in one SQLite snapshot. Cloud is an observer, not a worker controller. Refresh after sync. Completed exports can overlap because of repeats/imports; totals are not unique data or reclaimed capacity.

Limits and retries

Schema-v2 supports up to 1,024 immutable metadata pages / 102,400 records, with 100 records, 40 KiB and 24,000 UTF-16 units per page. A commit atomically publishes the complete report; interrupted uploads leave the previous report visible. Oversized reports fail without truncation. Page and commit retries are idempotent; newer reports win. Uploads expire after one hour, and clocks must be accurate. Deploy Cloud v2 before updating agents. Background retries collect fresh pages.

Transport

HTTPS with certificate/hostname verification is required. Redirects are rejected. Connection timeout is 10 seconds; the request timeout is 30 seconds. Only --allow-local-http allows numeric loopback HTTP for local test harnesses.

CLI
coldctl agent sync --dry-run
coldctl agent sync --cloud-url http://127.0.0.1:5180 --allow-local-http

Scheduler and deletion visibility

Schema-v2 reports queue retries, recurring schedules and their local deletion authorization, deletion completion, confirmed deleted rows separately from absent or uncertain outcomes, connector versions and active monitor incidents. Failed source jobs remain visible through job status. Cloud observes these states; it does not authorize deletion or execute agent commands. Counts do not establish reclaimed disk space. Raw errors and filter values stay local.

Run background synchronization

Run sync --watch as a separate supervised process using the scheduler data directory. Successful uploads repeat every 300 seconds by default (30–86400 configurable). Failures back off from 30 seconds to one hour; next attempt, last success and sanitized failures persist in cloud-sync.sqlite. Each retry collects fresh metadata; intermediate states may be coalesced. One-shot and background uploads share a per-state lock. Ctrl+C stops the loop; restart after changing token environment variables. The agent monitor exposes sync failure count and last-success time and can send cloud_sync alerts. External monitoring is needed for a stopped process. Existing payload limits still apply, with no silent truncation.

CLI
coldctl agent sync --cloud-url https://console.example.com --watch --interval-seconds 300
coldctl agent sync-status

Paged dashboard and cleanup

Load next page retrieves bounded report fragments. Totals describe only loaded metadata until all pages are read. Refresh if a report changes during traversal. Reports older than 15 minutes are marked stale; this is not a worker liveness check. Best-effort cleanup during sync removes abandoned or superseded pages older than 24 hours while retaining active reports. Retired installations require operator cleanup. Dry-run emits an array of schema-v2 pages.

CLI
coldctl agent sync --dry-run
coldctl agent sync --cloud-url https://console.example.com --watch