GitOps & export
Keep dashboards and alert rules in your Git repository. PulseBoard polls the repo and reconciles the diff — new files are created, changed files updated, and (if prune is enabled) files removed from Git are deleted from the workspace.
Configure
# Environment / agent.toml
PULSE_GITOPS_URL=https://github.com/acme/observability
PULSE_GITOPS_BRANCH=main
PULSE_GITOPS_PATH=pulseboard/
PULSE_GITOPS_INTERVAL=60
PULSE_GITOPS_TOKEN_ENV=GH_TOKEN
PULSE_GITOPS_PRUNE=true
Layout
Files in the configured sub-directory must be JSON matching the dashboard or rule-group schema. The filename (without .json) is used as the stable ID.
pulseboard/
├─ dashboards/
│ ├─ payments-overview.json
│ └─ infra-hosts.json
├─ rules/
│ ├─ payments.json
│ └─ infra.json
└─ routing.yaml
Export as code
GET /api/export/dashboards/{id}?format=yaml
GET /api/export/rules/{id}?format=tf
GET /api/export/routing?format=yaml
Or click the </> Code button in the dashboard toolbar.
Reconciliation semantics
- Create — file present in Git, ID absent from workspace.
- Update — file present and ID present; content compared by canonical hash.
- Prune — when
PULSE_GITOPS_PRUNE=true, IDs present in workspace but absent from Git are deleted.