Release Notes - 1.12.0
Highlight
- Fully verified with Java 8, 11, 17, and 21, on Scala 2.12 and 2.13.
- Fully verified with Apache Spark 3.3 to 4.2, support for Spark 3.3 and 3.4 is deprecated.
- Fully verified with Apache Flink 1.17 to 1.20, support for Flink 1.17 to 1.19 is deprecated.
- Introduce Data Agent Engine, with Web UI improvement.
- Introduce Spark YARN connector for reading YARN aggregated logs.
- Remove Chat engine, an experimental feature that never reached production-ready status.
- Remove MySQL frontend protocol, an experimental feature that never got improved.
Server
- [KYUUBI #7387] Replace serverOnly with audience and immutable flags on ConfigEntry
- [KYUUBI #7575] Improve access path validation
- [KYUUBI #7509] Add engine startup time metric
- [KYUUBI #7567] Improve Engine UI proxy 403 response
- [KYUUBI #7542] Validate filenames in Utils
- [KYUUBI #7435] Honor server-level kyuubi.server.info.provider in getInfo
- [KYUUBI #7528] Remove MySQL frontend protocol
- [KYUUBI #7503] Document that kyuubi.session.local.dir.allow.list is only for Spark engine
- [KYUUBI #7488] Fix canceled batch reporting stale RUNNING application state
- [KYUUBI #7443] Fix NullPointerException when SPARK_HOME is misconfigured
- [KYUUBI #7438] Make JSON event logger permission management configurable
- [KYUUBI #7418] Rename kyuubi.engine.security.* to kyuubi.internal.security.* and document them
- [KYUUBI #7430] Remove Chat engine
- [KYUUBI #7407] Free STGroup to avoid OOM Kill
- [KYUUBI #7415] Allow including additional Spark keys as path validation targets
- [KYUUBI #7403] Fix password parsing bug when password contains a colon
- [KYUUBI #7391] Improve session REST API security
- [KYUUBI #7389] Fix parameter binding order in JDBCMetadataStore#transformMetadataState
- [KYUUBI #7374] Fix static zero IV in InternalSecurityAccessor
- [KYUUBI #7348] Separate principal and keytab for ZooKeeper authentication between server and engine
- [KYUUBI #7319] Return 404 for non-existent sessions
- [KYUUBI #7313] Audit pending Kubernetes application status
- [KYUUBI #7290] Prevent engine session leak after Kyuubi session closes
- [KYUUBI #7295] Upgrade playground components to recent versions
Spark Engine, Connectors and Plugins
- [KYUUBI #7551] Optimize InferRebalanceAndSortOrders to skip non-cheap keys and support local sort
- [KYUUBI #7539] Remove rebalance shuffle before writing at AQE time when not worthwhile
- [KYUUBI #7540] Spark Hive Connector supports Spark 4.1
- [KYUUBI #7531] Add advisoryPartitionSizeInBytes config for rebalance
- [KYUUBI #7433] Preserve Hive delegation tokens with non-empty service
- [KYUUBI #7515] Handle Spark variant type in metadata
- [KYUUBI #7495] Avoid overlong Kubernetes pod log directory names
- [KYUUBI #6832] Initial Spark DSv2 YARN connector for reading YARN aggregated logs
- [KYUUBI #6943] Support DPP in HiveScan
- [KYUUBI #7422] Fix FileWriterFactory reusing the same TaskAttemptId across task attempts in Spark Hive Connector
- [KYUUBI #7335] Sort before write in DynamicPartitionDataSingleWriter
- [KYUUBI #7406] Remove redundant table properties when creating tables in Spark Hive Connector
- [KYUUBI #7398] Include SERDEPROPERTIES when creating tables in Spark Hive Connector
- [KYUUBI #7377] Respect catalog-level warehouse when creating databases in Spark Hive Connector
- [KYUUBI #7369] Support PURGE TABLE in Spark Hive Connector
- [KYUUBI #7350] Make TPC-H/DS connectors compatible with Spark 4.2
- [KYUUBI #7304] Fix NumberFormatException when parsing ISO 8601 duration for session idle timeout
Spark AuthZ Plugin
- [KYUUBI #2470] Add Ranger performance tracing to rule authorization
- [KYUUBI #7230] Skip privilege check for DataSourceV2Relation without catalog and identifier
- [KYUUBI #7576] Fix data masking failure on a UNION-ALL view over a masked view
- [KYUUBI #7570] Support Spark 4.2
- [KYUUBI #7568] Eliminate TypeOfPlaceHolder across the whole plan
- [KYUUBI #7552] Support Spark 4.0 and 4.1
- [KYUUBI #7299] Remove redundant concatenation with the list of conditions
Spark Lineage Plugin
- [KYUUBI #7180] Drill down subqueries in the project to resolve lineage relationships
Flink Engine
- [KYUUBI #7310] Support variable substitution in JSON metrics report path
Data Agent Engine
- [KYUUBI #7379] Introduce Data Agent Engine with tool system, agent runtime, OpenAI provider, REST API, SSE streaming, and Web UI
Other Engines
- [KYUUBI #7527] Respect interrupt while waiting for engine launch in JDBC engine
- [KYUUBI #7549] Fix Subject.getSubject() in Kyuubi JDBC driver for JDK 25 compatibility
- [KYUUBI #7305] Route JDBC engine metadata calls through DatabaseMetaData
- [KYUUBI #7317] Fix parsePropertyFromUrl to strip query string from parsed values
Client
- [KYUUBI #7428] Support fetchOrientation parameter in OperationRestApi.getOperationLog
Web UI
- [KYUUBI #7538] Upgrade ESLint to 9 (flat config) and clear remaining dev-dependency advisories
- [KYUUBI #7533] Upgrade web-ui build toolchain and fix dependency security advisories
- [KYUUBI #7504] Add a Batch management page to the Web UI
- [KYUUBI #7483] Restrict Engine UI proxy targets
- [KYUUBI #7386] Replace axios with native fetch in web-ui
Documentation
Building, Infrastructure and Dependency
Credits
Last but not least, this release would not have been possible without the following contributors:
- Akira Ajisaka
- anandnalya
- attilapiros
- Cheng Pan
- Chenliang Lu
- Denis Krivenko
- Eric Liu
- Fei Wang
- GitHub Bot
- Han, Yutong
- Hiroki Egawa
- Hoon Oh
- hutiefang76
- Jiwon Park
- kongjiexin888-source
- maomaodev
- ruanwenjun
- Sunwoo-Shin
- wangzhigang1999
- Xiduo You
- ychris78
- Yuming Wang
- Yutong-1424
- Zhigang Wang
2026 7月 28