@intentius/chant-lexicon-grafana 0.98.0 → 0.100.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 (532) hide show
  1. package/README.md +24 -8
  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/annotations.d.ts +61 -0
  11. package/dist/annotations.d.ts.map +1 -0
  12. package/dist/api/apply.d.ts +160 -0
  13. package/dist/api/apply.d.ts.map +1 -0
  14. package/dist/api/bind.d.ts +32 -0
  15. package/dist/api/bind.d.ts.map +1 -0
  16. package/dist/api/client.d.ts +76 -0
  17. package/dist/api/client.d.ts.map +1 -0
  18. package/dist/api/converge.d.ts +33 -0
  19. package/dist/api/converge.d.ts.map +1 -0
  20. package/dist/api/dashboards.d.ts +102 -0
  21. package/dist/api/dashboards.d.ts.map +1 -0
  22. package/dist/api/datasources.d.ts +26 -0
  23. package/dist/api/datasources.d.ts.map +1 -0
  24. package/dist/api/fake-grafana-writes.d.ts +41 -0
  25. package/dist/api/fake-grafana-writes.d.ts.map +1 -0
  26. package/dist/api/fake-grafana.d.ts +63 -0
  27. package/dist/api/fake-grafana.d.ts.map +1 -0
  28. package/dist/api/folders.d.ts +146 -0
  29. package/dist/api/folders.d.ts.map +1 -0
  30. package/dist/api/library-panels.d.ts +52 -0
  31. package/dist/api/library-panels.d.ts.map +1 -0
  32. package/dist/build.d.ts +55 -6
  33. package/dist/build.d.ts.map +1 -1
  34. package/dist/catalog.d.ts +1 -1
  35. package/dist/catalog.d.ts.map +1 -1
  36. package/dist/codegen/docs.d.ts.map +1 -1
  37. package/dist/codegen/generate.d.ts +7 -1
  38. package/dist/codegen/generate.d.ts.map +1 -1
  39. package/dist/codegen/schema-types.d.ts +3 -3
  40. package/dist/codegen/schema-types.d.ts.map +1 -1
  41. package/dist/composites/agent-dashboard.d.ts.map +1 -1
  42. package/dist/composites/catalog.d.ts.map +1 -1
  43. package/dist/composites/index.d.ts +4 -2
  44. package/dist/composites/index.d.ts.map +1 -1
  45. package/dist/composites/red-dashboard.d.ts +21 -2
  46. package/dist/composites/red-dashboard.d.ts.map +1 -1
  47. package/dist/composites/shared.d.ts +11 -3
  48. package/dist/composites/shared.d.ts.map +1 -1
  49. package/dist/composites/slo-alert-rules.d.ts +92 -0
  50. package/dist/composites/slo-alert-rules.d.ts.map +1 -0
  51. package/dist/config.d.ts +111 -0
  52. package/dist/config.d.ts.map +1 -0
  53. package/dist/contact-point-secrets.d.ts +17 -0
  54. package/dist/contact-point-secrets.d.ts.map +1 -0
  55. package/dist/dashboard.d.ts +51 -9
  56. package/dist/dashboard.d.ts.map +1 -1
  57. package/dist/datasource-refs.d.ts +99 -0
  58. package/dist/datasource-refs.d.ts.map +1 -0
  59. package/dist/datasource-settings.d.ts +834 -0
  60. package/dist/datasource-settings.d.ts.map +1 -0
  61. package/dist/datasource.d.ts +82 -11
  62. package/dist/datasource.d.ts.map +1 -1
  63. package/dist/deep-observe-hooks.d.ts +64 -0
  64. package/dist/deep-observe-hooks.d.ts.map +1 -0
  65. package/dist/deep-observe.d.ts +47 -0
  66. package/dist/deep-observe.d.ts.map +1 -0
  67. package/dist/describe-resources.d.ts +50 -0
  68. package/dist/describe-resources.d.ts.map +1 -0
  69. package/dist/detect.d.ts +32 -3
  70. package/dist/detect.d.ts.map +1 -1
  71. package/dist/export-resources.d.ts +38 -0
  72. package/dist/export-resources.d.ts.map +1 -0
  73. package/dist/folder.d.ts +68 -0
  74. package/dist/folder.d.ts.map +1 -0
  75. package/dist/import/alerting.d.ts +40 -0
  76. package/dist/import/alerting.d.ts.map +1 -0
  77. package/dist/import/edits.d.ts +47 -0
  78. package/dist/import/edits.d.ts.map +1 -0
  79. package/dist/import/embedded.d.ts +14 -0
  80. package/dist/import/embedded.d.ts.map +1 -0
  81. package/dist/import/generator.d.ts +60 -0
  82. package/dist/import/generator.d.ts.map +1 -0
  83. package/dist/import/live-export.d.ts +108 -0
  84. package/dist/import/live-export.d.ts.map +1 -0
  85. package/dist/import/mappings.d.ts +89 -0
  86. package/dist/import/mappings.d.ts.map +1 -0
  87. package/dist/import/model.d.ts +105 -0
  88. package/dist/import/model.d.ts.map +1 -0
  89. package/dist/import/normalize-alerting.d.ts +26 -0
  90. package/dist/import/normalize-alerting.d.ts.map +1 -0
  91. package/dist/import/normalize.d.ts +74 -0
  92. package/dist/import/normalize.d.ts.map +1 -0
  93. package/dist/import/parser.d.ts +125 -0
  94. package/dist/import/parser.d.ts.map +1 -0
  95. package/dist/import/report.d.ts +26 -0
  96. package/dist/import/report.d.ts.map +1 -0
  97. package/dist/import/testdata/fixtures.d.ts +41 -0
  98. package/dist/import/testdata/fixtures.d.ts.map +1 -0
  99. package/dist/import/v2.d.ts +73 -0
  100. package/dist/import/v2.d.ts.map +1 -0
  101. package/dist/index.d.ts +31 -12
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/init-templates.d.ts +27 -0
  104. package/dist/init-templates.d.ts.map +1 -0
  105. package/dist/integrity.json +22 -12
  106. package/dist/k8s.d.ts +107 -0
  107. package/dist/k8s.d.ts.map +1 -0
  108. package/dist/lint/audit-catalog.d.ts +2 -1
  109. package/dist/lint/audit-catalog.d.ts.map +1 -1
  110. package/dist/lint/post-synth/graf101.d.ts +2 -2
  111. package/dist/lint/post-synth/graf102.d.ts +1 -1
  112. package/dist/lint/post-synth/graf104.d.ts +2 -2
  113. package/dist/lint/post-synth/graf106.d.ts +2 -2
  114. package/dist/lint/post-synth/graf107.d.ts +1 -1
  115. package/dist/lint/post-synth/graf108.d.ts +8 -0
  116. package/dist/lint/post-synth/graf108.d.ts.map +1 -0
  117. package/dist/lint/post-synth/graf109.d.ts +8 -0
  118. package/dist/lint/post-synth/graf109.d.ts.map +1 -0
  119. package/dist/lint/post-synth/graf110.d.ts +8 -0
  120. package/dist/lint/post-synth/graf110.d.ts.map +1 -0
  121. package/dist/lint/post-synth/graf111.d.ts +8 -0
  122. package/dist/lint/post-synth/graf111.d.ts.map +1 -0
  123. package/dist/lint/post-synth/graf112.d.ts +8 -0
  124. package/dist/lint/post-synth/graf112.d.ts.map +1 -0
  125. package/dist/lint/post-synth/graf113.d.ts +8 -0
  126. package/dist/lint/post-synth/graf113.d.ts.map +1 -0
  127. package/dist/lint/post-synth/graf114.d.ts +8 -0
  128. package/dist/lint/post-synth/graf114.d.ts.map +1 -0
  129. package/dist/lint/post-synth/graf115.d.ts +8 -0
  130. package/dist/lint/post-synth/graf115.d.ts.map +1 -0
  131. package/dist/lint/post-synth/grafana-helpers.d.ts +7 -5
  132. package/dist/lint/post-synth/grafana-helpers.d.ts.map +1 -1
  133. package/dist/lint/post-synth/index.d.ts.map +1 -1
  134. package/dist/lint/rules/literal-secret.d.ts +7 -3
  135. package/dist/lint/rules/literal-secret.d.ts.map +1 -1
  136. package/dist/lsp/hover.d.ts.map +1 -1
  137. package/dist/manifest.json +1 -1
  138. package/dist/members.d.ts +27 -0
  139. package/dist/members.d.ts.map +1 -0
  140. package/dist/meta.json +205 -0
  141. package/dist/okf/index.md +53 -4
  142. package/dist/okf/rules/GRAF002.md +3 -2
  143. package/dist/okf/rules/GRAF101.md +3 -2
  144. package/dist/okf/rules/GRAF102.md +1 -0
  145. package/dist/okf/rules/GRAF104.md +2 -2
  146. package/dist/okf/rules/GRAF106.md +2 -2
  147. package/dist/okf/rules/GRAF108.md +11 -0
  148. package/dist/okf/rules/GRAF109.md +15 -0
  149. package/dist/okf/rules/GRAF110.md +11 -0
  150. package/dist/okf/rules/GRAF111.md +11 -0
  151. package/dist/okf/rules/GRAF112.md +16 -0
  152. package/dist/okf/rules/GRAF113.md +16 -0
  153. package/dist/okf/rules/GRAF114.md +11 -0
  154. package/dist/okf/rules/GRAF115.md +11 -0
  155. package/dist/okf/types/AdhocVariable.md +9 -0
  156. package/dist/okf/types/AlertListPanel.md +9 -0
  157. package/dist/okf/types/AlertQuery.md +9 -0
  158. package/dist/okf/types/AlertRule.md +9 -0
  159. package/dist/okf/types/AlertRuleGroup.md +9 -0
  160. package/dist/okf/types/AzureMonitorQuery.md +9 -0
  161. package/dist/okf/types/BarChartPanel.md +9 -0
  162. package/dist/okf/types/BarGaugePanel.md +9 -0
  163. package/dist/okf/types/BigQueryQuery.md +9 -0
  164. package/dist/okf/types/CanvasPanel.md +9 -0
  165. package/dist/okf/types/ClassicConditionsExpression.md +9 -0
  166. package/dist/okf/types/CloudMonitoringQuery.md +9 -0
  167. package/dist/okf/types/CloudWatchQuery.md +9 -0
  168. package/dist/okf/types/ContactPoint.md +14 -0
  169. package/dist/okf/types/Dashboard.md +2 -1
  170. package/dist/okf/types/Datasource.md +3 -2
  171. package/dist/okf/types/DatasourceProvisioning.md +9 -0
  172. package/dist/okf/types/ElasticsearchQuery.md +9 -0
  173. package/dist/okf/types/ExternalDatasource.md +15 -0
  174. package/dist/okf/types/FlameGraphPanel.md +9 -0
  175. package/dist/okf/types/Folder.md +9 -0
  176. package/dist/okf/types/GeomapPanel.md +9 -0
  177. package/dist/okf/types/GroupByVariable.md +9 -0
  178. package/dist/okf/types/HistogramPanel.md +9 -0
  179. package/dist/okf/types/MSSQLQuery.md +9 -0
  180. package/dist/okf/types/MathExpression.md +9 -0
  181. package/dist/okf/types/MuteTiming.md +13 -0
  182. package/dist/okf/types/MySQLQuery.md +9 -0
  183. package/dist/okf/types/NodeGraphPanel.md +9 -0
  184. package/dist/okf/types/NotificationPolicy.md +9 -0
  185. package/dist/okf/types/NotificationTemplate.md +9 -0
  186. package/dist/okf/types/PieChartPanel.md +9 -0
  187. package/dist/okf/types/PostgresQuery.md +9 -0
  188. package/dist/okf/types/PyroscopeQuery.md +9 -0
  189. package/dist/okf/types/ReduceExpression.md +9 -0
  190. package/dist/okf/types/ResampleExpression.md +9 -0
  191. package/dist/okf/types/SqlExpression.md +9 -0
  192. package/dist/okf/types/StateTimelinePanel.md +9 -0
  193. package/dist/okf/types/StatusHistoryPanel.md +9 -0
  194. package/dist/okf/types/SwitchVariable.md +9 -0
  195. package/dist/okf/types/ThresholdExpression.md +9 -0
  196. package/dist/okf/types/TrendPanel.md +9 -0
  197. package/dist/okf/types/XYChartPanel.md +9 -0
  198. package/dist/op/activities/grafana-apply.d.ts +86 -0
  199. package/dist/op/activities/grafana-apply.d.ts.map +1 -0
  200. package/dist/op/activities/index.d.ts +9 -0
  201. package/dist/op/activities/index.d.ts.map +1 -0
  202. package/dist/op/builders.d.ts +24 -0
  203. package/dist/op/builders.d.ts.map +1 -0
  204. package/dist/ownership.d.ts +78 -0
  205. package/dist/ownership.d.ts.map +1 -0
  206. package/dist/panel-options.d.ts +65 -0
  207. package/dist/panel-options.d.ts.map +1 -0
  208. package/dist/panels.d.ts +46 -9
  209. package/dist/panels.d.ts.map +1 -1
  210. package/dist/pin.d.ts +29 -7
  211. package/dist/pin.d.ts.map +1 -1
  212. package/dist/plugin.d.ts.map +1 -1
  213. package/dist/promql-check.d.ts +51 -0
  214. package/dist/promql-check.d.ts.map +1 -0
  215. package/dist/query-models.d.ts +95 -0
  216. package/dist/query-models.d.ts.map +1 -0
  217. package/dist/query.d.ts +116 -18
  218. package/dist/query.d.ts.map +1 -1
  219. package/dist/rules/graf101.ts +3 -3
  220. package/dist/rules/graf102.ts +1 -1
  221. package/dist/rules/graf104.ts +3 -3
  222. package/dist/rules/graf106.ts +3 -3
  223. package/dist/rules/graf107.ts +1 -1
  224. package/dist/rules/graf108.ts +17 -0
  225. package/dist/rules/graf109.ts +17 -0
  226. package/dist/rules/graf110.ts +17 -0
  227. package/dist/rules/graf111.ts +17 -0
  228. package/dist/rules/graf112.ts +17 -0
  229. package/dist/rules/graf113.ts +17 -0
  230. package/dist/rules/graf114.ts +17 -0
  231. package/dist/rules/graf115.ts +17 -0
  232. package/dist/rules/grafana-helpers.ts +27 -10
  233. package/dist/rules/literal-secret.ts +60 -6
  234. package/dist/schema/azuremonitor.gen.d.ts +354 -0
  235. package/dist/schema/azuremonitor.gen.d.ts.map +1 -0
  236. package/dist/schema/barchart.gen.d.ts +198 -0
  237. package/dist/schema/barchart.gen.d.ts.map +1 -0
  238. package/dist/schema/bargauge.gen.d.ts +97 -0
  239. package/dist/schema/bargauge.gen.d.ts.map +1 -0
  240. package/dist/schema/bigquery.gen.d.ts +93 -0
  241. package/dist/schema/bigquery.gen.d.ts.map +1 -0
  242. package/dist/schema/canvas.gen.d.ts +152 -0
  243. package/dist/schema/canvas.gen.d.ts.map +1 -0
  244. package/dist/schema/cloudwatch.gen.d.ts +394 -0
  245. package/dist/schema/cloudwatch.gen.d.ts.map +1 -0
  246. package/dist/schema/dashboard.gen.d.ts +196 -21
  247. package/dist/schema/dashboard.gen.d.ts.map +1 -1
  248. package/dist/schema/elasticsearch.gen.d.ts +444 -0
  249. package/dist/schema/elasticsearch.gen.d.ts.map +1 -0
  250. package/dist/schema/expr.gen.d.ts +606 -0
  251. package/dist/schema/expr.gen.d.ts.map +1 -0
  252. package/dist/schema/gauge.gen.d.ts.map +1 -1
  253. package/dist/schema/geomap.gen.d.ts +100 -0
  254. package/dist/schema/geomap.gen.d.ts.map +1 -0
  255. package/dist/schema/googlecloudmonitoring.gen.d.ts +312 -0
  256. package/dist/schema/googlecloudmonitoring.gen.d.ts.map +1 -0
  257. package/dist/schema/grafanapyroscope.gen.d.ts +60 -0
  258. package/dist/schema/grafanapyroscope.gen.d.ts.map +1 -0
  259. package/dist/schema/heatmap.gen.d.ts.map +1 -1
  260. package/dist/schema/histogram.gen.d.ts +132 -0
  261. package/dist/schema/histogram.gen.d.ts.map +1 -0
  262. package/dist/schema/index.d.ts +18 -0
  263. package/dist/schema/index.d.ts.map +1 -1
  264. package/dist/schema/logs.gen.d.ts +1 -0
  265. package/dist/schema/logs.gen.d.ts.map +1 -1
  266. package/dist/schema/loki.gen.d.ts.map +1 -1
  267. package/dist/schema/nodegraph.gen.d.ts +49 -0
  268. package/dist/schema/nodegraph.gen.d.ts.map +1 -0
  269. package/dist/schema/piechart.gen.d.ts +127 -0
  270. package/dist/schema/piechart.gen.d.ts.map +1 -0
  271. package/dist/schema/prometheus.gen.d.ts.map +1 -1
  272. package/dist/schema/stat.gen.d.ts.map +1 -1
  273. package/dist/schema/statetimeline.gen.d.ts +124 -0
  274. package/dist/schema/statetimeline.gen.d.ts.map +1 -0
  275. package/dist/schema/statushistory.gen.d.ts +114 -0
  276. package/dist/schema/statushistory.gen.d.ts.map +1 -0
  277. package/dist/schema/table.gen.d.ts +35 -3
  278. package/dist/schema/table.gen.d.ts.map +1 -1
  279. package/dist/schema/tempo.gen.d.ts.map +1 -1
  280. package/dist/schema/text.gen.d.ts.map +1 -1
  281. package/dist/schema/timeseries.gen.d.ts +5 -1
  282. package/dist/schema/timeseries.gen.d.ts.map +1 -1
  283. package/dist/schema/trend.gen.d.ts +180 -0
  284. package/dist/schema/trend.gen.d.ts.map +1 -0
  285. package/dist/schema/xychart.gen.d.ts +145 -0
  286. package/dist/schema/xychart.gen.d.ts.map +1 -0
  287. package/dist/schema-validate.d.ts +39 -4
  288. package/dist/schema-validate.d.ts.map +1 -1
  289. package/dist/serializer.d.ts +11 -3
  290. package/dist/serializer.d.ts.map +1 -1
  291. package/dist/skill-defs.d.ts.map +1 -1
  292. package/dist/skills/chant-grafana-alerting.md +49 -0
  293. package/dist/skills/chant-grafana-operations.md +108 -0
  294. package/dist/skills/chant-grafana-provisioning.md +3 -3
  295. package/dist/skills/chant-grafana.md +15 -8
  296. package/dist/spec/fetch-units-cli.d.ts +3 -0
  297. package/dist/spec/fetch-units-cli.d.ts.map +1 -0
  298. package/dist/spec/overlay.d.ts +43 -0
  299. package/dist/spec/overlay.d.ts.map +1 -0
  300. package/dist/spec/schemas.d.ts +21 -13
  301. package/dist/spec/schemas.d.ts.map +1 -1
  302. package/dist/spec/schemas.gen.d.ts +3 -0
  303. package/dist/spec/schemas.gen.d.ts.map +1 -0
  304. package/dist/spec/units.d.ts +35 -0
  305. package/dist/spec/units.d.ts.map +1 -0
  306. package/dist/spec/units.gen.d.ts +2 -0
  307. package/dist/spec/units.gen.d.ts.map +1 -0
  308. package/dist/transformations.d.ts +459 -0
  309. package/dist/transformations.d.ts.map +1 -0
  310. package/dist/util.d.ts +6 -0
  311. package/dist/util.d.ts.map +1 -1
  312. package/dist/validate-alerting.d.ts +65 -0
  313. package/dist/validate-alerting.d.ts.map +1 -0
  314. package/dist/validate-output.d.ts +62 -9
  315. package/dist/validate-output.d.ts.map +1 -1
  316. package/dist/validate.d.ts.map +1 -1
  317. package/dist/validation.d.ts +14 -0
  318. package/dist/validation.d.ts.map +1 -0
  319. package/dist/variables.d.ts +109 -7
  320. package/dist/variables.d.ts.map +1 -1
  321. package/package.json +12 -4
  322. package/src/actions/actions.test.ts +24 -0
  323. package/src/actions/grafana.ts +40 -0
  324. package/src/actions/index.ts +1 -0
  325. package/src/alerting-build.ts +376 -0
  326. package/src/alerting.e2e.test.ts +212 -0
  327. package/src/alerting.test.ts +272 -0
  328. package/src/alerting.ts +435 -0
  329. package/src/annotations.ts +84 -0
  330. package/src/api/apply.test.ts +256 -0
  331. package/src/api/apply.ts +394 -0
  332. package/src/api/bind.ts +58 -0
  333. package/src/api/client.ts +148 -0
  334. package/src/api/converge.ts +63 -0
  335. package/src/api/dashboards.ts +247 -0
  336. package/src/api/datasources.ts +33 -0
  337. package/src/api/fake-grafana-writes.ts +201 -0
  338. package/src/api/fake-grafana.ts +190 -0
  339. package/src/api/folders.ts +339 -0
  340. package/src/api/library-panels.ts +101 -0
  341. package/src/build.test.ts +351 -10
  342. package/src/build.ts +294 -55
  343. package/src/catalog.ts +104 -2
  344. package/src/codegen/docs.ts +50 -10
  345. package/src/codegen/generate.ts +27 -1
  346. package/src/codegen/schema-types.ts +16 -6
  347. package/src/composites/agent-dashboard.ts +6 -3
  348. package/src/composites/catalog.test.ts +2 -2
  349. package/src/composites/catalog.ts +82 -0
  350. package/src/composites/composites.test.ts +73 -9
  351. package/src/composites/index.ts +4 -2
  352. package/src/composites/queries.e2e.test.ts +374 -0
  353. package/src/composites/red-dashboard.ts +83 -12
  354. package/src/composites/shared.ts +14 -2
  355. package/src/composites/slo-alert-rules.ts +149 -0
  356. package/src/config.test.ts +61 -0
  357. package/src/config.ts +138 -0
  358. package/src/contact-point-secrets.ts +63 -0
  359. package/src/dashboard.ts +68 -9
  360. package/src/datasource-refs.test.ts +56 -0
  361. package/src/datasource-refs.ts +213 -0
  362. package/src/datasource-settings.test.ts +106 -0
  363. package/src/datasource-settings.ts +941 -0
  364. package/src/datasource.ts +123 -11
  365. package/src/deep-observe-hooks.ts +267 -0
  366. package/src/deep-observe.test.ts +311 -0
  367. package/src/deep-observe.ts +187 -0
  368. package/src/describe-resources.test.ts +271 -0
  369. package/src/describe-resources.ts +244 -0
  370. package/src/detect.ts +82 -5
  371. package/src/export-resources.test.ts +129 -0
  372. package/src/export-resources.ts +84 -0
  373. package/src/folder.ts +118 -0
  374. package/src/generated/lexicon-grafana.json +205 -0
  375. package/src/import/alerting-roundtrip.test.ts +161 -0
  376. package/src/import/alerting.ts +500 -0
  377. package/src/import/edits.ts +95 -0
  378. package/src/import/embedded.test.ts +45 -0
  379. package/src/import/embedded.ts +47 -0
  380. package/src/import/generated-types.e2e.test.ts +130 -0
  381. package/src/import/generator.test.ts +210 -0
  382. package/src/import/generator.ts +463 -0
  383. package/src/import/live-export.ts +264 -0
  384. package/src/import/mappings.ts +336 -0
  385. package/src/import/model.ts +117 -0
  386. package/src/import/normalize-alerting.ts +101 -0
  387. package/src/import/normalize.test.ts +117 -0
  388. package/src/import/normalize.ts +393 -0
  389. package/src/import/parser.test.ts +516 -0
  390. package/src/import/parser.ts +1387 -0
  391. package/src/import/report.ts +62 -0
  392. package/src/import/roundtrip.test.ts +563 -0
  393. package/src/import/testdata/fixtures.ts +137 -0
  394. package/src/import/v2.test.ts +292 -0
  395. package/src/import/v2.ts +804 -0
  396. package/src/import.e2e.test.ts +31 -84
  397. package/src/import.test.ts +9 -3
  398. package/src/index.ts +308 -14
  399. package/src/init-templates.test.ts +74 -0
  400. package/src/init-templates.ts +349 -0
  401. package/src/k8s.test.ts +98 -0
  402. package/src/k8s.ts +197 -0
  403. package/src/lint/audit-catalog.ts +68 -3
  404. package/src/lint/core-lint.test.ts +43 -0
  405. package/src/lint/post-synth/graf101.ts +3 -3
  406. package/src/lint/post-synth/graf102.ts +1 -1
  407. package/src/lint/post-synth/graf104.ts +3 -3
  408. package/src/lint/post-synth/graf106.ts +3 -3
  409. package/src/lint/post-synth/graf107.ts +1 -1
  410. package/src/lint/post-synth/graf108.ts +17 -0
  411. package/src/lint/post-synth/graf109.ts +17 -0
  412. package/src/lint/post-synth/graf110.ts +17 -0
  413. package/src/lint/post-synth/graf111.ts +17 -0
  414. package/src/lint/post-synth/graf112.ts +17 -0
  415. package/src/lint/post-synth/graf113.ts +17 -0
  416. package/src/lint/post-synth/graf114.ts +17 -0
  417. package/src/lint/post-synth/graf115.ts +17 -0
  418. package/src/lint/post-synth/grafana-helpers.ts +27 -10
  419. package/src/lint/post-synth/index.ts +16 -0
  420. package/src/lint/post-synth/post-synth.test.ts +333 -12
  421. package/src/lint/rules/literal-secret.ts +60 -6
  422. package/src/lint/rules/rules.test.ts +27 -0
  423. package/src/load-cost.test.ts +35 -0
  424. package/src/lsp/completions.test.ts +5 -0
  425. package/src/lsp/hover.test.ts +7 -0
  426. package/src/lsp/hover.ts +8 -1
  427. package/src/members.ts +68 -0
  428. package/src/observe.e2e.test.ts +255 -0
  429. package/src/op/activities/grafana-apply.e2e.test.ts +184 -0
  430. package/src/op/activities/grafana-apply.test.ts +243 -0
  431. package/src/op/activities/grafana-apply.ts +197 -0
  432. package/src/op/activities/index.ts +8 -0
  433. package/src/op/builders.test.ts +40 -0
  434. package/src/op/builders.ts +34 -0
  435. package/src/ownership.ts +122 -0
  436. package/src/panel-options.ts +66 -0
  437. package/src/panels.test.ts +53 -0
  438. package/src/panels.ts +148 -10
  439. package/src/pin.ts +69 -6
  440. package/src/plugin.test.ts +12 -2
  441. package/src/plugin.ts +75 -0
  442. package/src/promql-check.test.ts +108 -0
  443. package/src/promql-check.ts +193 -0
  444. package/src/query-models.ts +94 -0
  445. package/src/query.test.ts +166 -0
  446. package/src/query.ts +190 -20
  447. package/src/schema/azuremonitor.gen.ts +381 -0
  448. package/src/schema/barchart.gen.ts +221 -0
  449. package/src/schema/bargauge.gen.ts +111 -0
  450. package/src/schema/bigquery.gen.ts +110 -0
  451. package/src/schema/canvas.gen.ts +176 -0
  452. package/src/schema/cloudwatch.gen.ts +423 -0
  453. package/src/schema/dashboard.gen.ts +206 -22
  454. package/src/schema/elasticsearch.gen.ts +508 -0
  455. package/src/schema/expr.gen.ts +618 -0
  456. package/src/schema/gauge.gen.ts +2 -1
  457. package/src/schema/geomap.gen.ts +112 -0
  458. package/src/schema/googlecloudmonitoring.gen.ts +330 -0
  459. package/src/schema/grafanapyroscope.gen.ts +66 -0
  460. package/src/schema/heatmap.gen.ts +2 -1
  461. package/src/schema/histogram.gen.ts +151 -0
  462. package/src/schema/index.ts +18 -0
  463. package/src/schema/logs.gen.ts +3 -1
  464. package/src/schema/loki.gen.ts +2 -1
  465. package/src/schema/nodegraph.gen.ts +58 -0
  466. package/src/schema/piechart.gen.ts +146 -0
  467. package/src/schema/prometheus.gen.ts +2 -1
  468. package/src/schema/stat.gen.ts +2 -1
  469. package/src/schema/statetimeline.gen.ts +143 -0
  470. package/src/schema/statushistory.gen.ts +132 -0
  471. package/src/schema/table.gen.ts +41 -4
  472. package/src/schema/tempo.gen.ts +2 -1
  473. package/src/schema/text.gen.ts +2 -1
  474. package/src/schema/timeseries.gen.ts +7 -2
  475. package/src/schema/trend.gen.ts +208 -0
  476. package/src/schema/xychart.gen.ts +167 -0
  477. package/src/schema-overlay.test.ts +282 -0
  478. package/src/schema-validate.ts +199 -57
  479. package/src/schema.test.ts +4 -2
  480. package/src/serializer.test.ts +13 -1
  481. package/src/serializer.ts +11 -3
  482. package/src/skill-defs.ts +34 -0
  483. package/src/skills/chant-grafana-alerting.md +49 -0
  484. package/src/skills/chant-grafana-operations.md +108 -0
  485. package/src/skills/chant-grafana-provisioning.md +3 -3
  486. package/src/skills/chant-grafana.md +15 -8
  487. package/src/spec/fetch-cli.ts +3 -3
  488. package/src/spec/fetch-units-cli.ts +37 -0
  489. package/src/spec/overlay/canvas.overlay.json +142 -0
  490. package/src/spec/overlay/dashboard.overlay.json +378 -0
  491. package/src/spec/overlay/expr.overlay.json +14 -0
  492. package/src/spec/overlay/geomap.overlay.json +35 -0
  493. package/src/spec/overlay/logs.overlay.json +14 -0
  494. package/src/spec/overlay/nodegraph.overlay.json +31 -0
  495. package/src/spec/overlay/piechart.overlay.json +17 -0
  496. package/src/spec/overlay/table.overlay.json +103 -0
  497. package/src/spec/overlay/timeseries.overlay.json +21 -0
  498. package/src/spec/overlay/trend.overlay.json +17 -0
  499. package/src/spec/overlay/xychart.overlay.json +16 -0
  500. package/src/spec/overlay.ts +105 -0
  501. package/src/spec/schemas/azuremonitor.jsonschema.json +679 -0
  502. package/src/spec/schemas/barchart.jsonschema.json +419 -0
  503. package/src/spec/schemas/bargauge.jsonschema.json +224 -0
  504. package/src/spec/schemas/bigquery.jsonschema.json +290 -0
  505. package/src/spec/schemas/canvas.jsonschema.json +356 -0
  506. package/src/spec/schemas/cloudwatch.jsonschema.json +721 -0
  507. package/src/spec/schemas/dashboardv2.jsonschema.json +3387 -0
  508. package/src/spec/schemas/elasticsearch.jsonschema.json +1695 -0
  509. package/src/spec/schemas/expr.jsonschema.json +987 -0
  510. package/src/spec/schemas/geomap.jsonschema.json +220 -0
  511. package/src/spec/schemas/googlecloudmonitoring.jsonschema.json +488 -0
  512. package/src/spec/schemas/grafanapyroscope.jsonschema.json +93 -0
  513. package/src/spec/schemas/histogram.jsonschema.json +308 -0
  514. package/src/spec/schemas/nodegraph.jsonschema.json +77 -0
  515. package/src/spec/schemas/piechart.jsonschema.json +275 -0
  516. package/src/spec/schemas/statetimeline.jsonschema.json +324 -0
  517. package/src/spec/schemas/statushistory.jsonschema.json +292 -0
  518. package/src/spec/schemas/trend.jsonschema.json +449 -0
  519. package/src/spec/schemas/xychart.jsonschema.json +428 -0
  520. package/src/spec/schemas.gen.ts +40 -0
  521. package/src/spec/schemas.ts +30 -16
  522. package/src/spec/units.gen.ts +281 -0
  523. package/src/spec/units.ts +77 -0
  524. package/src/transformations.test.ts +65 -0
  525. package/src/transformations.ts +574 -0
  526. package/src/util.ts +8 -0
  527. package/src/validate-alerting.test.ts +255 -0
  528. package/src/validate-alerting.ts +430 -0
  529. package/src/validate-output.ts +427 -104
  530. package/src/validate.ts +28 -0
  531. package/src/validation.ts +27 -0
  532. package/src/variables.ts +120 -8
@@ -0,0 +1,92 @@
1
+ /**
2
+ * `SloAlertRules`: an `Slo`'s multiwindow, multi-burn-rate alerts as
3
+ * Grafana-managed alert rules, for teams that page from Grafana rather
4
+ * than from Prometheus and Alertmanager.
5
+ *
6
+ * The windows, factors, thresholds and labels come from the prometheus
7
+ * lexicon's `sloMetrics()`, the same numbers the `Slo`'s own Prometheus
8
+ * alerts use. Each burn-rate pair becomes one rule that reads the two
9
+ * error ratios the `Slo` records (`slo:sli_error:ratio_rate<window>`) as
10
+ * instant Prometheus queries, and a math expression that holds while both
11
+ * are above the pair's threshold:
12
+ *
13
+ * A = slo:sli_error:ratio_rate1h{slo="checkout"}
14
+ * B = slo:sli_error:ratio_rate5m{slo="checkout"}
15
+ * C = $A > 0.0144 && $B > 0.0144 (condition)
16
+ *
17
+ * So the `Slo`'s rule group must be loaded into the Prometheus the rules
18
+ * query: the recording rules are what make a 3-day window cheap to
19
+ * evaluate every minute.
20
+ */
21
+ import { type CompositeInstance } from "@intentius/chant/composite";
22
+ import { type SloInstance, type SloMetrics } from "@intentius/chant-lexicon-prometheus/composites/slo";
23
+ import type { RuleGroupEntity } from "@intentius/chant-lexicon-prometheus/rules";
24
+ import { type AlertRuleGroupEntity, type ContactPointEntity, type ExecErrState, type NoDataState } from "../alerting.js";
25
+ import { type DatasourceInput } from "../query.js";
26
+ export interface SloAlertRulesProps {
27
+ /** The `Slo(...)` the rules alert on, its rule group, or what `sloMetrics()` returned for it. It must have alerting on. */
28
+ slo: SloInstance | RuleGroupEntity | SloMetrics;
29
+ /** The Prometheus holding the `Slo`'s recorded series: a declared `Datasource`, an `ExternalDatasource`, or `{ type: "prometheus", uid }`. */
30
+ datasource: DatasourceInput<"prometheus">;
31
+ /** The Grafana folder the rules are stored in, by title. */
32
+ folder: string;
33
+ /** The rule group's name. Defaults to the `Slo`'s group name, `slo-<name>`. */
34
+ group?: string;
35
+ /** How often the rules are evaluated, a multiple of 10s. Defaults to `1m`. */
36
+ interval?: string;
37
+ /**
38
+ * Send the alerts straight to this contact point. Left out, they go
39
+ * through the notification policy tree, which can route on the
40
+ * `severity` label (`page` or `ticket` by default).
41
+ */
42
+ contactPoint?: ContactPointEntity | string;
43
+ /** How long a pair must hold before its alert fires. Default: none; the short window already filters blips. */
44
+ for?: string;
45
+ /** More labels on every rule, e.g. `team`. */
46
+ labels?: Record<string, string>;
47
+ /** More annotations on every rule, e.g. `runbook_url`. */
48
+ annotations?: Record<string, string>;
49
+ /** What no data does. Defaults to `OK`: no recorded ratio means no traffic, so no budget is burning. */
50
+ noDataState?: NoDataState;
51
+ /** What a query error does. Defaults to `Error`. */
52
+ execErrState?: ExecErrState;
53
+ }
54
+ export type SloAlertRulesMembers = {
55
+ /** One rule per burn-rate pair, page tier first. */
56
+ rules: AlertRuleGroupEntity;
57
+ };
58
+ /** What `SloAlertRules(...)` returns: its rule group, as `rules`. */
59
+ export type SloAlertRulesInstance = CompositeInstance<SloAlertRulesMembers> & SloAlertRulesMembers;
60
+ /** The queries and condition of each burn-rate rule, from `sloMetrics()`. Exposed for tests and for rules of your own. */
61
+ export declare function sloAlertQueries(m: SloMetrics): {
62
+ uid: string;
63
+ longExpr: string;
64
+ shortExpr: string;
65
+ condition: string;
66
+ tier: "page" | "ticket";
67
+ severity: string;
68
+ long: string;
69
+ short: string;
70
+ factor: number;
71
+ threshold: number;
72
+ longRecord: string;
73
+ shortRecord: string;
74
+ alert: string;
75
+ labels: import("lexicons/prometheus/src/model").LabelSet;
76
+ exhaustsIn: string;
77
+ }[];
78
+ /**
79
+ * Grafana-managed burn-rate alerts for an `Slo`: one rule per window pair,
80
+ * with the labels and annotations the `Slo`'s Prometheus alerts carry.
81
+ *
82
+ * @example
83
+ * ```ts
84
+ * import { Slo } from "@intentius/chant-lexicon-prometheus";
85
+ * import { SloAlertRules } from "@intentius/chant-lexicon-grafana";
86
+ *
87
+ * export const checkout = Slo({ name: "checkout", objective: 0.999, window: "30d", sli: { ... } });
88
+ * export const checkoutAlerts = SloAlertRules({ slo: checkout, datasource: prometheus, folder: "SLOs" });
89
+ * ```
90
+ */
91
+ export declare const SloAlertRules: import("@intentius/chant/composite").CompositeDefinition<SloAlertRulesProps, SloAlertRulesMembers>;
92
+ //# sourceMappingURL=slo-alert-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slo-alert-rules.d.ts","sourceRoot":"","sources":["../../src/composites/slo-alert-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAa,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/E,OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,oDAAoD,CAAC;AACnH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AAI3D,MAAM,WAAW,kBAAkB;IACjC,2HAA2H;IAC3H,GAAG,EAAE,WAAW,GAAG,eAAe,GAAG,UAAU,CAAC;IAChD,8IAA8I;IAC9I,UAAU,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC;IAC1C,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC;IAC3C,+GAA+G;IAC/G,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,wGAAwG;IACxG,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,oDAAoD;IACpD,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,oDAAoD;IACpD,KAAK,EAAE,oBAAoB,CAAC;CAC7B,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,GAAG,oBAAoB,CAAC;AAYnG,0HAA0H;AAC1H,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU;;;;;;;;;;;;;;;;IAQ5C;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,aAAa,oGAwCP,CAAC"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * The `grafana` namespace in `chant.config.ts` (#2946): which Grafana each
3
+ * chant environment observes, exports from and (#2948) applies to.
4
+ *
5
+ * ```ts
6
+ * import type { ChantConfig } from "@intentius/chant/config";
7
+ * import "@intentius/chant-lexicon-grafana"; // brings the `grafana` key into ChantConfig
8
+ *
9
+ * export default {
10
+ * lexicons: ["grafana"],
11
+ * grafana: {
12
+ * profiles: {
13
+ * staging: { url: "https://grafana.staging.example.com", token: { env: "GRAFANA_STAGING_TOKEN" } },
14
+ * prod: { url: "https://grafana.example.com", token: { env: "GRAFANA_PROD_TOKEN" }, orgId: 2 },
15
+ * },
16
+ * },
17
+ * } satisfies ChantConfig;
18
+ * ```
19
+ *
20
+ * A profile is keyed by chant environment, as `k8s.profiles.<env>` is.
21
+ * Credentials are named by their environment variable, never written in
22
+ * the config. An environment with no profile falls back to `GRAFANA_URL`
23
+ * with `GRAFANA_TOKEN`, or `GRAFANA_USER` and `GRAFANA_PASSWORD` (see
24
+ * `resolveGrafanaTarget`).
25
+ *
26
+ * One schema, three consumers, as in the fountain lexicon: core validates the
27
+ * namespace against it at load, the type is derived from it, and that type
28
+ * augments `ChantConfig`.
29
+ */
30
+ import { z } from "zod";
31
+ import type { ChantConfig } from "@intentius/chant/config";
32
+ import type { GrafanaTarget } from "./api/client.js";
33
+ export declare const grafanaProfileSchema: z.ZodObject<{
34
+ /** Base URL of the Grafana instance. */
35
+ url: z.ZodString;
36
+ /** A service account token, named by its environment variable. */
37
+ token: z.ZodOptional<z.ZodObject<{
38
+ env: z.ZodString;
39
+ }, z.core.$strict>>;
40
+ /** Basic auth, each half named by its environment variable. For a local instance; use a token elsewhere. */
41
+ basicAuth: z.ZodOptional<z.ZodObject<{
42
+ user: z.ZodObject<{
43
+ env: z.ZodString;
44
+ }, z.core.$strict>;
45
+ password: z.ZodObject<{
46
+ env: z.ZodString;
47
+ }, z.core.$strict>;
48
+ }, z.core.$strict>>;
49
+ /** Organisation id. Defaults to 1. */
50
+ orgId: z.ZodOptional<z.ZodNumber>;
51
+ /** The `dashboard.grafana.app` namespace, when it is not `default` / `org-<id>` (Grafana Cloud: `stacks-<id>`). */
52
+ namespace: z.ZodOptional<z.ZodString>;
53
+ }, z.core.$strict>;
54
+ export declare const grafanaConfigSchema: z.ZodObject<{
55
+ /** One Grafana per chant environment. */
56
+ profiles: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
57
+ /** Base URL of the Grafana instance. */
58
+ url: z.ZodString;
59
+ /** A service account token, named by its environment variable. */
60
+ token: z.ZodOptional<z.ZodObject<{
61
+ env: z.ZodString;
62
+ }, z.core.$strict>>;
63
+ /** Basic auth, each half named by its environment variable. For a local instance; use a token elsewhere. */
64
+ basicAuth: z.ZodOptional<z.ZodObject<{
65
+ user: z.ZodObject<{
66
+ env: z.ZodString;
67
+ }, z.core.$strict>;
68
+ password: z.ZodObject<{
69
+ env: z.ZodString;
70
+ }, z.core.$strict>;
71
+ }, z.core.$strict>>;
72
+ /** Organisation id. Defaults to 1. */
73
+ orgId: z.ZodOptional<z.ZodNumber>;
74
+ /** The `dashboard.grafana.app` namespace, when it is not `default` / `org-<id>` (Grafana Cloud: `stacks-<id>`). */
75
+ namespace: z.ZodOptional<z.ZodString>;
76
+ }, z.core.$strict>>>;
77
+ }, z.core.$strict>;
78
+ export type GrafanaProfile = z.infer<typeof grafanaProfileSchema>;
79
+ export type GrafanaConfig = z.infer<typeof grafanaConfigSchema>;
80
+ declare module "@intentius/chant/config" {
81
+ interface ChantConfig {
82
+ grafana?: GrafanaConfig;
83
+ }
84
+ }
85
+ /** Compile-time proof that the augmentation reaches `ChantConfig`. */
86
+ export type GrafanaConfigNamespace = NonNullable<ChantConfig["grafana"]>;
87
+ /** Why no target could be resolved, in the observation vocabulary. */
88
+ export interface UnresolvedTarget {
89
+ readonly reason: "no-binding" | "no-credentials";
90
+ readonly detail: string;
91
+ }
92
+ declare function isUnresolved(v: GrafanaTarget | UnresolvedTarget): v is UnresolvedTarget;
93
+ export { isUnresolved as isUnresolvedTarget };
94
+ /**
95
+ * The Grafana an environment reads from. Pure: `config` and `env` are
96
+ * passed in.
97
+ *
98
+ * 1. `grafana.profiles.<environment>`. A profile that names a credential
99
+ * variable which is not set is `no-credentials`, not an anonymous read:
100
+ * the profile said how to authenticate.
101
+ * 2. `GRAFANA_URL`, with `GRAFANA_TOKEN`, or `GRAFANA_USER` and
102
+ * `GRAFANA_PASSWORD`, or neither (an instance with anonymous access; a
103
+ * refused read is then `no-credentials`).
104
+ * 3. Otherwise `no-binding`.
105
+ */
106
+ export declare function resolveGrafanaTarget(input: {
107
+ environment?: string;
108
+ config?: Pick<ChantConfig, "grafana">;
109
+ env?: Record<string, string | undefined>;
110
+ }): GrafanaTarget | UnresolvedTarget;
111
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAe,aAAa,EAAE,MAAM,cAAc,CAAC;AAI/D,eAAO,MAAM,oBAAoB;IAC/B,wCAAwC;;IAExC,kEAAkE;;;;IAElE,4GAA4G;;;;;;;;;IAE5G,sCAAsC;;IAEtC,mHAAmH;;kBAEnH,CAAC;AAEH,eAAO,MAAM,mBAAmB;IAC9B,yCAAyC;;QAbzC,wCAAwC;;QAExC,kEAAkE;;;;QAElE,4GAA4G;;;;;;;;;QAE5G,sCAAsC;;QAEtC,mHAAmH;;;kBAOnH,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,OAAO,QAAQ,yBAAyB,CAAC;IACvC,UAAU,WAAW;QACnB,OAAO,CAAC,EAAE,aAAa,CAAC;KACzB;CACF;AAED,sEAAsE;AACtE,MAAM,MAAM,sBAAsB,GAAG,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;AAEzE,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAAC;IACjD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,iBAAS,YAAY,CAAC,CAAC,EAAE,aAAa,GAAG,gBAAgB,GAAG,CAAC,IAAI,gBAAgB,CAEhF;AAED,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,CAAC;AAE9C;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1C,GAAG,aAAa,GAAG,gBAAgB,CA2CnC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * The contact point settings Grafana stores encrypted, per integration: the
3
+ * options marked `secure` by `GET /api/alert-notifiers?version=2` on
4
+ * `grafana/grafana:13.2.2` (commit 1bea008f; the same list on 12.4.11).
5
+ * Nested settings are dotted paths (`tlsConfig.clientKey`).
6
+ *
7
+ * GRAF002 flags a literal at one of these paths, and the importer replaces
8
+ * the `[REDACTED]` that an export without secrets writes there.
9
+ */
10
+ export declare const CONTACT_POINT_SECRET_SETTINGS: Readonly<Record<string, readonly string[]>>;
11
+ /** How Grafana provisioning reads a value from outside the file: `$VAR`, `${VAR}`, `$__env{…}`, `$__file{…}`, `$__vault{…}`. */
12
+ export declare const EXPANDED_VALUE: RegExp;
13
+ /** What an export without secrets writes in place of each one. */
14
+ export declare const REDACTED = "[REDACTED]";
15
+ /** The secret settings of one receiver present in `settings`, with their values: `[path, value]`. */
16
+ export declare function secretSettings(type: string, settings: Record<string, unknown>): Array<[string, unknown]>;
17
+ //# sourceMappingURL=contact-point-secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact-point-secrets.d.ts","sourceRoot":"","sources":["../src/contact-point-secrets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAoCpF,CAAC;AAEH,gIAAgI;AAChI,eAAO,MAAM,cAAc,QAAsF,CAAC;AAElH,kEAAkE;AAClE,eAAO,MAAM,QAAQ,eAAe,CAAC;AAErC,qGAAqG;AACrG,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAQxG"}
@@ -10,6 +10,8 @@ import type { Declarable } from "@intentius/chant/declarable";
10
10
  import type { PanelEntity, RowEntity } from "./panels.js";
11
11
  import type { VariableEntity } from "./variables.js";
12
12
  import type { DashboardLink, TimePickerConfig } from "./schema/dashboard.gen.js";
13
+ import { type FolderEntity } from "./folder.js";
14
+ import type { AnnotationInput } from "./annotations.js";
13
15
  /** A dashboard link: `title` and `type` required, the rest defaulted as Grafana's editor would. */
14
16
  export type DashboardLinkInput = Partial<DashboardLink> & Pick<DashboardLink, "title" | "type">;
15
17
  export interface DashboardProps {
@@ -39,22 +41,51 @@ export interface DashboardProps {
39
41
  graphTooltip?: "default" | "sharedCrosshair" | "sharedTooltip";
40
42
  /** Whether users may edit it in the UI. Defaults to true, as in Grafana. */
41
43
  editable?: boolean;
44
+ /**
45
+ * The dashboard schema version the JSON is written at. Leave it out for
46
+ * the pinned one (`DASHBOARD_SCHEMA_VERSION`). `chant import` sets it for
47
+ * a dashboard saved by an older Grafana, so Grafana still runs its
48
+ * migrations when it loads the rebuilt JSON.
49
+ */
50
+ schemaVersion?: number;
42
51
  variables?: VariableEntity<any>[];
43
52
  /** Panels and rows, top to bottom. A row's own `panels` follow it. */
44
53
  panels?: Array<PanelEntity<any, any> | RowEntity>;
45
54
  links?: DashboardLinkInput[];
46
55
  /**
47
- * The Grafana folder to provision it into. Written as a subdirectory of
48
- * `dashboards/`, which the provider maps to folders
49
- * (`foldersFromFilesStructure`). Leave it out for the General folder.
56
+ * Annotation queries: events drawn on the dashboard's time series panels
57
+ * (deploys, incidents), each from a datasource. Grafana adds its own
58
+ * "Annotations & Alerts" query to every dashboard that has none with
59
+ * `builtIn: 1`, so leave that one out unless you change it.
50
60
  */
51
- folder?: string;
61
+ annotations?: AnnotationInput[];
62
+ /**
63
+ * The Grafana folder: a path (`"Platform/Kubernetes"`) or a `Folder`,
64
+ * which pins the folder's uid. Written as a subdirectory of `dashboards/`,
65
+ * which the provider maps to folders (`foldersFromFilesStructure`); a path
66
+ * nests one directory in another, which Grafana 13.1 and later make a
67
+ * Kubernetes folder inside Platform, and earlier versions use only the
68
+ * last level (GRAF109 warns). The API applier creates each level with its
69
+ * uid. Leave it out for the General folder.
70
+ */
71
+ folder?: string | FolderEntity;
52
72
  }
73
+ /** A dashboard's props as the entity holds them: `folder` is always the path, and a `Folder` given for it is `folderEntity`. */
74
+ export type DashboardEntityProps = Omit<DashboardProps, "folder"> & {
75
+ folder?: string;
76
+ };
53
77
  export interface DashboardEntity extends Declarable {
54
- readonly props: DashboardProps;
78
+ readonly props: DashboardEntityProps;
79
+ /** The `Folder` the dashboard was given, when it was given one rather than a path. */
80
+ readonly folderEntity?: FolderEntity;
55
81
  }
56
82
  export declare const DASHBOARD_TYPE = "Grafana::Dashboard";
57
- /** A Grafana dashboard. */
83
+ /**
84
+ * A Grafana dashboard. A `Folder` given as its `folder` is held as the
85
+ * folder's path, so everything that reads the dashboard's props (the build,
86
+ * the checks, observation's diff) sees one form; the `Folder` itself, for its
87
+ * uid, is `folderEntity`.
88
+ */
58
89
  export declare const Dashboard: new (props: DashboardProps) => DashboardEntity;
59
90
  export declare function isDashboardEntity(value: unknown): value is DashboardEntity;
60
91
  /** Where Grafana finds the dashboard files by default: mount `dashboards/` here. */
@@ -63,8 +94,15 @@ export interface DashboardProviderProps {
63
94
  /** Provider name, unique in the provisioning file. */
64
95
  name: string;
65
96
  orgId?: number;
66
- /** Folder for dashboards not in a subdirectory. */
67
- folder?: string;
97
+ /**
98
+ * Put every dashboard this provider loads in this folder: a title, or a
99
+ * root-level `Folder`, whose title and uid are written as `folder` and
100
+ * `folderUid` (Grafana creates a provider's folder at the root, so a
101
+ * nested `Folder` is refused). Setting it (or `folderUid`) turns
102
+ * `foldersFromFilesStructure` off by default, so each dashboard's own
103
+ * `folder` is ignored (GRAF109 warns).
104
+ */
105
+ folder?: string | FolderEntity;
68
106
  folderUid?: string;
69
107
  /** Where the `dashboards/` output is mounted in the Grafana container. Defaults to `/var/lib/grafana/dashboards`. */
70
108
  path?: string;
@@ -74,8 +112,12 @@ export interface DashboardProviderProps {
74
112
  allowUiUpdates?: boolean;
75
113
  updateIntervalSeconds?: number;
76
114
  }
115
+ /** A provider's props as the entity holds them: a `Folder` given for `folder` is written out as `folder` and `folderUid`. */
116
+ export type DashboardProviderEntityProps = Omit<DashboardProviderProps, "folder"> & {
117
+ folder?: string;
118
+ };
77
119
  export interface DashboardProviderEntity extends Declarable {
78
- readonly props: DashboardProviderProps;
120
+ readonly props: DashboardProviderEntityProps;
79
121
  }
80
122
  export declare const DASHBOARD_PROVIDER_TYPE = "Grafana::DashboardProvider";
81
123
  /** An entry in the dashboard provisioning file. Optional: a default one is written when none is declared. */
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Which datasource each panel, query and query variable in built dashboard
3
+ * JSON sends its request to.
4
+ *
5
+ * GRAF101 and GRAF102 use this to check references against the datasources
6
+ * a build knows about: the ones it provisions (`Datasource`) and the ones it
7
+ * only references (`ExternalDatasource`). Any other check that needs to know
8
+ * which plugin runs a query (a PromQL syntax check only wants the queries
9
+ * that reach a Prometheus) can call `datasourceUses()` and read
10
+ * `resolved.type`.
11
+ */
12
+ import type { ExternalDatasourceRecord, ProvisionedDatasource } from "./build.js";
13
+ type Json = Record<string, unknown>;
14
+ /** A `{ type, uid }` datasource reference as dashboard JSON holds it. */
15
+ export interface DatasourceRefJson {
16
+ type?: string;
17
+ uid?: string;
18
+ }
19
+ /** A datasource the build knows by uid: provisioned by it, or declared external. */
20
+ export interface KnownDatasource {
21
+ uid: string;
22
+ type: string;
23
+ name?: string;
24
+ /** Declared with `ExternalDatasource`: referenced, not provisioned. */
25
+ external: boolean;
26
+ }
27
+ /**
28
+ * Where a reference leads.
29
+ *
30
+ * - `declared`: a known datasource; `type` is its plugin type.
31
+ * - `variable`: a `${name}` uid; `type` is the datasource variable's plugin type, else the ref's own.
32
+ * - `builtin`: one of Grafana's pseudo-datasources (`-- Mixed --`, `-- Dashboard --`, `grafana`).
33
+ * - `undeclared`: a uid the build does not know; `type` is whatever the ref says.
34
+ * - `default`: no uid, so Grafana picks its default datasource; `type` is the ref's, if it has one.
35
+ */
36
+ export type ResolvedDatasource = {
37
+ kind: "declared";
38
+ type: string;
39
+ datasource: KnownDatasource;
40
+ } | {
41
+ kind: "variable";
42
+ type?: string;
43
+ variable: string;
44
+ declared: boolean;
45
+ } | {
46
+ kind: "builtin";
47
+ type?: string;
48
+ } | {
49
+ kind: "undeclared";
50
+ type?: string;
51
+ uid: string;
52
+ } | {
53
+ kind: "default";
54
+ type?: string;
55
+ };
56
+ /** One place a dashboard names, or inherits, a datasource. */
57
+ export interface DatasourceUse {
58
+ /** A panel's own `datasource`, one of its queries (`targets`), a query, ad hoc or group by variable, or an annotation query. */
59
+ kind: "panel" | "query" | "variable" | "annotation";
60
+ /** A human description, e.g. `panel "Latency" (id 3) query B`. */
61
+ where: string;
62
+ panel?: Json;
63
+ target?: Json;
64
+ variable?: Json;
65
+ annotation?: Json;
66
+ /** The ref written on this panel, query, variable or annotation; unset when a query inherits its panel's. */
67
+ ref?: DatasourceRefJson;
68
+ /** Where the request goes: the query's own ref, else its panel's. */
69
+ resolved: ResolvedDatasource;
70
+ }
71
+ /** Every datasource a build knows by uid. A provisioned one wins over an external one of the same uid (GRAF104 reports the clash). */
72
+ export declare function knownDatasources(datasources: readonly ProvisionedDatasource[], external?: readonly ExternalDatasourceRecord[]): Map<string, KnownDatasource>;
73
+ export interface PanelInfo {
74
+ panel: Json;
75
+ /** Panels inside a collapsed row are laid out in their own group. */
76
+ group: string;
77
+ }
78
+ /** Every panel of a dashboard, including those inside collapsed rows, and the rows themselves. */
79
+ export declare function panelsOf(dashboard: Json): PanelInfo[];
80
+ export declare function describePanel(panel: Json): string;
81
+ /** A dashboard's `templating.list`. */
82
+ export declare function variablesOf(dashboard: Json): Json[];
83
+ /** Every variable name referenced in a string. */
84
+ export declare function variableReferences(text: string): string[];
85
+ /** Grafana's own pseudo-datasources, which no build declares. */
86
+ export declare function isPseudoRef(ref: DatasourceRefJson): boolean;
87
+ /** Where one reference leads, given the dashboard's datasource variables and the known datasources. */
88
+ export declare function resolveDatasourceRef(ref: DatasourceRefJson | undefined, dsVariables: ReadonlyMap<string, Json>, known: ReadonlyMap<string, KnownDatasource>): ResolvedDatasource;
89
+ /** A dashboard's `annotations.list`. */
90
+ export declare function annotationsOf(dashboard: Json): Json[];
91
+ /**
92
+ * Every place a dashboard names or inherits a datasource: each panel's own
93
+ * ref, each query (with its own ref, or its panel's when it has none), each
94
+ * query, ad hoc and group by variable, and each annotation query with a datasource. Rows are left
95
+ * out; their panels carry the ref.
96
+ */
97
+ export declare function datasourceUses(dashboard: Json, known: ReadonlyMap<string, KnownDatasource>): DatasourceUse[];
98
+ export {};
99
+ //# sourceMappingURL=datasource-refs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datasource-refs.d.ts","sourceRoot":"","sources":["../src/datasource-refs.ts"],"names":[],"mappings":"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"}