kdb Insights Enterprise - Release Notes¶
This page details the release notes for the latest kdb Insights Enterprise releases. To find the release notes for an older release, refer to the Previous Releases page.
1.19.0¶
Release date: 2026-06-18
kdb Insights Enterprise 1.19 focuses on developer extensibility and pipeline manageability. This release introduces KDB-X module support and Python library loading in UDFs and UDAs, pipeline organization with tags and folders, configurable per-view query timeouts, and a broad set of database stability improvements. It also makes Demo Views an optional deployment component and replaces the default ingress controller with the F5 community edition.
Breaking Changes and Upgrade Notes
Ingress-nginx Controller Replacement
The default ingress controller has changed from the Ingress NGINX community edition to the F5 NGINX edition. Deployments using the previous controller must migrate before upgrading to 1.19.
Uninstall the existing ingress-nginx controller and install the F5 NGINX edition before upgrading. See the F5 ingress controller migration guide for step-by-step instructions.
Kubernetes Secrets Encryption on Azure
Enabling secrets encryption on Azure switches the AKS cluster identity from SystemAssigned to UserAssigned. This is a breaking change for existing clusters and forces cluster recreation. If you are enabling this on an existing deployment, you must destroy the cluster first and re-deploy.
Packages
Package YAML files no longer include a UUID. The package name is now used as the unique identifier when pushing — any UUID present in the YAML is ignored. UUIDs are still used internally by the server and remain available via the API.
New Features¶
-
Custom module support in IE using KDB-X
KDB-X modules let you package reusable q code into self-contained units with their own namespaces, then share them across UDAs, pipelines, and Scratchpad sessions as declared dependencies. This eliminates code duplication and makes common logic easier to maintain across packages.
Refer to KDB-X modules for a step-by-step guide.
-
Pipeline Tags and Folders
Pipelines can now be organized with folders and tags, making it easier to navigate and manage large numbers of pipelines. Refer to Folder and Tags for more details.
-
Configurable Timeout for Views
Each data source now has a Timeout field, allowing per-view query timeouts to be set independently. See View Timeouts for details.
-
Optional installation of Demo Views
Demo Views are now an optional deployment component. Refer to Demo Views configuration for details.
When installed, Demo dashboards are hidden from the main Views list but remain accessible from the Demos folder in the left-hand navigation tree.
Improvements¶
1.19 brings a broad set of improvements across the product. Database changes focus on operational flexibility — finer control over memory allocation, garbage collection, and reference data retention — alongside expanded SQL2 and API support. Package Manager gains Python wheel support and high availability by default. The Web Interface removes friction around view sharing, schema loading, and pipeline configuration. Expand the following sections for more details.
Database
-
The Storage Manager now retains the reference data tables in the last N IDB(s). This prevents long-running queries from failing when they span an interval boundary. To do this, add the
KXI_SM_EOI_RETAIN_REFenvironment variable, which gives the number of IDB intervals to retainrefdatasnapshots for. -
The new
kxi_sm_eod_start_countmetric, used alongside withKXI_SM_EOD_COUNT, lets you identify when an EOD is still in progress or has taken longer than expected. -
The End-of-Interval Rollover Delay can now be configured in the Database Settings of the Web Interface. Refer to Database Settings for details.
-
Timeout messages from the Resource Coordinator now include the timeout value used in the request to assist with debugging.
-
UDAs now support default values for distinguished arguments, allowing the target database or table to be pre-set rather than requiring the user to specify it on every call.
-
For the
kxi-da-singleimage, you can now set individual memory allocation of subprocesses viaKXI_DA_{MOUNT}_MEM_PERCENTAGE. For example: If there is an RDB mount settingKXI_DA_RDB_MEM_PERCENTAGEto 20, the RDB sets its-wparameter to be 20% of the total memory allocated on the container. -
Added
limit,inputTZ,outputTZandoutputTZColsas supported parameters for the DB Reader API. Refer to the DB Reader for more details. -
Added TCP keepalive to connections opened between data services processes. This helps to ensure that the Storage Manager and DAPs are able to handle an EOD or batch update during long-running requests
-
UDAs now support
.pyextensions in addition to.p, making it easier to work with standard Python tooling. -
Added support for SQL2 cast expressions using
x::typesyntax. See SQL Functions for details. -
You can now set the garbage collection mode via environment variables in SM, DAPs, Agg, and RC processes. The environment variable is
KXI_GC_MODEand can be set to0or1as defined in the q garbage collection reference. On containers hosting multiple processes, process-specific overrides are also supported. For example, settingKXI_GC_MODEto1andKXI_RDB_GC_MODEto0on akxi-da-singlecontainer configures immediate GC for IDB/HDB and deferred GC for the RDB. -
Added support for fractional GB values in the
KXI_SM_EOD_SORT_LIMITandKXI_SM_EOI_SORT_LIMITenvironment variables, allowing memory limits to be specified below 1 GB.
Package Manager
-
kxi pm deploy <object>now prints the same information askxi pm list deploymentfor ease of use. -
The
kxi pm workloadcommand now has the capability to add group metrics and group storage without having to add a workload at the same time. Refer to KDB-X Workload Development for details. -
kxi pm pushnow accepts Python wheels, allowing you to upload Python artifacts for usage within packages to kdb Insights Enterprise. Refer to Push Python wheel files for details. -
The Package Manager now uses a 3-replica High Availability setup by default.
-
You can now load and use Python libraries in User-Defined Functions and Analytics. Refer to the Python walkthrough for details.
Web Interface
-
All users users can now share read-only Views. Only
Developeror higher-permissioned roles have the ability to edit, create, or delete a view. -
The Load Schema dialog now includes search and alphabetical ordering in the database and table dropdowns, making it faster to locate the right schema.
-
Console auto-scroll can now be disabled via the context menu.
Pipeline Builder
-
When deploying a pipeline from the web interface that has a SQL Server, PostgreSQL or MQTT node, the web interface will prompt for a password. The password can now be retrieved from an environment variable with the name provided in a Password Variable field specified as part of the Reader. Environment variables can be defined from Kubernetes secrets, then referenced from password fields, as described here. This allows you to run the pipelines without needing to input the password at deploy time.
If no Password Variable is specified, the popup is displayed as before.
-
A Variable Writer is now available on the web interface.
Stream Processor
-
When using a proxy, the MQTT Broker can now be deployed outside of the kdb Insights Enterprise cluster.
-
The Kafka reader now supports subsets of partitions.
-
Multiple kdb Insights Database Writers both using direct write can now be added to a single pipeline.
Command Line Interface
-
kxi obs eventshas been added to thekxi obscommand, allowing Kubernetes events to be extracted directly from the CLI. -
kxi obs podshas been added to thekxi obscommand, returning a list of pods that can be used to filter log output. -
Added
kxi query udato discover and run UDAs from the CLI.kxi query --sqlis also now documented for running SQL queries from the CLI. The kdb Insights Python API also includes this capability.
Python API
-
All public kdb Insights Python ApiClient subclasses (Query, ClientController, EntitlementService, WorkloadClient, ObservabilityService, InformationService, GroupManager, ClientManager, PackageManagerClient, UserManager) now have class-level docstrings with descriptions and code examples.
-
UDAs can now be discovered and run via the kdb Insights Python API.
Installation and Upgrade
- The Configuration guide now documents all fields available in the
values.yamlfile used for installation and upgrades.
Terraform Scripts
-
The default Kubernetes version has been updated to 1.35.
-
Internal Load Balancer support has been added for GCP deployments.
-
The upgrade guide now covers upgrading third-party dependencies on AWS clusters.
-
The configuration guides now covers enabling encryption on Kubernetes secrets across AWS, Azure, and GCP. Note that enabling this on Azure is a breaking change — see Breaking Changes at the top for details.
Fixes¶
1.19 resolves a significant number of Database issues, particularly around Storage Manager stability during EOD processing, batch delete reliability, and query correctness. Stream Processor fixes address coordinator connectivity and S3 authentication issues. Web Interface fixes tighten validation and deployment controls across the database and pipeline editors. Expand the following sections for more details.
Database
-
The Resource Coordinator now immediately fails any in-flight request if a DAP runs out of memory and crashes, rather than waiting for a timeout.
-
Fixed an issue where queries combining
count(*)withLIMITcould return incorrect results. -
Fixed an issue where the Storage Manager could fail to start after all tables with symbol-type columns were deleted and a new one was added.
-
Fixed an issue where the qIPC header was not being correctly removed from struct-text responses.
-
Fixed an issue where the Storage Manager would stop processing EODs after a failed dispatch on a closed connection, requiring a manual restart to recover.
-
Fixed an issue where disabling encryption on a database prevented it from starting.
-
Fixed an issue where a batch delete would fail with a
{{Cannot delete from RDB tier}}error when performed after an emergency EOI. -
Fixed an issue where setting a
limitvalue greater than the payload size when callinggetdatacaused an error. -
Fixed an issue where the Storage Manager could not process a schema change because the DB-conversion EOI signal was being replaced by a regular EOD signal and not published.
-
Fixed an issue where batch delete could skip some date partitions due to an incorrectly triggered optimization.
-
Fixed an issue where the
getMetaAPI could fail with ano_labelserror when multiple RCs were present and one had no DAPs assigned. -
Fixed an issue where UDAs would stop working in DAPs following a package reload.
-
The Aggregator and Resource Coordinator now fail fatally if a package fails to load, preventing these components from starting in an inconsistent state.
-
Fixed an issue where a non-recoverable error during a batch update would cause the next EOD to exit rather than perform cleanup.
-
Fixed an issue where SQL2 did not correctly handle scalar extensions when no columns were present in the aggregation clause.
Stream Processor
-
Fixed an issue where the Stream Processor Coordinator was unable to resolve the controller host name.
-
Reduced repetitive log output when the Stream Processor Coordinator loses connection to the controller.
-
Improved argument handling and documentation for the Transform Schema operator.
-
Fixed an issue where EKS service account authentication was failing for the v2 S3 Reader.
-
Fixed an issue where the v2 Stream Writer would error on restart if checkpoints had been cleared.
Web Interface
-
You can now save a pipeline with no values set of Persistence, Worker Scaling and Controller and Worker Resouces and these values are defaulted by the Stream Processor.
-
When running queries or expressions in the scratchpad on the Query tab, the results in the console are no longer prefixed with the source expression by default. This behavior can be toggled by right clicking the console and clicking "Toggle source expressions".
-
The Database settings page now highlights invalid labels and prevents the database from being saved or deployed until they are corrected.
-
The Deploy button is now disabled on the side nav and database list page if a database has unsaved changes or is invalid, preventing deployment until the issues are resolved.
-
Fixed an issue where the Streams dropdown in the Pipeline editor showed duplicate entries when multiple versions of a package were present.
-
Fixed an issue in the Basic tab of the Query Window where the Filter Labels option only included one database in the dropdown even if multiple databases included the selected table.
-
Fixed an issue where
kxi monitoring installfailed to correctly install the Grafana dashboards on Azure when a proxy was in place.
Package Manager
-
Fixed an issue where the Package Manager API always defaulted to the latest version. Precedence is now running > latest across all API endpoints, with the exception of kxi pm pull, which continues to pull latest when no version is specified.
-
Fixed an issue where
kxi pm loadwas ignoring the version specified and always reloading the current version.
Scratchpad
- The
.com_kx_edi.getMetaScratchpad query API now supports V3 with an optionalversionparameter. Existing v1 behavior is preserved.
Reliable Transport
- Fixed an issue where multiple writers in the RT C language interface could write to the same log file simultaneously.
- Fixed an issue where a power outage caused a corruption on a client side subscriber log.
Deprecations¶
- The Minimum Workers field has been removed from Pipeline Settings as the option is deprecated — the value is now always set to 1.
Third-party Dependencies¶
kdb Insights Enterprise 1.19.0 standalone install supports the following versions of third-party dependencies:
These versions are used in the 1.19.0 release of the standalone infrastructure installation scripts.
For important information on supported versions, see the following pages:
Artifacts¶
| Type | Nexus location | Downloads Portal location |
|---|---|---|
| Enterprise | insights-1.19.0.tgz | insights-1.19.0.tgz |
| Operator | kxi-operator-1.19.0.tgz | kxi-operator-1.19.0.tgz |
| CLI | kxicli-1.19.0-py3-none-any.whl | kxicli-1.19.0-py3-none-any.whl |
| RT q interface | rt.1.19.0.qpk | rt.1.19.0.qpk |
| RT C interface | kxi-c-sdk 1.19.0 | kxi-c-sdk 1.19.0 |
| RT Python interface | kxi-rtpy-1.14.0 | kxi-rtpy-1.14.0 |
| RT Java interface | kxi-java-sdk 1.16.0 | kxi-java-sdk 1.16.0 |
| RT C# interface | kxi-csharp-sdk 1.18.0 | kxi-csharp-sdk 1.18.0 |
| Infrastructure | kxi-terraform-1.19.0.tgz | kxi-terraform-1.19.0.tgz |
| kxi-management-service | kxi-management-service-1.1.5.tgz | kxi-management-service-1.1.5.tgz |
| insights-on-k8s | insights-on-k8s-1.1.44.tgz | insights-on-k8s-1.1.44.tgz |
We look forward to bringing you even bigger features in kdb Insights Enterprise, coming soon!