Skip to content

Commit de3caeb

Browse files
waleedlatif1claude
andcommitted
fix(grafana): correct wire-format casing for provisioned alert rule fields
Grafana's ProvisionedAlertRule schema (verified against upstream Go source and swagger spec) uses keep_firing_for (snake_case) and missingSeriesEvalsToResolve (camelCase) — the opposite of what prior audit rounds assumed. POST/PUT bodies now send the correct field names; mapAlertRule reads the correct primary names with the old casings kept as fallbacks. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent 15ffb7a commit de3caeb

3 files changed

Lines changed: 6 additions & 6 deletions

File tree

apps/sim/tools/grafana/create_alert_rule.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -176,9 +176,9 @@ export const createAlertRuleTool: ToolConfig<
176176
if (params.noDataState) body.noDataState = params.noDataState
177177
if (params.execErrState) body.execErrState = params.execErrState
178178
if (params.isPaused !== undefined) body.isPaused = params.isPaused
179-
if (params.keepFiringFor) body.keepFiringFor = params.keepFiringFor
179+
if (params.keepFiringFor) body.keep_firing_for = params.keepFiringFor
180180
if (params.missingSeriesEvalsToResolve !== undefined) {
181-
body.missing_series_evals_to_resolve = params.missingSeriesEvalsToResolve
181+
body.missingSeriesEvalsToResolve = params.missingSeriesEvalsToResolve
182182
}
183183

184184
if (params.annotations) {

apps/sim/tools/grafana/update_alert_rule.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,9 +186,9 @@ export const updateAlertRuleTool: ToolConfig<GrafanaUpdateAlertRuleParams, ToolR
186186
if (params.noDataState) updatedRule.noDataState = params.noDataState
187187
if (params.execErrState) updatedRule.execErrState = params.execErrState
188188
if (params.isPaused !== undefined) updatedRule.isPaused = params.isPaused
189-
if (params.keepFiringFor) updatedRule.keepFiringFor = params.keepFiringFor
189+
if (params.keepFiringFor) updatedRule.keep_firing_for = params.keepFiringFor
190190
if (params.missingSeriesEvalsToResolve !== undefined) {
191-
updatedRule.missing_series_evals_to_resolve = params.missingSeriesEvalsToResolve
191+
updatedRule.missingSeriesEvalsToResolve = params.missingSeriesEvalsToResolve
192192
}
193193

194194
if (params.notificationSettings) {

apps/sim/tools/grafana/utils.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ export function mapAlertRule(rule: Record<string, unknown>) {
1515
noDataState: (rule.noDataState as string) ?? null,
1616
execErrState: (rule.execErrState as string) ?? null,
1717
for: (rule.for as string) ?? null,
18-
keepFiringFor: (rule.keepFiringFor as string) ?? (rule.keep_firing_for as string) ?? null,
18+
keepFiringFor: (rule.keep_firing_for as string) ?? (rule.keepFiringFor as string) ?? null,
1919
missingSeriesEvalsToResolve:
20-
(rule.missing_series_evals_to_resolve as number) ??
2120
(rule.missingSeriesEvalsToResolve as number) ??
21+
(rule.missing_series_evals_to_resolve as number) ??
2222
null,
2323
annotations: (rule.annotations as Record<string, string>) ?? {},
2424
labels: (rule.labels as Record<string, string>) ?? {},

0 commit comments

Comments
 (0)