From fdd48ad2dc30cee7819b3aafb883d1edcd2455db Mon Sep 17 00:00:00 2001 From: "helen.han" Date: Thu, 5 Nov 2026 22:21:39 +0000 Subject: [PATCH 1/2] test(ffe): cover unknown flagEvaluation fields Require dependent UFC references to ignore new fields while preserving assignments and telemetry. Environment: Datadog workspace Co-Authored-By: Codex GPT-6 --- .../cases/dependent-flags.json | 41 +++++++++++++ .../dependent-flags/ufc-config.json | 59 ++++++++++++++++++- 2 files changed, 99 insertions(+), 1 deletion(-) diff --git a/evaluation-suites/dependent-flags/cases/dependent-flags.json b/evaluation-suites/dependent-flags/cases/dependent-flags.json index 44e92da..f9c86ff 100644 --- a/evaluation-suites/dependent-flags/cases/dependent-flags.json +++ b/evaluation-suites/dependent-flags/cases/dependent-flags.json @@ -339,5 +339,46 @@ }, "targetingKey": "dependent-cycle", "variationType": "STRING" + }, + { + "description": "Unknown fields inside flagEvaluation, on its condition, and in evaluatorParams are ignored while the prerequisite key is evaluated normally.", + "attributes": {}, + "defaultValue": "caller-default", + "flag": "dependent-unknown-fields-root", + "result": { + "reason": "TARGETING_MATCH", + "value": "direct-match" + }, + "targetingKey": "dependent-unknown-fields", + "variationType": "STRING", + "expectations": { + "noUnmatchedEvents": true, + "exposures": [ + { + "flag": "dependent-leaf-on", + "allocation": "leaf-static", + "variant": "on", + "_count": 1 + }, + { + "flag": "dependent-unknown-fields-root", + "allocation": "dependent-match", + "variant": "matched", + "_count": 1 + } + ], + "evaluationEvents": [ + { + "flag": "dependent-leaf-on", + "errorCode": null, + "_count": 1 + }, + { + "flag": "dependent-unknown-fields-root", + "errorCode": null, + "_count": 1 + } + ] + } } ] diff --git a/evaluation-suites/dependent-flags/ufc-config.json b/evaluation-suites/dependent-flags/ufc-config.json index dd15f93..cd4b480 100644 --- a/evaluation-suites/dependent-flags/ufc-config.json +++ b/evaluation-suites/dependent-flags/ufc-config.json @@ -6,7 +6,8 @@ "unknownEnvironmentField": "ignored" }, "evaluatorParams": { - "maxDependencyDepth": 2 + "maxDependencyDepth": 2, + "unknownEvaluatorField": "ignored" }, "flags": { "dependent-leaf-on": { @@ -862,6 +863,62 @@ "doLog": true } ] + }, + "dependent-unknown-fields-root": { + "key": "dependent-unknown-fields-root", + "enabled": true, + "variationType": "STRING", + "variations": { + "matched": { + "key": "matched", + "value": "direct-match" + }, + "fallback": { + "key": "fallback", + "value": "direct-fallback" + } + }, + "allocations": [ + { + "key": "dependent-match", + "rules": [ + { + "conditions": [ + { + "flagEvaluation": { + "key": "dependent-leaf-on", + "property": "variant" + }, + "operator": "ONE_OF", + "value": [ + "on" + ], + "unknownConditionField": { + "nested": true + } + } + ] + } + ], + "splits": [ + { + "variationKey": "matched", + "shards": [] + } + ], + "doLog": true + }, + { + "key": "fallback", + "splits": [ + { + "variationKey": "fallback", + "shards": [] + } + ], + "doLog": true + } + ] } } } From 6df74e605f7c1eed8b397dc9aa4c002691475939 Mon Sep 17 00:00:00 2001 From: "helen.han" Date: Thu, 5 Nov 2026 22:34:49 +0000 Subject: [PATCH 2/2] test(ffe): clarify property is an unknown reference key State explicitly that flagEvaluation.property is deliberately unknown and must be ignored. Environment: Datadog workspace Co-Authored-By: Codex GPT-6 --- evaluation-suites/dependent-flags/cases/dependent-flags.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/evaluation-suites/dependent-flags/cases/dependent-flags.json b/evaluation-suites/dependent-flags/cases/dependent-flags.json index f9c86ff..67539fe 100644 --- a/evaluation-suites/dependent-flags/cases/dependent-flags.json +++ b/evaluation-suites/dependent-flags/cases/dependent-flags.json @@ -341,7 +341,7 @@ "variationType": "STRING" }, { - "description": "Unknown fields inside flagEvaluation, on its condition, and in evaluatorParams are ignored while the prerequisite key is evaluated normally.", + "description": "The 'property' key inside flagEvaluation is deliberately unknown and must be ignored; only 'key' selects the prerequisite. The unknownConditionField and unknownEvaluatorField keys must also be ignored, preserving the normal assignment and telemetry.", "attributes": {}, "defaultValue": "caller-default", "flag": "dependent-unknown-fields-root",