Release Notes#

1.3.0#

1.3.0 Release

1.3.0 GA Released 2024-12-13

  • Introduce the Access Credential filter API for querying for Access Grants and Access Requests via AccessGrantClient::query(CredentialFilter<T>). This allows developers to perform more sophisticated queries on the ESS Access Grant service. The response from this method is a paged response that can be navigated forwards and backwards.

  • Connect Access Grants to their corresponding Access Request via the AccessGrantClient::grantAccess(AccessRequest) method.

  • With the introduction of the AccessGrantClient::query(CredentialFilter<T>) method, the existing ::query(AccessCredentialQuery<T>) and ::query(URI, URI, ...) methods have been deprecated. Developers are advised to migrate to use the new formulation.

1.2.0#

1.2.0 Release

1.2.0 GA Released 2024-09-20

  • Support for RFC 9457: Problem Details in HTTP responses is now available. In the high-level SolidClient, any HTTP errors that throw exceptions now give developers access to problem detail data from an RFC 9457-conforming server. This change introduces the SolidClientException::getProblemDetails method along with a com.inrupt.client.ProblemDetails interface.

  • The OpenIdProvider::authorize method now supports scope, state and nonce values.

  • Support for qualified type names has been added to the Access Grant client so that names with the vc: prefix are now supported across the various Access Grant types. This is an addition to the current support of localname (e.g. SolidAccessGrant, SolidAccessRequest, SolidAccessDenial) and fully qualified names (e.g. http://www.w3.org/ns/solid/vc#SolidAccessGrant).

  • The OpenIdProvider class includes better support for RFC 9207 OAuth 2.0 Authorization Server Issuer Identification during the authorization_code flow in a browser-based interaction.

  • The SolidContainer class now has better support for the getHeaders() method, making it possible for clients using this class to access response headers from remote Web resources.

1.1.0#

1.1.0 Release

1.1.0 GA Released 2023-11-29

  • The Resource interface includes a getHeaders() method, making it possible for clients to access all response headers from remote Web resources. This method is available on all subtypes, including RDFSource, NonRDFSource, SolidRDFSource, SolidContainer, SolidNonRDFSource, and any derived user-defined type.

  • Standard URI normalization is now performed automatically for all resource identifiers; it is now unnecessary to call URI::normalize in client code before interacting with SolidClient API methods.

  • An inrupt-client-spring module is available to make it easier to integrate Spring applications with the Inrupt Solid Client Libraries. This integration layer includes an asSession(OAuth2User) method to convert a Spring user object into a Session object that can be used with these libraries.

  • An inrupt-client-quarkus module is available to make it easier to integrate Quarkus applications with the Inrupt Solid Client Libraries. This module includes an asSession(JsonWebToken) utility method to convert a Microprofile JSON Web Token into a Session object.

1.0.0#

1.0.0 Release

1.0.0 GA Released 2023-07-17

The first generally available release of Inrupt’s Java Client Libraries include:

  • Support for mapping Pod resources.

  • Support for read/write/update/delete (i.e., CRUD) operations on a Solid Pod.

  • Support for OpenID sessions and Access Grant Sessions

  • Support for managing access to resources in a Solid Pod using Access Grants.

Inrupt’s Java Client Libraries consist of different modules. For details of the modules, see Introduction.

Pod Resources#

Solid Pods are data storage locations. Both Resource Description Framework (RDF) resources and non-RDF resources (e.g., .jpg, .txt) can be stored in a Solid Pod.

To support mapping domain specific objects to RDF resources, Inrupt’s Java Client Libraries provides the WrapperIRI class.

To facilitate mapping Pod resources/files, Inrupt’s Java Client Libraries provides the following classes to map to resources:

For more information on the classes, see:

For an example, see Getting Started.

CRUD Operations#

To facilitate storing resources/files in a Pod, Inrupt’s Java Client Libraries provides:

  • SolidClient, the asynchronous client for interacting with Solid resources.

  • SolidSyncClient, the synchronous client for interacting with Solid resources.

SolidClient and SolidSyncClient provide methods for reading and writing resources to your Solid Pod.

For more information, see

Sessions#

OpenID Sessions#

Inrupt’s Java Client Libraries provide the OpenIdSession class that can work with 3rd party libraries/frameworks that support OpenID Connect and OAuth2 (for example, Spring Security, Quarkus).

In addition, the OpenIdSession class can support client credentials for statically registered single-user application.

For more information, see Sessions.

Access Grant Sessions#

Inrupt’s Java Client Libraries provide AccessGrantSession, which uses an|OpenIdSession| and Access Grant(s) and an OpenID-based session.

For more information, see Sessions.

Access Requests and Grants#

With access requests and grants, a user can request access to resources owned by another user, and the owner user can grant or deny the access request.

To support the access request/grant flow, Inrupt’s Java Client Library provides:

For more information, see Access Requests and Grants.

Patch Releases and Changelogs#

For patch releases, see Patch Releases.

For changelogs, see Changelog.