Dynatrace OpenFeature Provider for Python
The official Dynatrace OpenFeature provider for Python server-side applications.
The provider evaluates flags in-process: on initialization it fetches your flag configuration from the Dynatrace CDN and refreshes it in the background, so evaluations are local and do not make a network call.
Status: Early alpha — not yet ready for production use.
Installation
pip install dynatrace-openfeature-provider-python
Usage
from openfeature import api
from openfeature.evaluation_context import EvaluationContext
from dynatrace.openfeature import DynatraceProvider
api.set_provider(DynatraceProvider("dt01.server_us_<key>"))
client = api.get_client()
ctx = EvaluationContext(targeting_key="user-123")
enabled = client.get_boolean_value("my-flag", False, ctx)
# On shutdown:
api.shutdown()
Once the provider is registered, all flag evaluation goes through the OpenFeature API. See the OpenFeature Python SDK documentation for evaluation contexts, hooks, events, and the rest of the SDK surface.
Configuration
Pass options as keyword arguments to DynatraceProvider:
api.set_provider(
DynatraceProvider(
sdk_key,
config_origin="https://cdn.eu.fm.dynatracelabs.com",
metrics_origin="https://metrics.eu.fm.dynatracelabs.com",
)
)
| Option | Type | Default | Description |
|---|---|---|---|
config_origin |
str |
derived from SDK key | Override the flag configuration origin. |
metrics_origin |
str |
derived from SDK key | Override the evaluation metrics ingest origin. |
Running the e2e tests
The shared provider test harness gherkin suite runs against its mock server in a container, so Docker is required:
uv run poe e2e
This initializes the fm-provider-test-harness submodule and runs the suite with pytest-bdd. Set SKIP_HARNESS_UPDATE=1 to keep a local harness checkout, and MOCKSERVER_IMAGE to use a locally built mock server image.
Contributing
See CONTRIBUTING.md.
License
Apache 2.0 — see LICENSE.
Metadata
Release files for dynatrace-openfeature-provider-python 0.3.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 | Provenance | Actions |
|---|---|---|---|---|
| dynatrace_openfeature_provider_python-0.3.0.tar.gz | 21.7 kB | Without provenance | Details for dynatrace_openfeature_provider_python-0.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dynatrace_openfeature_provider_python-0.3.0-py3-none-any.whl | Python 3 | none | any | Details for dynatrace_openfeature_provider_python-0.3.0-py3-none-any.whl |
Total release size: 46.9 kB
Release files / dynatrace_openfeature_provider_python-0.3.0.tar.gz
| Download URL | dynatrace_openfeature_provider_python-0.3.0.tar.gz |
|---|---|
| Size | 21.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f7e545b7536e6205a3538d8c438ffc21e1315d0999faad834c7bb9e6f31d85b7
|
|
BLAKE2b-256 checksum How to use checksums |
6bffe46299e2d1ea8ce77ac0f9159d0b54cce2d97dd79ed888404c792297c901
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / dynatrace_openfeature_provider_python-0.3.0-py3-none-any.whl
| Download URL | dynatrace_openfeature_provider_python-0.3.0-py3-none-any.whl |
|---|---|
| Size | 25.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
73c8dcfe8b88c4aa5b15b10f0a6d4323e485e8f10ed70a8d2e7acbc15f2b4292
|
|
BLAKE2b-256 checksum How to use checksums |
25fd8552f22346f259b34bc6f62a572e2618eff631076966f00e75a7b29daf52
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Security for dynatrace-openfeature-provider-python 0.3.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.