@intentius/chant-lexicon-grafana 0.97.0 → 0.99.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/README.md +15 -5
  2. package/dist/actions/grafana.d.ts +24 -0
  3. package/dist/actions/grafana.d.ts.map +1 -0
  4. package/dist/actions/index.d.ts +2 -0
  5. package/dist/actions/index.d.ts.map +1 -0
  6. package/dist/alerting-build.d.ts +128 -0
  7. package/dist/alerting-build.d.ts.map +1 -0
  8. package/dist/alerting.d.ts +273 -0
  9. package/dist/alerting.d.ts.map +1 -0
  10. package/dist/api/apply.d.ts +156 -0
  11. package/dist/api/apply.d.ts.map +1 -0
  12. package/dist/api/bind.d.ts +32 -0
  13. package/dist/api/bind.d.ts.map +1 -0
  14. package/dist/api/client.d.ts +76 -0
  15. package/dist/api/client.d.ts.map +1 -0
  16. package/dist/api/converge.d.ts +33 -0
  17. package/dist/api/converge.d.ts.map +1 -0
  18. package/dist/api/dashboards.d.ts +102 -0
  19. package/dist/api/dashboards.d.ts.map +1 -0
  20. package/dist/api/datasources.d.ts +26 -0
  21. package/dist/api/datasources.d.ts.map +1 -0
  22. package/dist/api/fake-grafana-writes.d.ts +41 -0
  23. package/dist/api/fake-grafana-writes.d.ts.map +1 -0
  24. package/dist/api/fake-grafana.d.ts +61 -0
  25. package/dist/api/fake-grafana.d.ts.map +1 -0
  26. package/dist/api/folders.d.ts +110 -0
  27. package/dist/api/folders.d.ts.map +1 -0
  28. package/dist/api/library-panels.d.ts +52 -0
  29. package/dist/api/library-panels.d.ts.map +1 -0
  30. package/dist/build.d.ts +30 -2
  31. package/dist/build.d.ts.map +1 -1
  32. package/dist/catalog.d.ts +1 -1
  33. package/dist/catalog.d.ts.map +1 -1
  34. package/dist/codegen/docs.d.ts.map +1 -1
  35. package/dist/codegen/schema-types.d.ts +3 -3
  36. package/dist/codegen/schema-types.d.ts.map +1 -1
  37. package/dist/composites/agent-dashboard.d.ts.map +1 -1
  38. package/dist/composites/catalog.d.ts.map +1 -1
  39. package/dist/composites/index.d.ts +4 -2
  40. package/dist/composites/index.d.ts.map +1 -1
  41. package/dist/composites/red-dashboard.d.ts +21 -2
  42. package/dist/composites/red-dashboard.d.ts.map +1 -1
  43. package/dist/composites/shared.d.ts +7 -0
  44. package/dist/composites/shared.d.ts.map +1 -1
  45. package/dist/composites/slo-alert-rules.d.ts +92 -0
  46. package/dist/composites/slo-alert-rules.d.ts.map +1 -0
  47. package/dist/config.d.ts +111 -0
  48. package/dist/config.d.ts.map +1 -0
  49. package/dist/contact-point-secrets.d.ts +17 -0
  50. package/dist/contact-point-secrets.d.ts.map +1 -0
  51. package/dist/dashboard.d.ts +16 -2
  52. package/dist/dashboard.d.ts.map +1 -1
  53. package/dist/datasource-refs.d.ts +95 -0
  54. package/dist/datasource-refs.d.ts.map +1 -0
  55. package/dist/datasource.d.ts +29 -0
  56. package/dist/datasource.d.ts.map +1 -1
  57. package/dist/deep-observe-hooks.d.ts +64 -0
  58. package/dist/deep-observe-hooks.d.ts.map +1 -0
  59. package/dist/deep-observe.d.ts +42 -0
  60. package/dist/deep-observe.d.ts.map +1 -0
  61. package/dist/describe-resources.d.ts +49 -0
  62. package/dist/describe-resources.d.ts.map +1 -0
  63. package/dist/detect.d.ts +28 -1
  64. package/dist/detect.d.ts.map +1 -1
  65. package/dist/export-resources.d.ts +38 -0
  66. package/dist/export-resources.d.ts.map +1 -0
  67. package/dist/import/alerting.d.ts +40 -0
  68. package/dist/import/alerting.d.ts.map +1 -0
  69. package/dist/import/edits.d.ts +47 -0
  70. package/dist/import/edits.d.ts.map +1 -0
  71. package/dist/import/embedded.d.ts +14 -0
  72. package/dist/import/embedded.d.ts.map +1 -0
  73. package/dist/import/generator.d.ts +60 -0
  74. package/dist/import/generator.d.ts.map +1 -0
  75. package/dist/import/live-export.d.ts +108 -0
  76. package/dist/import/live-export.d.ts.map +1 -0
  77. package/dist/import/mappings.d.ts +83 -0
  78. package/dist/import/mappings.d.ts.map +1 -0
  79. package/dist/import/model.d.ts +98 -0
  80. package/dist/import/model.d.ts.map +1 -0
  81. package/dist/import/normalize-alerting.d.ts +26 -0
  82. package/dist/import/normalize-alerting.d.ts.map +1 -0
  83. package/dist/import/normalize.d.ts +74 -0
  84. package/dist/import/normalize.d.ts.map +1 -0
  85. package/dist/import/parser.d.ts +110 -0
  86. package/dist/import/parser.d.ts.map +1 -0
  87. package/dist/import/report.d.ts +26 -0
  88. package/dist/import/report.d.ts.map +1 -0
  89. package/dist/import/testdata/fixtures.d.ts +35 -0
  90. package/dist/import/testdata/fixtures.d.ts.map +1 -0
  91. package/dist/import/v2.d.ts +72 -0
  92. package/dist/import/v2.d.ts.map +1 -0
  93. package/dist/index.d.ts +26 -9
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/integrity.json +18 -10
  96. package/dist/k8s.d.ts +107 -0
  97. package/dist/k8s.d.ts.map +1 -0
  98. package/dist/lint/audit-catalog.d.ts +2 -1
  99. package/dist/lint/audit-catalog.d.ts.map +1 -1
  100. package/dist/lint/post-synth/graf101.d.ts +2 -2
  101. package/dist/lint/post-synth/graf102.d.ts +1 -1
  102. package/dist/lint/post-synth/graf107.d.ts +1 -1
  103. package/dist/lint/post-synth/graf108.d.ts +8 -0
  104. package/dist/lint/post-synth/graf108.d.ts.map +1 -0
  105. package/dist/lint/post-synth/graf109.d.ts +8 -0
  106. package/dist/lint/post-synth/graf109.d.ts.map +1 -0
  107. package/dist/lint/post-synth/graf111.d.ts +8 -0
  108. package/dist/lint/post-synth/graf111.d.ts.map +1 -0
  109. package/dist/lint/post-synth/graf112.d.ts +8 -0
  110. package/dist/lint/post-synth/graf112.d.ts.map +1 -0
  111. package/dist/lint/post-synth/graf113.d.ts +8 -0
  112. package/dist/lint/post-synth/graf113.d.ts.map +1 -0
  113. package/dist/lint/post-synth/graf114.d.ts +8 -0
  114. package/dist/lint/post-synth/graf114.d.ts.map +1 -0
  115. package/dist/lint/post-synth/graf115.d.ts +8 -0
  116. package/dist/lint/post-synth/graf115.d.ts.map +1 -0
  117. package/dist/lint/post-synth/grafana-helpers.d.ts +7 -5
  118. package/dist/lint/post-synth/grafana-helpers.d.ts.map +1 -1
  119. package/dist/lint/post-synth/index.d.ts.map +1 -1
  120. package/dist/lint/rules/literal-secret.d.ts +7 -3
  121. package/dist/lint/rules/literal-secret.d.ts.map +1 -1
  122. package/dist/lsp/hover.d.ts.map +1 -1
  123. package/dist/manifest.json +1 -1
  124. package/dist/members.d.ts +27 -0
  125. package/dist/members.d.ts.map +1 -0
  126. package/dist/meta.json +135 -0
  127. package/dist/okf/index.md +36 -2
  128. package/dist/okf/rules/GRAF002.md +3 -2
  129. package/dist/okf/rules/GRAF101.md +3 -2
  130. package/dist/okf/rules/GRAF102.md +1 -0
  131. package/dist/okf/rules/GRAF108.md +11 -0
  132. package/dist/okf/rules/GRAF109.md +15 -0
  133. package/dist/okf/rules/GRAF111.md +11 -0
  134. package/dist/okf/rules/GRAF112.md +16 -0
  135. package/dist/okf/rules/GRAF113.md +16 -0
  136. package/dist/okf/rules/GRAF114.md +11 -0
  137. package/dist/okf/rules/GRAF115.md +11 -0
  138. package/dist/okf/types/AlertListPanel.md +9 -0
  139. package/dist/okf/types/AlertQuery.md +9 -0
  140. package/dist/okf/types/AlertRule.md +9 -0
  141. package/dist/okf/types/AlertRuleGroup.md +9 -0
  142. package/dist/okf/types/BarChartPanel.md +9 -0
  143. package/dist/okf/types/BarGaugePanel.md +9 -0
  144. package/dist/okf/types/CanvasPanel.md +9 -0
  145. package/dist/okf/types/ClassicConditionsExpression.md +9 -0
  146. package/dist/okf/types/ContactPoint.md +14 -0
  147. package/dist/okf/types/Dashboard.md +1 -0
  148. package/dist/okf/types/Datasource.md +3 -2
  149. package/dist/okf/types/ExternalDatasource.md +15 -0
  150. package/dist/okf/types/FlameGraphPanel.md +9 -0
  151. package/dist/okf/types/GeomapPanel.md +9 -0
  152. package/dist/okf/types/HistogramPanel.md +9 -0
  153. package/dist/okf/types/MathExpression.md +9 -0
  154. package/dist/okf/types/MuteTiming.md +13 -0
  155. package/dist/okf/types/NodeGraphPanel.md +9 -0
  156. package/dist/okf/types/NotificationPolicy.md +9 -0
  157. package/dist/okf/types/NotificationTemplate.md +9 -0
  158. package/dist/okf/types/PieChartPanel.md +9 -0
  159. package/dist/okf/types/ReduceExpression.md +9 -0
  160. package/dist/okf/types/ResampleExpression.md +9 -0
  161. package/dist/okf/types/SqlExpression.md +9 -0
  162. package/dist/okf/types/StateTimelinePanel.md +9 -0
  163. package/dist/okf/types/StatusHistoryPanel.md +9 -0
  164. package/dist/okf/types/ThresholdExpression.md +9 -0
  165. package/dist/okf/types/TrendPanel.md +9 -0
  166. package/dist/okf/types/XYChartPanel.md +9 -0
  167. package/dist/op/activities/grafana-apply.d.ts +75 -0
  168. package/dist/op/activities/grafana-apply.d.ts.map +1 -0
  169. package/dist/op/activities/index.d.ts +9 -0
  170. package/dist/op/activities/index.d.ts.map +1 -0
  171. package/dist/op/builders.d.ts +24 -0
  172. package/dist/op/builders.d.ts.map +1 -0
  173. package/dist/ownership.d.ts +67 -0
  174. package/dist/ownership.d.ts.map +1 -0
  175. package/dist/panel-options.d.ts +65 -0
  176. package/dist/panel-options.d.ts.map +1 -0
  177. package/dist/panels.d.ts +46 -9
  178. package/dist/panels.d.ts.map +1 -1
  179. package/dist/pin.d.ts +29 -7
  180. package/dist/pin.d.ts.map +1 -1
  181. package/dist/plugin.d.ts.map +1 -1
  182. package/dist/promql-check.d.ts +51 -0
  183. package/dist/promql-check.d.ts.map +1 -0
  184. package/dist/query.d.ts +9 -8
  185. package/dist/query.d.ts.map +1 -1
  186. package/dist/rules/graf101.ts +3 -3
  187. package/dist/rules/graf102.ts +1 -1
  188. package/dist/rules/graf107.ts +1 -1
  189. package/dist/rules/graf108.ts +17 -0
  190. package/dist/rules/graf109.ts +17 -0
  191. package/dist/rules/graf111.ts +17 -0
  192. package/dist/rules/graf112.ts +17 -0
  193. package/dist/rules/graf113.ts +17 -0
  194. package/dist/rules/graf114.ts +17 -0
  195. package/dist/rules/graf115.ts +17 -0
  196. package/dist/rules/grafana-helpers.ts +15 -8
  197. package/dist/rules/literal-secret.ts +60 -6
  198. package/dist/schema/barchart.gen.d.ts +198 -0
  199. package/dist/schema/barchart.gen.d.ts.map +1 -0
  200. package/dist/schema/bargauge.gen.d.ts +97 -0
  201. package/dist/schema/bargauge.gen.d.ts.map +1 -0
  202. package/dist/schema/canvas.gen.d.ts +152 -0
  203. package/dist/schema/canvas.gen.d.ts.map +1 -0
  204. package/dist/schema/dashboard.gen.d.ts +196 -21
  205. package/dist/schema/dashboard.gen.d.ts.map +1 -1
  206. package/dist/schema/expr.gen.d.ts +606 -0
  207. package/dist/schema/expr.gen.d.ts.map +1 -0
  208. package/dist/schema/gauge.gen.d.ts.map +1 -1
  209. package/dist/schema/geomap.gen.d.ts +100 -0
  210. package/dist/schema/geomap.gen.d.ts.map +1 -0
  211. package/dist/schema/heatmap.gen.d.ts.map +1 -1
  212. package/dist/schema/histogram.gen.d.ts +132 -0
  213. package/dist/schema/histogram.gen.d.ts.map +1 -0
  214. package/dist/schema/index.d.ts +12 -0
  215. package/dist/schema/index.d.ts.map +1 -1
  216. package/dist/schema/logs.gen.d.ts +1 -0
  217. package/dist/schema/logs.gen.d.ts.map +1 -1
  218. package/dist/schema/loki.gen.d.ts.map +1 -1
  219. package/dist/schema/nodegraph.gen.d.ts +49 -0
  220. package/dist/schema/nodegraph.gen.d.ts.map +1 -0
  221. package/dist/schema/piechart.gen.d.ts +127 -0
  222. package/dist/schema/piechart.gen.d.ts.map +1 -0
  223. package/dist/schema/prometheus.gen.d.ts.map +1 -1
  224. package/dist/schema/stat.gen.d.ts.map +1 -1
  225. package/dist/schema/statetimeline.gen.d.ts +124 -0
  226. package/dist/schema/statetimeline.gen.d.ts.map +1 -0
  227. package/dist/schema/statushistory.gen.d.ts +114 -0
  228. package/dist/schema/statushistory.gen.d.ts.map +1 -0
  229. package/dist/schema/table.gen.d.ts +22 -3
  230. package/dist/schema/table.gen.d.ts.map +1 -1
  231. package/dist/schema/tempo.gen.d.ts.map +1 -1
  232. package/dist/schema/text.gen.d.ts.map +1 -1
  233. package/dist/schema/timeseries.gen.d.ts +5 -1
  234. package/dist/schema/timeseries.gen.d.ts.map +1 -1
  235. package/dist/schema/trend.gen.d.ts +180 -0
  236. package/dist/schema/trend.gen.d.ts.map +1 -0
  237. package/dist/schema/xychart.gen.d.ts +145 -0
  238. package/dist/schema/xychart.gen.d.ts.map +1 -0
  239. package/dist/schema-validate.d.ts +30 -4
  240. package/dist/schema-validate.d.ts.map +1 -1
  241. package/dist/serializer.d.ts +11 -3
  242. package/dist/serializer.d.ts.map +1 -1
  243. package/dist/skill-defs.d.ts.map +1 -1
  244. package/dist/skills/chant-grafana-alerting.md +49 -0
  245. package/dist/skills/chant-grafana-provisioning.md +3 -3
  246. package/dist/skills/chant-grafana.md +12 -6
  247. package/dist/spec/fetch-units-cli.d.ts +3 -0
  248. package/dist/spec/fetch-units-cli.d.ts.map +1 -0
  249. package/dist/spec/overlay.d.ts +43 -0
  250. package/dist/spec/overlay.d.ts.map +1 -0
  251. package/dist/spec/schemas.d.ts +13 -7
  252. package/dist/spec/schemas.d.ts.map +1 -1
  253. package/dist/spec/units.d.ts +35 -0
  254. package/dist/spec/units.d.ts.map +1 -0
  255. package/dist/spec/units.gen.d.ts +2 -0
  256. package/dist/spec/units.gen.d.ts.map +1 -0
  257. package/dist/transformations.d.ts +459 -0
  258. package/dist/transformations.d.ts.map +1 -0
  259. package/dist/util.d.ts +6 -0
  260. package/dist/util.d.ts.map +1 -1
  261. package/dist/validate-alerting.d.ts +65 -0
  262. package/dist/validate-alerting.d.ts.map +1 -0
  263. package/dist/validate-output.d.ts +49 -9
  264. package/dist/validate-output.d.ts.map +1 -1
  265. package/dist/validate.d.ts.map +1 -1
  266. package/dist/variables.d.ts +7 -2
  267. package/dist/variables.d.ts.map +1 -1
  268. package/package.json +12 -4
  269. package/src/actions/actions.test.ts +24 -0
  270. package/src/actions/grafana.ts +40 -0
  271. package/src/actions/index.ts +1 -0
  272. package/src/alerting-build.ts +376 -0
  273. package/src/alerting.e2e.test.ts +212 -0
  274. package/src/alerting.test.ts +272 -0
  275. package/src/alerting.ts +435 -0
  276. package/src/api/apply.test.ts +238 -0
  277. package/src/api/apply.ts +384 -0
  278. package/src/api/bind.ts +58 -0
  279. package/src/api/client.ts +148 -0
  280. package/src/api/converge.ts +63 -0
  281. package/src/api/dashboards.ts +247 -0
  282. package/src/api/datasources.ts +33 -0
  283. package/src/api/fake-grafana-writes.ts +201 -0
  284. package/src/api/fake-grafana.ts +186 -0
  285. package/src/api/folders.ts +265 -0
  286. package/src/api/library-panels.ts +101 -0
  287. package/src/build.test.ts +210 -5
  288. package/src/build.ts +180 -43
  289. package/src/catalog.ts +86 -2
  290. package/src/codegen/docs.ts +42 -9
  291. package/src/codegen/schema-types.ts +16 -6
  292. package/src/composites/agent-dashboard.ts +6 -3
  293. package/src/composites/catalog.test.ts +2 -2
  294. package/src/composites/catalog.ts +82 -0
  295. package/src/composites/composites.test.ts +73 -9
  296. package/src/composites/index.ts +4 -2
  297. package/src/composites/queries.e2e.test.ts +374 -0
  298. package/src/composites/red-dashboard.ts +83 -12
  299. package/src/composites/shared.ts +11 -0
  300. package/src/composites/slo-alert-rules.ts +149 -0
  301. package/src/config.test.ts +61 -0
  302. package/src/config.ts +138 -0
  303. package/src/contact-point-secrets.ts +63 -0
  304. package/src/dashboard.ts +16 -2
  305. package/src/datasource-refs.test.ts +56 -0
  306. package/src/datasource-refs.ts +189 -0
  307. package/src/datasource.ts +52 -0
  308. package/src/deep-observe-hooks.ts +252 -0
  309. package/src/deep-observe.test.ts +265 -0
  310. package/src/deep-observe.ts +164 -0
  311. package/src/describe-resources.test.ts +255 -0
  312. package/src/describe-resources.ts +209 -0
  313. package/src/detect.ts +79 -2
  314. package/src/export-resources.test.ts +129 -0
  315. package/src/export-resources.ts +84 -0
  316. package/src/generated/lexicon-grafana.json +135 -0
  317. package/src/import/alerting-roundtrip.test.ts +161 -0
  318. package/src/import/alerting.ts +500 -0
  319. package/src/import/edits.ts +95 -0
  320. package/src/import/embedded.test.ts +45 -0
  321. package/src/import/embedded.ts +47 -0
  322. package/src/import/generated-types.e2e.test.ts +118 -0
  323. package/src/import/generator.test.ts +210 -0
  324. package/src/import/generator.ts +462 -0
  325. package/src/import/live-export.ts +264 -0
  326. package/src/import/mappings.ts +264 -0
  327. package/src/import/model.ts +110 -0
  328. package/src/import/normalize-alerting.ts +101 -0
  329. package/src/import/normalize.test.ts +117 -0
  330. package/src/import/normalize.ts +364 -0
  331. package/src/import/parser.test.ts +440 -0
  332. package/src/import/parser.ts +1236 -0
  333. package/src/import/report.ts +62 -0
  334. package/src/import/roundtrip.test.ts +468 -0
  335. package/src/import/testdata/fixtures.ts +129 -0
  336. package/src/import/v2.test.ts +292 -0
  337. package/src/import/v2.ts +803 -0
  338. package/src/import.e2e.test.ts +31 -84
  339. package/src/import.test.ts +9 -3
  340. package/src/index.ts +190 -5
  341. package/src/k8s.test.ts +98 -0
  342. package/src/k8s.ts +197 -0
  343. package/src/lint/audit-catalog.ts +60 -3
  344. package/src/lint/core-lint.test.ts +43 -0
  345. package/src/lint/post-synth/graf101.ts +3 -3
  346. package/src/lint/post-synth/graf102.ts +1 -1
  347. package/src/lint/post-synth/graf107.ts +1 -1
  348. package/src/lint/post-synth/graf108.ts +17 -0
  349. package/src/lint/post-synth/graf109.ts +17 -0
  350. package/src/lint/post-synth/graf111.ts +17 -0
  351. package/src/lint/post-synth/graf112.ts +17 -0
  352. package/src/lint/post-synth/graf113.ts +17 -0
  353. package/src/lint/post-synth/graf114.ts +17 -0
  354. package/src/lint/post-synth/graf115.ts +17 -0
  355. package/src/lint/post-synth/grafana-helpers.ts +15 -8
  356. package/src/lint/post-synth/index.ts +14 -0
  357. package/src/lint/post-synth/post-synth.test.ts +235 -11
  358. package/src/lint/rules/literal-secret.ts +60 -6
  359. package/src/lint/rules/rules.test.ts +27 -0
  360. package/src/lsp/completions.test.ts +5 -0
  361. package/src/lsp/hover.test.ts +7 -0
  362. package/src/lsp/hover.ts +8 -1
  363. package/src/members.ts +68 -0
  364. package/src/observe.e2e.test.ts +255 -0
  365. package/src/op/activities/grafana-apply.e2e.test.ts +175 -0
  366. package/src/op/activities/grafana-apply.test.ts +229 -0
  367. package/src/op/activities/grafana-apply.ts +171 -0
  368. package/src/op/activities/index.ts +8 -0
  369. package/src/op/builders.test.ts +40 -0
  370. package/src/op/builders.ts +34 -0
  371. package/src/ownership.ts +103 -0
  372. package/src/panel-options.ts +66 -0
  373. package/src/panels.test.ts +51 -0
  374. package/src/panels.ts +148 -10
  375. package/src/pin.ts +57 -6
  376. package/src/plugin.test.ts +5 -2
  377. package/src/plugin.ts +66 -0
  378. package/src/promql-check.test.ts +108 -0
  379. package/src/promql-check.ts +189 -0
  380. package/src/query.ts +13 -8
  381. package/src/schema/barchart.gen.ts +221 -0
  382. package/src/schema/bargauge.gen.ts +111 -0
  383. package/src/schema/canvas.gen.ts +176 -0
  384. package/src/schema/dashboard.gen.ts +206 -22
  385. package/src/schema/expr.gen.ts +618 -0
  386. package/src/schema/gauge.gen.ts +2 -1
  387. package/src/schema/geomap.gen.ts +112 -0
  388. package/src/schema/heatmap.gen.ts +2 -1
  389. package/src/schema/histogram.gen.ts +151 -0
  390. package/src/schema/index.ts +12 -0
  391. package/src/schema/logs.gen.ts +3 -1
  392. package/src/schema/loki.gen.ts +2 -1
  393. package/src/schema/nodegraph.gen.ts +58 -0
  394. package/src/schema/piechart.gen.ts +146 -0
  395. package/src/schema/prometheus.gen.ts +2 -1
  396. package/src/schema/stat.gen.ts +2 -1
  397. package/src/schema/statetimeline.gen.ts +143 -0
  398. package/src/schema/statushistory.gen.ts +132 -0
  399. package/src/schema/table.gen.ts +27 -4
  400. package/src/schema/tempo.gen.ts +2 -1
  401. package/src/schema/text.gen.ts +2 -1
  402. package/src/schema/timeseries.gen.ts +7 -2
  403. package/src/schema/trend.gen.ts +208 -0
  404. package/src/schema/xychart.gen.ts +167 -0
  405. package/src/schema-overlay.test.ts +282 -0
  406. package/src/schema-validate.ts +141 -50
  407. package/src/schema.test.ts +4 -2
  408. package/src/serializer.test.ts +13 -1
  409. package/src/serializer.ts +11 -3
  410. package/src/skill-defs.ts +17 -0
  411. package/src/skills/chant-grafana-alerting.md +49 -0
  412. package/src/skills/chant-grafana-provisioning.md +3 -3
  413. package/src/skills/chant-grafana.md +12 -6
  414. package/src/spec/fetch-cli.ts +3 -3
  415. package/src/spec/fetch-units-cli.ts +37 -0
  416. package/src/spec/overlay/canvas.overlay.json +142 -0
  417. package/src/spec/overlay/dashboard.overlay.json +378 -0
  418. package/src/spec/overlay/expr.overlay.json +14 -0
  419. package/src/spec/overlay/geomap.overlay.json +35 -0
  420. package/src/spec/overlay/logs.overlay.json +14 -0
  421. package/src/spec/overlay/nodegraph.overlay.json +31 -0
  422. package/src/spec/overlay/piechart.overlay.json +17 -0
  423. package/src/spec/overlay/table.overlay.json +84 -0
  424. package/src/spec/overlay/timeseries.overlay.json +21 -0
  425. package/src/spec/overlay/trend.overlay.json +17 -0
  426. package/src/spec/overlay/xychart.overlay.json +16 -0
  427. package/src/spec/overlay.ts +105 -0
  428. package/src/spec/schemas/barchart.jsonschema.json +419 -0
  429. package/src/spec/schemas/bargauge.jsonschema.json +224 -0
  430. package/src/spec/schemas/canvas.jsonschema.json +356 -0
  431. package/src/spec/schemas/dashboardv2.jsonschema.json +3387 -0
  432. package/src/spec/schemas/expr.jsonschema.json +987 -0
  433. package/src/spec/schemas/geomap.jsonschema.json +220 -0
  434. package/src/spec/schemas/histogram.jsonschema.json +308 -0
  435. package/src/spec/schemas/nodegraph.jsonschema.json +77 -0
  436. package/src/spec/schemas/piechart.jsonschema.json +275 -0
  437. package/src/spec/schemas/statetimeline.jsonschema.json +324 -0
  438. package/src/spec/schemas/statushistory.jsonschema.json +292 -0
  439. package/src/spec/schemas/trend.jsonschema.json +449 -0
  440. package/src/spec/schemas/xychart.jsonschema.json +428 -0
  441. package/src/spec/schemas.ts +22 -10
  442. package/src/spec/units.gen.ts +281 -0
  443. package/src/spec/units.ts +77 -0
  444. package/src/transformations.test.ts +65 -0
  445. package/src/transformations.ts +574 -0
  446. package/src/util.ts +8 -0
  447. package/src/validate-alerting.test.ts +255 -0
  448. package/src/validate-alerting.ts +428 -0
  449. package/src/validate-output.ts +332 -101
  450. package/src/validate.ts +14 -0
  451. package/src/variables.ts +7 -2
@@ -0,0 +1,378 @@
1
+ {
2
+ "$comment": "Corrections to the vendored dashboard.jsonschema.json (foundation-sdk v0.0.20), applied before type generation and GRAF107. Each patch cites the line of Grafana's source it follows, at the tag in `grafana`; CUE paths are kinds/dashboard/dashboard_kind.cue unless the source says otherwise. See src/spec/overlay.ts and docs/pages/schema-pin.mdx.",
3
+ "schema": "dashboard",
4
+ "grafana": "v13.2.2",
5
+ "patches": [
6
+ {
7
+ "op": "replace",
8
+ "path": "/definitions/Dashboard/required",
9
+ "value": ["schemaVersion"],
10
+ "source": "kinds/dashboard/dashboard_kind.cue:77,86,95",
11
+ "why": "Only schemaVersion is required; templating and annotations are optional (`templating?`, `annotations?`)."
12
+ },
13
+ {
14
+ "op": "replace",
15
+ "path": "/definitions/Dashboard/properties/gnetId",
16
+ "value": {
17
+ "anyOf": [{ "type": "string" }, { "type": "integer" }, { "type": "null" }],
18
+ "description": "ID of a dashboard imported from the https://grafana.com/grafana/dashboards/ portal. A string in Grafana 12.4, an integer in 13.x; grafana.com downloads carry null."
19
+ },
20
+ "source": "kinds/dashboard/dashboard_kind.cue:36 (int64 at v13.2.2, string at v12.4.0)",
21
+ "why": "The pin says string only; 13.x says int64, and community dashboards write null."
22
+ },
23
+ {
24
+ "op": "add",
25
+ "path": "/definitions/Dashboard/properties/__inputs",
26
+ "value": {
27
+ "type": "array",
28
+ "items": { "$ref": "#/definitions/ExportInput" },
29
+ "description": "Inputs the importer asks for (datasources, constants). Written by \"Export for sharing externally\"."
30
+ },
31
+ "source": "public/app/features/dashboard-scene/scene/export/exporters.ts:44-66; kinds/dashboard/dashboard_kind.cue:17 (spec is a plain struct, open)",
32
+ "why": "UI exports carry export metadata the foundation-sdk schema closes out."
33
+ },
34
+ {
35
+ "op": "add",
36
+ "path": "/definitions/Dashboard/properties/__requires",
37
+ "value": {
38
+ "type": "array",
39
+ "items": { "$ref": "#/definitions/ExportRequirement" },
40
+ "description": "Plugins and the Grafana version the export needs. Written by \"Export for sharing externally\"."
41
+ },
42
+ "source": "public/app/features/dashboard-scene/scene/export/exporters.ts:53-66",
43
+ "why": "UI exports carry export metadata the foundation-sdk schema closes out."
44
+ },
45
+ {
46
+ "op": "add",
47
+ "path": "/definitions/Dashboard/properties/__elements",
48
+ "value": {
49
+ "type": "object",
50
+ "additionalProperties": { "$ref": "#/definitions/LibraryElementExport" },
51
+ "description": "Library panels the export embeds, keyed by uid. Written by \"Export for sharing externally\"."
52
+ },
53
+ "source": "public/app/features/dashboard-scene/scene/export/exporters.ts:64,328",
54
+ "why": "UI exports carry export metadata the foundation-sdk schema closes out."
55
+ },
56
+ {
57
+ "op": "add",
58
+ "path": "/definitions/ExportInput",
59
+ "value": {
60
+ "type": "object",
61
+ "additionalProperties": {},
62
+ "required": ["name", "type"],
63
+ "properties": {
64
+ "name": { "type": "string", "description": "Placeholder name, used as `${name}` in the dashboard." },
65
+ "label": { "type": "string" },
66
+ "description": { "type": "string" },
67
+ "type": { "type": "string", "description": "`datasource` or `constant`." },
68
+ "pluginId": { "type": "string" },
69
+ "pluginName": { "type": "string" },
70
+ "value": { "description": "The value a constant input carries." }
71
+ },
72
+ "description": "One entry of an export's `__inputs`."
73
+ },
74
+ "source": "public/app/features/dashboard-scene/scene/export/exporters.ts:44-51",
75
+ "why": "Definition for __inputs entries."
76
+ },
77
+ {
78
+ "op": "add",
79
+ "path": "/definitions/ExportRequirement",
80
+ "value": {
81
+ "type": "object",
82
+ "additionalProperties": {},
83
+ "required": ["type", "id"],
84
+ "properties": {
85
+ "type": { "type": "string", "description": "`grafana`, `panel` or `datasource`." },
86
+ "id": { "type": "string" },
87
+ "name": { "type": "string" },
88
+ "version": { "type": "string" }
89
+ },
90
+ "description": "One entry of an export's `__requires`."
91
+ },
92
+ "source": "public/app/features/dashboard-scene/scene/export/exporters.ts:53-60",
93
+ "why": "Definition for __requires entries."
94
+ },
95
+ {
96
+ "op": "add",
97
+ "path": "/definitions/LibraryElementExport",
98
+ "value": {
99
+ "type": "object",
100
+ "additionalProperties": {},
101
+ "required": ["uid", "name", "model"],
102
+ "properties": {
103
+ "uid": { "type": "string" },
104
+ "name": { "type": "string" },
105
+ "kind": { "type": "integer" },
106
+ "model": { "type": "object", "additionalProperties": {}, "description": "The library panel's own panel JSON. GRAF107 checks it as a panel (src/schema-validate.ts), not here." }
107
+ },
108
+ "description": "One library panel embedded in an export's `__elements`."
109
+ },
110
+ "source": "public/app/features/dashboard-scene/scene/export/exporters.ts:328-336",
111
+ "why": "Definition for __elements entries."
112
+ },
113
+ {
114
+ "op": "remove",
115
+ "path": "/definitions/Panel/required",
116
+ "source": "kinds/dashboard/dashboard_kind.cue:623,701",
117
+ "why": "A library panel reference ({ id, gridPos, libraryPanel }) has no `type`; Grafana fills it from the library element. The anyOf below keeps one of the two required."
118
+ },
119
+ {
120
+ "op": "add",
121
+ "path": "/definitions/Panel/anyOf",
122
+ "value": [{ "required": ["type"] }, { "required": ["libraryPanel"] }],
123
+ "source": "kinds/dashboard/dashboard_kind.cue:623,701",
124
+ "why": "A panel names its plugin `type` or references a library panel."
125
+ },
126
+ {
127
+ "op": "replace",
128
+ "path": "/definitions/Panel/properties/links/items",
129
+ "value": { "$ref": "#/definitions/PanelLink" },
130
+ "source": "kinds/dashboard/dashboard_kind.cue:650; packages/grafana-data/src/types/dataLink.ts:34-62",
131
+ "why": "The CUE says [...#DashboardLink], but Grafana's panel editor writes the DataLink subset ({ title, url, targetBlank }) and every UI export carries it. PanelLink keeps DashboardLink's fields with only `title` required."
132
+ },
133
+ {
134
+ "op": "add",
135
+ "path": "/definitions/PanelLink",
136
+ "value": {
137
+ "type": "object",
138
+ "additionalProperties": false,
139
+ "required": ["title"],
140
+ "properties": {
141
+ "title": { "type": "string", "description": "Title to display with the link" },
142
+ "url": { "type": "string", "description": "Link URL. Supports variables, e.g. ${__url_time_range}." },
143
+ "targetBlank": { "type": "boolean", "description": "If true, the link will be opened in a new tab" },
144
+ "type": { "$ref": "#/definitions/DashboardLinkType" },
145
+ "icon": { "type": "string" },
146
+ "tooltip": { "type": "string" },
147
+ "tags": { "type": "array", "items": { "type": "string" } },
148
+ "asDropdown": { "type": "boolean" },
149
+ "includeVars": { "type": "boolean" },
150
+ "keepTime": { "type": "boolean" },
151
+ "placement": { "$ref": "#/definitions/DashboardLinkPlacement" },
152
+ "oneClick": { "type": "boolean" }
153
+ },
154
+ "description": "A panel link: the fields Grafana's panel link editor writes, plus DashboardLink's."
155
+ },
156
+ "source": "kinds/dashboard/dashboard_kind.cue:283-308; packages/grafana-data/src/types/dataLink.ts:34-62",
157
+ "why": "Definition for panel links."
158
+ },
159
+ {
160
+ "op": "replace",
161
+ "path": "/definitions/FieldConfig/properties/links",
162
+ "value": {
163
+ "type": "array",
164
+ "items": { "$ref": "#/definitions/DataLink" },
165
+ "description": "The behavior when clicking on a result"
166
+ },
167
+ "source": "kinds/dashboard/dashboard_kind.cue:821",
168
+ "why": "The CUE says `links?: [...]` (any items); the pin requires every DashboardLink field on data links."
169
+ },
170
+ {
171
+ "op": "add",
172
+ "path": "/definitions/DataLink",
173
+ "value": {
174
+ "type": "object",
175
+ "additionalProperties": {},
176
+ "properties": {
177
+ "title": { "type": "string" },
178
+ "url": { "type": "string", "description": "Link URL. Supports data variables, e.g. ${__field.labels.pod}." },
179
+ "targetBlank": { "type": "boolean" },
180
+ "oneClick": { "type": "boolean" },
181
+ "internal": { "type": "object", "additionalProperties": {}, "description": "A query in another datasource (Explore link)." },
182
+ "origin": {}
183
+ },
184
+ "description": "A data link on a field. Open: the CUE leaves these items unconstrained."
185
+ },
186
+ "source": "kinds/dashboard/dashboard_kind.cue:821; packages/grafana-data/src/types/dataLink.ts:34-62",
187
+ "why": "Types field links as Grafana's DataLink while accepting anything, as the CUE does."
188
+ },
189
+ {
190
+ "op": "replace",
191
+ "path": "/definitions/DashboardLink/required",
192
+ "value": ["title", "type", "icon", "tooltip", "tags"],
193
+ "source": "kinds/dashboard/dashboard_kind.cue:285-305",
194
+ "why": "asDropdown, targetBlank, includeVars and keepTime carry CUE defaults (`bool | *false`), so a link may leave them out."
195
+ },
196
+ {
197
+ "op": "add",
198
+ "path": "/definitions/DashboardLink/properties/origin",
199
+ "value": { "$ref": "#/definitions/ControlSourceRef", "description": "The source that registered the link (if any)" },
200
+ "source": "kinds/dashboard/dashboard_kind.cue:307",
201
+ "why": "New in Grafana 13."
202
+ },
203
+ {
204
+ "op": "add",
205
+ "path": "/definitions/ControlSourceRef",
206
+ "value": {
207
+ "type": "object",
208
+ "additionalProperties": false,
209
+ "required": ["type", "group"],
210
+ "properties": {
211
+ "type": { "type": "string", "const": "datasource" },
212
+ "group": { "type": "string", "description": "The plugin type-id" }
213
+ }
214
+ },
215
+ "source": "kinds/dashboard/dashboard_kind.cue:861-867",
216
+ "why": "New in Grafana 13 (#DatasourceControlSourceRef)."
217
+ },
218
+ {
219
+ "op": "add",
220
+ "path": "/definitions/MatcherScope",
221
+ "value": { "type": "string", "enum": ["series", "nested", "annotation", "exemplar"] },
222
+ "source": "kinds/dashboard/dashboard_kind.cue:743",
223
+ "why": "New in Grafana 13."
224
+ },
225
+ {
226
+ "op": "add",
227
+ "path": "/definitions/MatcherConfig/properties/scope",
228
+ "value": { "$ref": "#/definitions/MatcherScope", "description": "If set, limits this matcher to fields of that type. If not set, \"series\" mode is used." },
229
+ "source": "kinds/dashboard/dashboard_kind.cue:750-751",
230
+ "why": "New in Grafana 13."
231
+ },
232
+ {
233
+ "op": "replace",
234
+ "path": "/definitions/MatcherConfig/properties/options",
235
+ "value": { "description": "The matcher options. This is specific to the matcher implementation: a field name for byName, a pattern for byRegexp, an object for byNames or byValue." },
236
+ "source": "kinds/dashboard/dashboard_kind.cue:753",
237
+ "why": "The CUE says `options?: _`; byName, byRegexp, byType and byFrameRefID take a string."
238
+ },
239
+ {
240
+ "op": "replace",
241
+ "path": "/definitions/DynamicConfigValue/properties/value",
242
+ "value": {},
243
+ "source": "kinds/dashboard/dashboard_kind.cue:758",
244
+ "why": "The CUE says `value?: _`; override values are strings, numbers, booleans and arrays as often as objects."
245
+ },
246
+ {
247
+ "op": "replace",
248
+ "path": "/definitions/DataTransformerConfig/properties/options",
249
+ "value": { "description": "Options to be passed to the transformer\nValid options depend on the transformer id" },
250
+ "source": "kinds/dashboard/dashboard_kind.cue:551",
251
+ "why": "The CUE says `options: _`."
252
+ },
253
+ {
254
+ "op": "replace",
255
+ "path": "/definitions/Threshold/required",
256
+ "value": ["color"],
257
+ "source": "kinds/dashboard/dashboard_kind.cue:442-444",
258
+ "why": "The base step's value is -Infinity, which JSON cannot hold; Grafana's exports leave `value` out of that step."
259
+ },
260
+ {
261
+ "op": "add",
262
+ "path": "/definitions/Threshold/properties/valueExpr",
263
+ "value": { "type": "string", "description": "Optional dashboard-variable expression (e.g. `$myVar`) resolved at render time; `value` is the numeric fallback when the expression cannot be resolved to a single finite number." },
264
+ "source": "kinds/dashboard/dashboard_kind.cue:445-446",
265
+ "why": "New in Grafana 13."
266
+ },
267
+ {
268
+ "op": "replace",
269
+ "path": "/definitions/VariableModel/properties/query",
270
+ "value": {
271
+ "anyOf": [{ "type": "string" }, { "type": "object", "additionalProperties": {} }],
272
+ "description": "Query used to fetch values for a variable: a string, or the datasource's own query object (Prometheus writes { query, qryType, refId })."
273
+ },
274
+ "source": "kinds/dashboard/dashboard_kind.cue:199",
275
+ "why": "The CUE says `string | {...}`; the pin requires every value of the object to be an object."
276
+ },
277
+ {
278
+ "op": "replace",
279
+ "path": "/definitions/VariableModel/properties/current",
280
+ "value": {
281
+ "anyOf": [{ "$ref": "#/definitions/VariableOption" }, { "type": "object", "additionalProperties": false, "maxProperties": 0 }],
282
+ "description": "Shows current selected variable text/value on the dashboard. `{}` before the variable has been resolved."
283
+ },
284
+ "source": "kinds/dashboard/dashboard_kind.cue:203",
285
+ "why": "Grafana writes `current: {}` for a datasource or query variable nothing has been selected in yet."
286
+ },
287
+ {
288
+ "op": "add",
289
+ "path": "/definitions/VariableModel/properties/enableGroupBy",
290
+ "value": { "type": "boolean", "default": false, "description": "Whether the group-by operator is enabled in the ad hoc filter combobox." },
291
+ "source": "kinds/dashboard/dashboard_kind.cue:208-209",
292
+ "why": "New in Grafana 13."
293
+ },
294
+ {
295
+ "op": "add",
296
+ "path": "/definitions/VariableModel/properties/valuesFormat",
297
+ "value": { "type": "string", "enum": ["csv", "json"], "default": "csv", "description": "Whether a custom variable defines its values as CSV or JSON." },
298
+ "source": "kinds/dashboard/dashboard_kind.cue:223-224",
299
+ "why": "In the CUE since 12.4, missing from the pin."
300
+ },
301
+ {
302
+ "op": "add",
303
+ "path": "/definitions/VariableModel/properties/regexApplyTo",
304
+ "value": { "type": "string", "enum": ["value", "text"], "description": "Whether regex applies to the variable value or its display text." },
305
+ "source": "kinds/dashboard/dashboard_kind.cue:225-226,258",
306
+ "why": "In the CUE since 12.4, missing from the pin."
307
+ },
308
+ {
309
+ "op": "add",
310
+ "path": "/definitions/VariableModel/properties/filters",
311
+ "value": { "type": "array", "items": { "$ref": "#/definitions/AdHocFilter" }, "description": "Ad hoc variable: the filters currently applied." },
312
+ "source": "kinds/dashboard/dashboard_kind.cue:231 (`...`); packages/grafana-data/src/types/templateVars.ts:68-85",
313
+ "why": "The CUE VariableModel is open; these are the ad hoc variable fields Grafana writes."
314
+ },
315
+ {
316
+ "op": "add",
317
+ "path": "/definitions/VariableModel/properties/baseFilters",
318
+ "value": { "type": "array", "items": { "$ref": "#/definitions/AdHocFilter" }, "description": "Ad hoc variable: filters always applied to the key lookup, not shown in the UI." },
319
+ "source": "kinds/dashboard/dashboard_kind.cue:231 (`...`); packages/grafana-data/src/types/templateVars.ts:72-75",
320
+ "why": "The CUE VariableModel is open; these are the ad hoc variable fields Grafana writes."
321
+ },
322
+ {
323
+ "op": "add",
324
+ "path": "/definitions/VariableModel/properties/defaultKeys",
325
+ "value": { "type": "array", "items": { "type": "object", "additionalProperties": {} }, "description": "Ad hoc variable: static keys that override the datasource's." },
326
+ "source": "kinds/dashboard/dashboard_kind.cue:231 (`...`); packages/grafana-data/src/types/templateVars.ts:76-79",
327
+ "why": "The CUE VariableModel is open; these are the ad hoc variable fields Grafana writes."
328
+ },
329
+ {
330
+ "op": "add",
331
+ "path": "/definitions/VariableModel/properties/defaultValue",
332
+ "value": { "$ref": "#/definitions/VariableOption", "description": "Group-by variable: the default selection." },
333
+ "source": "kinds/dashboard/dashboard_kind.cue:231 (`...`); packages/grafana-data/src/types/templateVars.ts:87-93",
334
+ "why": "The CUE VariableModel is open; this is the group-by variable field Grafana writes."
335
+ },
336
+ {
337
+ "op": "add",
338
+ "path": "/definitions/AdHocFilter",
339
+ "value": {
340
+ "type": "object",
341
+ "additionalProperties": {},
342
+ "required": ["key", "operator"],
343
+ "properties": {
344
+ "key": { "type": "string" },
345
+ "operator": { "type": "string", "description": "=, !=, =~, !~, <, >, =| or !=|" },
346
+ "value": { "type": "string" },
347
+ "values": { "type": "array", "items": { "type": "string" } },
348
+ "origin": { "type": "string" },
349
+ "condition": { "type": "string", "deprecated": true }
350
+ },
351
+ "description": "One ad hoc filter."
352
+ },
353
+ "source": "packages/grafana-data/src/types/templateVars.ts:58-66",
354
+ "why": "Definition for ad hoc filters."
355
+ },
356
+ {
357
+ "op": "add",
358
+ "path": "/definitions/VariableOption/properties/properties",
359
+ "value": { "type": "object", "additionalProperties": { "type": "string" }, "description": "Additional properties for multi-props variables" },
360
+ "source": "kinds/dashboard/dashboard_kind.cue:242-243",
361
+ "why": "New in Grafana 13."
362
+ },
363
+ {
364
+ "op": "replace",
365
+ "path": "/definitions/AnnotationQuery/additionalProperties",
366
+ "value": {},
367
+ "source": "kinds/dashboard/dashboard_kind.cue:179-181",
368
+ "why": "The CUE AnnotationQuery is open (`...`): datasources spread their own query fields into it."
369
+ },
370
+ {
371
+ "op": "replace",
372
+ "path": "/definitions/FieldColorModeId/enum",
373
+ "value": ["thresholds", "palette-classic", "palette-classic-by-name", "continuous-viridis", "continuous-magma", "continuous-plasma", "continuous-inferno", "continuous-cividis", "continuous-GrYlRd", "continuous-RdYlGr", "continuous-BlYlRd", "continuous-YlRd", "continuous-BlPu", "continuous-YlBl", "continuous-blues", "continuous-reds", "continuous-greens", "continuous-purples", "fixed", "shades"],
374
+ "source": "kinds/dashboard/dashboard_kind.cue:410 (:407 at v12.4.0)",
375
+ "why": "The vendored enum lacks the perceptual schemes (viridis, magma, plasma, inferno, cividis) the color scheme picker offers since 12.4."
376
+ }
377
+ ]
378
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$comment": "Corrections to the vendored expr.jsonschema.json (foundation-sdk v0.0.20). Sources are Grafana's server-side expression code (pkg/expr) at the tag in `grafana`; its query types (pkg/expr/query.types.json) at v12.4.11 and v13.2.2 match the vendored schema except for this key. See src/spec/overlay.ts.",
3
+ "schema": "expr",
4
+ "grafana": "v13.2.2",
5
+ "patches": [
6
+ {
7
+ "op": "add",
8
+ "path": "/definitions/TypeThreshold/properties/conditions/items/properties/loadedFingerprints",
9
+ "value": { "type": "array", "items": { "type": "string" }, "description": "Fingerprints of the series already firing, written by Grafana while it evaluates a rule with a recovery threshold. Supersedes loadedDimensions. Never set it by hand." },
10
+ "source": "pkg/expr/threshold.go:259 (absent at v12.4.11)",
11
+ "why": "New in 13.x: Grafana keeps the firing series of a hysteresis threshold here, so a stored rule can carry it."
12
+ }
13
+ ]
14
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "$comment": "Corrections to the vendored geomap.jsonschema.json (foundation-sdk v0.0.20). Sources are Grafana's CUE at the tag in `grafana`. See src/spec/overlay.ts.",
3
+ "schema": "geomap",
4
+ "grafana": "v13.2.2",
5
+ "patches": [
6
+ {
7
+ "op": "add",
8
+ "path": "/definitions/MapViewConfig/properties/noRepeat",
9
+ "value": {
10
+ "type": "boolean",
11
+ "default": false
12
+ },
13
+ "source": "public/app/plugins/panel/geomap/panelcfg.cue:48",
14
+ "why": "In the CUE's MapViewConfig; Grafana writes it into every geomap view it loads."
15
+ },
16
+ {
17
+ "op": "add",
18
+ "path": "/definitions/MapViewConfig/properties/dashboardVariable",
19
+ "value": {
20
+ "type": "boolean"
21
+ },
22
+ "source": "public/app/plugins/panel/geomap/panelcfg.cue:49",
23
+ "why": "In the CUE's MapViewConfig; the vendored one lacks it."
24
+ },
25
+ {
26
+ "op": "add",
27
+ "path": "/definitions/MapViewConfig/properties/dashboardVariableName",
28
+ "value": {
29
+ "type": "string"
30
+ },
31
+ "source": "public/app/plugins/panel/geomap/panelcfg.cue:50",
32
+ "why": "In the CUE's MapViewConfig; the vendored one lacks it."
33
+ }
34
+ ]
35
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$comment": "Corrections to the vendored logs.jsonschema.json (foundation-sdk v0.0.20). Sources are Grafana's CUE at the tag in `grafana`. See src/spec/overlay.ts.",
3
+ "schema": "logs",
4
+ "grafana": "v13.2.2",
5
+ "patches": [
6
+ {
7
+ "op": "add",
8
+ "path": "/definitions/Options/properties/unwrappedColumns",
9
+ "value": { "type": "boolean" },
10
+ "source": "public/app/plugins/panel/logs/panelcfg.cue:38 (:37 at v12.4.0)",
11
+ "why": "A logs panel option since 12.4; Grafana writes it into every logs panel it saves."
12
+ }
13
+ ]
14
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$comment": "Corrections to the vendored nodegraph.jsonschema.json (foundation-sdk v0.0.20). Sources are Grafana's CUE at the tag in `grafana`. See src/spec/overlay.ts.",
3
+ "schema": "nodegraph",
4
+ "grafana": "v13.2.2",
5
+ "patches": [
6
+ {
7
+ "op": "add",
8
+ "path": "/definitions/LayoutAlgorithm",
9
+ "value": {
10
+ "enum": [
11
+ "layered",
12
+ "force",
13
+ "grid"
14
+ ],
15
+ "type": "string"
16
+ },
17
+ "source": "public/app/plugins/panel/nodeGraph/panelcfg.cue:47",
18
+ "why": "Definition for layoutAlgorithm, below."
19
+ },
20
+ {
21
+ "op": "add",
22
+ "path": "/definitions/Options/properties/layoutAlgorithm",
23
+ "value": {
24
+ "$ref": "#/definitions/LayoutAlgorithm",
25
+ "description": "How to layout the nodes in the node graph"
26
+ },
27
+ "source": "public/app/plugins/panel/nodeGraph/panelcfg.cue:53-54",
28
+ "why": "In the CUE's Options; Grafana writes it into every node graph it loads."
29
+ }
30
+ ]
31
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$comment": "Corrections to the vendored piechart.jsonschema.json (foundation-sdk v0.0.20). Sources are Grafana's CUE at the tag in `grafana`. See src/spec/overlay.ts.",
3
+ "schema": "piechart",
4
+ "grafana": "v13.2.2",
5
+ "patches": [
6
+ {
7
+ "op": "add",
8
+ "path": "/definitions/Options/properties/sort",
9
+ "value": {
10
+ "$ref": "#/definitions/SortOrder",
11
+ "description": "How slices are ordered."
12
+ },
13
+ "source": "public/app/plugins/panel/piechart/panelcfg.cue:49",
14
+ "why": "The CUE's Options has `sort: common.SortOrder`; the vendored Options leaves it out, and Grafana writes it into every pie chart it loads."
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,84 @@
1
+ {
2
+ "$comment": "Corrections to the vendored table.jsonschema.json (foundation-sdk v0.0.20). Sources are Grafana's CUE at the tag in `grafana`. See src/spec/overlay.ts.",
3
+ "schema": "table",
4
+ "grafana": "v13.2.2",
5
+ "patches": [
6
+ {
7
+ "op": "replace",
8
+ "path": "/definitions/TableCellDisplayMode/enum",
9
+ "value": ["auto", "color-text", "color-background", "color-background-solid", "gradient-gauge", "lcd-gauge", "json-view", "basic", "image", "gauge", "sparkline", "data-links", "custom", "actions", "pill", "markdown", "geo"],
10
+ "source": "packages/grafana-schema/src/common/table.cue:7 (:7 at v12.4.0)",
11
+ "why": "The pill, markdown and geo cell types are in the CUE since 12.4; the vendored enum rejects them."
12
+ },
13
+ {
14
+ "op": "add",
15
+ "path": "/definitions/TablePillCellOptions",
16
+ "value": {
17
+ "type": "object",
18
+ "additionalProperties": false,
19
+ "required": ["type"],
20
+ "properties": { "type": { "allOf": [{ "$ref": "#/definitions/TableCellDisplayMode" }], "default": "pill" } },
21
+ "description": "Pill cell options"
22
+ },
23
+ "source": "packages/grafana-schema/src/common/table.cue:75-77 (:75 at v12.4.0)",
24
+ "why": "Definition for the pill cell type."
25
+ },
26
+ {
27
+ "op": "add",
28
+ "path": "/definitions/TableMarkdownCellOptions",
29
+ "value": {
30
+ "type": "object",
31
+ "additionalProperties": false,
32
+ "required": ["type"],
33
+ "properties": {
34
+ "type": { "allOf": [{ "$ref": "#/definitions/TableCellDisplayMode" }], "default": "markdown" },
35
+ "dynamicHeight": { "type": "boolean" }
36
+ },
37
+ "description": "Markdown cell options"
38
+ },
39
+ "source": "packages/grafana-schema/src/common/table.cue:79-86 (:79 at v12.4.0)",
40
+ "why": "Definition for the markdown cell type. The CUE declares it twice; the two unify to one struct with an optional dynamicHeight."
41
+ },
42
+ {
43
+ "op": "add",
44
+ "path": "/definitions/TableGeoCellOptions",
45
+ "value": {
46
+ "type": "object",
47
+ "additionalProperties": false,
48
+ "required": ["type"],
49
+ "properties": { "type": { "allOf": [{ "$ref": "#/definitions/TableCellDisplayMode" }], "default": "geo" } },
50
+ "description": "Geo cell options"
51
+ },
52
+ "source": "packages/grafana-schema/src/common/table.cue:88-90 (:88 at v12.4.0)",
53
+ "why": "Definition for the geo cell type."
54
+ },
55
+ {
56
+ "op": "add",
57
+ "path": "/definitions/TableCellOptions/oneOf/-",
58
+ "value": { "$ref": "#/definitions/TablePillCellOptions" },
59
+ "source": "packages/grafana-schema/src/common/table.cue:97 (:97 at v12.4.0)",
60
+ "why": "TableCellOptions is a disjunction that includes the pill variant."
61
+ },
62
+ {
63
+ "op": "add",
64
+ "path": "/definitions/TableCellOptions/oneOf/-",
65
+ "value": { "$ref": "#/definitions/TableMarkdownCellOptions" },
66
+ "source": "packages/grafana-schema/src/common/table.cue:97 (:97 at v12.4.0)",
67
+ "why": "TableCellOptions is a disjunction that includes the markdown variant."
68
+ },
69
+ {
70
+ "op": "add",
71
+ "path": "/definitions/TableCellOptions/oneOf/-",
72
+ "value": { "$ref": "#/definitions/TableGeoCellOptions" },
73
+ "source": "packages/grafana-schema/src/common/table.cue:97 (:97 at v12.4.0)",
74
+ "why": "TableCellOptions is a disjunction that includes the geo variant."
75
+ },
76
+ {
77
+ "op": "replace",
78
+ "path": "/definitions/LineStyle/properties/fill/enum",
79
+ "value": ["solid", "dash", "dot", "square", "accessible"],
80
+ "source": "packages/grafana-schema/src/common/mudball.cue:41 (not in v12.4.0)",
81
+ "why": "Grafana 13 adds the \"accessible\" line style; the vendored enum rejects it."
82
+ }
83
+ ]
84
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$comment": "Corrections to the vendored timeseries.jsonschema.json (foundation-sdk v0.0.20). Sources are Grafana's CUE at the tag in `grafana`. See src/spec/overlay.ts.",
3
+ "schema": "timeseries",
4
+ "grafana": "v13.2.2",
5
+ "patches": [
6
+ {
7
+ "op": "add",
8
+ "path": "/definitions/GraphFieldConfig/properties/showValues",
9
+ "value": { "type": "boolean", "description": "Show point values on the graph." },
10
+ "source": "packages/grafana-schema/src/common/mudball.cue:257 (:242 at v12.4.0)",
11
+ "why": "In GraphFieldConfig since 12.4; Grafana writes it into every time series panel's fieldConfig.defaults.custom."
12
+ },
13
+ {
14
+ "op": "replace",
15
+ "path": "/definitions/LineStyle/properties/fill/enum",
16
+ "value": ["solid", "dash", "dot", "square", "accessible"],
17
+ "source": "packages/grafana-schema/src/common/mudball.cue:41 (not in v12.4.0)",
18
+ "why": "Grafana 13 adds the \"accessible\" line style; the vendored enum rejects it."
19
+ }
20
+ ]
21
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$comment": "Corrections to the vendored trend.jsonschema.json (foundation-sdk v0.0.20). Sources are Grafana's CUE at the tag in `grafana`. See src/spec/overlay.ts.",
3
+ "schema": "trend",
4
+ "grafana": "v13.2.2",
5
+ "patches": [
6
+ {
7
+ "op": "add",
8
+ "path": "/definitions/GraphFieldConfig/properties/showValues",
9
+ "value": {
10
+ "type": "boolean",
11
+ "description": "Show point values on the graph."
12
+ },
13
+ "source": "packages/grafana-schema/src/common/mudball.cue:257",
14
+ "why": "In GraphFieldConfig since 12.4 (the same patch as timeseries.overlay.json); Grafana writes it into every trend panel's fieldConfig.defaults.custom."
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$comment": "Corrections to the vendored xychart.jsonschema.json (foundation-sdk v0.0.20). Sources are Grafana's CUE at the tag in `grafana`. See src/spec/overlay.ts.",
3
+ "schema": "xychart",
4
+ "grafana": "v13.2.2",
5
+ "patches": [
6
+ {
7
+ "op": "replace",
8
+ "path": "/definitions/MatcherConfig/properties/options",
9
+ "value": {
10
+ "description": "The matcher options. This is specific to the matcher implementation: a field name for byName, a frame index for byIndex."
11
+ },
12
+ "source": "public/app/plugins/panel/xychart/panelcfg.cue:39",
13
+ "why": "The CUE says `options?: _`; the byName field matcher takes a string and the byIndex frame matcher a number, which is what Grafana writes for every manually mapped series."
14
+ }
15
+ ]
16
+ }