Apache Gravitino 1.2.0 has been released! This release introduces major new capabilities including a new Table Maintenance Service (TMS), a new ClickHouse catalog, end-to-end UDF management, authorization for Iceberg view operation, a redesigned Web UI, and broad improvements across connectors, authorization, and clients.
Release Date: 2026-03-13 Previous Version: 1.1.0 (2025-12-16)
Highlights
- Table Maintenance Service (TMS) foundational framework — Data platforms can now shift from reactive firefighting to proactive table health. Gravitino analyzes your tables and automatically schedules the right maintenance operations, at the right times.
- ClickHouse catalog — Teams running real-time analytics on ClickHouse can now govern it alongside their lakehouse, with one metadata layer for both streaming and batch workloads.
- Scan planning offload — Query engines like DuckDB and Spark can now offload scan planning to Gravitino's IRC server, reducing query latency and client-side complexity — making Gravitino a more capable catalog server for the growing Iceberg ecosystem.
- Ecosystem reach — Multi-version Trino connector (435–478), Flink user authentication, and multi-cluster fileset support and Web UI v2 broaden Gravitino's integration surface across the modern data stack.
New Features
-
Table Maintenance Service (TMS) #9546, #9652, #9653, #9654, #9983, #9984, #9985, #9986, #10096, #10097, #10098, #10140, #9541, #9543
Maintaining a healthy lakehouse table requires ongoing maintenance work — compaction, rewriting data files, and expiring snapshot cleanup. Gravitino 1.2.0 introduces the Table Maintenance Service (TMS), which analyzes table statistics and automatically schedules the right maintenance operations at the right time. This allows data platforms to move from reactive firefighting to proactive table health management.
-
ClickHouse Catalog #9738, #9754, #9755, #9756, #9820, #9865
ClickHouse is widely adopted for large-scale real-time analytics. Gravitino 1.2.0 introduces a full-featured ClickHouse catalog with full DDL support including distributed and partitioned cluster modes.
-
User-Defined Function (UDF) Management #9525, #9527, #9528, #9529, #9530, #9531, #9532, #9561
Teams can now centrally register, update, and govern UDFs, and Spark can automatically discover and invoke these functions through Gravitino's catalog interface. Gravitino 1.2.0 introduces end-to-end UDF management: Java API, server-side REST interface, relational storage backend, Java client support, Spark FunctionCatalog integration, Python client, Web UI management for visual browsing/creation, and complete documentation with OpenAPI specifications.
-
Iceberg REST Catalog: Support scan planning cache #9048
Adding a cache for scan planning improves performance by caching the results of the scan planning phase, which determines which data files need to be read for a query. Since scan planning involves reading and parsing Iceberg metadata and manifest files, caching avoids repeating this expensive work for similar queries. As a result, it reduces metadata I/O, lowers query latency, and decreases load on object storage and the planning service.
-
Authorization support for Iceberg REST catalog view operations #9744, #9745, #9746, #9747, #9915
Views are an important abstraction for data access control but have long been a governance blind spot. Gravitino 1.2.0 manages Iceberg views as first-class entities, introducing view management, generic storage, view-level permissions, and full authorization support for IRC view operations. This enables teams to govern views alongside tables and apply fine-grained access control policies to view access while maintaining consistent enforcement of underlying table permissions.
-
Generic Lakehouse Catalog: Delta Lake External Table Support #9647
Delta Lake is one of the most widely deployed open table formats. Gravitino now supports registering and managing external Delta tables through the generic lakehouse catalog, enabling unified governance for Delta alongside Iceberg, Hudi, and other formats without data migration. This allows organizations to manage Delta Lake workloads through an open catalog architecture, reducing dependence on proprietary catalog services such as Unity Catalog.
-
Trino Connector Multi-version Support #9718, #9719, #9894, #9952, #9961, #9964, #10091
Gravitino now supports Trino versions 435 through 478, with a connector architecture designed to maintain compatibility with future Trino releases.
-
Multi-cluster Fileset Support #9568, #9312
Production data platforms often span multiple storage clusters. Through GVFS multi-cluster filesets, Gravitino now allows a single fileset to reference storage locations across different clusters. -
Flink Connector: User Authentication #9564
The Gravitino Flink connector now supports user authentication, enabling secure access to Gravitino-managed metadata from Flink jobs. -
Web UI v2 Reconstruction #9758
The Gravitino Web UI now supports managing ClickHouse catalogs and UDFs, along with improved views for tags, policies, and task templates. The updated interface provides a more streamlined experience for navigating governance resources. Web v1 remains available during the transition period.
Improvements
Core & Server
- Block non-cascading schema deletions when topics still exist (#9078)
- Cache non-existent relational data to avoid repeated lookups (#9799)
- Optimize in-use status checks for catalogs and metalakes (#9586)
- Improve authorization performance by skipping overhead when plugin is empty (#9170)
- Support renaming tables to a different schema in ManagedTableOperations (#9477)
- Include generic lakehouse catalogs in managed entities for proper drop behavior (#9490)
- Add JDBC storage backend for partition statistics (#9838)
- Make
gravitino-apiand related dependenciescompileOnlyin catalog modules (#10195) - Optimize JDBC driver deregistration logic to avoid possible OOM (#10253)
Authorization
- Convert JCasbin internal map to a cache for improved performance (#9770)
- Support preloading table metadata in batch for authorization checks (#9802)
- Rename model privilege names to follow operation name conventions (#9381)
- Support overriding privileges for roles (#9269)
- Fileset supports credential vending with correct access privileges (#9506)
Iceberg REST Catalog (IRC)
- Upgrade Apache Iceberg to 1.10.1 (#9989)
- Optimize IRC catalog wrapper and entity cache expiry strategy (#9782)
- Improve IRC table load performance under high concurrency with authorization enabled (#9765)
- IRC uses internal catalog fetcher instead of HTTP interface for better performance (#9825)
- IRC timely expires catalog wrapper cache (#9966)
- Improve table load performance by tuning the cooperation between Iceberg service and Gravitino server (#9277)
- Cross-Namespace Table Rename: Gravitino Iceberg catalog now supports renaming tables across different namespaces (#9517)
Catalogs & Connectors
- Support Paimon REST backend (#9791)
- Support hash distribution in Paimon catalog (#9731)
- Refactor Hive and Hudi catalogs to use the shared HiveClient (#9459)
- Add support to skip catalog in Trino connector (#9492)
- Flink connector supports generic Hive tables (#9504)
- Spark connector supports
TableWritePrivilegefor Spark 3.5+ authorization (#10181) - Upgrade Kyuubi Hive connector from 1.10 to 1.11 (#10040)
OAuth & Authentication
- Support JWT tokens with multiple audiences in the
audclaim (#9733) - Support regex for user principal mapping in OAuth (#9767)
- Allow JWKS validators to work without
serverUriortokenPath(#9713) - Enhance version parsing to support release candidate version strings (#9482)
Clients
- Add configurable HTTP connection pool settings for Gravitino client (#9468)
- Allow disabling client-server version check via environment variable (#9760)
Lance REST Service
- Add Helm chart for deploying Lance REST server as a standalone service on Kubernetes (#9403)
- Add dataset version tracking in Lance REST
loadTableandcreateTable(#9792) - Add documentation for Lance REST server setup and Spark/Ray integration (#9169, #9622)
- Refine
createEmptyTablesemantics in Lance REST (#9520)
Web UI
- Add global banner to guide users to Web UI v2 (#9996)
- Support ClickHouse catalog management in Web UI v2 (#9865)
- Support associated roles view for tags, policies, and job templates (#9807)
Bug Fixes
- Fix credential vending for filesets with multiple storage locations (#9500)
- Fix IRC connection failure after idle timeout (#9383)
- Fix tag association cache inconsistency (#9635)
- Fix Iceberg migrate procedure failing with "table already exists" for JDBC catalogs (#9666)
- Fix clearing column comments in MySQL table ALTER operations (#9694)
- Fix UnsupportedOperationException when updating model version aliases (#9727)
- Fix table loading failure due to incorrect SQL in fetch column info (#10034)
- Fix NoSuchEntityException in authorization when schema entity is not imported (#10055)
- Fix owner assignment failure due to unimported schema entity (#9809)
- Fix Hive SerDe incompatibility between Gravitino Flink connector and native Flink client (#9508)
- Fix JDBC catalog column default value alteration (#9816)
- Fix Trino connector distribution to include JARs for all supported versions (#10139)
- Fix TMS built-in rewrite adapter resolution by template name (#10311)
- Fix JDBC catalog pool size properties not being loaded on catalog creation (#10284)
- Fix SLF4J provider not found error in Spark connector 3.3 (#6906)
- Fix PassThroughAuthorizer user verification logic blocking new user creation (#9616)
- Fix IRC URL decoding for table names containing special characters (#9936)
- Fix lazy authorization configuration check for IRC to allow server startup (#9247)
- Fix
maxStatisticsPerUpdateconfiguration for Lance partition storage (#9650)
Breaking Changes
- Dropped Python 3.9 Support — Python 3.9 has reached end of life. The Gravitino Python client no longer supports this version. Users need to upgrade to Python 3.10 or higher. (#10011)
Acknowledgements
Thanks to all 34 contributors who made this release possible:
@Abyss-lord,@agnes-xinyi-lu,@AndreVale69,@bharos,@cc5566,@chl-wxp,@danhuawang,@diqiu50,@echonesis,@FANNG1,@fwonce,@hdygxsj,@hqbhoho,@jerryshao,@joeyutong,@josephperez3,@liunaijie,@mchades,@paultanay,@Pranaykarvi,@qingwei727,@qqqttt123,@LauraXia123,@raveendra11,@roryqi,@sabashaikh4,@SalmaneKhalili,@shaofengshi,@simhani1,@sunxiaojian,@tedyu,@tsungchih,@youngyjd,@yuqi1129