fix(openfeature): disable the provider for unsupported sources#9482
Conversation
Overall package sizeSelf size: 7.51 MB Dependency sizes| name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.3.2 | 124.41 kB | 440.65 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | dc-polyfill | 0.1.11 | 25.74 kB | 25.74 kB |🤖 This report was automatically generated by heaviest-objects-in-the-universe |
🎉 All green!🧪 All tests passed 🔄 Datadog auto-retried 1 job - 1 passed on retry 🎯 Code Coverage (details) 🔗 Commit SHA: fc260f0 | Docs | Datadog PR Page | Give us feedback! |
56d7d04 to
3395ecc
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## leo.romanovsky/ffl-2697-custom-agentless-endpoints #9482 +/- ##
======================================================================================
- Coverage 98.44% 98.44% -0.01%
======================================================================================
Files 940 943 +3
Lines 126874 127283 +409
Branches 11093 12617 +1524
======================================================================================
+ Hits 124903 125301 +398
- Misses 1971 1982 +11
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3395eccc70
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
BenchmarksBenchmark execution time: 2026-07-23 04:07:27 Comparing candidate commit fc260f0 in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 2332 metrics, 26 unstable metrics.
|
BridgeAR
left a comment
There was a problem hiding this comment.
It is actually not silently omitted. We automatically generate telemetry for it and log a warning, if debug mode is active.
I do not think we should change how things work right now. Throwing for invalid configs is something no tracer does and that was an agreement that even if something is not properly configured, it should not crash a customers application. As such, doing this would actively go against that rule.
|
I applied the misconfiguration policy. I then merged the updated parent branch into this branch. The resulting head is DataDog/system-tests#7365 contains the corresponding test-contract changes. PYTEST_XDIST_AUTO_NUM_WORKERS=1 TEST_LIBRARY=nodejs pytest -S PARAMETRIC --skip-parametric-build --runxfail -vv -s tests/parametric/test_ffe/test_configuration_sources.pyResult: 29 passed in 362.26s. The complete run verifies:
The repository checks also passed:
|
Edit: We made additional decisions during this review and in offline discussions. The code changes and validation comment below show the final decisions. The remaining PR body preserves the original proposal for the project record.
Motivation
The configuration registry currently discards an explicit, nonblank
DD_FEATURE_FLAGS_CONFIGURATION_SOURCEvalue if it does not recognize the value.This behavior silently selects a different delivery mode:
agentless.DD_EXPERIMENTAL_FLAGGING_PROVIDER_ENABLED=true, legacy precedence selectsremote_config.This behavior is not safe for an invalid value. It is also incorrect for the reserved future
offlinemode.A typing error or an unimplemented mode must not start a CDN request. It must not advertise the FFE Remote Configuration capability.
Blank values and values that contain only whitespace remain semantically absent. They retain the existing default and legacy compatibility behavior.
The invalid and reserved-source system tests make a valid agentless backend available. The tests access the provider. They then require zero backend requests and no FFE Remote Configuration capability or product.
This test design separates fail-closed behavior from an unavailable test backend.
On parent #9481, both tests fail as expected.
Each explicit source causes one authenticated request to the canonical agentless path. The endpoint returns HTTP
200.The parent result shows that source selection causes the failure. Docker connectivity does not cause the failure.
Local Docker proof on the stacked result
This PR contains one commit,
3395eccc707ff0b06ea504ae668a80017e6787b4. It is directly on #9481 head51cae1bdd2378ecf0f3c77147e2934e33ca2ceb4.The PARAMETRIC Docker harness mounted the stacked worktree. It ran system-tests head
a5dc9b8433ee3fd2892ea2968b90acb26274313cwith one worker:The complete file also passed these behaviors:
The same stacked tree passed the repository checks:
Changes
offlineas a reserved value.offlineduring provider initialization.Decisions
DD_FEATURE_FLAGS_ENABLED=falsekill switch authoritative.offlinewithout implementing startup bytes.offline.