Skip to content

Nessie 0.99.0

Compare
Choose a tag to compare
@github-actions github-actions released this 26 Sep 18:10
· 483 commits to main since this release

Try it

The attached nessie-quarkus-0.99.0-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.99.0/nessie-quarkus-0.99.0-runner.jar
java -jar nessie-quarkus-0.99.0-runner.jar

Nessie CLI is attached as nessie-cli-0.99.0.jar, which is a standalone uber-jar file that runs on Java 11 or newer. Nessie CLI is also available as a Docker image: docker run --rm -it ghcr.io/projectnessie/nessie-cli:0.99.0.

Nessie GC tool is attached as nessie-gc-0.99.0.jar, which is a standalone uber-jar file that runs on Java 11 or newer. Shell completion can be generated from the tool, check its help command. Nessie GC tool is also available as a Docker image: docker run --rm ghcr.io/projectnessie/nessie-gc:0.99.0 --help.

Nessie Server Admin tool is attached as nessie-server-admin-tool-0.99.0-runner.jar, which is a standalone uber-jar file that runs on Java 17 or newer. Shell completion can be generated from the tool, check its help command. Nessie Server Admin tool is also available as a Docker image: docker run --rm ghcr.io/projectnessie/nessie-server-admin:0.99.0 --help.

The attached nessie-helm-0.99.0.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

Breaking changes

  • The Events API has been redesigned to import the Nessie Model API directly, instead of using
    specific DTO classes. This change is intended to simplify the API and facilitate consumption of
    the events. The following classes from the org.projectnessie.events.api package have been
    removed and replaced with their respective model classes from the org.projectnessie.model
    package:
    • CommitMeta
    • Content and its subclasses
    • ContentKey
    • Reference and its subclasses
  • Helm chart: the service section has been redesigned to allow for extra services to be defined.
    If you have customized the service.ports field, beware that this field is now an array. Also,
    the management port configuration has been moved to a new managementService section. And
    finally, a new extraServices section has been added to allow for additional services to be
    defined.
  • ADLS: The way how storage URIs are resolved to ADLS "buckets" (container @ storage-account) has been
    changed (fixed). An ADLS "bucket" is technically identified by the storage-account, optionally further
    identified by a container/file-system name. It is recommended to specify the newly added via the
    nessie.catalog.service.adls.file-systems.<key>.authority=container@storageAccount option(s).
    The container@storageAccount part is what is mentioned as <file_system>@<account_name> in the Azure
    docs
    .

New Features

  • Access check SPI has been enhanced to provide richer information in the Check type about the receiving
    API (Nessie REST or Iceberg REST) and about the individual changes, especially during a commit operation.

Changes

  • S3/GCS/ADLS: Bucket settings
    • The resolution of the specific bucket options has been enhanced to select the specific bucket options
      using the longest matching option including an optional path-prefix.
    • All bucket specific options (nessie.catalog.service.adls.buckets.<key>.,
      nessie.catalog.service.gcs.buckets.<key>., nessie.catalog.service.adls.file-systems.<key>.) got a
      new option path-prefix, which is used to restrict settings to a specific object store path prefix.
    • All bucket specific options (nessie.catalog.service.adls.buckets.<key>.,
      nessie.catalog.service.gcs.buckets.<key>., nessie.catalog.service.adls.file-systems.<key>.) got a
      new option authority, which is recommended to specify the technical bucket name. If authority is
      not specified, it will default to the value of the name option, then default to the key part of the
      formerly mentioned maps.
  • The base location of a new entity (e.g. tables) created via Iceberg REST is derived from the nearest
    parent namespace that has an explicitly set location property. (Path separator character is /.)
  • The location property on tables (and view) created via Iceberg REST may be explicitly configured, as
    long as it can be resolved against the configured object storage locations. (Path separator character
    is /.)

Fixes

  • CLI: Fix connecting to Nessie's Iceberg REST

Full Changelog (minus renovate commits):

  • CLI: Pull in essential *FileIO dependencies for Iceberg REST (#9640)
  • Events API: add support for direct JSON serialization (#9637)
  • Remove unused sourceHashes from TransplantResult (#9628)
  • Events API: use Nessie model API directly and remove DTOs (#9588)
  • remove rocksdb dependency from nessie-compatibility-common (#9632)
  • Helm chart: more flexible services configuration (#9625)
  • Also initialize Iceberg-View location (#9629)
  • [Catalog] More flexible named buckets (#9617)
  • Nit: remove unintentional output (#9626)
  • LakehouseConfigObj as transfer-related for export/import (#9623)
  • Persistable LakehouseConfig (#9614)
  • Derive location of new tables from parent namespaces, add some validations (#9612)
  • HTTP client: Update Apache HTTP client impl to avoid deprecated classes (#9610)
  • Richer access checks (#9553)
  • Version Store Result API enhancements (#9592)