Changes in 4.2.1

Release management/Git integration

The ability to pull and push to SSH repositories has been added. The implication is that either all users share the common platform SSH key in ~/.ssh/id_rsa or the user provides a file path to their own key. SSH is currently not supported on Windows. It may be added in a subsequent release.

You can also now specify the author name and email when committing. This helps the back end git implementation match up the expected user making the commit vs the commit showing up from an unmapped or unknown user.

Updated information can be found in the Release Management.

Improved web-app security

On a secure (https) deployment, all web pages served now include cache-control:no-cache and pragma:no-cache HTTP headers.

(Previously only pages under the ROOT application included these headers)

Permissions

Added instance parameters to manage permission handlers and query logging.

parameter type default description
.pm.async.enabled boolean false Enable permissions on async queries
.pm.async.logEnabled boolean false Enable query logging of async queries
.pm.sync.disabled boolean false Disable permissions on sync queries
.pm.sync.logDisabled boolean false

The following APIs have been deprecated as a result;

  • .pl.disablepermissions
  • .pl.disablepermissionsAsync
  • .pl.disablequerypermissions
  • .pl.enablepermissionsAsync
  • .pl.disablequerylogging
  • .pl.disablequeryloggingAsync
  • .pl.enablequerylogging
  • .pl.enablequeryloggingAsync

Url shortening

Dashboard urls can now be shortened. To enable this go to the basics section of the dashboard design editor. There will be a checkbox, Enable "Share Dashboard".

Screenshot

In the Manage My Dashboards pop-up select the dashboard which sharing has been enabled for and click view on web.

Screenshot

There will be a share button which will generate a short url for the dashboard.

Screenshot

Kdb+ 3.6

4.2.1 supports Kdb+ 3.6. The changes in this vesion of Kdb+ are outlined on code.kx.com here.

There are several areas in the 3.6 version of kdb which are not upwardly compatible. For details see code.kx.com here.

As noted in the not upwardly compatible concerns some file formats have changed in version 3.6. 3.6 can read all file formats 3.5 can. However, anywhere upserts to disk occur where files written in the old format are added to will require upgrade. Users must upgrade their own data.

Kx Platform tables which require this upgrade (local repo and action tracker tables), are upgraded automatically using a script. This upgrade script is available in the KDBPLUS_3_6_0 package. The script could be used to upgrade user's data. One area requiring upgrade could be data written to disk by the Log Recovery process.

For more details on the platform upgrade procedure see the platform deployment guide. This will be on nexus in the KxDocs, Deployment Guides section.

Miscellaneous

Schema meta

When loading schemas to an instance from Control, the .schema namespace will be populated with meta information. Two structures are maintained;

 .schema.cols[`dxAlert]
 /=> `time`sym`alertkey`triggered`source`tag1`tag2`description`data

 .schema.tab[`dxAlert]
 /=> time sym alertkey triggered source tag1 tag2 description data
 -------------------------------------------------------------

These are both populated whether the schemas are assigned via the Control UI or loaded via API calls.

Table housekeeping

Framework added to perform housekeeping on in-memory tables to reduce their size and prevent memory bloating. Allows the user to specify when and how frequently to run, and what tables to run on. For each table, the number of hours to keep and row threshold can be specified.

See the Housekeeping section for more information.

This functionality deprecates the following APIs;

  • .pl.disablequeryloghousekeeping
  • .pl.enablequeryloghousekeeping

Configuration

The ability to subscribe to all overrides of a configuration parameter including newly added overrides has been added to processes.

Configuration section of the Kx Control Template API for details of how to subscribe from a process.