Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Table of Contents
The following release notes cover Qlik Catalog February 2023, both Initial Release and SR1. Resolved defects are also listed.
The entities published by a Publish Job are specified using a Dataset. Entities can be added to, and removed from, Datasets using the Discover module. However, until this release, a Dataset could not be altered if it was in-use by a Publish Job. This is now possible.
When an entity is added to a Dataset, and thus a Publish Job, its configuration in the Publish Job is cloned from another entity already in the Publish Job. If the Publish Job is scheduled, the schedule is updated to reflect the added or removed entity. Removing the last entity from a Dataset used in a Publish Job is prohibited.
A core_env property has been added to re-enable the legacy behavior:
# If true, an entity may be added to, or removed from, a dataset which is used in a publish job. The publish job
# will be appropriately updated. Note: a publish job cannot be left with no entities -- this will be rejected.
# Set to false for legacy behavior. Default: true.
#enable.dataset.modification.when.used.in.publish.job=false
Qlik Catalog now supports Publish to Power BI for three Microsoft cloud environments: Commercial, GCC (Government Community Cloud), and GCC High.
Three properties in the core_env.properties global configuration file are used to configure support for the desired Microsoft cloud environment.
The Catalog online help has been extensively revised to describe: (1) configuration for the three Microsoft cloud environments; and (2) use of the new Microsoft "App registration tool", which greatly simplifies the integration process. Please visit the February 2023 online help and search for "Publish to Power BI" and click the "Cart" result.
Qlik Catalog now includes enhanced cross-site scripting (XSS) protection. All persisted data directly input by an end user is checked for unrecognized script elements; if detected, these elements are safely escaped.
If the enhanced XSS protection is problematic, it may be disabled via a core_env property:
# Set to false to disable Cross-Site Scripting (XSS) protection. Disabling XSS protection is considered a
# security vulnerability. It should only be done when customer data requires unsafe embedded HTML or
# unrecognized XML/markup. Default: true
#enable.xss.protection=true
Standard upgrades of any vulnerable third-party dependencies were made.
Standard upgrades of Apache Tomcat and PostgreSQL (for first-time installs) were made.
Jira ID: QDCB-1220
The "Download Log" button, available on the Admin module's "Application Logs" tab, failed to download logs greater than 700MB. This issue has been addressed -- a log file will now begin to immediately download.
Jira ID: QDCB-1223
When exporting business metadata from the Admin module, the dropdown listing of possible sources did not contain QVD sources. This issue has been addressed.
Jira ID: QDCB-1224
When importing business metadata from the Admin module, the following error was seen when cells contained purely numeric data (e.g., 123456): "ERROR core.error.code.DYNAMIC_ERROR - Cannot get a STRING value from a NUMERIC cell". This issued has been addressed.
Jira ID: QDCB-1222
It is now possible to reference Discover module source and entity properties, including custom properties, from an Open Connector Publish Target's "Custom Script Command". For example, assuming the following:
then the following Publish Target "Custom Script Command" would retrieve the two properties and pass them to the script:
/usr/local/qdc/openConnectorPostgreSQL.sh %prop.publishSchemaName %prop.publishTableName %shippingLocation
The two custom properties can be created using the API tool found under Support / API Documentation, specifically the "property-definition-controller" /qdc/propDef/v1/save call -- here are the two payloads:
{ "name": "publishSchemaName", "displayName": "publishSchemaName", "description": "publishSchemaName", "type": "STRING", "defaultValue": "", "editable": true, "nullable": true, "applicableClasses": [ "com.nvs.core.model.meta.DataSource" ], "propertyCategoryMembers": [ "Source Props" ], "required": false}
and
{ "name": "publishTableName", "displayName": "publishTableName", "description": "publishTableName", "type": "STRING", "defaultValue": "", "editable": true, "nullable": true, "applicableClasses": [ "com.nvs.core.model.meta.DataEntity" ], "propertyCategoryMembers": [ "Entity Props" ], "required": false}
Here is the shell script:
#!/bin/bash
# uncomment for debug
set -x
schemaName=$1
tableName=$2
shippingDir=$3
# strip file:// prefix
shippingDir=${shippingDir#"file://"}
# uncomment for debug
#ls -la "$shippingDir"
# TODO: there may be multiple files exported to shippingDir; for now, one is assumed
files=$(ls "$shippingDir")
# uncomment for debug
#head "$shippingDir/$files"
# TODO: read password from secure location
export PGPASSWORD=password
# TODO: update psql path, database name, database user name, etc.
# could also pass some as additional properties / arguments to the script
/usr/local/opt/postgresql@11/bin/psql testdatabase -U postgres -c "COPY $schemaName.$tableName FROM '$shippingDir/$files' DELIMITER E'\t' CSV;"
Jira ID: QDCB-1209
When importing business metadata from the Admin module, the "Object Count" was previously zero. It now accurately reflects the count of imported rows. Please recall that there are two logs per import: one for the Source module EXTERNAL imports, and one for the Discover module INTERNAL imports.
Jira ID: QDCB-1213
When clicking a Global Search result for an EXTERNAL (Source module) entity, the resulting displayed entity's record counts were incorrectly shown as "N/A". This issue has been addressed.
Jira ID: QDCB-1225
A field validation pattern can be defined to validate data as it is loaded. For example, the following regular expression validates that an integer number is present:
When validation failed and "Ugly" data was detected, an incorrect error message was displayed, "value is not a valid fixed point with [precision,scale,roundingMode]". This has been corrected to be, "value does not match pattern":
Jira ID: QDCB-1215
Also released in August 2022 SR2 and November 2022 SR2.
When importing business metadata, if the "Overwrite Tags" checkbox was selected, all entity properties were removed. As these properties primarily control how an entity is loaded (e.g., property "src.file.glob"), data loads failed.
This issue has been addressed: the "Overwrite Tags" checkbox may now be safely selected.
Further, for JDBC entities, the missing properties are restored when the entity is next loaded. This repair is dependent on the entity retaining the original name of the JDBC relational table (i.e., the entity cannot have been renamed). The repair occurs for JDBC entities that are missing the "src.file.glob" property.
New logging has been introduced to validate that the two facets of the fix are present:
(1) When importing business metadata with "Overwrite Tags" selected, the following line of logging will be seen twice for each entity:
2023-02-02 15:49:26,712 INFO Entity properties were attached prior to clearing tags [MetadataLoaderSvcImpl[https-jsse-nio-8443-exec-1]]
(2) When loading JDBC entities that require repair, the following line of logging will be seen once per entity being repaired:
2023-02-02 15:50:48,523 INFO Restoring entity properties for podium_core.pd_group [MetadataLoaderSvcImpl[Podium-LOAD-2-podium_core_1215.pd_group.20230202155029]]
Jira ID: QDCB-1212
When a load job is run, whether loading a QVD or data from a JDBC source, a temporary CSV (comma-separated value) file is created in the "loadingdock" directory (by default, /usr/local/qdc/data/loadingdock). When a load job failed, Catalog was not deleting the temporary CSV file. The default behavior has been changed to always delete the temporary CSV file. To change this behavior, please find and edit the following core_env property:
# Decide if the loadingdock directory needs to be cleaned up after the data load process fails.
# Failed statuses [FAILED, FINISHED_WITH_FAILURES, FAILED_TO_LAUNCH].
# Setting to false may aid debugging failed loads.
# Default: true
#loadingdock.cleanup.required=true
Jira ID: QDCB-1211
If zero records were loaded by the latest load, the total counts for the entity were displayed as "N/A" rather than zero. This issue has been addressed. In the following Source module entity listing, the "N/A" text have been replaced by "0".
Jira ID: QDCB-1206
On loading a QVD, Discover module entity business metadata was being overwritten with Source module entity business metadata. This issue has been addressed.
Jira ID: QDCB-1210
A scheduled Publish Job failed when a REGISTERED entity required on-demand loading, due to an error evaluating user permission. This issue has been addressed.
NOTE: the fix for this requires the existing Publish Job (that is scheduled and does on-demand entity promotion) to be deleted and re-created.
Jira ID: QDCB-1205
If a JDBC driver had an alternative classpath set using SQL, editing the same driver in the UI under "Admin / Database Drivers" cleared the alternative classpath. This issue has been addressed.
Download this release from the Product Downloads page on Qlik Community.
About Qlik
Qlik’s vision is a data-literate world, where everyone can use data and analytics to improve decision-making and solve their most challenging problems. A private SaaS company, Qlik offers an Active Intelligence platform, delivering end-to-end, real-time data integration and analytics cloud solutions to close the gaps between data, insights and action. By transforming data into Active Intelligence, businesses can drive better decisions, improve revenue and profitability, and optimize customer relationships. Qlik does business in more than 100 countries and serves over 50,000 customers around the world.