From 41d6fc53ba61b5d1d12d620d65adc0aa053858ad Mon Sep 17 00:00:00 2001 From: Craig Pastro Date: Mon, 18 Sep 2023 19:23:53 -0700 Subject: [PATCH] bug: create new context when adding flagd properties Signed-off-by: Craig Pastro --- core/pkg/eval/json_evaluator.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/core/pkg/eval/json_evaluator.go b/core/pkg/eval/json_evaluator.go index edf338bfc..153a4910f 100644 --- a/core/pkg/eval/json_evaluator.go +++ b/core/pkg/eval/json_evaluator.go @@ -22,6 +22,7 @@ import ( "go.opentelemetry.io/otel/codes" "go.opentelemetry.io/otel/trace" "go.uber.org/zap" + "golang.org/x/exp/maps" ) const ( @@ -362,13 +363,15 @@ func (je *JSONEvaluator) setFlagdProperties( context = map[string]any{} } - if _, ok := context[flagdPropertiesKey]; ok { + newContext := maps.Clone(context) + + if _, ok := newContext[flagdPropertiesKey]; ok { je.Logger.Warn("overwriting $flagd properties in the context") } - context[flagdPropertiesKey] = properties + newContext[flagdPropertiesKey] = properties - return context + return newContext } func getFlagdProperties(context map[string]any) (flagdProperties, bool) {