Skip to content

Send Java SDK identity with Feature Flagging EVP events - #12575

Draft
leoromanovsky wants to merge 1 commit into
leoromanovsky/fflsdk-187-java-evp-fallbackfrom
leoromanovsky/fflsdk-187-java-evp-identity
Draft

leoromanovsky wants to merge 1 commit into
leoromanovsky/fflsdk-187-java-evp-fallbackfrom
leoromanovsky/fflsdk-187-java-evp-identity

Conversation

@leoromanovsky

Copy link
Copy Markdown
Contributor

Motivation

Attribute Feature Flagging exposures and flag evaluations to the Java SDK on both local EVP proxy and direct-intake routes. Initial direct delivery already shipped; this PR isolates producer identity from the transport hardening in #12477. Tracks FFL-3016 within the FFLSDK-187 rollout.

Changes

  • Send DD-EVP-ORIGIN: dd-trace-java and DD-EVP-ORIGIN-VERSION using the tracer version.
  • Add immutable per-request header configuration to the shared backend factory.
  • Verify local/direct identity headers while retaining credential-isolation and one-send assertions.

Decisions

  • Stack on leoromanovsky/fflsdk-187-java-evp-fallback, not another language or unrelated SDK branch.
  • Forwarding-capability requirements, routing, retries, credentials and lifecycle remain in Harden Agentless Feature Flags EVP delivery #12477. Required header names are independent of the identity values emitted here.
  • No new configuration or system-test changes.

Validation

  • Exact base: 1b5766b56c67bb7151a084abb752e62e5bb4b332.
  • Exact candidate: 96a3427bb9bcb640165306d16af141e9455e2cc4.
  • ./gradlew :communication:spotlessApply :products:feature-flagging:feature-flagging-lib:spotlessApply :communication:test :products:feature-flagging:feature-flagging-lib:test --console=plain --max-workers=4: PASS; communication 235/235, feature-flagging-lib 279/279.
  • git diff --check: PASS. New commit is GitHub verified: verified=true, reason=valid.
  • No current-candidate system-tests, dogfooding or backend-intake run. Older artifact results are not claimed for this split.
  • Fresh CI remains separate from local validation. This PR remains a draft.

Add immutable per-request identity headers independently of forwarding capability checks and send-once policy. Emit dd-trace-java and the tracer version for both exposure and flag-evaluation requests.

Validation: communication tests 235/235 and feature-flagging-lib tests 279/279 pass; scoped Spotless formatting passes. Local/direct wire assertions preserve credential isolation and one-send behavior.

Environment: Datadog workspace
@leoromanovsky leoromanovsky added type: feature Enhancements and improvements tag: ai generated Largely based on code generated by an AI or LLM comp: openfeature OpenFeature labels Sep 19, 2026
@linear-code

linear-code Bot commented Sep 19, 2026

Copy link
Copy Markdown

FFLSDK-187

@datadog-datadog-prod-us1

datadog-datadog-prod-us1 Bot commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

🎯 Code Coverage (details)
Patch Coverage: 20.00%
Overall Coverage: 59.09% (-0.04%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 96a3427 | Docs | Give us feedback!

@dd-octo-sts

dd-octo-sts Bot commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

🟢 Java Benchmark SLOs — All performance SLOs passed

Suite Status
Startup 🟢 pass

SLO thresholds are defined here based on automatically generated metrics. A warning is raised when results are within 5% of the threshold.

PR vs. master results
Scenario Candidate master Δ (95% CI of mean)
startup:insecure-bank:iast:Agent 13.95 s 13.95 s [-0.8%; +0.9%] (no difference)
startup:insecure-bank:tracing:Agent 12.83 s 12.98 s [-1.9%; -0.4%] (maybe better)
startup:petclinic:appsec:Agent 17.62 s 17.30 s [+0.8%; +2.9%] (maybe worse)
startup:petclinic:iast:Agent 17.36 s 17.56 s [-1.9%; -0.4%] (maybe better)
startup:petclinic:profiling:Agent 17.28 s 17.38 s [-1.9%; +0.7%] (no difference)
startup:petclinic:sca:Agent 17.56 s 17.40 s [-0.1%; +2.0%] (no difference)
startup:petclinic:tracing:Agent 16.51 s 16.65 s [-1.9%; +0.2%] (no difference)

Commit: 96a3427b · CI Pipeline · Benchmarking Platform UI


Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: openfeature OpenFeature tag: ai generated Largely based on code generated by an AI or LLM type: feature Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant