Skip to content

Keep released dd-openfeature SDKs working with the agent - #12976

Open
PerfectSlayer wants to merge 5 commits into
bbujon/ffe-agent-connectorfrom
bbujon/ffe-compat
Open

PerfectSlayer wants to merge 5 commits into
bbujon/ffe-agent-connectorfrom
bbujon/ffe-compat

Conversation

@PerfectSlayer

@PerfectSlayer PerfectSlayer commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

What Does This Do

Keeps applications using a released dd-openfeature SDK working with this agent:

  • New dd-openfeature-1.56 instrumentation: released providers (1.56 to 1.68) link to the agent bootstrap API the bridge replaced; they now skip their legacy evaluator and return the caller defaults (PROVIDER_NOT_READY) with a warning to upgrade, instead of failing. It applies even with Feature Flags disabled, and is checked by muzzle against every released version.

Motivation

The previous PR removes the agent-coupled provider API (APMLP-1512). Merge right after it: in between, released SDKs fail with this agent.

Additional Notes

Files
File Notes
LegacyProviderInstrumentation, LegacyProviderAdvice Skip initialize() and return defaults from the evaluation methods of legacy providers (matched on loadEvaluatorClass())
ignored_class_name.trie Allows instrumenting datadog.trace.api.openfeature.Provider
:dd-smoke-tests:openfeature-legacy Smoke test: an application built with the released dd-openfeature 1.67.1 gets the caller defaults and the upgrade warning, with Feature Flags enabled or disabled

Stack

The full change is in #12709. It was split into this stack to ease the review.

  1. Resolve Feature Flags enablement from instrumenter config #12845 (merged)
  2. Add dd-openfeature SDK flag configuration and evaluation core #12840 (merged)
  3. Add dd-openfeature SDK settings and configuration delivery #12841 (merged)
  4. Add dd-openfeature SDK exposure and flag evaluation pipelines #12842 (merged)
  5. Add dd-openfeature SDK OpenFeature provider #12843 (merged)
  6. Port master Feature Flags changes to the dd-openfeature SDK #12957 (merged)
  7. Add the agent bridge for the dd-openfeature SDK #12975
  8. Connect the dd-openfeature SDK to the agent #12844
  9. Keep released dd-openfeature SDKs working with the agent #12976 👈 this PR
  10. Resolve the Feature Flags settings like the SDK #12977
  11. Restore the agent Feature Flags behaviors through the bridge #12978
  12. Add agentless and standalone OpenFeature smoke tests #12846

Jira ticket: APMLP-1512

🤖 Generated with Claude Code

@datadog-prod-us1-5

This comment has been minimized.

@dd-octo-sts

dd-octo-sts Bot commented Oct 21, 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 14.06 s 13.95 s [-0.0%; +1.7%] (no difference)
startup:insecure-bank:tracing:Agent 12.89 s 12.97 s [-1.3%; +0.1%] (no difference)
startup:petclinic:appsec:Agent 17.72 s 17.53 s [+0.1%; +2.0%] (maybe worse)
startup:petclinic:iast:Agent 17.43 s 17.74 s [-2.7%; -0.8%] (maybe better)
startup:petclinic:profiling:Agent 17.32 s 17.19 s [-0.1%; +1.6%] (no difference)
startup:petclinic:sca:Agent 17.76 s 17.60 s [-0.0%; +2.0%] (no difference)
startup:petclinic:tracing:Agent 16.64 s 16.80 s [-1.9%; -0.1%] (maybe better)

Commit: 6c105cc2 · 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.

@PerfectSlayer
PerfectSlayer force-pushed the bbujon/ffe-compat branch 2 times, most recently from 17c0f4e to 9b8b55c Compare October 21, 2026 14:19
@PerfectSlayer
PerfectSlayer force-pushed the bbujon/ffe-compat branch 3 times, most recently from 413ffd3 to 4f242cb Compare October 22, 2026 08:40
@PerfectSlayer
PerfectSlayer marked this pull request as ready for review October 22, 2026 08:55
@PerfectSlayer
PerfectSlayer requested review from a team as code owners October 22, 2026 08:55
@PerfectSlayer
PerfectSlayer requested review from jordan-wong and mhdatie and removed request for a team October 22, 2026 08:55
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-22T08:59:13.332710Z 4f242cb Draft marked ready
🔒 Security Review 🔄 Running since 2026-10-22T08:55:32.644855Z 4f242cb Draft marked ready
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@datadog-prod-us1-5 datadog-prod-us1-5 Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bits Code Review: PASS

More details

Static review found no actionable compatibility gaps in legacy provider matching, initialization bypass, or default-value evaluation. Runtime behavior remains unverified.

Was this helpful? React 👍 or 👎

Open Bits AI session

🤖 Bits Code Review · Commit 4f242cb

@PerfectSlayer
PerfectSlayer requested review from a team as code owners October 22, 2026 11:00
@PerfectSlayer
PerfectSlayer requested review from erikayasuda and removed request for a team October 22, 2026 11:00
@PerfectSlayer
PerfectSlayer requested review from a team and dougqh and removed request for a team and mhdatie October 22, 2026 13:11

@datadog-prod-us1-5 datadog-prod-us1-5 Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bits Code Review: PASS

More details

Static review supports that the legacy-provider fallback avoids loading the removed bootstrap evaluator and returns caller defaults for all five evaluation types, including when Feature Flags is disabled.

Was this helpful? React 👍 or 👎

Open Bits AI session

🤖 Bits Code Review · Commit 0b85f6e

PerfectSlayer and others added 5 commits October 22, 2026 17:18
Released providers, from 1.56 to 1.68, link to the agent bootstrap API
the bridge replaced: make them return the caller defaults instead of
failing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replace the legacy provider instrumentation tests, which loaded a
released provider in a dedicated class loader, with a smoke test running
an application built with the released dd-openfeature 1.67.1, with and
without Feature Flags enabled. Drop the IDEA module configuration and use
the static VERSION_11 import in the legacy provider instrumentation build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Mark the instrumentation module and advice classes as unused, as they are
only referenced through AutoService and advice class names, and import
the Advice annotations statically.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@sarahchen6 sarahchen6 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

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

comp: openfeature OpenFeature tag: ai generated Largely based on code generated by an AI or LLM tag: no release notes Changes to exclude from release notes type: feature Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants