Skip to content

fix: Bump launchdarkly-server-sdk-evaluation to 2.2.2 - #209

Merged
kinyoklion merged 1 commit into
mainfrom
rlamb/sdk-3296/bump-evaluation-2.2.2
Oct 20, 2026
Merged

kinyoklion merged 1 commit into
mainfrom
rlamb/sdk-3296/bump-evaluation-2.2.2

Conversation

@kinyoklion

@kinyoklion kinyoklion commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

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

Related issues

Describe the solution you've provided

Raises the launchdarkly-server-sdk-evaluation requirement from 2.2.1 to 2.2.2 so the minimum version includes the private-attribute redaction fix.

The bug: suppose the global private attributes contain both an attribute and one of its nested properties, such as /address and /address/street. If the child reference was processed first, the parent reference was dropped. Analytics events then included address with only street removed, and _meta.redactedAttributes listed only /address/street. Private attributes are stored in a HashSet, so whether this happened depended on iteration order. Sibling references (such as /address/city and /address/street) and per-context private attributes were not affected.

This SDK serializes event contexts through the evaluation crate's ContextAttributes, so the version bump is the whole fix. No public API changed between 2.2.1 and 2.2.2.

Describe alternatives you've considered

None.

Additional context

The regression test is in the evaluation crate (global_private_parent_is_redacted_when_a_child_is_also_private). 2.2.2 also raises that crate's MSRV to 1.97, which matches this SDK's current MSRV.

Local checks on Rust 1.97 (aarch64 Linux): cargo fmt --check, plus cargo test, cargo clippy -- -D warnings, and the contract-test service build for each of the seven CI feature sets. All pass. I did not run the contract test harness or the musl build locally.

As a one-off check that was not committed, I serialized 64 inline events through BaseEvent with global private attributes {/address, /address/street}. With 2.2.1, address leaked in 31 of 64. With 2.2.2, none leaked, and every event listed /address in redactedAttributes.


Note

Overview
Bumps launchdarkly-server-sdk-evaluation from 2.2.1 to 2.2.2 so event context serialization picks up a fix for global private-attribute redaction when both a parent path and a nested child are marked private (e.g. /address and /address/street).

Previously, iteration order over a HashSet could drop the parent reference and leak partial address data in analytics events with incomplete _meta.redactedAttributes. This SDK routes redacted contexts through the evaluation crate’s ContextAttributes (e.g. redacted_context_attributes on events), so the version bump is the full change—no local code or public API changes in this repo.

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

2.2.2 fixes global private attribute redaction when an attribute and one
of its nested properties are both configured as private (for example
"/address" and "/address/street"). Depending on HashSet iteration order,
the parent could be dropped, so its other properties were sent in
analytics events and redactedAttributes listed only the child.
@kinyoklion
kinyoklion marked this pull request as ready for review October 19, 2026 22:57
@kinyoklion
kinyoklion requested a review from a team as a code owner October 19, 2026 22:57
@kinyoklion
kinyoklion merged commit e949e5e into main Oct 20, 2026
17 checks passed
@kinyoklion
kinyoklion deleted the rlamb/sdk-3296/bump-evaluation-2.2.2 branch October 20, 2026 00:50
kinyoklion pushed a commit that referenced this pull request Oct 20, 2026
🤖 I have created a release *beep* *boop*
---


##
[3.3.2](3.3.1...3.3.2)
(2026-10-20)


### Bug Fixes

* Bump launchdarkly-server-sdk-evaluation to 2.2.2
([#209](#209))
([e949e5e](e949e5e))
* Ignore FDv2 objects with unrecognized kinds
([#207](#207))
([3d22f1b](3d22f1b))

---
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**
> **Release 3.3.2** — bumps `launchdarkly-server-sdk` from **3.3.1** to
**3.3.2** via Release Please: `.release-please-manifest.json`,
`launchdarkly-server-sdk/Cargo.toml`, and a new **3.3.2** section in
`CHANGELOG.md`.
> 
> The changelog documents two patch-level fixes already on `main`:
upgrading **`launchdarkly-server-sdk-evaluation`** to **2.2.2**, and
**ignoring FDv2 objects with unrecognized kinds** so newer wire payloads
do not break ingestion. This PR does not include additional source
changes beyond the version and release notes.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
e946289. 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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants