Releases: openfga/python-sdk
v0.9.0
0.9.0 (2024-12-19)
Added:
- feat: add support for
start_time
parameter inReadChanges
endpoint (#156) - Note, this feature requires v1.8.0 of OpenFGA or newer - feat!: add support for
BatchCheck
API (#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
ClientCheckRequest
was constructed and passed directly tobatch_check
, now you should construct a list ofClientBatchCheckItem
and pass aClientBatchCheckRequest
tobatch_check
with that list as thechecks
property- The
correlation_id
on aClientBatchCheckItem
is set for you if you do not provide it.
- The
- The
result
now contains acorrelation_id
property in addition to theerror
andrequest
types and has removed theresponse
property. Additionally, theerror
property is now of aCheckError
type, rather than anException
type.
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
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_duration
being 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_duration
orattr_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.method
is 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.user
http.client.request.duration
http.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-params
enabled.
See the OpenFGA v1.5.7 release notes for details.