Repository navigation
Conversation
🎉 All green!🧪 All tests passed 🔗 Commit SHA: 85302cb | Docs | View more details | Give us feedback! |
sameerank
force-pushed
the
sameerank/rn-rules-configuration-fetch
branch
from
October 23, 2026 06:15
147076a to
1bd9aa8
Compare
1 task
Reuse core 3.3.0 selection canonicalization, preserve best-effort fallback with diagnostics, and encode selection without URL polyfills. Cover shared SDK vectors and RN transport edge cases.
sameerank
force-pushed
the
sameerank/rn-rules-configuration-fetch
branch
from
November 3, 2026 21:11
e501bc9 to
85302cb
Compare
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.
What does this PR do?
Add
fetchRulesConfiguration,RulesConfigurationFetchOptions, and theFlagSelectiontype to the React Native OpenFeature/rules-basedentry point (FFL-3355).FlagsConfigurationand attach the retrieval timestamp without initializing the native SDK or registering tracking.@datadog/flagging-core3.3.0 dependency. Send canonical values as repeated, RFC 3986-encoded query parameters without requiringURLorURLSearchParams.DD-Flag-Selection-Ignoredheaders when a selection was sent. An optional logger defaults toconsole; diagnostics do not initialize the native SDK or send telemetry.Motivation
The RN core provider supports local rules-based evaluation, but applications also need a client-side fetch helper to obtain its portable configuration. This follows the browser helper pattern while avoiding URL APIs that are incomplete on supported RN versions. Tag/key-pattern selection addresses the missing fetch-helper support noted in the ticket discussion.
Additional Notes
This is stacked on #1507 and intentionally targets
sameerank/FFL-3355/native-tracking-hooks. The PR diff contains the fetch helper, its OpenFeature package dependency update, and related documentation/tests. Retarget todevelopafter the tracking PR lands.The helper itself does not require native SDK initialization. The active-hook integration tests use the tracking functionality from the base branch. Native dependency/release blockers for the combined branch are documented in the tracking PR. Native precomputed filtering is outside this PR's scope.
Temporary Shared Fixtures
This PR temporarily checks in an unchanged copy of
flag-selection/selection-vectors.jsonfrom ffe-system-test-data atcaa6d1ac3e5fbda0ce57ef3ffff3772901f3f466, with provenance inSOURCE.md. The RN tests exercise all 38 SDK expectations, not the server-sideselectedKeysor raw-query decoding expectations. This provides immediate regression coverage without adding submodule setup to this repository.Follow-up: add equivalent fetch/selection integration coverage in FLEX, using its existing
ffe-system-test-datasubmodule. The current RN adapter PR #230 does not yet cover fetch/refresh scenarios.fetchRulesConfigurationhelper on both iOS and Android, remove the copied fixture, its provenance file, and the corpus-driven tests from this repository. Retain focused RN unit tests for encoding, URL API independence, fallback diagnostics, limits, cancellation, and decoding failures. Do not remove the temporary coverage before the replacement is working.Validation
URLandURLSearchParamsdisabled. Additional cases cover RFC 3986 encoding, malformed inputs, throwing getters/proxies, 8,192/8,193-byte URL boundaries, ignored-selection headers, retained full responses, and throwing loggers.--noEmit, CommonJS/ESM/declaration builds, ESLint on changed TypeScript files, andgit diff --check: passed.Review checklist (to be filled by reviewers)