Skip to content

Commit a7df7df

Browse files
committed
fix(openfeature): preserve source configuration identity
1 parent 8305a6c commit a7df7df

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

packages/dd-trace/src/openfeature/ffe-evaluator.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ const UINT64_MAX = '18446744073709551615'
1818
* @returns {{
1919
* configuration: import('@datadog/openfeature-node-server').UniversalFlagConfigurationV1 | undefined,
2020
* rejected: Set<string>,
21+
* sourceConfiguration: import('@datadog/openfeature-node-server').UniversalFlagConfigurationV1 | undefined,
2122
* semverConditions: Map<string, Array<{
2223
* attribute: string,
2324
* comparand: string,
@@ -30,7 +31,7 @@ function sanitizeConfiguration (configuration) {
3031
const rejected = new Set()
3132
const semverConditions = new Map()
3233
if (!configuration?.flags || typeof configuration.flags !== 'object' || Array.isArray(configuration.flags)) {
33-
return { configuration, rejected, semverConditions }
34+
return { configuration, rejected, semverConditions, sourceConfiguration: configuration }
3435
}
3536

3637
const flags = { ...configuration.flags }
@@ -48,6 +49,7 @@ function sanitizeConfiguration (configuration) {
4849
configuration: rejected.size || semverConditions.size ? { ...configuration, flags } : configuration,
4950
rejected,
5051
semverConditions,
52+
sourceConfiguration: configuration,
5153
}
5254
}
5355

packages/dd-trace/src/openfeature/flagging_provider.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,15 @@ class FlaggingProvider extends DatadogNodeServerProvider {
6969
this.#ffeState = state
7070
}
7171

72+
/**
73+
* Returns the exact source configuration supplied to the provider.
74+
*
75+
* @returns {import('@datadog/openfeature-node-server').UniversalFlagConfigurationV1 | undefined}
76+
*/
77+
getConfiguration () {
78+
return this.#ffeState.sourceConfiguration
79+
}
80+
7281
/**
7382
* Resolves a boolean flag and normalizes its canonical result.
7483
*

0 commit comments

Comments
 (0)