Skip to content

Releases: openfga/dotnet-sdk

v0.3.1

13 Feb 17:35
v0.3.1
ab2429b
Compare
Choose a tag to compare

0.3.1 (2024-02-13)

  • fix: use correct content type for token request%0A

v0.3.0

20 Dec 15:03
v0.3.0
27514de
Compare
Choose a tag to compare

0.3.0 (2023-12-20)

  • feat!: initial support for conditions
  • feat!: allow overriding storeId per request (#33)
  • 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)
  • feat: validate that store id and auth model id in ulid format (#23)
  • fix: exception when using the same configuration with multiple clients (#26)
  • fix: OpenFgaClient.ReadLatestAuthorizationModel can now return a null if no model has ever been created in that store
  • fix: OpenFgaClient.Read and OpenFgaClient.ReadChanges now allow a null body
  • 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 release.

While the http interfaces did not break (you can still use v0.2.5 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:

  • When initializing a client, please use ApiUrl. The separate ApiScheme and ApiHost fields have been deprecated
var configuration = new ClientConfiguration() {
 ApiUrl = Environment.GetEnvironmentVariable("FGA_API_URL"), // required, e.g. https://api.fga.example
 StoreId = Environment.GetEnvironmentVariable("FGA_STORE_ID"), // not needed when calling `CreateStore` or `ListStores`
 AuthorizationModelId = Environment.GetEnvironmentVariable("FGA_AUTHORIZATION_MODEL_ID"), // Optional, can be overridden per request
};
var fgaClient = new OpenFgaClient(configuration);
  • OpenFgaApi now requires storeId as first param when needed
  • Configuration no longer accepts storeId (ClientConfiguration is not affected)
  • The following request interfaces changed:
    • CheckRequest: the TupleKey field is now of interface CheckRequestTupleKey, you can also now pass in Context
    • ExpandRequest: the TupleKey field is now of interface ExpandRequestTupleKey
    • ReadRequest: the TupleKey field is now of interface ReadRequestTupleKey
    • WriteRequest: now takes WriteRequestWrites and WriteRequestDeletes, the latter of which accepts TupleKeyWithoutCondition
    • And more
  • The following interfaces had fields that were pointers are are now the direct value:
    • CreateStoreResponse
    • GetStoreResponse
    • ListStoresResponse
    • ListObjectsResponse
    • ReadChangesResponse
    • ReadResponse
    • AuthorizationModel
    • And more

Take a look at fa43463 for more model changes.

v0.2.5

01 Dec 21:20
v0.2.5
45e06db
Compare
Choose a tag to compare

0.2.5 (2023-12-01)

  • fix(client): read with no filter (read all tuples)
  • chore(deps): update dependencies

v0.2.4

01 May 21:12
v0.2.4
7f72628
Compare
Choose a tag to compare

0.2.4 (2023-05-01)

  • fix: client credentials token expiry period was being evaluated as ms instead of seconds, leading to token refreshes on every call

v0.2.3

13 Apr 14:01
v0.2.3
163630f
Compare
Choose a tag to compare

0.2.3 (2023-04-13)

  • fix: changed interface of contextual tuples in ClientListObjects to be ClientTupleKey instead of TupleKey
  • fix: Client WriteAuthorizationModel now expects ClientWriteAuthorizationModelRequest instead of WriteAuthorizationModelRequest
  • chore: changed a few interfaces to expect interfaces instead of classes

v0.2.2

12 Apr 14:09
v0.2.2
2cddb80
Compare
Choose a tag to compare

0.2.2 (2023-04-12)

  • 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: retry on 5xx errors

v0.2.1

17 Jan 23:00
v0.2.1
4ed3471
Compare
Choose a tag to compare

0.2.1 (2023-01-17)

  • chore(deps): upgrade Microsoft.NET.Test.Sdk and Moq dev dependencies

v0.2.0

15 Dec 01:38
v0.2.0
3e5f0f2
Compare
Choose a tag to compare

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:

  • fix(models): update interfaces that had incorrectly optional fields to make them required

Chore:

  • chore(deps): update dev dependencies

v0.1.2

16 Nov 00:02
v0.1.2
f264ab9
Compare
Choose a tag to compare

0.1.2 (2022-11-15)

  • feat: regenerate from latest API Document, changes include:
    • documentation fixes
    • types that represent enabling wildcards in authorization models
  • fix: send authorization header to server when ApiToken used (openfga/sdk-generator#58)
  • chore: update test dependencies

v0.1.1

07 Oct 20:21
Compare
Choose a tag to compare

0.1.1 (2022-10-07)

  • Fix for issue in deserializing nullable DateTime (#5)