ConfigDirector OpenFeature Python Server Provider
OpenFeature Python server provider for ConfigDirector, remote config and feature flags with typed values, JSON Schema validation, and safe renames of live flags. It wraps the ConfigDirector Python server SDK and requires Python 3.10 or newer.
Install
pip install configdirector-openfeature-server-provider
The OpenFeature Python SDK (openfeature-sdk) and the ConfigDirector Python server SDK come with it as dependencies.
Retrieve a value
from configdirector_openfeature import ConfigDirectorProvider
from openfeature import api
# The server SDK key is a secret. Do not commit it to your source code.
api.set_provider_and_wait(ConfigDirectorProvider("YOUR-SERVER-SDK-KEY"))
client = api.get_client()
new_checkout = client.get_boolean_value("new-checkout", False)
set_provider_and_wait needs openfeature-sdk 0.10 or newer. On an older version use api.set_provider, which waits for the provider to initialize there.
The provider accepts the same metadata, connection, logger, log_level, and telemetry options as the server SDK's create_client.
Evaluation context
The OpenFeature evaluation context maps onto the ConfigDirector context used by targeting rules:
| OpenFeature | ConfigDirector |
|---|---|
targeting_key, or failing that an id attribute |
id |
name attribute |
name |
traits attribute, a mapping |
traits |
anonymous attribute, a boolean |
anonymous |
from openfeature.evaluation_context import EvaluationContext
context = EvaluationContext("user-123", {"name": "Ada", "traits": {"plan": "pro"}})
new_checkout = client.get_boolean_value("new-checkout", False, context)
Evaluation details
| Outcome | reason |
error_code |
|---|---|---|
| A value was evaluated | TARGETING_MATCH, with the value's id as the variant |
|
| The config has no value | DEFAULT |
|
| No config has that key | ERROR |
FLAG_NOT_FOUND |
| The value does not match the requested type | ERROR |
TYPE_MISMATCH |
| No config state has been received yet | ERROR |
PROVIDER_NOT_READY |
If the first config state does not arrive within the configured timeout, initialization still completes and evaluations return their defaults. The provider keeps connecting, and emits PROVIDER_READY once config state arrives. It emits PROVIDER_CONFIGURATION_CHANGED, with the keys that changed, whenever configs are updated.
Documentation
Refer to the official documentation for the OpenFeature Python provider.
There is also a quickstart guide for ConfigDirector and any of our SDKs.
Sample apps
samples/configdirector-openfeature-server-provider/ holds small, runnable applications built on this provider. Start with flask:
cd samples/configdirector-openfeature-server-provider/flask
uv run flask --app app run --port 3600
Getting Help
Release files for configdirector-openfeature-server-provider 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| configdirector_openfeature_server_provider-1.0.0.tar.gz | 6.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| configdirector_openfeature_server_provider-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.7 kB
Release files / configdirector_openfeature_server_provider-1.0.0.tar.gz
| Download URL | configdirector_openfeature_server_provider-1.0.0.tar.gz |
|---|---|
| Size | 6.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4b0332c71b7bde205676ae127d30f1c935d6bb38bba94b03e4d0693f0c16881e
|
|
BLAKE2b-256 checksum How to use checksums |
b9906b7b7ee8baf2a5a283cb19503b8f37c5d1fb15ff4e2242a7a8e90a023ab7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.
Transparency logRelease files / configdirector_openfeature_server_provider-1.0.0-py3-none-any.whl
| Download URL | configdirector_openfeature_server_provider-1.0.0-py3-none-any.whl |
|---|---|
| Size | 8.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6636cc9a10613bce1441d6e778ab1cc506ab4824ea3c67cea9e3533e8cf10836
|
|
BLAKE2b-256 checksum How to use checksums |
37c4a9abe93f45e769d5e36d531eab19e83ef913dde79585aac7f40beaeef009
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.
Transparency log