diff --git a/AGENTS.md b/AGENTS.md index 8c8f1aaa..b511cde9 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,17 +1,14 @@ # openfeature-js-client -Monorepo using **Lerna** with **fixed versioning** — all packages share the version in `lerna.json`. +Monorepo using **Lerna** with **independent versioning**. Each package declares its version in its own `package.json`. ## Release See [CONTRIBUTING.md](CONTRIBUTING.md#creating-a-release) for the full release process. -Key commands: +Prepare only the requested package releases and their required dependencies. Keep internal dependencies pinned to exact versions. -```bash -# Non-interactive version bump (use this instead of interactive `yarn release`) -yarn lerna version --exact --force-publish --yes -``` +`yarn release` creates commits and tags and pushes them. Do not run it when the user requests preparation only. Publishing a GitHub release triggers npm publication for the package named in its tag. ## Packages diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c74eb96..ca6afe29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,30 @@ --- +## @datadog/openfeature-browser@2.1.0, @datadog/flagging-core@3.2.0 + +**Features:** + +- Support SHA-256-obfuscated keys in precomputed assignment responses. Applications continue to evaluate flags by their original keys, and telemetry keeps those keys. Obfuscation hides readable flag names; it does not encrypt values or authenticate responses ([#405](https://github.com/DataDog/openfeature-js-client/pull/405)) [BROWSER] [CORE] +- Persist precomputed configurations and exposure deduplication in IndexedDB. Restore matching configurations when a network request fails, and preserve exposure-cache updates across tabs ([#188](https://github.com/DataDog/openfeature-js-client/pull/188)) [BROWSER] +- Version portable snapshots that contain obfuscated assignments so older readers reject an unsupported encoding. Store new browser snapshots separately from legacy cache entries ([#405](https://github.com/DataDog/openfeature-js-client/pull/405)) [BROWSER] [CORE] +- Export `buildEndpointHost` to share validated flagging endpoint construction with server-side configuration fetchers ([#409](https://github.com/DataDog/openfeature-js-client/pull/409), [#408](https://github.com/DataDog/openfeature-js-client/pull/408)) [CORE] + +**Bug Fixes:** + +- Run exposure, evaluation, and RUM tracking hooks in the OpenFeature `finally` stage so tracking can inspect the final evaluation result ([#406](https://github.com/DataDog/openfeature-js-client/pull/406)) [BROWSER] +- Keep the DevTools marker available until the last active provider wrapper closes ([#390](https://github.com/DataDog/openfeature-js-client/pull/390)) [BROWSER] +- Bound exposure caches and flag-key lookup caches. Clear the lookup cache when the obfuscation salt changes, and retain exposure resets when configuration timestamps change ([#405](https://github.com/DataDog/openfeature-js-client/pull/405)) [BROWSER] + +**Upgrade Notes:** + +- Direct Datadog Precompute requests now advertise `X-DD-FEATURE-FLAGS-CAPABILITIES`. The endpoint must allow this header in CORS responses before this browser release is used. Configured customer proxies do not receive this header automatically; they can opt in after supporting the header and encoded responses ([#405](https://github.com/DataDog/openfeature-js-client/pull/405)) [BROWSER] +- Existing localStorage and Chrome-storage exposure entries are not migrated or deleted. Upgrading can produce repeat exposures. Persistent storage failures use in-memory operation ([#188](https://github.com/DataDog/openfeature-js-client/pull/188)) [BROWSER] + +**Internal Changes:** + +- Pin browser and Node.js internal dependencies to `@datadog/flagging-core@3.2.0`. The Node.js package version is unchanged and is not part of this release. Publish core before browser. + ## @datadog/flagging-core@3.1.1 **Bug Fixes:** diff --git a/packages/browser/package.json b/packages/browser/package.json index 2e916034..fe86d2b8 100644 --- a/packages/browser/package.json +++ b/packages/browser/package.json @@ -1,6 +1,6 @@ { "name": "@datadog/openfeature-browser", - "version": "2.0.0", + "version": "2.1.0", "description": "Browser-specific bindings for OpenFeature (wraps @datadog/openfeature-core)", "license": "Apache-2.0", "homepage": "https://github.com/DataDog/openfeature-js-client#readme", @@ -58,7 +58,7 @@ }, "dependencies": { "@datadog/browser-core": "7.1.0", - "@datadog/flagging-core": "3.1.1", + "@datadog/flagging-core": "3.2.0", "@datadog/js-core": "0.0.3" }, "peerDependencies": { diff --git a/packages/core/package.json b/packages/core/package.json index c946f43c..b0b409a6 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@datadog/flagging-core", - "version": "3.1.1", + "version": "3.2.0", "description": "Runtime-agnostic flag-evaluation logic for Datadog Flagging", "license": "Apache-2.0", "repository": { diff --git a/packages/node-server/package.json b/packages/node-server/package.json index 0792df71..d9629afb 100644 --- a/packages/node-server/package.json +++ b/packages/node-server/package.json @@ -58,7 +58,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@datadog/flagging-core": "3.1.1" + "@datadog/flagging-core": "3.2.0" }, "devDependencies": { "@openfeature/core": "1.11.0", diff --git a/yarn.lock b/yarn.lock index 3cc7ad4c..48a38976 100644 --- a/yarn.lock +++ b/yarn.lock @@ -774,7 +774,7 @@ __metadata: languageName: node linkType: hard -"@datadog/flagging-core@npm:3.1.1, @datadog/flagging-core@workspace:packages/core": +"@datadog/flagging-core@npm:3.2.0, @datadog/flagging-core@workspace:packages/core": version: 0.0.0-use.local resolution: "@datadog/flagging-core@workspace:packages/core" dependencies: @@ -806,7 +806,7 @@ __metadata: resolution: "@datadog/openfeature-browser@workspace:packages/browser" dependencies: "@datadog/browser-core": "npm:7.1.0" - "@datadog/flagging-core": "npm:3.1.1" + "@datadog/flagging-core": "npm:3.2.0" "@datadog/js-core": "npm:0.0.3" "@openfeature/core": "npm:^1.9.2" "@openfeature/web-sdk": "npm:^1.5.0" @@ -857,7 +857,7 @@ __metadata: version: 0.0.0-use.local resolution: "@datadog/openfeature-node-server@workspace:packages/node-server" dependencies: - "@datadog/flagging-core": "npm:3.1.1" + "@datadog/flagging-core": "npm:3.2.0" "@openfeature/core": "npm:1.11.0" "@openfeature/server-sdk": "npm:1.22.0" "@types/jest": "npm:^30.0.0"