Repository navigation
Conversation
Every UFC split has a stable per-org serialId used by downstream consumers (APM span enrichment, exposure caching, evaluation-metrics correlation) to identify the exact (allocation, variant) pair that was assigned. Today only the Node server SDK (openfeature-js-client#269) exposes this via flagMetadata["__dd_split_serial_id"]; this test generalizes the contract so every SDK can be validated the same way. Adds a dedicated fixture covering: a plain serialId, serialId=0 (a valid ID that must not be dropped by a truthiness check), a split with no serialId (must not fabricate one), and two allocations with different serialIds selected via targeting. All languages are marked missing_feature: verified directly against the Node.js and Go parametric weblog handlers that neither returns flagMetadata from POST /ffe/evaluate today. The new feature_flags_serial_id_metadata marker uses NOT_REPORTED_ID pending a real feature-parity page.
Exclude the UFC configuration from evaluation-case discovery, disable the new suite for Rust, and require successful evaluation before accepting an absent serial ID. Apply the repository formatter to the new test module. Environment: Datadog workspace
Fail evaluations that omit flagMetadata while allowing null or empty metadata when a split has no serial ID. Environment: Datadog workspace Co-Authored-By: Codex GPT-5 <noreply@localhost>
Tighten the missing-serial-ID test so an SDK cannot serialize an absent UFC serial ID as a null metadata entry. Environment: Datadog workspace Co-Authored-By: Codex GPT-5 <noreply@localhost>
Exercise serial-ID flag metadata under the required span-enrichment configuration for positive, zero, and missing UFC serial IDs. Environment: Datadog workspace Co-Authored-By: Codex GPT-5 <noreply@localhost>
Fix the import-policy failure when the PR is tested against current main. Environment: Datadog workspace Co-Authored-By: Codex GPT-6 <noreply@localhost>
Bring in the exact upstream facade so imports work on the PR head as well as merged main. Environment: Datadog workspace Co-Authored-By: Codex GPT-5 <noreply@localhost>
Serialize empty flag metadata as an object and document the pending SDK release dependency. Environment: Datadog workspace Co-Authored-By: Codex GPT-5 <noreply@localhost>
Contributor
|
|
|
✅ All CI checks and tests passed. 🎉 All green!🧪 All tests passed 🔗 Commit SHA: a332f3a | Docs | View more details | Give us feedback! |
This was referenced Sep 29, 2026
hhan2024
force-pushed
the
ffe-serial-id-metadata-system-test
branch
from
September 30, 2026 16:24
9547cef to
ea6ec3f
Compare
hhan2024
force-pushed
the
ffe-serial-id-metadata-system-test
branch
from
October 15, 2026 17:12
b59cca6 to
4352704
Compare
Start the provider without injecting the UFC fixture after Remote Config acknowledgement. Environment: Datadog workspace Co-Authored-By: Codex GPT-6 <noreply@localhost>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Stacked directly on
ffe-serial-id-metadata-system-test(#7820).The adapter forwards SDK metadata unchanged; it does not synthesize serial IDs.
missing_featureuntil the SDK fix is merged and its release is known.SDK dependency
PHP currently exposes native
serialIdonly in exposure data. A tested SDK patchadds
__dd_split_serial_idto flag metadata when span enrichment is enabled,preserves zero, and omits missing/null IDs. Existing metadata is preserved.
The native evaluator passes the existing enrichment gate to its result mapper.
SDK dependency: DataDog/dd-trace-php#4247, branch
ffe-serial-id-flag-metadata, signed commite3226c4f, based on PHP masterd98de1ed. Repository access is resolved and the SDK PR is now published.Do not merge/activate this draft until that dependency and release gate are set.
Validation
and pass with the patch; also covers missing/null IDs and disabled enrichment.
composer ci-lint: passed../format.sh --check: passed.plus the patched PHP SDK sources. Exact command:
Candidate image recipe (local validation only, not committed): use the existing
PHP 1.25.1 parametric image, copy the patched SDK
srcinto/ffe-sdk/src, setDD_TRACE_SOURCES_PATH=/ffe-sdk/srcandDD_AUTOLOAD_NO_COMPILE=true, then copythis branch's
server.phpinto/binaries/server.php. No native changes needed.The normal image tag was restored after testing.