0.10.1 (2026-04-16)
0.10.0 (2026-03-24)
- feat: add
execute_api_requestandexecute_streamed_api_requestmethods toOpenFgaClientandOpenFgaApifor making arbitrary HTTP requests to any OpenFGA API endpoint with full auth, retry, and telemetry support (#252) - thanks @kcbiradar
- The
_return_http_data_only,_preload_content,_request_auth,async_req, and_request_timeoutkwargs have been removed from allOpenFgaApiandSyncOpenFgaApiendpoint methods. These were internal implementation details not intended for external use._return_http_data_onlyis now hardcoded toTrue; all endpoint methods return the deserialized response object directly. Users relying on_with_http_infomethods returning a(data, status, headers)tuple should useexecute_api_requestinstead.
0.9.9 (2025-12-09)
- feat: improve error messaging (#245)
0.9.8 (2025-11-04)
- feat: add support for conflict options for Write operations: (#235)
The client now supports setting
ConflictOptionsonClientWriteOptionsto control behavior when writing duplicate tuples or deleting non-existent tuples. This feature requires OpenFGA server v1.10.0 or later. See Conflict Options for Write Operations for more.on_duplicatefor handling duplicate tuple writes (ERROR or IGNORE)on_missingfor handling deletes of non-existent tuples (ERROR or IGNORE)
0.9.7 (2025-10-06)
- feat:
headersconfiguration property (#233) - fix: per-request custom header precedence (#230)
v0.9.6 (2025-09-15)
- fix: reuse ssl context in the sync client (#222) - thanks @wadells!
- feat: add OAuth2 scopes parameter support to CredentialConfiguration (#213) - thanks @SoulPancake
v0.9.5 (2025-07-09)
- fix: aiohttp.ClientResponse.data should be awaited (#197) - thanks @cmbernard333
0.9.4 (2025-04-30)
- feat: support List Stores name filter (#181)
- feat: fix and improve retries and rate limit handling. (#176) - thanks @GMorris-professional
The SDK now respects the rate limit headers (
Retry-After) returned by the server and will retry the request after the specified time. If the header is not sent or on network errors, it will fall back to exponential backoff. - feat: allow more user customizations for the token issuer (#186) - thanks @manuel-lang
- fix: ListRelations should not swallow errors (#183)
- fix: urllib3 compatibility < v2 (#187)
0.9.3 (2025-03-26)
- fix: urllib3 compatibility < v2 (#179)
0.9.2 (2025-03-25)
- fix(telemetry): fixes for telemetry attributes and metrics tracking (#177)
- fix: REST client should not close after
streamrequest (#172)
0.9.1 (2025-01-23)
- feat: add
/streamed-list-objectsendpoint support (#163) - feat: add
contextual_tuplessupport for/expandendpoint requests (#164)
0.9.0 (2024-12-19)
- feat: remove client-side validation - thanks @GMorris-professional (#155)
- feat: add support for
start_timeparameter inReadChangesendpoint (#156) - Note, this feature requires v1.8.0 of OpenFGA or newer - feat!: add support for
BatchCheckAPI (#154) - Note, this feature requires v1.8.2 of OpenFGA or newer - fix: change default max retry limit to 3 from 15 - thanks @ovindu-a (#155)
BREAKING CHANGE:
Usage of the existing batch_check should now use client_batch_check instead, additionally the existing BatchCheckResponse has been renamed to ClientBatchCheckClientResponse.
Please see (#154)(#154) for more details on this change.
0.8.1 (2024-11-26)
- feat: allow specifying a request timeout (#151) - thanks @Oscmage!
0.8.0 (2024-11-15)
- feat: allow configuring the token endpoint (#137)
- feat: add per-HTTP request counter metric (#135)
- refactor: remove SDK version for OpenTelemetry meter name (#134)
- fix: only send SDK method header from SDK wrapper methods (#142)
- fix: unable to pass
retry_params(#144) - fix: list users should send contextual tuples as a list (#147)
- fix: handle no models existing in
read_latest_authorization_model(#147)
0.7.2 (2024-09-22)
This release includes improvements to the OpenTelemetry configuration API introduced in the previous releases
- refactor: improve OpenTelemetry configuration (#127)
This release also includes fixes for several bugs identified in previous releases:
- fix: ensure max_parallel_requests is an int value in batch_check (#132)
- fix: inconsistency in 429 handling between sync/async client (#131)
- fix: ensure telemetry is reported when API exceptions are raised (#127)
0.7.1 (2024-09-16)
This release includes fixes for several bugs identified in the previous release related to OpenTelemetry metrics reporting: (#124)
- fix: attribute values are now correctly exported as their intended types (previously, these were all sent as string values)
- fix:
http_client_request_durationbeing reported in seconds rather than the intended milliseconds - fix: sync client mistakenly passing the entire configuration (rather than just the OpenTelemetry configuration as intended) to
queryDuration()andrequestDuration() - fix: some attributes may not have been exported as expected under some conditions
- fix:
queryDuration()andrequestDuration()may not have updated their histograms reliably whenattr_http_client_request_durationorattr_http_server_request_duration(respectively) were not enabled (which is the default)
Please note that if you use third-party OpenTelemetry tooling to visualize the attributes mentioned above, you may need to update your queries to account for these changes.
0.7.0 (2024-08-30)
- feat: enhancements to OpenTelemetry support (#120)
Note this introduces some breaking changes to our metrics:
fga-client.request.methodis now in TitleCase to match the naming conventions in the Protos, e.g.Check,ListObjects, etc..- Due to possible high costs for attributes with high cardinality, we are no longer including the following attributes by default:
fga-client.userhttp.client.request.durationhttp.server.request.durationWe added configuration options to allow you to set which specific metrics and attributes you care about in case the defaults don't work for your use-case
0.6.1 (2024-07-31)
-
feat: add support for specifying consistency when evaluating or reading (#129) Note: To use this feature, you need to be running OpenFGA v1.5.7+ with the experimental flag
enable-consistency-paramsenabled. See the v1.5.7 release notes for details. -
feat: add OpenTelemetry metrics reporting
0.6.0 (2024-06-28)
- feat: add OpenTelemetry metrics reporting
0.5.0 (2024-06-17)
- fix: ClientTuple condition property type
- fix: list_users should accept FgaObject type
- fix: remove ReadAuthorizationModel calls from BatchCheck and writes
- chore!: remove excluded users from ListUsers response
0.4.3 (2024-06-07)
- feat: support for list users
0.4.2 (2024-04-04)
- feat: support for modular models metadata
- feat: support auto-retry of failed network requests
- refactor: remove Python 2 code
- fix: limit the number of network retries
- fix: Configuration class
api_scheme,min_wait_in_msanddisabled_client_side_validationsvalidation issues - chore: update aiohttp to 3.9.2
- chore: update black to 24.3.0
0.4.1 (2024-02-13)
- feat: support
api_urlconfiguration option and deprecateapi_schemeandapi_host - fix: use correct content type for token request
0.4.0 (2024-01-11)
- feat: support for conditions
- chore!: use latest API interfaces for type info
- chore: add example project
- chore: dependency updates
BREAKING CHANGES: Note: This release comes with substantial breaking changes, especially to the interfaces due to the protobuf changes in the last release.
While the http interfaces did not break (you can still use v0.3.3 SDK with a v1.3.8+ server),
the grpc interface did and this caused a few changes in the interfaces of the SDK.
If you are using OpenFgaClient, the changes required should be smaller, if you are using OpenFgaApi a bit more changes will be needed.
You will have to modify some parts of your code, but we hope this will be to the better as a lot of the parameters are now correctly marked as required, and so the Pointer-to-String conversion is no longer needed.
Some of the changes to expect:
- The following request interfaces changed:
CheckRequest: theTupleKeyfield is now of interfaceCheckRequestTupleKey, you can also now pass inContextExpandRequest: theTupleKeyfield is now of interfaceExpandRequestTupleKeyReadRequest: theTupleKeyfield is now of interfaceReadRequestTupleKeyWriteRequest: now takesWriteRequestWritesandWriteRequestDeletes, the latter of which acceptsTupleKeyWithoutCondition- And more
- The following interfaces had fields that were optional are are now required:
CreateStoreResponseGetStoreResponseListStoresResponseListObjectsResponseReadChangesResponseReadResponseAuthorizationModel- And more
Take a look at the changes in models in https://github.com/openfga/python-sdk/commit/9ed1f70d64db71451de2eb26e330bbd511625c5c and https://github.com/openfga/python-sdk/pull/59/files for more.
0.3.4 (2024-01-09)
Note: v0.3.4 has been re-released as v0.4.0 due to breaking changes
0.3.3 (2024-01-02)
- fix: correct type hints for list_relations
- fix: handle empty TupleKey in read
- chore: add example project
0.3.2 (2023-12-15)
- feat: allow passing ssl certs to client configuration
- feat: setup openfga_sdk.help for bug info
0.3.1 (2023-12-01)
- chore(deps): reduce min urllib3 to 1.25.11, add dependabot & bump deps
0.3.0 (2023-11-02)
- feat(client): introduce synchronous OpenFgaClient (https://github.com/openfga/python-sdk/commit/c92b436543e263f2c1af6af15f1c4fda1c9dad21)
- refactor(config): extract oauth2 from credentials, removing logic from credentials configuration (https://github.com/openfga/python-sdk/commit/f91d14b25f86dd3f2e4d48229bb53cc7d9b20f1b)
- feat(client): performance improvements to batch_check (https://github.com/openfga/python-sdk/commit/d8f2d429d2c279c0e56d5ef2a6172df8bfadd82b)
0.2.1 (2023-09-05)
- fix(client): fix a crash when calling check with contextual tuples (https://github.com/openfga/python-sdk/commit/dded83f9a75dc1f01c1cfbd8385a25654129f78f)
- chore(docs): update README and fix a few typos (#21, #31, #32, #33, #34, #37)
0.2.0 (2023-05-25)
Changes:
- [BREAKING] feat!:
schema_versionis now required when callingwrite_authorization_model - [BREAKING] chore!: drop support for python < 3.10
- feat(client): add OpenFgaClient wrapper see docs, see the
v0.1.1docs for the OpenFgaApi docs - feat(client): implement
batch_checkto check multiple tuples in parallel - feat(client): implement
list_relationsto check in one call whether a user has multiple relations to an objects - feat(client): add support for a non-transactional
write - feat(validation): ensure storeId and authorizationModelId are in valid ulid format
- chore(config): bump default max retries to
15 - chore(deps): upgrade dependencies
0.1.1 (2023-01-17)
- chore(deps): upgrade dependencies
0.1.0 (2022-12-14)
Updated to include support for OpenFGA 0.3.0
Changes:
- [BREAKING] feat(list-objects)!: response has been changed to include the object type
e.g. response that was
{"object_ids":["roadmap"]}, will now be{"objects":["document:0192ab2a-d83f-756d-9397-c5ed9f3cb69a"]}
Fixes:
- fix(models): update interfaces that had incorrectly optional fields to make them required
0.0.1 (2022-08-31)
Initial OpenFGA Python SDK release
- Support for OpenFGA API
- CRUD stores
- Create, read & list authorization models
- Writing and Reading Tuples
- Checking authorization
- Using Expand to understand why access was granted