Skip to content

test(dotnet): enable agentless EVP exposure egress - #7707

Draft
leoromanovsky wants to merge 8 commits into
mainfrom
leo.romanovsky/ffe-agentless-evp-dotnet-enablement-v1
Draft

leoromanovsky wants to merge 8 commits into
mainfrom
leo.romanovsky/ffe-agentless-evp-dotnet-enablement-v1

Conversation

@leoromanovsky

@leoromanovsky leoromanovsky commented Sep 12, 2026 •

Copy link
Copy Markdown
Contributor

Motivation

Agentless CDN-delivered configuration simplifies customer deployments only if Feature Flags telemetry also has a reliable path out of the process: discover a compatible Agent or serverless-init relay, otherwise use direct EVP intake.

FFLSDK-195 enables .NET against the shared contract from merged #7299.

Changes

Capability (poc only) Direct intake Serverless-init
Exposure delivery, identity, route-specific credentials Enabled Enabled
Exposure flush after HTTP shutdown Enabled Not added
  • Activation gate: v3.55.0.
  • Correct all three exposure gates from v3.54.0 to v3.55.0.
  • Preserve poc-only activation and the opt-in PID 1/ApplicationStopped shutdown marker.
  • Leave UDS and other weblogs disabled for this no-Agent topology.
  • Merge main and retain only the language-specific delta; no duplicated foundation or weakened shared assertions.

Decisions

  • Keep this an enablement PR: manifests and only necessary server/proxy wiring; no bespoke harness self-tests.

  • Target main directly, independently of other language enablers.

  • dd-trace-dotnet#9044 is merged and configuration lifecycle is released in v3.54.0. Fallback #9235 remains open. Correct the stale fallback gate to current master's v3.55.0 and reconfirm it when the SDK PR lands.

  • Keep this exposure-only. Flag-evaluation emission is separate (FFLSDK-28).

  • Keep OTLP and new fault-injection harness work out of scope.

Validation

Base: 8770fe3d914d8f7028c1d4177292acc5b5498a34
Candidate: 701c9a30ab7c8f5d9b1cf5b2884c74442f9ff3ba (signed; GitHub verified).

  • ./format.sh --check — passed on the cleaned worktree, using Python 3.12 with PYTHONPATH=$PWD.
  • Removed redundant manifest/source-text self-tests. Existing shared harness tests and real E2E contracts are unchanged.
  • Fresh direct/serverless-init E2E was not rerun for this cleanup. Historical artifact runs and former harness-test counts are not current-head product evidence.
  • Current-head CI and actual event-delivery E2E remain approval gates. No staging or production-intake claim.

Add reusable direct-EVP scenarios, wire assertions, topology proof, and bounded shutdown evidence without activating any language manifest.

Environment: Datadog workspace
Skip agentless EVP setup for manifest-declared expected failures so unsupported languages cannot register scenario-level capture obligations. Keep new direct contracts explicitly disabled until each language activation lands.

Environment: Datadog workspace
Keep manifest-deactivated runs from requiring capture registration or evidence artifacts, and match shutdown flag evaluations by raw or hashed targeting key.

Environment: Datadog workspace
@github-actions

github-actions Bot commented Sep 12, 2026 •

Copy link
Copy Markdown
Contributor

CODEOWNERS have been resolved as:

manifests/dotnet.yml                                                    @DataDog/system-tests-reviewers
utils/build/docker/dotnet/weblog/Program.cs                             @DataDog/system-tests-reviewers
utils/build/docker/dotnet/weblog/app.sh                                 @DataDog/system-tests-reviewers

Pin serverless-init 1.10.4 so sidecar scenarios advertise forwarding support for both EVP origin headers required by hardened SDKs.

Environment: Datadog workspace
…novsky/ffe-agentless-evp-dotnet-enablement-v1
@datadog-prod-us1-3

datadog-prod-us1-3 Bot commented Sep 12, 2026 •

Copy link
Copy Markdown
Contributor

Pipelines  Tests

❌ Errors

Your PR has failed checks. Please review the issues below and take necessary action before merging.

🚦 2 Pipeline jobs failed

Testing the test | System Tests (dotnet, dev) / End-to-end #13 / poc 13 — ❌ 1 test failed

View more details · View in GitHub Actions

❌ pytest.internal[poc] from system_tests_suite
internal error

Traceback (most recent call last):
  File "/home/runner/work/system-tests/system-tests/utils/_context/_scenarios/agentless_endtoend.py", line 657, in _wait_and_stop_containers
    self._wait_for_expected_evp_captures(is_empty_test_run=is_empty_test_run)
  File "/home/runner/work/system-tests/system-tests/utils/_context/_scenarios/agentless_endtoend.py", line 650, in _wait_for_expected_evp_captures
    raise RuntimeError(f"Timed out waiting for Feature Flags EVP captures: {', '.join(missing_paths)}")
RuntimeError: Timed out waiting for Feature Flags EVP captures: /api/v2/exposures

During handling of the above exception, another exception occurred:
...
Testing the test | all-jobs-are-green

View more details · View in GitHub Actions

ℹ️ 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: 701c9a3 | Docs | View more details | Give us feedback!

Base automatically changed from exec/system-tests-agentless-side-effects to main September 23, 2026 15:15
Gate exposure fallback on 3.55.0 pending dd-trace-dotnet#9235; released 3.54.0 contains configuration delivery but not EVP fallback.

Environment: Datadog workspace
Remove redundant activation and source-text self-tests. Preserve existing end-to-end contracts and required server/proxy adjustments.

Environment: Datadog workspace

This branch has not been deployed

No deployments
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