Product changelog
This page covers Kubling releases. KDV is versioned independently; see the KDV changelog for CLI releases.
v26.6.2
- Fixed dependent joins for
access-restricted provider tables that support
equality predicates but not
OR. Multi-value lookups remain bounded, and a query is rejected before provider execution when the table’s declared access pattern cannot be preserved. - Fixed row locking for concurrent multi-row mutations in Soft Transactions. A lock conflict no longer leaves partial locks behind or removes locks owned by another transaction.
- Added the official Redfish Provider for querying hardware inventory, health, firmware, power and thermal data across multiple Redfish BMCs.
- Added the Kubling APT repository for selected signed
Debian packages on
amd64andarm64systems.
v26.6.1
- Rebuilt Kubling’s native images with Oracle GraalVM 25.0.5.0.2, incorporating the Java security update for CVE-2026-91403. No configuration, descriptor or client migration is required.
v26.6
- Added opt-in partial query results with explicit completeness and structured diagnostics.
- Added provider-declared access patterns for bounded direct queries and automatic dependent joins.
- Added packaged
JSONTABLEsupport for expanding JSON documents into typed rows. - Added a local end-to-end example for the Host Provider and listed it in the Provider catalog.
- Fixed Studio results so repeated output column names preserve every selected value.
v26.5.3
- Added a dedicated Studio view for visualizing semantic relationships.
v26.5.2
- Fixed JavaScript SQL functions
so scalar and aggregate results use the declared
returnType. Functions without a declared return type continue to returnstring, while invalid type declarations are rejected during registration. JSON and CLOB arguments from SQL columns are now passed to functions as text. - Improved Kubling Studio. Module-provided SQL functions now show their complete
signatures and return types, JavaScript HTTP endpoints appear alongside query
and action endpoints, and structured or long result values can be opened in a
dedicated viewer. Query columns remain visible even when a
SELECTreturns no rows.
v26.5.1
- Fixed provider-backed
UPDATEandDELETEstatements for tables whose logical primary key is generated from provider fields. Kubling now resolves the provider-visible identity before issuing the mutation and rejects the statement without writing when the provider cannot represent the complete row filter in one request. - Fixed
schema.addColumnsfor providers that return Kubling DDL, so configured constant and generated columns are applied consistently whether schema discovery returns structured metadata or DDL.
v26.5
- Introduced Preview semantic federation, allowing each VDB to acquire, validate, compose and activate versioned semantic Modules and optional provider fragments.
- Added Logical Query v1, a structured query contract that Kubling validates against the active VDB catalog and semantic model before compiling it to SQL.
- Added the Preview native capability Task API for bounded
execution through an external agent runtime while preserving the initiating
caller and VDB policies. The legacy
/agent/*integration is deprecated. - Extended the Provider gRPC boundary with negotiated rich values and LOB reads and aggregate pushdown. Providers that do not advertise these capabilities retain their previous behavior.
- Expanded the gRPC client contract with session-scoped capability negotiation, generic streamed execution, structured errors, transaction status and LOB operations.
- Completed the Kubling naming migration.
Kubling-owned Java namespaces, JDBC identifiers and client property keys now
use Kubling names, while error identifiers use
KBLinstead ofTEIID. Existing Java integrations, native-client settings and monitoring rules must be updated.
v26.4
- Introduced the external gRPC provider mechanism, which moves source-specific connectivity, schema discovery and execution outside the Kubling engine.
- Removed the built-in
KUBERNETES,REDISandCASSANDRAdata source implementations. These integrations are now deployed independently and registered in Kubling asPROVIDER_GRPCdata sources. Existing VDBs must follow the provider migration guide.
v26.3
- Introduced the Preview gRPC client transport, with session-based authentication, streamed query results, statement execution, explicit transaction management, TLS, IP filtering, and transport observability.
- Added the RANDINT() and RANDLONG() functions for generating random integer and long values.
- Improved native binary compatibility with systems using 64 KB memory pages, preventing segmentation faults reported on some ARM64 environments, including Raspberry Pi 5.
v26.2.2
- Removed Java-related metrics from
SYSMETRICS.METRICS, as they do not provide meaningful information when running Kubling as a native binary image.
v26.2.1
- Improved isolation for unauthenticated HTTP requests by assigning each request a distinct anonymous identity.
v26.2
- Extended Script Endpoints security integration with support for authenticated execution context propagation.
- Introduced Performance Tracer, enabling low-level execution analysis and workload-based performance tuning.
- Added RocksDB-backed buffering capabilities for large temporary workloads and memory-constrained environments.
- Added native Kubling DDL support for Portable Local data sources, allowing schema definitions without relying on database-specific syntax.
- Introduced automatic schema documentation generation from configuration schemas.
v26.1.5
- Upgraded dependencies affected by critical vulnerabilities.
- Upgraded the JavaScript engine to improve throughput and reduce response time in cold execution contexts.
v26.1.4
- Fixed legacy Agent API context publication so system-table metadata is scoped to the selected Kubling instance.
v26.1.3
- Fixed Redis data-source queries composed exclusively of literals, expressions or functions.
v26.1.2
- Fixed scripted database operations so a missing VDB returns a clear error instead of exposing an internal exception.
v26.1.1
- Fixed a bug that prevented correct automatic column expansion in projections, leading to errors during row identity calculation.
- Fixed Soft Transactions continuing after a row lock could not be acquired, so the original locking failure is now reported immediately.
v26.1
- Soft Transactions now support simulated MVCC, enabling consistent read-your-writes semantics within a transaction when using deferred execution.
- Introduced row identity–based locking requirements for Soft Transactions. Tables participating in Soft Transactions must now define a usable primary key or unique key to allow deterministic row locking and versioning.
- Added crash recovery for pending compensations. When enabled at the application level, Kubling can detect and execute unfinished compensation commands during engine startup.
- The SNMP data source now supports UPDATE operations, allowing controlled mutation of writable managed values while preserving SNMP protocol semantics.
- The Modbus data source now supports UPDATE operations, enabling write access to device registers as part of SQL-based workflows.
- Introduced table handler auto-discovery for Script Data Sources, simplifying module structure by allowing handlers to be resolved automatically based on table names.
- Added support for generated keys propagation from Script Data Sources, enabling scripts to report generated identifiers back to the engine.
- Introduced the
MAIN_HTTP_PORTenvironment variable to explicitly control the port used by all HTTP-based engine services.
v25.6.1
- Fixed an out-of-memory failure when querying
POD_CONTAINERorPOD_CONTAINER_STATUSin native deployments. - Updated the Kubernetes base DDL.
v25.6
- Full support for OpenTelemetry added: logs, metrics, and traces can now be exported to remote collectors or observability platforms.
- Introduced the
SOFT_TRANSACTIONS.TXDBsystem table, exposing the current state and metadata of all registered Soft Transactions within the instance. - Added new exposed metrics related to the Buffer Manager and Soft Transactions for enhanced observability.
v25.5
- Added JavaScript HTTP endpoints, allowing you to define custom paths and handle them directly within your scripts.
- Added a new way of defining instrumentation at the application level, with support for OpenTelemetry and DataDog formats, including endpoints for pushing metrics.
- Added the
SYSREGISTRYsystem table, exposing instance identity and traceability metadata. - Added support for HTTP TLS certificates, affecting all HTTP-based endpoints.
- Changed the container base image to distroless CC to improve reliability on memory-constrained systems.
- Portable Local data source now supports flyway migrations.
- Fixed an issue with the MySQL data source that prevented Kubling from initializing correctly due to an incorrectly constructed connection string.
v25.4.3
- Kubling is now completely free, no more Community or Enterprise editions. A single, unified distribution going forward..
- Fixed batch/bulk
UPDATEhandling in theroutingdata source.
v25.4.2
- Enabled top-level comparison support for the
jsondata type, allowing standard operators (e.g.=) to be used directly in filters and joins involving JSON values. - Added automatic detection of the
jsonbdata type in PostgreSQL with implicit transformation using the::jsonbsuffix in pushed-down queries to avoid type-related errors. - Updated Kubernetes API support for compatibility with the latest version.
- Enabled implicit joins with multiple tables in
FROMfor PostgreSQL and MySQL queries whose execution plans were previously rejected. - Fixed an issue where prepared statement parameters were incorrectly skipped when
LIMITwas included as a parameterized value.
v25.4.1
- Fixed Cassandra data-source queries that could return only the first page of visible rows.
- Fixed an HTTP 500 response in the console when adding a data source.
v25.4
- Added support for SNMP.
- Added support for Modbus.
- Hardened native-client deserialization against unsafe object types and injection attacks.
- Added IP filtering per transport, supporting both CIDR whitelisting and blacklisting.
- Introduced two new traffic metrics (per transport) to track total bytes transferred.
- Added PostgreSQL system objects (tables and views) to support standard metadata queries. Now, universal DB tools like DBeaver should be able to retrieve database metadata when using the PG transport.
v25.3.6
- Fixed connection-pool exhaustion when metadata was read concurrently from
COMPOSITEdata sources.
v25.3.5
- Updated the Kubling engine libraries. See the related change.
v25.3.4
- Fixed
call_funccolumns using standard SQL functions when their input fields were not part of the requested projection. Kubling now includes the required fields without changing the result columns requested by the client.
v25.3.3
- Fixed Database data-source queries losing the schema portion of
NAMEINSOURCEbefore reaching the remote source.
v25.3.2
- Fixed spatial operations failing because required runtime types were missing from native images.
- Added support for using SQL functions within the DDL
call_funcdirective.
v25.3.1
- Fixed an issue that created the soft transaction row locks DB even when the feature was disabled at the application level.
- Added support to mark data sources as contributors to the global health check.
- Introduced the new
SYSMETRICS.DataSourcestable, which provides data source–level health status.
v25.3
- Implemented the Soft Transaction Engine
- Added
SYSMETRICS.Healthtable.
v25.2
- Introduced agentic endpoints that enable capability propagation to any upstream agent following the expected message contract.
- Fixed an issue in the Cassandra data source where Kubling SQL expressions like
field = field + 1were not correctly translated to Cassandra’s+=operator forCOUNTERfields. - Added support for defining properties directly in the application configuration, useful when an external properties file is not an option.
- Added caching support for the Redis data source, based on user feedback.
- Added support for Redis counter field types.
- Added the ability to transparently define table names as part of keys in Redis, to avoid mixing up entries when using
LIKE. - Added support for batch updates to the Redis data source (e.g., when performing a
SELECT ... INTO). - Added
importer.tableNamePatternto the Cassandra data type. - Added support for DataStax configuration file definition in the Cassandra data type.
v25.1.2
- Fixed an issue in the Cassandra Data Source that prevented
SELECTqueries from completing correctly when processing millions of tuples. - Fixed the
cosineDistancefunction, which failed when applied to high-dimensional vectors (1000+).
v25.1.1
- Fixed an issue where expiration was being ignored in the Redis data source during
UPDATEoperations on the hash data structure.
v25.1
- Introduced Redis as a new Data Source type.
- Introduced Cassandra as a new Data Source type.
- Introduced Composite as a new Data Source type.
- Introduced Routing as a new Data Source type.
- Enabled the definition of additional columns in Database Data Sources.
- Added query functions for basic vector operations.
- Documented the
TIMESTAMPADDandTIMESTAMPDIFFquery functions. - Introduced an HTTP endpoint to display query plans, similar to the
EXPLAINcommand in other database engines.
v24.5.7
- Added support for SQL query functions, defined in modules. Configuration mechanism has changed, please check it here
- Added Portable Local data source.
- Enhanced clarity and detail in error messages for critical failures.
v24.5.6
- It is now possible to use a parent field in a
synthetictable with the formatsynthetic_type 'parent', synthetic_parent_field 'another_field'in filters. - Descriptor Module Bundle now supports scheduled scripts, similar to other modules.
- Resolved Out-Of-Memory (OOM) problems encountered when running certain queries on the
KUBERNETESdata source. - Introduced a new environment variable flag,
KBL_SKIP_ENV_VAR_TEMP_FILE_ENCRYPTION, to prevent the local environment variable buffer file (used for restarting the instance) from being encrypted. This resolves issues where containers could not be stopped and restarted due to an invalid random key. - Enhanced the built-in DDL for the Kubernetes data source to cover reported use cases.
v24.5.5
- Introduced a new system schema called
SYSMETRICS, which includes a table namedMETRICSfor retrieving the engine’s metrics values. - Removed the metric
kubling.engine.sql.plan.enqueued_time.maxand replaced it withkubling.engine.sql.plan.enqueued.max.
v24.5.4
- Implemented the distinction between
passthroughand regular access in Database data sources. Therefore, you can now extend schemas also in these type of data sources. Learn more. - Added support for parameter lists in SQL functions.
- Updated function module loading (SQL and Template) to support multiple modules instead of a single one. Changes to naming resolution were introduced; read more here and here.
- It is no longer necessary to pass random values for generated fields in
INSERTandUPDATEoperations. The Query Engine now identifies and handles these fields automatically before executing the final command. - Fixed an issue that prevented the use of non-generated fields as filters with subqueries.
- Updated embedded web console to reflect the above-mentioned changes.
- Official images were renamed to
kubling/kubling-ceandkubling/kubling-cli.
v24.5.3
- Implemented Cache. See here.
- Added metrics to monitor Cache. See here.
- Implemented first-class Document functions. See here.
- Engine Stream Buffer can now use local disk. See the
bufferconfiguration option in the main application configuration. - Updated embedded web console to reflect the above-mentioned changes.
v24.5.2
- Added
blankNamespaceStrategyoption to the Kubernetes Data Source Configuration. - Added a new aggregator schema button in the console, under Virtual Databases.
- Fixed the JavaScript filesystem cache, which in some circumstances resulted in a false cache miss when the resource had been visited before, especially during
import. - Added
metadata__uidin all deployment relatedTABLE, in the built-in Kubernetes DDL
Last updated on