Skip to content

Nessie 0.76.3

Compare
Choose a tag to compare
@github-actions github-actions released this 16 Jan 18:29
· 2067 commits to main since this release

Nessie 0.76.3 release

Try it

The attached nessie-quarkus-0.76.3-runner.jar is a standalone uber-jar file that runs on Java 17 or newer and it is also available via Maven Central. Download and run it (requires Java 17):

wget https://github.com/projectnessie/nessie/releases/download/nessie-0.76.3/nessie-quarkus-0.76.3-runner.jar
java -jar nessie-quarkus-0.76.3-runner.jar

Nessie GC tool is attached as nessie-gc-0.76.3, which is an executable.
(chmod 744 nessie-gc-0.76.3 after download.)
Can also be run using java -jar nessie-gc-0.76.3, because it is actually a Java archive.
Shell completion can be generated from the nessie-gc tool.

The attached nessie-helm-0.76.3.tgz is a packaged Helm chart, which can be downloaded and installed via Helm.
There is also the Nessie Helm chart repo, which can be added and used to install the Nessie Helm chart.

Changelog

Highlights

  • The Nessie client supports two new authentication flows when using OAuth 2 authentication:
    the Authorization Code flow and the Device Code flow. These flows are well suited for use within
    a command line program, such as a Spark SQL shell, where a user is interacting with Nessie using a
    terminal. In these flows, the user must use their web browser to authenticate with the identity
    provider. See the
    Nessie documentation
    for details. The two new flows are enabled by the following new grant types:
    • authorization_code: enables the Authorization Code flow; this flow can only be used with
      a local shell session running on the user's machine.
    • device_code: enables the Device Code flow; this flow can be used with either a local or a
      remote shell session.
  • The Nessie client now supports endpoint discovery when using OAuth 2 authentication. If an
    identity provider supports the OpenID Connect Discovery mechanism, the Nessie client can be
    configured to use it to discover the OAuth 2 endpoints. See the
    Nessie documentation
    for details.

Upgrade notes

  • Some storage backends will require a schema upgrade:
    • JDBC: the following SQL statement must be executed on the Nessie database (please adapt the
      statement to the actual database SQL dialect):
      ALTER TABLE objs 
        ADD COLUMN obj_vers VARCHAR;
      You may drop the no longer needed x_class column.
    • Cassandra: the following CQL statement must be executed on the Nessie database and keyspace:
      ALTER TABLE <keyspace>.objs 
        ADD obj_vers text;
      You may drop the no longer needed x_class column.

New Features

  • Nessie client: the OAUTH2 authentication provider now supports programmatic configuration. See the
    Nessie documentation for details.

Fixes

  • Fix potential NPE when fetching commit log with fetch option ALL and access checks enabled.

Full Changelog (minus renovate commits):

  • Fix URL endpoint for injected NessieApi from OldNessieServer (#7958)
  • Improve test coverage in ProtoSerialization (#7943)
  • Use fluent ObjIdHasher (#7957)
  • Mention JAVA_TOOL_OPTIONS in the docs (#7952)
  • Fix "unlimited" behavior flexible cache (#7949)
  • remove unused jersey-test-framework-provider dependencies (#7946)
  • Persist: Conditional deletes + updates (#7932)
  • Fix RockDB config properties (#7942)
  • Shrink heap footprint of ObjIdGeneric (#7934)
  • Caching behavior per object type (#7931)
  • HttpClient: ability to define per-request authentication (#7928)