Releases: openfga/python-sdk
v0.9.1
v0.9.0
0.9.0 (2024-12-19)
Added:
- 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
Changed:
- feat: remove client-side validation - thanks @GMorris-professional (#155)
- fix: change default max retry limit to 3 from 15 - thanks @ovindu-a (#155)
Warning
Usage of the existing batch_check should now use client_batch_check instead, additionally the existing
BatchCheckResponse has been renamed to ClientBatchCheckClientResponse.
Please see below for how to migrate your code, and #154 for more details on this change.
Migration
"I want to continue using client side batch check"
Given that this necessitates an upgrade of OpenFGA, it might not be feasible for everyone to switch to the new server based method, if you wish to delay the migration, rename the existing usage to the new method name as shown below.
- client.batch_check()
+ client.client_batch_check()"I want to migrate to the new server based batch check"
If you wish to migrate to the new method, whilst the method name remains the same. You will need to alter the way you construct the checks passed.
- Previously a list of
ClientCheckRequestwas constructed and passed directly tobatch_check, now you should construct a list ofClientBatchCheckItemand pass aClientBatchCheckRequesttobatch_checkwith that list as thechecksproperty- The
correlation_idon aClientBatchCheckItemis set for you if you do not provide it.
- The
- The
resultnow contains acorrelation_idproperty in addition to theerrorandrequesttypes and has removed theresponseproperty. Additionally, theerrorproperty is now of aCheckErrortype, rather than anExceptiontype.
checks = [
- ClientCheckRequest(
+ ClientBatchCheckItem(
user="user:1",
relation="owner",
object="document:0192ab2a-d83f-756d-9397-c5ed9f3cb69a",
contextual_tuples=[
ClientTuple(
user="user:1",
relation="owner",
object="document:0192ab2a-d83f-756d-9397-c5ed9f3cb69a",
)
]
),
- ClientCheckRequest(
+ ClientBatchCheckItem(
user="use:2",
relation="owner",
object="document:0192ab2a-d83f-756d-9397-c5ed9f3cb69a"
)
]
- result = fga_client.client_batch_check(checks)
+ result = fga_client.batch_check(ClientBatchCheckRequest(checks=checks))
# response.result = [{
# allowed: true,
# correlation_id: "de3630c2-f9be-4ee5-9441-cb1fbd82ce75", # generated by the SDK
# tuple: {
# user: "user:1",
# relation: "viewer",
# object: "document:0192ab2a-d83f-756d-9397-c5ed9f3cb69a",
# contextual_tuples: [{
# user: "user:1",
# relation: "editor",
# object: "document:0192ab2a-d83f-756d-9397-c5ed9f3cb69a"
# }]
# }
# }, {
# allowed: false,
# correlation_id: "6d7c7129-9607-480e-bfd0-17c16e46b9ec",
# tuple: {
# user="user:2",
# relation="own",
# object="document:0192ab2a-d83f-756d-9397-c5ed9f3cb69a"
# },
# error: {
# input_error: "validation_error",
# message: "type 'doc' not found"
# }
# }] v0.8.1
v0.8.0
0.8.0 (2024-11-15)
Added:
- feat: allow configuring the token endpoint (#137) - thanks @Divan009!
- feat: add per-HTTP request counter metric (#135)
Changed:
- refactor!: remove SDK version for OpenTelemetry meter name (#134)
Fixed:
- 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)
Note: The only breaking change to be aware of with this release is a change in the naming scheme used for the OpenTelemetry meter.
v0.7.2
v0.7.1
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.
v0.7.0
0.7.0 (2024-08-30)
- feat: enhancements to OpenTelemetry support (#120)
Breaking Changes
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.duration
We 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.
v0.6.1
0.6.1 (2024-07-31)
- feat: add support for specifying consistency when evaluating or reading (#113)
Note: To use this feature, you need to be running OpenFGA v1.5.7+ with the experimental flagenable-consistency-paramsenabled.
See the OpenFGA v1.5.7 release notes for details.