Releases: openfga/go-sdk
v0.3.3
v0.3.2
v0.3.1
v0.3.1-go1.20
0.3.1-go1.20 (2023-12-19)
Same as v0.3.1, but with the target go version set to 1.20
(see https://github.com/lxc/incus/issues/315\#issuecomment-1863382429)
v0.3.0
0.3.0 (2023-12-11)
- feat!: initial support for conditions
- feat: support specifying a port and path for the API (You can now set the
ApiUrl
to something like:https://api.fga.exampleL8080/some_path
) - fix: resolve a bug in
NewCredentials
(#60) - thanks @harper - chore!: use latest API interfaces
- 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 openfga release.
While the http interfaces did not break (you can still use v0.2.3
SDK with a v1.3.8+
server),
the grpc interface did and this caused a few changes in the interfaces of the SDK.
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:
- When initializing a client, please use
ApiUrl
. The separateApiScheme
andApiHost
fields have been deprecated
fgaClient, err := NewSdkClient(&ClientConfiguration{
ApiUrl: os.Getenv("FGA_API_URL"), // required, e.g. https://api.fga.example
StoreId: os.Getenv("FGA_STORE_ID"), // not needed when calling `CreateStore` or `ListStores`
AuthorizationModelId: os.Getenv("FGA_AUTHORIZATION_MODEL_ID"), // optional, recommended to be set for production
})
- When initializing a client,
AuthorizationModelId
is no longer a pointer, and you can just pass the string directly - The
OpenFgaClient
now has methods to get and set the model IDGetAuthorizationModelId
andSetAuthorizationModelId
- The following request interfaces changed:
CheckRequest
: theTupleKey
field is now of interfaceCheckRequestTupleKey
, you can also now pass inContext
ExpandRequest
: theTupleKey
field is now of interfaceExpandRequestTupleKey
ReadRequest
: theTupleKey
field is now of interfaceReadRequestTupleKey
WriteRequest
: now takesWriteRequestWrites
andWriteRequestDeletes
- And more
- The following interfaces had fields that were pointers are are now the direct value:
CreateStoreResponse
GetStoreResponse
ListStoresResponse
ListObjectsResponse
ReadChangesResponse
ReadResponse
AuthorizationModel
and several interfaces under it- And more
v0.3.0-beta.1
- feat!: initial support for conditions
v0.2.3
0.2.3 (2023-10-13)
- fix: allow setting user agent
- fix(client): resolve null pointer exceptions when getting auth model id
- fix(client): allow read to contain empty fields
- fix(client): require auth model id and store id to be ulids
- fix(client): resolve cases where req options was not respected
- fix: add retry logic to oauth
- chore: target go1.21.3 and upgrade dependencies
v0.2.2
0.2.2 (2023-04-21)
- feat(client): add OpenFgaClient wrapper see docs, see the
v0.2.1
docs for the OpenFgaApi docs - feat(client): implement
BatchCheck
to check multiple tuples in parallel - feat(client): implement
ListRelations
to check in one call whether a user has multiple relations to an objects - feat(client): add support for a non-transactional
Write
- chore(config): bump default max retries to
15
- fix(config)!: make the capitalization of the json equivalent of the configuration consistent
- fix: retry on 5xx errors
v0.2.1
v0.2.0
0.2.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:roadmap"]}
Fixes:
- [BREAKING] fix(models): update interfaces that had incorrectly optional fields to make them required
Chore:
- chore(deps): update dev dependencies