Skip to content

Support case-insensitive string matching in targeting rules #1916

@jonathannorris

Description

@jonathannorris

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions