Repository navigation
Support per-subject experimentation opt-out - #12950
leoromanovsky wants to merge 12 commits into
Conversation
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
…imentation-opt-out-immediate # Conflicts: # metadata/supported-configurations.json # products/feature-flagging/feature-flagging-api/src/main/java/datadog/trace/api/openfeature/Provider.java
…imentation-opt-out-immediate
…imentation-opt-out-immediate
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
More details
Both providers preserve ordinary fallback delivery when experiment allocations are excluded, and malformed activation metadata is isolated to the affected flag. Validation was limited to static review.
🤖 Bits Code Review · Commit 660b5b9
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 660b5b9611
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
What Does This Do
Adds per-subject experimentation opt-out to the standalone and legacy OpenFeature providers.
Set
DD_FEATURE_FLAGS_EXPERIMENTATION_OPT_OUT_MODEbefore constructing the provider:disabled(default)immediatefuture_experiments_onlySet
dd_experimentation_opt_out_atto a timestamp in the subject's evaluation context. Omit it for eligible subjects.Explicit
Provider.Options.experimentationOptOutMode(...)overrides configuration. The provider resolves the mode at construction.Enabled modes reject malformed subject timestamps with
INVALID_CONTEXT.Malformed activation returns
PARSE_ERRORonly for effective future mode with a valid subject cutoff, including unreachable allocations.Disabled mode, immediate mode, and absent-cutoff evaluation preserve ordinary behavior.
Activation timestamps are parsed once. Inactive evaluation skips the exclusion helper.
Motivation
Subjects must be able to leave experimentation while retaining ordinary feature delivery.
Both providers now follow the shared decisions from the merged browser and Go implementations.
Validation
DataDog/dd-trace-java@578ffa77cbc52e6d5d8950657a05863a449f59ab23b69bd59edaf9a6a3fdc71873d18d14616f550cDataDog/dd-trace-java@a4d3dfb21cec0658417d4f3842dc8c8465a27371DataDog/dd-trace-java@a4d3dfb21cec0658417d4f3842dc8c8465a27371Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issue. Usesolvesinstead, and assign the PR milestone to the issue.Jira ticket: FFLSDK-258