Nessie 0.99.0
- 37 commits since 0.98.0
- Maven Central: https://search.maven.org/search?q=g:org.projectnessie.nessie+v:0.99.0
- Docker images: https://github.com/projectnessie/nessie/pkgs/container/nessie and https://quay.io/repository/projectnessie/nessie?tab=tags
It is a multiplatform Java image (amd64, arm64, ppc64le, s390x):docker pull ghcr.io/projectnessie/nessie:0.99.0-java
- PyPI: https://pypi.org/project/pynessie/ (See pynessie)
- Helm Chart repo: https://charts.projectnessie.org/
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 theorg.projectnessie.events.api
package have been
removed and replaced with their respective model classes from theorg.projectnessie.model
package:CommitMeta
Content
and its subclassesContentKey
Reference
and its subclasses
- Helm chart: the
service
section has been redesigned to allow for extra services to be defined.
If you have customized theservice.ports
field, beware that this field is now an array. Also,
the management port configuration has been moved to a newmanagementService
section. And
finally, a newextraServices
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).
Thecontainer@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 optionpath-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 optionauthority
, which is recommended to specify the technical bucket name. Ifauthority
is
not specified, it will default to the value of thename
option, then default to thekey
part of the
formerly mentioned maps.
- The resolution of the specific bucket options has been enhanced to select the specific bucket options
- 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 setlocation
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
fromTransplantResult
(#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)