fix(openfeature): allow custom agentless endpoints#9481
Conversation
Overall package sizeSelf size: 7.48 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 🎯 Code Coverage (details) 🔗 Commit SHA: d82bd2b | Docs | Datadog PR Page | Give us feedback! |
BenchmarksBenchmark execution time: 2026-07-23 04:06:43 Comparing candidate commit d82bd2b in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 2328 metrics, 30 unstable metrics.
|
BridgeAR
left a comment
There was a problem hiding this comment.
I think we should verify if we are able to just support insecure connections by not sending the API key
aarsilv
left a comment
There was a problem hiding this comment.
All for making testing easier. Approving with minor comment you can take or leave.
783aee4
|
I applied the review feedback in DataDog/system-tests#7365 contains the corresponding test-contract changes. The system tests:
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.py -k "test_default_agentless_positive or test_stable_true_preserves_default_agentless or test_unauthorized_cold or test_malformed_cold or test_request_timeout_cold or test_unauthorized_warm"Result: 8 passed, 21 deselected in 159.78s. This run verifies:
Additional local checks:
|
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
DataDog/system-tests#7355 enables the Node.js Feature Flagging configuration-source contract.
The failing Docker CI job uses
http://host.docker.internal:<port>as the configured source. Node.js rejects this source before polling and reports:host.docker.internalconnects the library container to the mock source on the host. It is not a loopback address inside the container.The same restriction prevents two local-development operations:
An explicitly configured source is an operator-owned endpoint. It can use authentication other than
DD_API_KEY.The default Datadog API still requires the Datadog key and HTTPS.
The system-test scenarios verify behavior. They do not verify only process startup.
401or403. The provider stays not ready or preserves its last-known-good state.Local Docker proof on this PR
The PARAMETRIC Docker harness mounted dd-trace-js head
51cae1bdd2378ecf0f3c77147e2934e33ca2ceb4in the existingnodejs-test-clientimage.The harness ran system-tests head
a5dc9b8433ee3fd2892ea2968b90acb26274313cwith one worker:PYTEST_XDIST_AUTO_NUM_WORKERS=1 TEST_LIBRARY=nodejs \ ./run.sh PARAMETRIC --skip-parametric-build -vv -s \ tests/parametric/test_ffe/test_configuration_sources.py \ -k "test_default_agentless_positive or test_missing_auth_cold or test_missing_auth_warm"This branch intentionally does not contain the configuration-grandfathering change.
The following command runs the two grandfathering scenarios against this parent head:
PYTEST_XDIST_AUTO_NUM_WORKERS=1 TEST_LIBRARY=nodejs \ ./run.sh PARAMETRIC --skip-parametric-build -vv -s \ tests/parametric/test_ffe/test_configuration_sources.py \ -k "test_invalid_configuration_source_fails_closed or test_reserved_offline_configuration_source_fails_closed"The endpoint works on this PR. The remaining failures show that unsupported source values still select agentless delivery.
Stacked #9482 changes that separate behavior. It passes the complete 29-case Docker file.
Changes
DD_API_KEYonly for the default Datadog Feature Flagging API.Decisions
master.