Skip to content

fix(openapi): alert pipeline if and alert_inhibit.source_filters are AND-lists - #307

Merged
ysyneu merged 1 commit into
mainfrom
fix/alert-pipeline-if-shape
Aug 25, 2026
Merged

fix(openapi): alert pipeline if and alert_inhibit.source_filters are AND-lists#307
ysyneu merged 1 commit into
mainfrom
fix/alert-pipeline-if-shape

Conversation

@ysyneu

@ysyneu ysyneu commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

The server models both fields as a single AND group — a flat list of conditions — but the spec pointed them at OrFilterGroup, whose shape is an OR-of-AND nesting. Generated clients therefore fail to decode any alert pipeline that carries an if condition:

json: cannot unmarshal object into Go struct field
AlertPipeline.rules.if of type []FilterCondition

Both fields now describe a flat array of FilterCondition, matching how EnrichRule.if and RouteCase.if already describe the same server-side type.

OrFilterGroup itself is unchanged: the silence / inhibit / drop / escalation rules that reference it through FilterGroup really are OR-of-AND, and they decode correctly today.

Files: on-call.openapi.{en,zh}.json and the aggregated openapi.{en,zh}.json, two properties each.

…are AND-lists

The server models both fields as a single AND group — a flat list of
conditions — but the spec pointed them at OrFilterGroup, whose shape is
an OR-of-AND nesting. Generated clients therefore fail to decode any
alert pipeline that carries an `if` condition:

  json: cannot unmarshal object into Go struct field
  AlertPipeline.rules.if of type []FilterCondition

Point both at a flat array of FilterCondition, matching how EnrichRule.if
and RouteCase.if already describe the same server type.

OrFilterGroup itself is unchanged: the silence / inhibit / drop /
escalation rules that reference it through FilterGroup really are
OR-of-AND, and those decode correctly today.
@ysyneu
ysyneu merged commit f55f81e into main Aug 25, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant