Skip to content

Latest commit

 

History

History
384 lines (230 loc) · 19.2 KB

File metadata and controls

384 lines (230 loc) · 19.2 KB

Changelog

0.11.0 (2026-09-29)

⚠ BREAKING CHANGES

  • migrate to Jackson 3 and remove the Jackson 2 ObjectMapper and TypeReference APIs deprecated in the bridge release. Applications that use the default serializer without these APIs need no source changes. Code that used the removed wrappers should move to the SDK-owned JsonSerializer (replacing ObjectMapper accessors) and SdkTypeToken (replacing Jackson TypeReference) — see #387 and the RFC.

Added

  • migrate json serialization to jackson 3 (b56e332)

0.10.1 (2026-09-21)

Added

Deprecated

  • New SDK APIs no longer expose Jackson 2 types. The following existing public compatibility wrappers remain fully functional, but are deprecated and will be removed in a future Jackson 3 major release (#387, RFC):
    • ObjectMapper accessors on ApiClient — use the new SDK-owned JsonSerializer interface instead
    • API overloads accepting Jackson TypeReference — use SdkTypeToken instead
  • No action is required for users who don't interact with the mapper directly. The wire format is unchanged; direct JsonSerializer calls report serialization failures as SdkSerializationException, while regular API operations may wrap them in ApiException.

0.10.0 (2026-09-02)

Warning

Breaking changes

  • batchCheck and clientBatchCheck now reject a non-positive maxParallelRequests or maxBatchSize with an FgaInvalidParameterException (previously a zero maxBatchSize threw ArithmeticException and a negative one silently dropped every check). maxParallelRequests also now bounds the number of in-flight requests instead of firing them all at once, and callers are no longer blocked until completion. (#379)
  • ClientBatchCheckClientResponse.getStatusCode() now returns Integer instead of int, and returns null when a failed item has no associated HTTP response (e.g. a client-side error). This is source-compatible, but it changes the compiled method signature and is binary-incompatible — consumers compiled against an earlier version must recompile against 0.10.0 to avoid a NoSuchMethodError. (#381)

Fixed

  • deprecate disableTransactions in favour of transactions() (#377) (2d3b659)
  • expose error status, headers and body on failed clientBatchCheck items (#381) (8da296e)
  • remove per-call thread pools in batchCheck and clientBatchCheck (#379) (2aad182)

0.9.11 (2026-08-04)

Note ⚠️ : The previous release tag 0.9.10 didn't land properly on the registries because of a bug in the release pipeline, so this is a re-release with the same changelog.

Fixed

  • add transactions and isTransactionsEnabled to ClientWriteOptions (#352) (4d851d2)
  • force handlebars core to 4.5.2 to resolve path traversal CVE (#353) (62139f7)
  • migrate transaction docs and examples to transactions() API (#373) (70cfa19), closes #368
  • promote Jackson dependencies to api scope in published POM (#350) (e363ff1)
  • promote jsr305 and opentelemetry-api to api scope (#360) (89a0a97)

0.9.9 (2026-05-04)

Added

  • oauth2 scopes for authentication (#326) (c02b3cc)
  • Add fga-client.request.count counter metric to track the total number of HTTP requests made to the FGA server. This metric is disabled by default and must be explicitly enabled via TelemetryConfiguration. (#310) (cc3a5f2)

Fixed

  • attach Authorization header to streaming and ApiExecutor requests (#330) (#331) (b09ca16), thanks @cportcvent

Note ⚠️ : The previous release tag 0.9.8 didn't land properly on the registries because of a bug in the release pipeline, so this is a re-release with the same changelog.

0.9.8 (2026-04-30)

Added

  • oauth2 scopes for authentication (#326) (c02b3cc)
  • Add fga-client.request.count counter metric to track the total number of HTTP requests made to the FGA server. This metric is disabled by default and must be explicitly enabled via TelemetryConfiguration. (#310) (cc3a5f2)

Fixed

  • attach Authorization header to streaming and ApiExecutor requests (#330) (#331) (b09ca16), thanks @cportcvent

v0.9.7

0.9.7 (2026-03-17)

Added

  • Introduced StreamingApiExecutor for executing HTTP requests to streaming endpoints not yet wrapped by the SDK (#296)

Fixed

  • fix: share single Telemetry instance per SDK client (#290)
  • fix: Socket Badge URL in README.md (#306)

v0.9.6

0.9.6 (2026-02-18)

Added

  • Introduced ApiExecutor for executing custom HTTP requests to OpenFGA API endpoints (#273, #277)

Breaking Changes

  • Minimum Java version requirement increased to Java 17 (#282) - Java 11 support removed (#282)

v0.9.5

0.9.5 (2026-01-27)

Added

  • feat: support for streamed list objects (#252, #272)

v0.9.4

0.9.4 (2025-12-05)

Changed

  • Improved error handling and integration test coverage for FgaError and related classes. (#260)

v0.9.3

0.9.3 (2025-11-10)

Fixed

  • fix: preserve response headers in transaction write operations (#254)

v0.9.2

0.9.2 (2025-10-23)

Added

  • Add support for write conflict options (#234)
    • The SDK now supports setting a onDuplicate for writing tuples (ClientWriteOptions or ClientWriteTuplesOptions) and onMissing (ClientWriteOptions or ClientDeleteTuplesOptions) for deleting tuples. See the documentation for more details.
  • Add support for name filter on ListStores (#237)
    • Thanks to @Oscmage and @varkart for their work on this!

v0.9.1

0.9.1 (2025-10-07)

Fixed

  • Override defaultHeaders in ClientConfiguration to return correct type when using method (#226)
  • Correctly handle options with no modelID set in readAuthorizationModel (#226)
  • Include headers when converting from ClientListRelationsOptions to ClientBatchCheckOptions (#226)

v0.9.0

0.9.0 (2025-08-15)

Added

  • RFC 9110 compliant Retry-After header support with exponential backoff and jitter
  • Retry-After header value exposed in error objects for better observability
  • FgaError now exposes Retry-After header value via getRetryAfterHeader() method

Changed

  • Enhanced retry strategy with delay calculation
  • BREAKING: Maximum allowable retry count is now enforced at 15 (default remains 3)
  • BREAKING: Configuration.minimumRetryDelay() now requires non-null values and validates input, throwing IllegalArgumentException for null or negative values

Migration Guide:

  • Update error handling code if using FgaError properties - new getRetryAfterHeader() method available
  • Note: Maximum allowable retries is now enforced at 15 (validation added to prevent exceeding this limit)
  • IMPORTANT: Configuration.minimumRetryDelay() now requires non-null values and validates input - ensure you're not passing null or negative Duration values, as this will now throw IllegalArgumentException. Previously null values were silently accepted and would fall back to default behavior at runtime.

Fixed

  • Fixed issue where telemetry metrics are not being exported correctly #590
  • Fixed issue with non-transactional write error handling openfga/sdk-generator#573

v0.8.3

0.8.3 (2025-07-15)

Fixed:

  • client: fix connectTimeout config (#182)
  • client: fix batchCheck error handling (#183)

v0.8.2

0.8.2 (2025-07-02)

Added:

  • client: allow accessing the internal api client via getApi (#178)

Fixed:

  • client: fix BatchCheck ignoring passed in model ID override (#177)

v0.8.1

0.8.1 (2025-02-18)

  • fix: use HTTP 1.1 by default (#148)
  • fix: ensure default telemetry attributes are sent (#145)
  • feat: add batch check telemetry attribute (#143)

v0.8.0

0.8.0 (2025-02-07)

  • feat!: add support for server-side batchCheck method (#141) - thanks @piotrooo!! This is a more efficient way to check on multiple tuples than calling the existing client-side batchCheck. Using this method requires an OpenFGA v1.8.0+ server. The existing batchCheck method has been renamed to clientBatchCheck. The existing BatchCheckResponse has been renamed to ClientBatchCheckResponse.
  • feat: add support for start_time parameter in ReadChanges endpoint (#137)

BREAKING CHANGES:

  • Usage of the existing batchCheck method should now use the clientBatchCheck method.

v0.7.2

0.7.2 (2024-12-18)

  • fix: Ensure executor is shutdown (#133)

v0.7.1

0.7.1 (2024-09-23)

  • refactor(OpenTelemetry): remove SDK version from meter name
  • fix(OpenTelemetry): http.request.method should be enabled by default (#114)
  • chore(deps): update dependencies (#110, #111, #112)
  • docs(OpenTelemetry): update Metrics and Attributes tables (#115)

v0.7.0

0.7.0 (2024-08-28)

  • feat: support consistency parameter #107 Note: To use this feature, you need to be running OpenFGA v1.5.7+ with the experimental flag enable-consistency-params enabled. See the v1.5.7 release notes for details.

v0.6.1

  • fix: Maven build issue

v0.6.0

v0.5.0

0.5.0 (2024-06-14)

  • chore!: remove excluded users from ListUsers response

BREAKING CHANGE:

This version removes getExcludedUsers and setExcludedUsers from the ListUsersResponse and ClientListUsersResponse classes, for more details see the associated API change.

v0.4.2

0.4.2 (2024-05-02)

  • feat: support the ListUsers endpoint (#80)
  • fix: improve check for validity of token (#76)

v0.4.1

0.4.1 (2024-04-09)

  • feat: support setting context on ListObjects - thanks @Didier-SimpleCommeDev
  • feat: support setting context and contextual tuples on ListRelations
  • feat: add retries to OAuth2 Client Credentials request
  • feat: support modular models metadata
  • fix: avoid clone of object mapper - thanks @paulosuzart

v0.4.0

0.4.0 (2024-03-04)

  • fix!: reverse the transaction behaviour when disableTransactions is set on Write ⚠️ This is a behavioral breaking change! Previously, the OpenFgaClient reversed the behavior of write transactions based on the disableTransactions flag. This has been fixed so that batched writes are sent if disableTransactions == true and a single transactional write if it is false (default).

v0.3.2

0.3.2 (2024-01-26)

  • fix: fix token validity check for expiry (#48)
  • fix: send OAuth2 credentials request as form-urlencoded post (#47) - thanks @le-yams
  • fix: do not create new http client on every request (#46)

v0.3.1

0.3.1 (2024-01-22)

  • feat: oauth2 client credentials support - thanks @le-yams
  • fix: add context to ClientCheckRequest
  • fix incorrect check for whether transactionChunkSize is not set

v0.3.0

0.3.0 (2023-12-13)

  • feat: support for conditions
  • feat: standard OpenFGA headers have been added to Write, BatchCheck, and ListRelations calls
  • feat: apiTokenIssuer has been expanded to support arbitrary http and https URLs. previously it supported only configuring a hostname - thanks @le-yams
  • feat: allow setting and overriding http headers
  • [BREAKING] chore!: use latest API interfaces
  • chore: dependency updates
  • refactor: abstract common functionality; update validation and exception types

v0.2.3

0.2.3 (2023-11-21)

  • feat(client): implement batchCheck, listRelations, and non-transaction write
  • fix(client): adds missing "contextual tuples" field to check request

v0.2.2

0.2.2 (2023-10-31)

  • fix(client): an empty read request will no longer send an empty tuple
  • fix(client): an unused "user" field, and related methods, was removed from ClientExpandRequest

v0.2.1

0.2.1 (2023-10-13)

No changes, this patch release is just to test release automation.

v0.2.0

0.2.0 (2023-10-11)

  • feat(client): automatic retries for errors have been implemented. HTTP 429 and HTTP 5XX error responses will automatically be retried. (With the exception of the HTTP 501 "Not Implemented" status code.)
  • feat(client): new response error classes have been introduced to classify FGA error responses
  • feat(client): response types have been enriched with HTTP status/header/body response data
  • feat(client): response errors have been enriched with data from both the HTTP request and its repsonse
  • [BREAKING] refactor(client): in the lower level OpenFgaApi class, api calls and api calls "...WithHttpInfo" are collapsed into a single api call that always includes HTTP information.

v0.1.0

0.1.0 (2023-09-27)

  • [BREAKING] refactor(client): simplify OpenFgaClient and OpenFgaApi constructors to not require an ApiClient. This is a breaking change as it changed the ordering of parameters in constructors.
  • [BREAKING] refactor(client): all options classes for OpenFgaClient are now consistently prefixed with "Client"
  • chore(client): add ClientReadAssertionsOptions and ClientWriteAssertionsOptions for their respective Client APIs.

v0.0.5

0.0.5 (2023-09-27)

  • feat(client): add OpenFgaClient wrapping OpenFgaApi and exposing a simplified interface. See docs
  • chore(docs): update the README with installation and usage instructions.

v0.0.3, v0.0.4

0.0.4 (2023-09-21)

  • fix: publishing to maven central

v0.0.2

0.0.2 (2023-09-15)

The Maven Group ID was updated to dev.openfga.

v0.0.1

0.0.1 (2023-09-14)

This is an initial beta release. While it can be used to call an FGA server, it lacks conveniences already present in other OpenFGA SDKs and already planned.

Most notably it lacks a higher-level client (work is in progress), which will be the recommended entry point.