Apache Polaris 1.5.0
Released on May 18th, 2026.
Downloadsđź”—
| Artifact | PGP Sig | SHA-512 |
|---|---|---|
| source tar.gz | .asc | .sha512 |
| binary tgz | .asc | .sha512 |
| binary zip | .asc | .sha512 |
| Spark 3.5 with Scala 2.12 Client Jar | .asc | .sha512 |
| Spark 3.5 with Scala 2.13 Client Jar | .asc | .sha512 |
Release Notesđź”—
Upgrade notesđź”—
Breaking changesđź”—
- The ExternalCatalogFactory interface has been renamed to FederatedCatalogFactory. Its createCatalog() and createGenericCatalog() method signatures have been extended to include a
catalogPropertiesparameter of typeMap<String, String>for passing through proxy and timeout settings to federated catalog HTTP clients. - The
ConnectionCredentials.of()method now throws an exception when more than one expiration timestamp property is present in the credentials map. Only a single expiration timestamp is allowed per credentials bundle. - Entity names (namespaces, tables, views, generic tables) submitted to the REST layer are now rejected with HTTP 400 if they are empty, contain a
/, or have leading/trailing whitespace. Clients that were previously able to create such entities must rename them before upgrading. - The
MaintenanceService.performMaintenance()signature now requires an explicitOptionalLong overrideRunIdargument to supersede the latest unfinished maintenance run.
New Featuresđź”—
- Added
envFromsupport in Helm chart. - Added summarize subcommand to Polaris CLI.
- Added find and tables options to Polaris CLI.
- Added support for multiple event listeners. Set
polaris.event-listener.typesto a comma-separated list of event listener types to enable multiple event listeners. - Added support for enabling only a subset of event types and event categories per event listener. Set
polaris.event-listener.<name>.enabled-event-typesorpolaris.event-listener.<name>.enabled-event-categoriesto the list of event types or categories for the specified event listener to only consume the selected subset of events. - Added support for Apache Ranger as an external authorizer (Beta).
Changesđź”—
- Improved Python CLI error messages and exit codes for invalid arguments and configuration errors.
- Removed unused
PolarisAuthorizableOperationvalues:REVOKE_PRINCIPAL_GRANT_FROM_PRINCIPAL_ROLE,REVOKE_PRINCIPAL_ROLE_GRANT_FROM_PRINCIPAL_ROLE,LIST_GRANTS_ON_ROOT,ADD_PRINCIPAL_GRANT_TO_PRINCIPAL_ROLE,LIST_GRANTS_ON_PRINCIPAL,ADD_PRINCIPAL_ROLE_GRANT_TO_PRINCIPAL_ROLE,LIST_GRANTS_ON_PRINCIPAL_ROLE,ADD_CATALOG_ROLE_GRANT_TO_CATALOG_ROLE,REVOKE_CATALOG_ROLE_GRANT_FROM_CATALOG_ROLE,LIST_GRANTS_ON_CATALOG_ROLE,LIST_GRANTS_ON_CATALOG,LIST_GRANTS_ON_NAMESPACE,LIST_GRANTS_ON_TABLE,LIST_GRANTS_ON_VIEW. - Changed deprecated APIs in JUnit 5. This change will force downstream projects that pull in the Polaris test packages to adopt JUnit 6.
- Added client id collision check during reset.
- The
nosql maintenance-runadmin command now rejects a new run when the latest recorded maintenance run is still unfinished, unless the operator explicitly passes--supersede-run=<run-id>. - Added version option to Polaris CLI.
Deprecationsđź”—
- The configuration option
polaris.event-listener.typeis deprecated and will be removed later. Please usepolaris.event-listener.typesinstead.
Fixesđź”—
- Fixed
renameTableto return HTTP 204 (No Content) instead of 200, as per the Iceberg REST Catalog spec.