+```
+
+Apply the same change to `getStringEvaluation`, `getIntegerEvaluation`, `getDoubleEvaluation` and `getObjectEvaluation`. Inside the method, `logger?.debug(...)`, `logger?.info(...)`, `logger?.warning(...)` and `logger?.error(...)` calls that pass only a message keep working unchanged. `OpenFeatureLogger` takes just a message, so swift-log-specific arguments such as `metadata:` or `source:` no longer compile; fold that information into the message, and replace `trace`, `notice` or `critical` calls with the nearest of the four levels. Providers that only implement the plain evaluation methods (without `logger:`) need no changes. Drop the `import Logging` if the provider no longer uses swift-log directly.
+
### Domains
Domains allow you to logically bind clients with providers, enabling the use of multiple providers within a single application. Each domain can have its own provider, and clients can be associated with a specific domain.
@@ -317,6 +378,51 @@ let providers = [
let multiProvider = MultiProvider(providers: providers)
```
+### InMemoryProvider
+
+`InMemoryProvider` resolves flags from a configuration you supply, with no network calls and no mocking. It is useful for demos, local development, and for testing hooks, providers, or application code that consumes flags.
+
+```swift
+let provider = InMemoryProvider(flags: [
+ "boolean-flag": InMemoryFlag(
+ variants: ["on": .boolean(true), "off": .boolean(false)],
+ defaultVariant: "on"),
+ "greeting": InMemoryFlag(
+ variants: ["formal": .string("Good evening"), "casual": .string("hi")],
+ defaultVariant: "formal",
+ flagMetadata: ["version": .string("1.0.2")]),
+])
+
+await OpenFeatureAPI.shared.setProviderAndWait(provider: provider)
+OpenFeatureAPI.shared.getClient().getBooleanValue(key: "boolean-flag", defaultValue: false) // true
+```
+
+Targeting is expressed as a callback returning the key of the variant to resolve, or `nil` to fall back to the flag's `defaultVariant`:
+
+```swift
+InMemoryFlag(
+ variants: ["internal": .string("INTERNAL"), "external": .string("EXTERNAL")],
+ defaultVariant: "external",
+ contextEvaluator: { _, context in
+ context?.getValue(key: "customer") == .boolean(false) ? "internal" : nil
+ })
+```
+
+A resolution reports `TARGETING_MATCH` when the callback selects a variant, `DEFAULT` when it returns `nil`, `STATIC` when the flag has no callback, and `DISABLED` for a flag constructed with `disabled: true`. An unknown flag key resolves as `FLAG_NOT_FOUND`, and a variant whose value is not of the requested type as `TYPE_MISMATCH`.
+
+The configuration can be changed after the provider is registered, which emits `PROVIDER_CONFIGURATION_CHANGED`:
+
+```swift
+provider.updateFlag(key: "boolean-flag", flag: InMemoryFlag(
+ variants: ["on": .boolean(true), "off": .boolean(false)],
+ defaultVariant: "off"))
+
+provider.removeFlag(key: "greeting")
+
+// Replaces the whole configuration; the event reports the union of the old and new flag keys.
+provider.putConfiguration(["only-flag": InMemoryFlag(variants: ["on": .boolean(true)], defaultVariant: "on")])
+```
+
### Eventing
Events allow you to react to state changes in the provider or underlying flag management system, such as flag definition changes, provider readiness, or error conditions.
diff --git a/docs/reference/sdks/client/web/angular.mdx b/docs/reference/sdks/client/web/angular.mdx
index 98055758d..dcdc4af68 100644
--- a/docs/reference/sdks/client/web/angular.mdx
+++ b/docs/reference/sdks/client/web/angular.mdx
@@ -10,7 +10,7 @@ This content has been automatically generated from js-sdk.
Edits should be made here: https://github.com/open-feature/js-sdk
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
-Last updated at Mon Sep 21 2026 08:42:24 GMT+0000 (Coordinated Universal Time)
+Last updated at Thu Oct 01 2026 08:28:06 GMT+0000 (Coordinated Universal Time)
-->
diff --git a/docs/reference/sdks/client/web/index.mdx b/docs/reference/sdks/client/web/index.mdx
index 8a920fe19..8001a9263 100644
--- a/docs/reference/sdks/client/web/index.mdx
+++ b/docs/reference/sdks/client/web/index.mdx
@@ -10,7 +10,7 @@ This content has been automatically generated from js-sdk.
Edits should be made here: https://github.com/open-feature/js-sdk
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
-Last updated at Mon Sep 21 2026 08:42:23 GMT+0000 (Coordinated Universal Time)
+Last updated at Thu Oct 01 2026 08:28:05 GMT+0000 (Coordinated Universal Time)
-->
import MCPInstall from '@site/src/partials/mcp-install';
diff --git a/docs/reference/sdks/client/web/react.mdx b/docs/reference/sdks/client/web/react.mdx
index 5a995768e..9ce625e13 100644
--- a/docs/reference/sdks/client/web/react.mdx
+++ b/docs/reference/sdks/client/web/react.mdx
@@ -10,7 +10,7 @@ This content has been automatically generated from js-sdk.
Edits should be made here: https://github.com/open-feature/js-sdk
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
-Last updated at Mon Sep 21 2026 08:42:23 GMT+0000 (Coordinated Universal Time)
+Last updated at Thu Oct 01 2026 08:28:05 GMT+0000 (Coordinated Universal Time)
-->
import MCPInstall from '@site/src/partials/mcp-install';
diff --git a/docs/reference/sdks/server/cpp.mdx b/docs/reference/sdks/server/cpp.mdx
index 597a22895..57bf0c682 100644
--- a/docs/reference/sdks/server/cpp.mdx
+++ b/docs/reference/sdks/server/cpp.mdx
@@ -9,7 +9,7 @@ This content has been automatically generated from cpp-sdk.
Edits should be made here: https://github.com/open-feature/cpp-sdk
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
-Last updated at Mon Sep 21 2026 08:42:24 GMT+0000 (Coordinated Universal Time)
+Last updated at Thu Oct 01 2026 08:28:07 GMT+0000 (Coordinated Universal Time)
-->
@@ -114,21 +114,21 @@ openfeature::OpenFeatureAPI& api = openfeature::OpenFeatureAPI::GetInstance();
// Set a global evaluation context
openfeature::EvaluationContext global_ctx = openfeature::EvaluationContext::Builder()
.WithAttribute("region", "us-east-1")
- .build();
+ .Build();
api.SetEvaluationContext(global_ctx);
// Set a client-level evaluation context
std::shared_ptr client = api.GetClient();
openfeature::EvaluationContext client_ctx = openfeature::EvaluationContext::Builder()
.WithAttribute("app_version", "1.0.5")
- .build();
+ .Build();
client->SetEvaluationContext(client_ctx);
// Provide an invocation-level evaluation context
openfeature::EvaluationContext req_ctx = openfeature::EvaluationContext::Builder()
.WithTargetingKey("session-id-12345")
.WithAttribute("email", "user@example.com")
- .build();
+ .Build();
bool flag_value = client->GetBooleanValue("some-flag", false, req_ctx);
```
diff --git a/docs/reference/sdks/server/dart.mdx b/docs/reference/sdks/server/dart.mdx
index d18cd18d4..025e78c90 100644
--- a/docs/reference/sdks/server/dart.mdx
+++ b/docs/reference/sdks/server/dart.mdx
@@ -9,16 +9,34 @@ This content has been automatically generated from dart-sdk.
Edits should be made here: https://github.com/open-feature/dart-sdk
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
-Last updated at Mon Sep 21 2026 08:42:24 GMT+0000 (Coordinated Universal Time)
+Last updated at Thu Oct 01 2026 08:28:06 GMT+0000 (Coordinated Universal Time)
-->
+For typed provider event registration, late-handler behavior and compatibility
+with existing streams, see [the event migration guide](https://github.com/open-feature/dart-sdk/blob/main/packages/openfeature_dart_server_sdk/doc/events-migration.md).
+For reusable cleanup and experimental isolated API instances, see
+[shutdown and isolation](https://github.com/open-feature/dart-sdk/blob/main/packages/openfeature_dart_server_sdk/doc/shutdown-and-isolation.md).
+For experimental tracking and request context carriers, see
+[tracking and transactions](https://github.com/open-feature/dart-sdk/blob/main/packages/openfeature_dart_server_sdk/doc/tracking-and-transactions.md).
+Candidate requirement evidence and release gates are documented in the
+[conformance report guide](https://github.com/open-feature/dart-sdk/blob/development/doc/server-conformance-evidence.md).
+The candidate report does not declare full v0.9 conformance.
+
+New providers can implement a minimal resolver contract and opt into lifecycle,
+hooks and tracking. See the [provider migration guide](https://github.com/open-feature/dart-sdk/blob/main/packages/openfeature_dart_server_sdk/doc/provider-capabilities-migration.md)
+for the additive API and legacy lifecycle policy.
+
+Evaluation options now carry invocation hooks and immutable hints. See the
+[hooks migration guide](https://github.com/open-feature/dart-sdk/blob/main/packages/openfeature_dart_server_sdk/doc/hooks-migration.md) for typed stage callbacks,
+registration order and the compatibility decision for legacy priorities.
+
-
-
+
+
@@ -87,7 +105,7 @@ Dart language version: [3.12.2](https://dart.dev/get-dart/archive)
```yaml
dependencies:
- openfeature_dart_server_sdk: ^0.0.25
+ openfeature_dart_server_sdk: ^0.0.26
```
### Then run
diff --git a/docs/reference/sdks/server/dotnet.mdx b/docs/reference/sdks/server/dotnet.mdx
index 6234320f2..0e4269c11 100644
--- a/docs/reference/sdks/server/dotnet.mdx
+++ b/docs/reference/sdks/server/dotnet.mdx
@@ -10,7 +10,7 @@ This content has been automatically generated from dotnet-sdk.
Edits should be made here: https://github.com/open-feature/dotnet-sdk
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
-Last updated at Mon Sep 21 2026 08:42:22 GMT+0000 (Coordinated Universal Time)
+Last updated at Thu Oct 01 2026 08:28:04 GMT+0000 (Coordinated Universal Time)
-->
import MCPInstall from '@site/src/partials/mcp-install';
diff --git a/docs/reference/sdks/server/go.mdx b/docs/reference/sdks/server/go.mdx
index 1ef767801..d2c98701f 100644
--- a/docs/reference/sdks/server/go.mdx
+++ b/docs/reference/sdks/server/go.mdx
@@ -9,7 +9,7 @@ This content has been automatically generated from go-sdk.
Edits should be made here: https://github.com/open-feature/go-sdk
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
-Last updated at Mon Sep 21 2026 08:42:22 GMT+0000 (Coordinated Universal Time)
+Last updated at Thu Oct 01 2026 08:28:04 GMT+0000 (Coordinated Universal Time)
-->
import MCPInstall from '@site/src/partials/mcp-install';
@@ -19,8 +19,8 @@ import MCPInstall from '@site/src/partials/mcp-install';
-
-
+
+
diff --git a/docs/reference/sdks/server/java.mdx b/docs/reference/sdks/server/java.mdx
index 3b892fbe9..c7af3adea 100644
--- a/docs/reference/sdks/server/java.mdx
+++ b/docs/reference/sdks/server/java.mdx
@@ -9,7 +9,7 @@ This content has been automatically generated from java-sdk.
Edits should be made here: https://github.com/open-feature/java-sdk
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
-Last updated at Mon Sep 21 2026 08:42:22 GMT+0000 (Coordinated Universal Time)
+Last updated at Thu Oct 01 2026 08:28:04 GMT+0000 (Coordinated Universal Time)
-->
import MCPInstall from '@site/src/partials/mcp-install';
@@ -20,8 +20,8 @@ import MCPInstall from '@site/src/partials/mcp-install';
-
-
+
+
@@ -59,7 +59,7 @@ Note that this library is intended to be used in server-side contexts and has no
dev.openfeature
sdk
- 1.22.1
+ 1.23.0
```
@@ -82,7 +82,7 @@ If you would like snapshot builds, this is the relevant repository information:
```groovy
dependencies {
- implementation 'dev.openfeature:sdk:1.22.1'
+ implementation 'dev.openfeature:sdk:1.23.0'
}
```
diff --git a/docs/reference/sdks/server/javascript/index.mdx b/docs/reference/sdks/server/javascript/index.mdx
index 451ea4a8c..066b3af60 100644
--- a/docs/reference/sdks/server/javascript/index.mdx
+++ b/docs/reference/sdks/server/javascript/index.mdx
@@ -10,7 +10,7 @@ This content has been automatically generated from js-sdk.
Edits should be made here: https://github.com/open-feature/js-sdk
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
-Last updated at Mon Sep 21 2026 08:42:22 GMT+0000 (Coordinated Universal Time)
+Last updated at Thu Oct 01 2026 08:28:04 GMT+0000 (Coordinated Universal Time)
-->
import MCPInstall from '@site/src/partials/mcp-install';
diff --git a/docs/reference/sdks/server/javascript/nestjs.mdx b/docs/reference/sdks/server/javascript/nestjs.mdx
index 3fbddfc65..7f42da35a 100644
--- a/docs/reference/sdks/server/javascript/nestjs.mdx
+++ b/docs/reference/sdks/server/javascript/nestjs.mdx
@@ -10,7 +10,7 @@ This content has been automatically generated from js-sdk.
Edits should be made here: https://github.com/open-feature/js-sdk
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
-Last updated at Mon Sep 21 2026 08:42:22 GMT+0000 (Coordinated Universal Time)
+Last updated at Thu Oct 01 2026 08:28:04 GMT+0000 (Coordinated Universal Time)
-->
import MCPInstall from '@site/src/partials/mcp-install';
diff --git a/docs/reference/sdks/server/php.mdx b/docs/reference/sdks/server/php.mdx
index b589c8c9c..02e1efe3d 100644
--- a/docs/reference/sdks/server/php.mdx
+++ b/docs/reference/sdks/server/php.mdx
@@ -9,7 +9,7 @@ This content has been automatically generated from php-sdk.
Edits should be made here: https://github.com/open-feature/php-sdk
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
-Last updated at Mon Sep 21 2026 08:42:23 GMT+0000 (Coordinated Universal Time)
+Last updated at Thu Oct 01 2026 08:28:05 GMT+0000 (Coordinated Universal Time)
-->
import MCPInstall from '@site/src/partials/mcp-install';
diff --git a/docs/reference/sdks/server/python.mdx b/docs/reference/sdks/server/python.mdx
index cba58c2e9..588523230 100644
--- a/docs/reference/sdks/server/python.mdx
+++ b/docs/reference/sdks/server/python.mdx
@@ -9,7 +9,7 @@ This content has been automatically generated from python-sdk.
Edits should be made here: https://github.com/open-feature/python-sdk
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
-Last updated at Mon Sep 21 2026 08:42:22 GMT+0000 (Coordinated Universal Time)
+Last updated at Thu Oct 01 2026 08:28:05 GMT+0000 (Coordinated Universal Time)
-->
import MCPInstall from '@site/src/partials/mcp-install';
diff --git a/docs/reference/sdks/server/ruby.mdx b/docs/reference/sdks/server/ruby.mdx
index 4cd731c1c..6a5f17b3e 100644
--- a/docs/reference/sdks/server/ruby.mdx
+++ b/docs/reference/sdks/server/ruby.mdx
@@ -10,7 +10,7 @@ This content has been automatically generated from ruby-sdk.
Edits should be made here: https://github.com/open-feature/ruby-sdk
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
-Last updated at Mon Sep 21 2026 08:42:24 GMT+0000 (Coordinated Universal Time)
+Last updated at Thu Oct 01 2026 08:28:06 GMT+0000 (Coordinated Universal Time)
-->
import MCPInstall from '@site/src/partials/mcp-install';
diff --git a/docs/reference/sdks/server/rust.mdx b/docs/reference/sdks/server/rust.mdx
index 44374cd5e..cffae0435 100644
--- a/docs/reference/sdks/server/rust.mdx
+++ b/docs/reference/sdks/server/rust.mdx
@@ -9,7 +9,7 @@ This content has been automatically generated from rust-sdk.
Edits should be made here: https://github.com/open-feature/rust-sdk
Once a repo has been updated, docs can be generated by running: yarn update:sdk-docs
-Last updated at Mon Sep 21 2026 08:42:24 GMT+0000 (Coordinated Universal Time)
+Last updated at Thu Oct 01 2026 08:28:06 GMT+0000 (Coordinated Universal Time)
-->
diff --git a/src/datasets/sdks/sdk-compatibility.json b/src/datasets/sdks/sdk-compatibility.json
index 73efbc906..081ed19f4 100644
--- a/src/datasets/sdks/sdk-compatibility.json
+++ b/src/datasets/sdks/sdk-compatibility.json
@@ -4,8 +4,8 @@
"path": "/docs/reference/sdks/server/java",
"category": "Server",
"release": {
- "href": "https://github.com/open-feature/java-sdk/releases/tag/v1.22.1",
- "version": "1.22.1",
+ "href": "https://github.com/open-feature/java-sdk/releases/tag/v1.23.0",
+ "version": "1.23.0",
"stable": true
},
"spec": {
@@ -184,8 +184,8 @@
"path": "/docs/reference/sdks/server/go",
"category": "Server",
"release": {
- "href": "https://github.com/open-feature/go-sdk/releases/tag/v1.18.0",
- "version": "1.18.0",
+ "href": "https://github.com/open-feature/go-sdk/releases/tag/v1.19.0",
+ "version": "1.19.0",
"stable": true
},
"spec": {
@@ -420,8 +420,8 @@
"path": "/docs/reference/sdks/client/kotlin",
"category": "Client",
"release": {
- "href": "https://github.com/open-feature/kotlin-sdk/releases/tag/v0.8.0",
- "version": "0.8.0",
+ "href": "https://github.com/open-feature/kotlin-sdk/releases/tag/v0.9.0",
+ "version": "0.9.0",
"stable": false
},
"spec": {
@@ -592,8 +592,8 @@
"path": "/docs/reference/sdks/server/dart",
"category": "Server",
"release": {
- "href": "https://github.com/open-feature/dart-sdk/releases/tag/v0.0.25",
- "version": "0.0.25",
+ "href": "https://github.com/open-feature/dart-sdk/releases/tag/v0.0.26",
+ "version": "0.0.26",
"stable": false
},
"spec": {