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. user@example.com vs User@Example.com).
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:
{ "==": [{ "lower": [{ "var": "email" }] }, "user@example.com"] }
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.
user@example.comvsUser@Example.com).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" }] }, "user@example.com"] }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