Refs #54
Location
PR #54 test plan: "python3 -m json.tool parses, schema v39 (Grafana 10.4+)"
Problem
python3 -m json.tool only validates that the file is syntactically valid JSON. It does not validate:
- Whether panel types, target fields, and datasource refs conform to Grafana's schema
- Whether PromQL expressions are syntactically valid
- Whether template variable queries are well-formed
- Whether schemaVersion 39 features are used correctly
A dashboard JSON that passes json.tool can still fail to import, silently drop panels, or render incorrectly.
Impact
The test plan provides no confidence that the dashboard is importable or correct. Any schema regression in future edits will not be caught in CI.
Suggested Fix
- Add a CI step using grafana-dashboard-checker (grafana/dashboard-linter) to validate panel schema and PromQL syntax.
- Alternatively, add a docker-based smoke test in scripts/ that spins up Grafana 10.4.x and imports the JSON via the Grafana API, asserting a 200 response.
- At minimum, validate PromQL syntax using promtool check rules or a PromQL parser as a linting step.
Refs #54
Location
PR #54 test plan: "python3 -m json.tool parses, schema v39 (Grafana 10.4+)"
Problem
python3 -m json.tool only validates that the file is syntactically valid JSON. It does not validate:
A dashboard JSON that passes json.tool can still fail to import, silently drop panels, or render incorrectly.
Impact
The test plan provides no confidence that the dashboard is importable or correct. Any schema regression in future edits will not be caught in CI.
Suggested Fix