Skip to content

feat: warn that payload filtering has no effect with FDv2 - #1984

Merged
beekld merged 2 commits into
mainfrom
devin/1788469172-fdv2-payload-filter-warning
Sep 8, 2026
Merged

feat: warn that payload filtering has no effect with FDv2#1984
beekld merged 2 commits into
mainfrom
devin/1788469172-fdv2-payload-filter-warning

Conversation

@beekld

@beekld beekld commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Documents that the shared payloadFilterKey option has no effect with the FDv2 data system, and logs a warning when it's configured alongside FDv2.

Closes SDK-2974, part of SDK-2575.

  • payloadFilterKey remains fully supported for FDv1, so the option itself is neither deprecated nor removed.
  • Server-side warning is emitted from constructFDv2; client-side warning from the shared createFDv2DataManagerBase (covers browser, react-native and node-client).
  • The ?filter= query param is still sent on FDv2 requests during this deprecation period; the FDv2 backend path doesn't use it to select the payload.

Requirements

  • I have added test coverage for new or changed functionality
  • I have followed the repository's pull request submission guidelines
  • I have validated my changes against all supported platform versions
Implementation details

Related issues

Follows the same approach as the Go (launchdarkly/go-server-sdk#440) and Java (launchdarkly/java-core#209) deprecations, and the parallel Python (launchdarkly/python-server-sdk#518) / Ruby (launchdarkly/ruby-server-sdk#434) PRs. Payload-filter scenarios for FDv2 were removed from the test harness in launchdarkly/sdk-test-harness#431.

Describe the solution you've provided

  • packages/shared/sdk-server/src/api/options/LDOptions.ts and packages/shared/sdk-client/src/api/LDOptions.ts: doc comments note that payload filtering isn't supported with FDv2.
  • packages/shared/sdk-server/src/LDClientImpl.ts: warns in constructFDv2 when payloadFilterKey is configured.
  • packages/shared/sdk-client/src/datasource/FDv2DataManagerBase.ts: warns when serviceEndpoints.payloadFilterKey is configured. Centralizing it here covers every client-side SDK, since browser, react-native and node-client all build on this manager.

Describe alternatives you've considered

  • Deprecating or removing the option outright: rejected, since it's shared with FDv1 where it's still supported.
  • Dropping ?filter= from FDv2 request URLs now: deferred to the removal phase so this change is behavior-preserving.

Additional context

Verified: yarn workspace @launchdarkly/js-server-sdk-common test (53 suites, 1022 passed) and lint; yarn workspace @launchdarkly/js-client-sdk-common test (57 suites, 866 passed) and lint.

Link to Devin session: https://app.devin.ai/sessions/ed604c6db94d452ea9f2dc35d6acc398
Open in Devin Desktop: https://app.devin.ai/desktop/session/ed604c6db94d452ea9f2dc35d6acc398?variant=devin
Requested by: @beekld


Note

Overview
When payloadFilterKey is set while using the FDv2 data system, the SDK now logs a warning that payload filtering is unsupported and has no effect on FDv2 requests. payloadFilterKey is unchanged for FDv1 and is not removed or deprecated.

Warnings are emitted at server FDv2 setup in constructFDv2 (LDClientImpl) and at shared client FDv2 setup in createFDv2DataManagerBase (browser, React Native, node-client). LDOptions doc comments on client and server now state the same limitation.

Tests cover both code paths (warn when a filter key is present, no matching warn when absent).

Reviewed by Cursor Bugbot for commit cfaa48b. Bugbot is set up for automated code reviews on this repo. Configure here.

Payload filtering is not supported with the FDv2 data system. Document
that on the shared payloadFilterKey option and log a warning when it is
configured alongside an FDv2 data system.

Co-Authored-By: Bee Klimt <bklimt@launchdarkly.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@devin-ai-integration devin-ai-integration Bot added the devin-pr PRs created by Devin AI label Sep 3, 2026
@devin-ai-integration

Copy link
Copy Markdown
Contributor

@cursor review

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

@launchdarkly/js-sdk-common size report
This is the brotli compressed size of the ESM build.
Compressed size: 26360 bytes
Compressed size limit: 29000
Uncompressed size: 129188 bytes

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

@launchdarkly/js-client-sdk-common size report
This is the brotli compressed size of the ESM build.
Compressed size: 25571 bytes
Compressed size limit: 44000
Uncompressed size: 166117 bytes

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

@launchdarkly/js-client-sdk size report
This is the brotli compressed size of the ESM build.
Compressed size: 32550 bytes
Compressed size limit: 34000
Uncompressed size: 116654 bytes

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

@launchdarkly/browser size report
This is the brotli compressed size of the ESM build.
Compressed size: 180073 bytes
Compressed size limit: 200000
Uncompressed size: 833835 bytes

@beekld
beekld marked this pull request as ready for review September 4, 2026 20:56
@beekld
beekld requested a review from a team as a code owner September 4, 2026 20:56
@beekld
beekld merged commit 5e37aca into main Sep 8, 2026
60 checks passed
@beekld
beekld deleted the devin/1788469172-fdv2-payload-filter-warning branch September 8, 2026 19:19
@github-actions github-actions Bot mentioned this pull request Sep 8, 2026
joker23 pushed a commit that referenced this pull request Sep 8, 2026
🤖 I have created a release *beep* *boop*
---


<details><summary>akamai-edgeworker-sdk-common: 2.0.31</summary>

##
[2.0.31](akamai-edgeworker-sdk-common-v2.0.30...akamai-edgeworker-sdk-common-v2.0.31)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-server-sdk-common bumped from ^2.20.1 to ^2.21.0
</details>

<details><summary>akamai-server-base-sdk: 3.0.32</summary>

##
[3.0.32](akamai-server-base-sdk-v3.0.31...akamai-server-base-sdk-v3.0.32)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
* @launchdarkly/akamai-edgeworker-sdk-common bumped from ^2.0.30 to
^2.0.31
</details>

<details><summary>akamai-server-edgekv-sdk: 1.4.34</summary>

##
[1.4.34](akamai-server-edgekv-sdk-v1.4.33...akamai-server-edgekv-sdk-v1.4.34)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
* @launchdarkly/akamai-edgeworker-sdk-common bumped from ^2.0.30 to
^2.0.31
    * @launchdarkly/js-server-sdk-common bumped from ^2.20.1 to ^2.21.0
</details>

<details><summary>browser: 0.1.33</summary>

##
[0.1.33](browser-v0.1.32...browser-v0.1.33)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-client-sdk bumped from 4.10.0 to 4.10.1
</details>

<details><summary>client-testing-plugin: 1.0.13</summary>

##
[1.0.13](client-testing-plugin-v1.0.12...client-testing-plugin-v1.0.13)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-client-sdk-common bumped from 1.30.2 to 1.31.0
  * devDependencies
    * @launchdarkly/js-client-sdk bumped from 4.10.0 to 4.10.1
    * @launchdarkly/react-sdk bumped from 4.1.14 to 4.1.15
  * peerDependencies
    * @launchdarkly/js-client-sdk bumped from ^4.9.1 to ^4.10.1
    * @launchdarkly/react-sdk bumped from ^4.1.4 to ^4.1.15
</details>

<details><summary>cloudflare-server-sdk: 2.7.32</summary>

##
[2.7.32](cloudflare-server-sdk-v2.7.31...cloudflare-server-sdk-v2.7.32)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
* @launchdarkly/js-server-sdk-common-edge bumped from 2.6.28 to 2.6.29
</details>

<details><summary>fastly-server-sdk: 0.2.22</summary>

##
[0.2.22](fastly-server-sdk-v0.2.21...fastly-server-sdk-v0.2.22)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-server-sdk-common bumped from 2.20.1 to 2.21.0
</details>

<details><summary>jest: 1.0.28</summary>

##
[1.0.28](jest-v1.0.27...jest-v1.0.28)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
* @launchdarkly/react-native-client-sdk bumped from ~10.20.0 to ~10.20.1
</details>

<details><summary>js-client-sdk: 4.10.1</summary>

##
[4.10.1](js-client-sdk-v4.10.0...js-client-sdk-v4.10.1)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-client-sdk-common bumped from 1.30.2 to 1.31.0
</details>

<details><summary>js-client-sdk-common: 1.31.0</summary>

##
[1.31.0](js-client-sdk-common-v1.30.2...js-client-sdk-common-v1.31.0)
(2026-09-08)


### Features

* warn that payload filtering has no effect with FDv2
([#1984](#1984))
([5e37aca](5e37aca))
</details>

<details><summary>js-server-sdk-common: 2.21.0</summary>

##
[2.21.0](js-server-sdk-common-v2.20.1...js-server-sdk-common-v2.21.0)
(2026-09-08)


### Features

* warn that payload filtering has no effect with FDv2
([#1984](#1984))
([5e37aca](5e37aca))
</details>

<details><summary>js-server-sdk-common-edge: 2.6.29</summary>

##
[2.6.29](js-server-sdk-common-edge-v2.6.28...js-server-sdk-common-edge-v2.6.29)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-server-sdk-common bumped from 2.20.1 to 2.21.0
</details>

<details><summary>node-client-sdk: 4.1.1</summary>

##
[4.1.1](node-client-sdk-v4.1.0...node-client-sdk-v4.1.1)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-client-sdk-common bumped from 1.30.2 to 1.31.0
</details>

<details><summary>node-server-sdk: 9.13.2</summary>

##
[9.13.2](node-server-sdk-v9.13.1...node-server-sdk-v9.13.2)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-server-sdk-common bumped from 2.20.1 to 2.21.0
</details>

<details><summary>node-server-sdk-dynamodb: 6.2.38</summary>

##
[6.2.38](node-server-sdk-dynamodb-v6.2.37...node-server-sdk-dynamodb-v6.2.38)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/node-server-sdk bumped from 9.13.1 to 9.13.2
  * peerDependencies
    * @launchdarkly/node-server-sdk bumped from >=9.11.3 to >=9.13.2
</details>

<details><summary>node-server-sdk-otel: 1.3.25</summary>

##
[1.3.25](node-server-sdk-otel-v1.3.24...node-server-sdk-otel-v1.3.25)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/node-server-sdk bumped from 9.13.1 to 9.13.2
  * peerDependencies
    * @launchdarkly/node-server-sdk bumped from >=9.11.3 to >=9.13.2
</details>

<details><summary>node-server-sdk-redis: 4.2.37</summary>

##
[4.2.37](node-server-sdk-redis-v4.2.36...node-server-sdk-redis-v4.2.37)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/node-server-sdk bumped from 9.13.1 to 9.13.2
  * peerDependencies
    * @launchdarkly/node-server-sdk bumped from >=9.11.3 to >=9.13.2
</details>

<details><summary>openfeature-cloudflare-server: 0.1.2</summary>

##
[0.1.2](openfeature-cloudflare-server-v0.1.1...openfeature-cloudflare-server-v0.1.2)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/cloudflare-server-sdk bumped from 2.7.31 to 2.7.32
  * peerDependencies
    * @launchdarkly/cloudflare-server-sdk bumped from ^2.7.0 to ^2.7.32
</details>

<details><summary>openfeature-node-server: 2.0.1</summary>

##
[2.0.1](openfeature-node-server-v2.0.0...openfeature-node-server-v2.0.1)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/node-server-sdk bumped from 9.13.1 to 9.13.2
  * peerDependencies
    * @launchdarkly/node-server-sdk bumped from ^9.0.0 to ^9.13.2
</details>

<details><summary>react-native-client-sdk: 10.20.1</summary>

##
[10.20.1](react-native-client-sdk-v10.20.0...react-native-client-sdk-v10.20.1)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-client-sdk-common bumped from 1.30.2 to 1.31.0
</details>

<details><summary>react-sdk: 4.1.15</summary>

##
[4.1.15](react-sdk-v4.1.14...react-sdk-v4.1.15)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-client-sdk bumped from ^4.10.0 to ^4.10.1
    * @launchdarkly/js-server-sdk-common bumped from ^2.20.1 to ^2.21.0
</details>

<details><summary>server-sdk-ai: 2.0.2</summary>

##
[2.0.2](server-sdk-ai-v2.0.1...server-sdk-ai-v2.0.2)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/js-server-sdk-common bumped from 2.20.1 to 2.21.0
  * peerDependencies
    * @launchdarkly/js-server-sdk-common bumped from ^2.0.0 to ^2.21.0
</details>

<details><summary>server-sdk-ai-langchain: 0.8.12</summary>

##
[0.8.12](server-sdk-ai-langchain-v0.8.11...server-sdk-ai-langchain-v0.8.12)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/server-sdk-ai bumped from ^2.0.1 to ^2.0.2
  * peerDependencies
    * @launchdarkly/server-sdk-ai bumped from ^1.1.1 to ^2.0.2
</details>

<details><summary>server-sdk-ai-openai: 0.7.12</summary>

##
[0.7.12](server-sdk-ai-openai-v0.7.11...server-sdk-ai-openai-v0.7.12)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/js-server-sdk-common bumped from 2.20.1 to 2.21.0
    * @launchdarkly/server-sdk-ai bumped from ^2.0.1 to ^2.0.2
  * peerDependencies
    * @launchdarkly/server-sdk-ai bumped from ^1.1.1 to ^2.0.2
</details>

<details><summary>server-sdk-ai-vercel: 0.7.12</summary>

##
[0.7.12](server-sdk-ai-vercel-v0.7.11...server-sdk-ai-vercel-v0.7.12)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * devDependencies
    * @launchdarkly/server-sdk-ai bumped from ^2.0.1 to ^2.0.2
  * peerDependencies
    * @launchdarkly/server-sdk-ai bumped from ^1.1.1 to ^2.0.2
</details>

<details><summary>shopify-oxygen-sdk: 0.1.21</summary>

##
[0.1.21](shopify-oxygen-sdk-v0.1.20...shopify-oxygen-sdk-v0.1.21)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-server-sdk-common bumped from 2.20.1 to 2.21.0
</details>

<details><summary>vercel-server-sdk: 1.3.56</summary>

##
[1.3.56](vercel-server-sdk-v1.3.55...vercel-server-sdk-v1.3.56)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
* @launchdarkly/js-server-sdk-common-edge bumped from 2.6.28 to 2.6.29
</details>

<details><summary>vue-client-sdk: 0.2.3</summary>

##
[0.2.3](vue-client-sdk-v0.2.2...vue-client-sdk-v0.2.3)
(2026-09-08)


### Dependencies

* The following workspace dependencies were updated
  * dependencies
    * @launchdarkly/js-client-sdk bumped from 4.10.0 to 4.10.1
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Overview**
> This is an automated **Release Please** cut that bumps versions across
the js-core monorepo (manifest, `package.json`, changelogs, example
apps, and `x-release-please-version` SDK strings).
> 
> The substantive release note is **`@launchdarkly/js-client-sdk-common`
1.31.0** and **`@launchdarkly/js-server-sdk-common` 2.21.0**, which add
a **warning that payload filtering has no effect with the FDv2 data
system** ([#1984](#1984)).
Downstream packages (browser, node-client, react-native, node-server,
edge SDKs, OpenFeature wrappers, AI providers, stores, telemetry,
tooling, etc.) are **patch/minor releases** that only pick up those
commons and refreshed peer/dev dependency ranges—no additional feature
code in this diff.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
acf49d0. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

devin-pr PRs created by Devin AI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants