sales-demos-dashboardlisted
Install: claude install-skill ericcames/sales.demos
# sales-demos-dashboard
Push Grafana Cloud dashboards defined as committed JSON. Issue
[#275](https://github.com/ericcames/sales.demos/issues/275).
## There is an AAP path now too (#318)
`AAP Observability - 2 Deploy Dashboards` runs the same playbook from AAP, so
this no longer has to come off a laptop. Use whichever suits; the skill is still
the quicker loop while iterating on dashboard JSON.
**It is not per-environment, and that surprises people.** One Grafana Cloud
serves both environments, so the template exists in both controllers and pushes
to the *same* folder — running it from demo also updates what sandbox sees.
This skill contains **no logic**. All the work is in
[`playbooks/deploy_dashboard.yml`](../../../playbooks/deploy_dashboard.yml). See
`CLAUDE.md` → *Skills and playbooks*.
## What it does
1. Creates a "Sales Demos" folder in Grafana Cloud (idempotent)
2. Reads `playbooks/files/grafana/cluster-health.json`
3. Pushes the dashboard via the Grafana HTTP API with `overwrite: true`
The dashboard covers cluster nodes, KubeVirt VMs, AAP platform health, and
logs. A `cluster` template variable makes it work for both sandbox and demo.
## Preflight Check
Run these before doing anything else. Every one must pass.
```bash
VAULT_ID="sales.demos@$HOME/secrets/.vault_pass_sales_demos"
# 1. Vault password file exists
test -s "$HOME/secrets/.vault_pass_sales_demos" \
&& echo "pass: vault password file" \
|| echo "FAIL: ~/secrets/.vault_pass_sales_demos missing