Skip to content

test(ffe): enable Node.js agentless configuration#7355

Draft
leoromanovsky wants to merge 3 commits into
mainfrom
leo.romanovsky/ffl-2697-enable-nodejs-agentless-configuration
Draft

test(ffe): enable Node.js agentless configuration#7355
leoromanovsky wants to merge 3 commits into
mainfrom
leo.romanovsky/ffl-2697-enable-nodejs-agentless-configuration

Conversation

@leoromanovsky

@leoromanovsky leoromanovsky commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Motivation

DataDog/dd-trace-js#9397 adds the Node.js agentless Feature Flagging configuration source and is targeted for v6.5.0 through DataDog/dd-trace-js#9414. The shared configuration-source contract is already on main; Node.js now needs its manifest activation and updated default Remote Configuration capability expectation.

The contract also provides the cross-repository motivation for DataDog/dd-trace-js#9468: local and controlled custom agentless endpoints must be reachable, missing authentication must be observable, and unsupported source values must fail without contacting either delivery surface.

Changes

  • Enable tests/parametric/test_ffe/test_configuration_sources.py for Node.js starting with v6.5.0.
  • Stop expecting the FFE Remote Configuration capability in the default Node.js capability set from v6.5.0 onward.
  • Keep provider startup errors inside the Node.js parametric controller /ffe/start response so negative source tests can assert startup failure and zero CDN or Remote Configuration traffic.

Decisions

  • Use an explicit v6.5.0 manifest gate rather than enabling the suite for older Node.js tracer versions.
  • Preserve the default capability expectation for >=5.72.0 <6.5.0; from v6.5.0, capability 46 and the FFE_FLAGS product are registered only when Feature Flags explicitly selects remote_config, which the existing configuration-source contract validates.
  • Treat unsupported provider-source exceptions as a failed start response rather than allowing the parametric process to terminate before the shared assertions run.

@github-actions

github-actions Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

CODEOWNERS have been resolved as:

manifests/nodejs.yml                                                    @DataDog/dd-trace-js
tests/parametric/capabilities.yml                                       @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
utils/build/docker/nodejs/parametric/server.js                          @DataDog/dd-trace-js @DataDog/system-tests-core

@datadog-datadog-us1-prod

datadog-datadog-us1-prod Bot commented Jul 21, 2026

Copy link
Copy Markdown

Pipelines  Tests

⚠️ Warnings

🚦 4 Pipeline jobs failed

Testing the test | System Tests (nodejs, prod) / parametric / parametric (1)   View in Datadog   GitHub Actions

🧪 1 Test failed

tests.parametric.test_library_tracestats.Test_Library_Tracestats.test_metrics_computed_after_span_finsh_TS009[agent_env0-library_env0, parametric-nodejs] from system_tests_suite   View in Datadog
AssertionError: There should be one bucket containing the stats
assert 2 == 1
 &#43;  where 2 = len([{&#39;Duration&#39;: 10000000000, &#39;Start&#39;: 1784677210000000000, &#39;Stats&#39;: [{&#39;Duration&#39;: 7256836, &#39;ErrorSummary&#39;: store: {}}, m...y:0, offset:0, zero_count: 0.0, count: 0.0, sum: 0.0, min: inf, max: -inf, &#39;Errors&#39;: 0, &#39;GRPCStatusCode&#39;: None, ...}]}])

self = &lt;tests.parametric.test_library_tracestats.Test_Library_Tracestats object at 0x7f09129434d0&gt;
test_agent = &lt;utils.docker_fixtures._test_agent.TestAgentAPI object at 0x7f08e2c0c590&gt;
test_library = &lt;utils.docker_fixtures._test_clients._test_client_parametric.ParametricTestClientApi object at 0x7f08e2c0d4c0&gt;

    @enable_tracestats()
    @enable_agent_version()
...

Testing the test | System Tests (nodejs, dev) / parametric / parametric (2)   View in Datadog   GitHub Actions

🧪 15 Tests failed

tests.parametric.test_ffe.test_configuration_sources.Test_Feature_Flag_Configuration_Source_Cold_Failure_And_Recovery.test_bad_to_good_cold_recovery[server-error-to-valid, parametric-nodejs] from system_tests_suite   View in Datadog
AssertionError: failed to start FFE provider for bad_to_good
assert False
 &#43;  where False = &lt;bound method ParametricTestClientApi.ffe_start of &lt;utils.docker_fixtures._test_clients._test_client_parametric.ParametricTestClientApi object at 0x7f9fb55b5340&gt;&gt;()
 &#43;    where &lt;bound method ParametricTestClientApi.ffe_start of &lt;utils.docker_fixtures._test_clients._test_client_parametric.ParametricTestClientApi object at 0x7f9fb55b5340&gt;&gt; = &lt;utils.docker_fixtures._test_clients._test_client_parametric.ParametricTestClientApi object at 0x7f9fb55b5340&gt;.ffe_start

self = &lt;tests.parametric.test_ffe.test_configuration_sources.Test_Feature_Flag_Configuration_Source_Cold_Failure_And_Recovery object at 0x7f9fb612bd10&gt;
test_library = &lt;utils.docker_fixtures._test_clients._test_client_parametric.ParametricTestClientApi object at 0x7f9fb55b5340&gt;
mock_ffe_agentless_backend = &lt;utils.docker_fixtures._mock_ffe_agentless_backend.MockFFEAgentlessBackendServer object at 0x7f9fb55b4350&gt;
expected_status_codes = [500, 200]

...
tests.parametric.test_ffe.test_configuration_sources.Test_Feature_Flag_Configuration_Source_Cold_Failure_And_Recovery.test_bad_to_unchanged_cold_preserves_not_ready[server-error-to-unchanged, parametric-nodejs] from system_tests_suite   View in Datadog
mock FFE agentless backend status did not reach expected state: bad_to_unchanged 500 to 304 cold sequence; status={&#39;requests_total&#39;: 0, &#39;in_flight&#39;: 0, &#39;max_in_flight&#39;: 0, &#39;last_path&#39;: None, &#39;last_if_none_match&#39;: None, &#39;last_auth_present&#39;: False, &#39;last_status_code&#39;: None, &#39;status_codes&#39;: []}
View all failed tests

DataDog/system-tests | noop   View in Datadog   GitLab

View all 4 failed jobs.

ℹ️ Info

No other issues found (see more)

❄️ No new flaky tests detected

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: a5dc9b8 | Docs | Datadog PR Page | Give us feedback!

@leoromanovsky
leoromanovsky force-pushed the leo.romanovsky/ffl-2697-enable-nodejs-agentless-configuration branch from 42fb2f7 to 81f8aaf Compare July 21, 2026 22:30
@leoromanovsky
leoromanovsky changed the base branch from leo.romanovsky/ffe-frame-agentless-mock-responses to main July 21, 2026 22:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant