Dashboards as code (git registry)

Most StrataBI dashboards are cheap to create — authored in the builder or generated by AI, and disposable by design. But the dashboards you rely on (your global, curated ones) are worth treating as code: reviewed, versioned, and recoverable. StrataBI does this with a git registry — a record of which dashboards are under version control — plus a CLI that syncs those dashboards between S3 and a local directory you manage with normal git.

This is opt-in and additive. Dashboards stay declarative JSON in S3; nothing about authoring or rendering changes.

Two tiers

git-managed. This is most of what gets created.

source of truth; S3 is the serving layer the runtime reads.

The git registry is independent of pinning and favorites — a dashboard can be version-controlled without being pinned, and vice versa.

Marking a dashboard for git

Open a dashboard and use the git button in the dashboard controls (next to the favorite star). Solid means the dashboard is registered for git; outline means it isn't. Registering is open to any user; the button writes the dashboard's identity to the git registry.

Stable identity (overwrite-in-place)

Normally, saving a dashboard writes a new timestamped artifact. A git-registered dashboard overwrites its existing artifact in place instead — whether saved from the builder or pushed from the CLI. That keeps a single, stable S3 identity for the dashboard, so git and the runtime never drift. (To deliberately fork a new copy, use the CLI --new flag.)

Syncing with the CLI

The companion CLI moves the registered set between S3 and a local git working directory. It talks to S3 directly with your own AWS credentials — so the ability to push is gated by your IAM access to the dashboard bucket.

bash
# bring the registered dashboards down into ./dashboards (then commit with git)
stratacli dashboards pull

# see what's registered
stratacli dashboards list

# see which local files differ from S3
stratacli dashboards diff

# deploy edits back to S3 (overwrite in place)
stratacli dashboards push

# bootstrap a brand-new dashboard from a local file
stratacli dashboards push my-dashboard.json --new --git-registered --pinned

pull writes each dashboard as a .json file plus a small manifest recording each object's S3 key and ETag. push validates each file against the published dashboard schema, then overwrites the registered artifact — and refuses to clobber an object that changed in S3 since your last pull (use --force to override). Enable S3 versioning on the dashboard bucket as a backstop.

Deregistering

Removing a dashboard from the git registry is open for ordinary (non-pinned) dashboards — just toggle the git button off. But **deregistering a pinned dashboard is an admin action: the dashboard button will not remove it, and an administrator must do it from the Pins** tab of the admin console ("Git registry — admin override"). This protects curated, surfaced dashboards from being pulled out of version control by accident.