diff --git a/README.md b/README.md index f829dd8..a47bf55 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,27 @@ This provider is designed primarily for use in multi-user systems such as web se This version of the LaunchDarkly provider works with Python 3.9 and above. +## Feature matrix + +This matrix mirrors the [feature matrix of the OpenFeature SDK for Python](https://github.com/open-feature/python-sdk#-features) and describes what this provider supports. Rows which are not supported state whether the limitation comes from the OpenFeature Python SDK or from the provider. + +| Status | Feature | Notes | +|--------|---------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| ✅ | Providers | Evaluates boolean, string, integer, float, and object flags through the LaunchDarkly Python SDK. | +| ✅ | Targeting | The `EvaluationContext` is converted to a LaunchDarkly single or multi-context. See [OpenFeature Specific Considerations](#openfeature-specific-considerations). | +| ✅ | Hooks | Hooks are registered on the OpenFeature API and client; the provider requires no additional support and its results are visible to hooks, including [flag metadata](#flag-metadata). | +| ✅ | Logging | The provider logs through the logging configuration of the `Config` it is given. | +| ✅ | Domains | Domains bind clients to providers in the OpenFeature SDK; a separate provider instance may be registered per domain. | +| ✅ | Eventing | LaunchDarkly data source status changes are emitted as `PROVIDER_READY`, `PROVIDER_STALE` and `PROVIDER_ERROR`; flag changes as `PROVIDER_CONFIGURATION_CHANGED` with the changed flag key. | +| ✅ | Tracking | `track` sends a LaunchDarkly custom event for the evaluation context, with the tracking event value and remaining details attached. | +| ⚠️ | Initialization | `initialize` reports whether the LaunchDarkly client became ready. It has no timeout of its own and waits until the data source becomes valid or permanently fails: [#55](https://github.com/launchdarkly/openfeature-python-server/issues/55). | +| ✅ | Shutdown | `shutdown` closes the LaunchDarkly client; a closed client cannot be restarted, so a new provider instance is required afterward. | +| ✅ | Transaction Context Propagation | Provided by the OpenFeature SDK, which merges the transaction context into the evaluation context before the provider is called; no provider support is required. | +| ✅ | Extending | The underlying LaunchDarkly client is available through the `client` property. | +| ✅ | Flag metadata | LaunchDarkly evaluation reason details are returned as OpenFeature flag metadata. See [Flag Metadata](#flag-metadata). | + +Supported: ✅ | Partially supported: ⚠️ | Not supported: ❌ + ## Getting started ### Requisites