Context
At KubeCon EU 2026, the flagd discussion (recap) identified case-insensitive matching as a missing capability in targeting rules.
Problem
Flag evaluation rules currently use case-sensitive string matching. This can lead to unexpected behavior when targeting context values have inconsistent casing (e.g. [email protected] vs [email protected]).
Proposal
Add lower and/or upper string transform operations that can be composed with existing operators. This avoids duplicating every string operator with a case-insensitive variant and fits naturally with the JSON Logic model.
Example:
This approach is composable with any existing string operator (==, in, starts_with, etc.) rather than needing dedicated equals_ignore_case, contains_ignore_case variants for each.
Related
Context
At KubeCon EU 2026, the flagd discussion (recap) identified case-insensitive matching as a missing capability in targeting rules.
Problem
Flag evaluation rules currently use case-sensitive string matching. This can lead to unexpected behavior when targeting context values have inconsistent casing (e.g.
[email protected]vs[email protected]).Proposal
Add
lowerand/orupperstring transform operations that can be composed with existing operators. This avoids duplicating every string operator with a case-insensitive variant and fits naturally with the JSON Logic model.Example:
{ "==": [{ "lower": [{ "var": "email" }] }, "[email protected]"] }This approach is composable with any existing string operator (
==,in,starts_with, etc.) rather than needing dedicatedequals_ignore_case,contains_ignore_casevariants for each.Related