Changelog

New API - Transport

Transport API

The Transport API is the service responsible for managing notification channels and email configurations for the sending of system notifications, as well as updates from analytics services in the hub, such as data alerts and subscriptions.

These notifications provide users with information about events such as failed reloads, users being added to spaces, data alerts being triggered, and regular subscription snapshots being sent to subscribers. Note that any workflows running in application automation (including the report blocks) will use their own SMTP/ email configuration - only system notifications from application automation will be sent via the transport API.

The endpoints in this release provide the ability to configure and review the email server configuration for this service, including the following examples:

  • GET/v1/transports/email-config : Returns the email configuration for a given tenant id.
curl "https://your-tenant.us.qlikcloud.com/api/v1/transports/email-config" \
 -H "Authorization: Bearer <API-key>""
  • PATCH/v1/transports/email-config : Patch the email configuration for a given tenant id.
curl "https://your-tenant.us.qlikcloud.com/api/v1/transports/email-config" \
 -X PATCH \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: application/json" \
 -d 
 '{
    "op": "replace",
    "path": "/username",
    "value": "New name"
  }'
  • DELETE/v1/transports/email-config: Deletes email configuration for a given tenant id.
curl "https://your-tenant.us.qlikcloud.com/api/v1/transports/email-config" \
 -X DELETE \
 -H "Authorization: Bearer <API-key>" \
  • POST/v1/transports/email-config/actions/send-test-email : Send a test mail with the supplied email info(subject, body, recipient).
curl "https://your-tenant.us.qlikcloud.com/api/v1/transports/email-config/actions/send-test-email" \
 -X POST \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: application/json" \
 -d '{
     "body":"string",
     "subject":"string",
     "recipient":"string"
     }'
  • POST/v1/transports/email-config/actions/validate : Returns the isValid value for the email configuration for the tenant. Will return false if no email configuration exists.
curl "https://your-tenant.us.qlikcloud.com/api/v1/transports/email-config/actions/validate" \
 -X POST \
 -H "Authorization: Bearer <API-key>" \
  • POST/v1/transports/email-config/actions/verify-connection: Verifies connection to email server for tenant provided via JWT.
curl "https://your-tenant.us.qlikcloud.com/api/v1/transports/email-config" \
 -X POST \
 -H "Authorization: Bearer <API-key>" \

See full API reference here

API rate limit enforcement on Qlik Cloud goes into effect 01-November-2022

Beginning November 1, 2022, Qlik is enforcing rate limits to API requests on Qlik Cloud REST APIs. This means any API request originating to a REST API endpoint on Qlik Cloud is subject to rejection if the number of requests to an endpoint exceeds the allowed amount in a specified duration on that endpoint.

NOTE: Read on to learn more about how you may be impacted by API rate limits.

Learn more about API rate limiting at these resources:

Nebula Updated

Nebula version 3.0

The 3.0 version of Nebula has been released. It contains bug fixes, dependency updates and a few new features. Below are select updates since version 2.0

v3.0

  • Minor bugfixes and dependency updates.

  • Updated to internally use material UI v5 and React 18.

  • Engima Mocker:

    • New experimental API that allows examples and tests to run without a Qlik Sense Engine You can see source and documentation here
  • Improved support for qListObject in Nebula serve dev enviroment.

    • Supernovas/Extensions using qListObject data works better with automated property panel.
  • Updated visualisations. New charts have been added and feature updates made to others. For instance:

More Options

  • v2.5: DisableCellPadding: reduces padding around visualistions see here

  • Listbox: see here

    • v2.6: dense: reduces padding and text size
    • v2.7: frequencyMode: Shows frequency count of values
    • v2.9: checkboxes: Shows values as checkboxes.

Typescript Support

  • v2.4: Typescript support
    • Nebula now comes with defined types and the build command now supports visualisations that use typescript.

Read more here

New APIs - AutoML Dataset Predictions, AutoML Real-time Predictions

AutoML Dataset Predictions

This API allows the creation and manipulation of machine learning models, and generation of predictions.

With AutoML Dataset Predictions you can:

  • GET/api/v1/automl-predictions/{predictionId}/coordinate-shap: Return a file containing the shapley values in coordinate form that are associated with a predictionId.
curl "https://your-tenant.us.qlikcloud.com/api/v1/automl-predictions/{predictionId}/coordinate-shap" \
 -H "Authorization: Bearer <API-key>"
  • POST/api/v1/automl-predictions/{predictionId}/jobs : Retrieve jobs that are associated with a prediction.
curl "https://your-tenant.us.qlikcloud.com/api/v1/automl-predictions/{predictionId}/jobs" \
 -X POST \
 -H "Authorization: Bearer <API-key>"
  • GET/api/v1/automl-predictions/{predictionId}/predictions: Return a file containing the predicted values that are associated with a predictionId.
curl "https://your-tenant.us.qlikcloud.com/api/v1/automl-predictions/{predictionId}/predictions" \
 -H "Authorization: Bearer <API-key>"

And more, see full API reference here

AutoML Real-time Predictions

With AutoML Real-time Predictions you can:

  • POST/api/v1/automl-deployments/{deploymentId}/realtime-predictions: Generate predictions in a synchronous request and response.
curl "https://your-tenant.us.qlikcloud.com/api/v1/automl-deployments/{deploymentId}/realtime-predictions" \
 -X POST \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: application/json" \
 -d '{"schema":{"rows":[],"schema":[{"name":"string"}]}}'

See API reference here.

New API - Lineage

Lineage

The Lineage API enables users to keep track of the origins and impacted content of the base objects on resource, table, and field levels.

Additionally, the Lineage API supports search, expansion, and overview on the nodes within input and output graphs.

With this API you can:

  • GET/v1/lineage-graphs/nodes/{id}: Returns a lineage graph of a source node.

{id}is the QRI of the base node

curl "https://your-tenant.us.qlikcloud.com/api/v1/lineage-graphs/nodes/{id}" \
 -H "Authorization: Bearer <API-key>"
  • GET/v1/lineage-graphs/impact/{id}/source : Returns all levels of the requested root node. {id}is the QRI of the base node
curl "https://your-tenant.us.qlikcloud.com/api/v1/lineage-graphs/impact/{id}/source" \
 -H "Authorization: Bearer <API-key>"
  • POST/v1/lineage-graphs/nodes/{id}/overview: Update lineage flag for this request. {id}is the QRI of the base node
curl "https://your-tenant.us.qlikcloud.com/api/v1/lineage-graphs/nodes/{id}/overview" \
 -X POST \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: application/json" \
 -d '{
        "":[]
    }'
  • GET/v1/lineage-graphs/impact/{id}/overview: Returns all resource level nodes that are impacted by a change in the source node. {id}is the QRI of the base node
curl "https://your-tenant.us.qlikcloud.com/api/v1/lineage-graphs/impact/{id}/overview" \
 -H "Authorization: Bearer <API-key>"

And more, see full API reference here

You can also read more in this tutorial

New API - Reload tasks

Reload tasks

Reload-tasks are the resources of reload tasks. With this API you can:

  • GET/v1/reload-tasks: Find and return the tasks that the user can access.
curl "https://your-tenant.us.qlikcloud.com/api/v1/reload-tasks" \
 -H "Authorization: Bearer <API-key>"
  • POST/v1/reload-tasks : Create a task for a specified app.
curl "https://your-tenant.us.qlikcloud.com/api/v1/reload-tasks" \
 -X POST \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: application/json" \
 -d '{
  "appId": "116dbfae-7fb9-4983-8e23-5ccd8c508722",
  "partial": true,
  "timeZone": "string",
  "autoReload": true,
  "recurrence":
  [
    "FREQ=DAILY;BYHOUR=8;BYMINUTE=0;BYSECOND=0",
    "FREQ=WEEKLY;BYHOUR=10;BYMINUTE=0;BYSECOND=0"
  ],
  "endDateTime": "2018-11-09 14:46:07.697 +0000 UTC",
  "startDateTime": "2018-11-09 14:46:07.697 +0000 UTC",
  "autoReloadPartial": true,
  "type": "scheduled_reload"
}'
  • PUT/v1/reload-tasks/{taskId}: Update an existing task.
curl "https://your-tenant.us.qlikcloud.com/api/v1/reload-tasks/{taskId}" \
 -X PUT \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: application/json" \
 -d '{
  "appId": "116dbfae-7fb9-4983-8e23-5ccd8c508722",
  "partial": true,
  "timeZone": "string",
  "autoReload": true,
  "recurrence":
  [
    "FREQ=DAILY;BYHOUR=8;BYMINUTE=0;BYSECOND=0",
    "FREQ=WEEKLY;BYHOUR=10;BYMINUTE=0;BYSECOND=0"
  ],
  "endDateTime": "2018-11-09 14:46:07.697 +0000 UTC",
  "startDateTime": "2018-11-09 14:46:07.697 +0000 UTC",
  "autoReloadPartial": true,
  "state": "Disabled"
}'

See full API reference here

Deprecation of the evaluations API

The /evaluations API, used to queue evaluations of Sense apps and retrieve various performance metrics, is being deprecated in favor of new API endpoints more consistent with the rest of the Qlik Cloud platform. The affected API endpoints are:

Migrating to the new endpoints

The capability is not being removed, and the full list of new endpoints can be found on the API reference page for apps.

In summary, the notable changes to the capability except for new paths are:

More information regarding how Qlik deprecates APIs can be found in the API policy.

qlik-cli 2.15.0 released

Changes in v2.15.0

  • Support for the new automation API with the automation command

    # get an automation
    qlik automation get <automationId>
    # list automation runs
    qlik automation run ls --automationId <automationId>

    See the command documentation here

  • Fix: Fail before request on missing path parameter

    qlik item update itemId --file ./my_file
    # now output an explicit error message about required parameters
    Error: required flag(s) "resourceType" not set
  • Fix: correct output when using the --json for errors

    qlik extension get don_t_exists --json
    # now outputs json ready to be parsed
    {
        "status": 404,
        "title": "Not found"
    }

New APIs - Web-integrations, CSRF-token and Tenants

Web-integrations

A web integration is a resource representing a list of whitelisted origins that can make requests to a specified tenant. It is the implementation of the CORS mechanism within Qlik Sense SaaS.

With this API you can;

  • POST/web-integrations: Creates a web integration.
curl "https://your-tenant.us.qlikcloud.com/api/v1/web-integrations" \
 -X POST \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: application/json" \
 -d '{"name":"My Web Integration","validOrigins":["https://thirdPartyApp.com"]}'
  • GET/web-integrations/{id} : Retrieves a single web integration by ID.
curl "https://your-tenant.us.qlikcloud.com/api/v1/web-integrations/{id}" \
 -H "Authorization: Bearer <API-key>"
  • DELETE/web-integrations/{id}: Deletes a single web integration by ID.
curl "https://your-tenant.us.qlikcloud.com/api/v1/web-integrations/{id}" \
 -X DELETE \
 -H "Authorization: Bearer <API-key>"

And more, see full API reference here

CSRF Token

This API is used to interact with the CSRF token resource in Edge Auth in Qlik elastic environments.

  • GET/csrf-token: Returns CSRF token via the qlik-csrf-token header.
curl "https://your-tenant.us.qlikcloud.com/api/v1/csrf-token" \
 -H "Authorization: Bearer <API-key>"

See API reference here

Tenants

Tenants is the resource representing a tenant.

  • POST/tenants: Creates a tenant.
curl "https://your-tenant.us.qlikcloud.com/api/v1/tenants" \
 -X POST \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: application/json" \
 -d '{"licenseKey":"string"}'

See API reference here

qlik-cli 2.14.3 released

2.14.3

  • New: Commands have been updated to reflect the latest API changes.

New API: Users

Updated: Spaces

Updated: Collections

  • New: OAuth 2.0 machine-to-machine support. Users are now able to authorize with Qlik Cloud SaaS over client credentials flow.

  • New: Added command for tenant creation.

qlik tenant create Note: This only works with specific entitlements such as an active subscription with the multiple tenants entitlement.

  • New: Added commands for web-integrations management. Web-integrations enable users to manage whitelisted origins that can make requests to a specified tenant (CORS).
qlik web-integration create --name myAllowList --validOrigins "https://www.google.com"
# returns a web-integration id
{
  "created": "...",
  "createdBy": "***********mSUL6MIzchD_",
  "id": "DSghcTBrzTkJBCN53IjQatRUWIJkvbno",
  "lastUpdated": "...",
  "name": "myQllowList",
  "tenantId": "**********PMZOEbLC9z52Op_G",
  "validOrigins": [ "https://www.google.com" ]
}
  • New: Added commands for groups and roles management.
qlik role ls | jq '.[] | select(.name | contains("AnalyticsAdmin"))'
# returns object with role permission for AnalyticsAdmin
{
  "createdAt": "...",
  "description": "...",
  "id": "********36af85d",
  "lastUpdatedAt": "...",
  "level": "admin",
  "name": "AnalyticsAdmin",
  "permissions": [...]
}
qlik group ls
# fetch existing groups
[
  {
    "createdAt": "...",
    "id": "*********df6c8fc0b36c",
    "lastUpdatedAt": "...",
    "name": "Administrators",
    "status": "active",
    "tenantId": "*****OVEWVPMZOEbLC9z52Op_G"
  },
  ...
]

To update to new version, use the command qlik update

previous version updates:

2.13.0

  • Fix: Added qlik-cli to User-Agent header
  • Fix: Creating IdP fo type JWTAuth now works identity-provider create jwtauth

Click to view full changelog updates

API Updates - Users, Groups and Roles

NEW API: Roles

You're now able to list all assignable roles within your tenant.

curl "https://your-tenant.us.qlikcloud.com/api/v1/roles" \
 -H "Authorization: Bearer <API-key>"
# Http 200 - Ok
{
  "data": [
    {
      "id": "605a18af2ab08cdbfad09259",
      "tenantId": "",
      "name": "AnalyticsAdmin",
      "description": "",
      "type": "default",
      "level": "admin",
      "permissions": [
        "automation:delete",
        "automation:disable",
        "automation:enable",
        "automation:list",
        ...
      ],
      "createdAt": "2021-03-23T16:34:55.401Z",
      "lastUpdatedAt": "2022-04-29T12:06:44.246Z",
      "links": {
        "self": {
          "href": "https://your-tenant.us.qlikcloud.com/api/v1/roles/605a18af2ab08cdbfad09259"
        }
      }
    },
    ...
  ]
}

For the complete list of supported features, please see the Roles API specifications.

NEW API: Groups

You're now able to view groups within your tenant.

curl "https://your-tenant.us.qlikcloud.com/api/v1/groups" \
 -H "Authorization: Bearer <API-key>"
# Http 200 - Ok
{
  "data": [
   {
      "id": "603e591b00d28755ad41bd3b",
      "tenantId": "kg1knZuzosd7LR-CfvV7====tenantID",
      "createdAt": "2021-03-02T15:26:19.724Z",
      "lastUpdatedAt": "2021-03-02T15:26:19.724Z",
      "name": "Finance",
      "status": "active",
      "assignedRoles": [
        {
          "id": "60804cf8a77b649c66733f65",
          "name": "Developer",
          "type": "default",
          "level": "user"
        }
      ],
      "links": {
        "self": {
          "href": "https://your-tenant.us.qlikcloud.com/api/v1/groups/603e591b00d28755ad41bd3b"
        }
      }
    },
    ...
  ]
}

For the complete list of supported features, please see the Groups API specifications.

API DEPRECATIONS: Users

With the release of the new roles and groups APIs, a set of users features are being deprecated. As of November 1, 2022 they will no longer be available. Please ensure to follow the migrations to avoid any downtime.

ENDPOINT: GET /users/metadata

Support for this endpoint is being removed. The role names can now be retrieved from the list roles endpoint.

ATTRIBUTE: roles

Support for user.roles is being removed and replaced with user.assignedRoles. Each assigned role reference maps to an instance of a role object.

curl "https://your-tenant.us.qlikcloud.com/api/v1/users/me" \
 -H "Authorization: Bearer <API-key>"
# Http 200 - Ok
{
  ...
  "roles": [
    "TenantAdmin",
    "Developer",
  ],
  "assignedRoles": [
    {
      "id": "60804cf8a77b649c66733f60",
      "name": "TenantAdmin",
      "type": "default",
      "level": "admin"
    },
    {
      "id": "60804cf8a77b649c66733f65",
      "name": "Developer",
      "type": "default",
      "level": "user"
    }
  ]
}

ATTRIBUTE: created, lastUpdated

The attributes created and lastUpdated are being renamed to createdAt and lastUpdatedAt respectively.

PATCH OPERATIONS & PATHS VALUES

Support for the operations set, unset and add are being removed. It's recommended to use the operation replace for modifying the assigned roles.

Additionally, the path /roles is being deprecated in favor of using /assignedRoles

curl "https://your-tenant.us.qlikcloud.com/api/v1/users/123456789012345678901234" \
 -X PATCH \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: application/json" \
 -d '[
    {
      "op": "replace",
      "path": "/assignedRoles",
      "value": [
        { "id": "60804cf8a77b649c66733f60" },
        { "id": "60804cf8a77b649c66733f65" }
      ]
  ]'
# Http 204 - No Content

SORTING

Support for the sorting attributes sortBy and sortOrder is being removed and replaced with sort. This query parameter can be prefixed with +/- to indicate the sort order.

Examples:

  • sort=+name
  • sort=-name
  • sort=name

PAGINATION

The pagination query parameters startingAfter and endingBefore are being renamed to next and prev respectively.

QUERY PARAMETER: tenantId

The query parameter tenantId is no longer required and will default to the tenant being accessed.

QUERY PARAMETER: subject, email, status, role

These four user attributes are no longer supported as query paremeters when querying users.

curl "https://your-tenant.us.qlikcloud.com/api/v1/users?subject=1234567890&email=john.smith@corp.example&status=active" \
 -H "Authorization: Bearer <API-key>"

You can now perform the same query using the filter query parameter.

curl "https://your-tenant.us.qlikcloud.com/api/v1/users?filter=subject eq "1234567890" and email eq "john.smith@corp.example" and status eq "active" \
 -H "Authorization: Bearer <API-key>"

For more complex filtering, you can optionally use the new filter endpoint.

curl "https://your-tenant.us.qlikcloud.com/api/v1/users/actions/filter" \
 -X POST \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: application/json" \
 -d '{
    "filter": "subject eq \"1234567890\""
  }'

For the complete list of supported features, please see the Users API specifications.

New API - Qlik Application Automation

Introducing Qlik Application Automation

Happy to announce the release of a new API: Qlik Application Automation.

Qlik Application Automation is a visual no-code approach to connecting applications. The API helps you easily build automated analytics and data workflows.

Examples

Here are a few examples of what you can expect to do with the Qlik Application Automation API:

  • Create an automation.
curl "https://your-tenant.us.qlikcloud.com/api/v1/automations" \
 -X POST \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: application/json" \
 -d '{
     "name":"string",
     "description":"string",
     "workspace":{},
     "state":"available",
     "schedules":[
         {
             "startAt":"2022-01-01 00:00:00",
             "stopAt":"2022-12-01 00:00:00",
             "interval":30,
             "timezone":"Europe/Stockholm"
         }
         ]
    }'
  • Enable an automation.
  • Retrieve and update automation settings.
  • Copy an automation.
  • Create a run.
curl "https://your-tenant.us.qlikcloud.com/api/v1/automations/{id}/runs" \
 -X POST \
 -H "Authorization: Bearer <API-key>" \
 -H "Content-type: application/json" \
 -d '{
     "id":"automationID",
     "context":"editor",
     "inputs":{}
     }'
  • Retrieves a run.
  • Retry a run
  • Stop running an automation
  • Export a run
  • Move automation to another user

For more information you can see API reference

Introducing the new Platform SDK

Platform SDK package

As more & more developers integrate & embed Qlik Sense, the need to simplify the development process is paramount. Announcing the new Qlik Platform SDK - a suite of tools, libraries, and documentation that simplifies building high-quality and performant applications on top of the Qlik Sense Platform. The idea is to let developers extend solutions without the need to develop them from scratch.

And the best part? The capabilities of the SDK comes in two programming languages - TypeScript & Python. With TypeScript, you will have improved definitions and enhanced developer experience with modern IDEs and the Python package opens up a whole new scope for the Python developer community to leverage the power of Qlik Cloud APIs.

Looking to get started? Here are the package links:

Please note that the Platform SDK packages are early development releases. So, please expect breaking changes as it updates and stabilize.

SaaS API Updates 24-Feb-2022

Engine RPC

Two new methods are added to the Engine RPC.

  • GetFieldsResourceIds that returns a list of resource ids (QRI) for fields that belongs to the data model. Key fields (that belongs to multiple tables), returns one resource identifier per table. Read more here

  • GetFieldsFromExpression that retrives any fields from an expression. Learn more about this here

nebula.js updates

The nebula stardust package now comes with TypeScript definitions. It references the Qlik's Engine definitions published at @types/qlik-engineapi. This will enable developers to take advantage of code autocompletion, verifying correct types, etc. within modern IDE's.

a screenshot of autocompletion in VS codea screenshot showing types in VS code

SaaS API Updates 21-Dec-2021

Data Connections API

Two new endpoints are added to the Data Connections API.

  • data-connections/actions/delete that deletes multiple connections and is only available to Admins.

  • data-connections/actions/update that updates multiple connections and is only available to Admins.

Learn more about this here

Reloads API

The following endpoints are new to the Reloads API.

  • GET /reloads: Reloads allows for triggering reloads of apps to refresh its data. Traditionally this has only been possible through the JSON-RPC websocket API, but can now also be done by using this REST API.

  • GET /reloads/{reloadId}: Finds and returns a reload record.

  • POST /reloads: Reloads an app specified by an app ID.

Read more here

Reporting Service API

The new Reporting Service API provides the ability to generate reports in PNG, PDF, and xlsx formats programmatically. Reports content could be either a single visualization, an entire sheet, a story or a composition of sheets.

Comprises two endpoints:

  • POST/reports: Queues a new report request generation
  • GET/reports/{id}/status: Gets report request processing status

Learn more here

qlik-cli 2.6.0 released

2.6.0

  • New: Added qlik edit command - you can now easily update resources without worrying about the complicated JSON Patch calculations. Based on the EDITOR environment variable, the edit command starts your preferred editor automatically and once your changes are saved, all PUT/PATCH operations are automatically done.

    *If you want to see communication details for your edit call, you can use
    the `--verbose` flag. It displays all HTTP operations that are
    performed including payloads for requests.*
    
    example:
    
    ```bash
    qlik webhook edit <webhookId>
    # this command launches your preferred editor containing the resource in json format
    # changing, for example, the description parameter is the equivalent of doing
    # a patch request with payload:
    # [
    #   {
    #       "op": "replace",
    #       "path": "/description",
    #       "value": "my new description"
    #   }
    # ]
    ```
  • New: Added qlik spec get provides more detailed information about added external specs, most notably the path to the added specification.

  • New: The auto-generated usage documentation now get automatically published to

    qlik-cli upon new releases.
  • Fix: Improved robustness in handling of array subtypes - missing types now return errors. Any included schema is thus required to have proper types defined. Previously, it defaulted to string if the type was missing.

qlik-cli documentation on qlik.dev

The latest release of qlik.dev features a new documentation section for qlik-cli. Navigate to the

qlik-cli to learn more.

Here's a sample of what you can expect with this new documentation:

a screenshot of some qlik-cli documentation on
qlik.dev

JWT token authorization tutorial released

A new tutorial for authorizing sessions to Qlik Cloud using JSON web tokens (JWT) is now available on qlik.dev named Implement JWT Authorization.

You can learn more by clicking the link preceding or reviewing the online live example qlik-cloud-jwt.

nebula.js updates

Nebula Documentation

Nebula CLI is the main entry point to start making a nebula visualization, enabling a local development server, and building extensions and mashups.

The Nebula CLI now has updated and detailed documentation updates specifically on the following

Nebula serve

Allows to run a nebula visualization with a local web development server.

nebula serve

For more details read here

Nebula build

Used to build a nebula visualization bundle.

nebula build

Read more here

Nebula sense

Used to generate Qlik Sense specific files to use a nebula visualization as an extension.

nebula sense

Learn more about this here

Nebula Charts

While nebula.js provides capabilities & APIs to build mashups and custom visualizations, it's primary purpose is often to display Qlik developed charts. These charts are available through npm under the @nebula.js scope. Learn more about it [here].

Core packages

The new core build allows to significantly reduce the size of bundle, thus bringing down the overhead of downloading large amount of codes to be run. Refer to an example here

Nebula API

nebula.js API has the following new updates:

new useEmbed hook

The useEmbed hook allows access to the Nebula instance inside a chart, for adding charts into charts. Read the API specs.

new useKeyboard hook

The useKeyboard hook enables mashups to do sense-client style keyboard navigation across chart objects. Read the API specs.

new option for Field-listbox

You can now alter property definition for Field-listbox.

qlik-cli 2.5.x released

The latest version of qlik-cli allows better windows support, support for new APIs and notifications.

Here are the updates.

Chocolatey

qlik-cli is now back to Chocolatey

To install using choco:

choco install qlik-cli

To upgrade qlik-cli using chocolatey: choco upgrade qlik-cli

If you see an error like below:

Error retrieving packages from source The combination of parameters provided to this OData endpoint is no longer supported. Please refer to the this URL for more information about this deprecation.

Then first run: choco source list

Then remove the one matching nuget.org: choco source rm --name=nuget.org

Another way to fix a failing upgrade is to uninstall and reinstall.

 choco uninstall qlik-cli
 choco install qlik-cli

in v2.5.0 / v2.5.1

New - Added support for outbound proxy: you can now set the operating system environment variables called HTTPS_PROXY/HTTP_PROXY with the hostname or IP address of the proxy server.

Note: HTTPS_PROXY takes precedence over HTTP_PROXY for https requests. Qlik CLI supports only Basic Authentication.

Fix - Improve --limit flag descriptions

Fix - Updated the included latest Qlik Sense SaaS API-specifications

in v2.4.0

Updated Commands

Commands have been updated to reflect the latest API changes.

Notifications

Users to be notified when a new version of qlik-cli is available. The notification message contains URL with detailed changelog of the latest release.

Self Update CLI

The self update command enables users to update to the latest version of qlik-cli by simply running qlik update.

OpenAPI specs support

The latest qlik-cli update provides support for OpenAPI specs that define parameters at the path level. In this case, the parameters are inherited by all operations under that path.

Progress Bar

The animated progress bar displayed when uploading an app is now based on estimated upload time.

Support for unix-like Windows terminals

The latest version of qlik-cli provides better support for unix-like Windows terminals (such as MingGW, MSYS2, and Cygwin).

Fix

The latest version of qlik-cli also includes bug fixes and minor improvements.

in v2.3.0

Support for identity-providers endpoint

The identity-providers service is used for managing identity providers. In this version of qlik-cli the support for identity-providers endpoint is provied.

Support for questions endpoint

The questions endpoint lets user ask natural language questions against Qlik Sense apps enabled for conversational analytics. This version of qlik-cli provides support for this endpoint.

qlik question ask --app-id <appId> --text="new cases by department over time"

#returns a QueryResponse object containing conversational response
{
  ...
  "conversationalResponse": {
    ...
    "responses": [
      {
        "imageUrl": "/api/v1/temp-contents/6139c949f0ccf200019a09e2?inline=1",
        "sentence": {
          "text": "new cases by department over time"
        },
        "type": "chart"
      },
      {
        "narrative": {
          "text": "* New Cases is 180.\n* There were 18 of New Cases not associated to a Department. This may indicate a data quality issue."
        },
        "sentence": {
          "text": "new cases by department over time"
        },
        "type": "narrative"
      }
    ],
    "sentenceWithMatches": "**new cases** by **department** over time"
  },

Progress bar for Downloads

The latest version of qlik-cli also shows an animated progress during app download.

Spinner feedback

A new spinner feedback is added when users are waiting for server response using qlik-cli.

SaaS API Updates 17-sept-2021

Evaluations API

The Evaluations API now includes a new endpoint /evaluations/{id}/download that allows you to download a detailed XML log for your evaluation. Learn more about this here

Items API

When fetching items using the Items API, you now have the ability to filter by three new subtype resources - automation, dataset, and dataasset. Additionally, if you want to speed up response time, you can now omit the actions array from the response by setting the noActionParam to true. This ensures that the actions for each item is not evaluated.

New Natural Language API

The new Natural language API (/questions/actions/ask) enables you to ask questions and context aware partial questions against applications enabled for conversational analytics or a specific app to receive Insight Advisor generated responses and suggestions. Learn more about creating customized conversational analytics interfaces

here.

Users API

In the User

definition `created`, `lastUpdated` and `roles` fields have been deprecated.

JSON engine RPC

A new experimental method Doc.SearchValues has been added to the Qlik Associative Engine. For more details read here

qlik-cli 2.2.0 released

The latest version of qlik-cli adds resumable uploads for large Qlik Sense applications and bug fixes to improve overall usability. Here are the updates.

New feature highlights

Import large Qlik Sense apps

You can now upload large apps to SaaS tenants using qlik-cli using the qlik app import command. Use the --resumable switch to instruct the cli to handle the upload as a large file.

When you upload an app using qlik-cli, a nice animated bar appears displaying the progress.

File piping

File piping allows you to combine commands where the output of one may be used as the input of the next command you issue.

Command aliases

Aliases enable you to create shorthand commands for hard to remember long commands. For example, say you run a command frequently to find the guid of an application in your tenant, $(qlik item ls --resourceType app --name. You can use the alias command to create a shortcut it into something like qlik getAppGuid consumer+sales. This returns the complete JSON object for the consumer+sales resource in the items collection.

Limit flag added for listing apps

The --limit switch enables you to return a number of app resource objects per page ranging from 1 to 100.

Identifying experimental flags and switches in commands

Command switches and flags that are experimental features are labeled as such for your information.

Fixes worth mentioning

Temporary Upload Service

Use of the temporary upload service in qlik-cli caused problems with large app uploads and resumability. This problem has been fixed and implemented through the resumable switch in the qlik app import command.

Updated response from reload get command

In prior CLI versions, qlik reload get was not sending a correct response. This issue has been resolved.

Bullet list of all features and fixes in qlik-cli 2.2.0

  • feature: add limit flag when listing apps

  • feature: Support resumable uploads

  • feature: add status for qseow

  • feature: Support big apps

  • feature: show if a flag or command is experimental

  • feature: Add progress-bar

  • feature: add support for command aliases

  • feature: Add Patch description

  • feature: support for files piping

  • fix: Solve temporary upload service store issues

  • fix: Add timeout to Establish TCP connection

  • fix: append exprimental to long description with leading newline

  • fix: Honor optional request bodies

  • fix: handle empty stdin

  • fix: omit cookie header

  • fix: updated response for reload get

Update qlik-cli today by using brew if you use a Mac, or download the redistributable from here.

SaaS API Updates 07-May-2021

Client family API updates

Single Integration 1.2.1

Updated descriptions for URL parameters

App Integration 1.1.1

Updated definitions for URL parameters and updated examples in the documentation.

Extension 1.1.1

Numerous documentation updates throughout the API.

Distribution family API updates

Conditions 7.8.1 released public stable

The conditions API handles the evaluation of conditions set on data in Qlik Sense applications. You can use this API to establish conditions and execute condition evaluation.

Web Notifications 1.2.0 released public stable

Web notifications are tied to alerting in Qlik Sense SaaS and enable developers to identify the count of read versus unread notifications, and read information stored in generated web notifications.

Governance family API updates

Data Connections 1.0.0 released public stable

The Data Connections API enables creating, reading, updating, and deleting data connections for spaces and Qlik Sense applications.

Reload 2.2.0 updated

The latest version of the Reload API supports partial reload with a new true/false property you can set.

SaaS API updates - 2021-03-24

New Evaluation API Property - fileSizeMiB

The evaluations API now includes a property in the result schema and the evaluation detail properties indicating the file size on disk of the evaluated Qlik Sense application.

Learn more about optimizing app performance and using the API in DevOps processes here.

Apps API Export App Response Update

The export app endpoint in the apps API now provides a location header containing the URL of the exported application in the temporary content service when the endpoint returns an http 201 response.

Sense Client Object Definitions Released

Developers have requested the schemas and property definitions for the different objects created in Qlik Sense applications be made public. You can now view this information here.

You'll find all of the properties in each type of object available in Qlik Sense, and you can download the specification for use in your own custom applications.

Webhooks API set to public/stable API status

The webhooks API is now a public and stable API in alignment with the public release of tenant level webhooks in SaaS platform.

New SaaS API released - the evaluations API

New App Evaluation API

The evaluations API enables you to run performance and scalability tests for Qlik Sense applications running on Enterprise SaaS editions of the platform. This API is useful when you have large applications you want to optimize, or update an application frequently and want to ensure it remains performant.

Learn more about

optimizing app performance and using the API in DevOps processes here.

qlik-cli 2.0.0 adds new commands and squashes bugs

New commands

The license command in qlik-cli enables you to set license assignments for users in addition to providing metrics related to your tenant's overall license footprint.

The evaluation command enables you to trigger Qlik Sense app evaluations through cli, retrieve the results, and perform additional commands based on the feedback. A handy command for automating devops of Qlik Sense apps.

New features

Flags that are deprecated in qlik-cli now show a warning message when used.

qlik api-key ls --sub="test"
"Flag --sub has been deprecated, please don't use it!"

A security enhancement has been made to remove session Ids from log messages


You can now add names to external specifications you sideload into qlik-cli. Here's an example: qlik spec add ./my-spec.json --name foo

Breaking change

The response on the app command has changed. Now it returns only information from the Apps API.

#qlik app create command
app=$(qlik app create --attributes-name "example")
echo $app
#returns new response

{
  "attributes": {
    "_resourcetype": "app",
    "createdDate": "2021-02-15T07:01:43.930Z",
    "custom": {},
    "description": "",
    "dynamicColor": "",
    "encrypted": true,
    "hasSectionAccess": false,
    "id": "8be82d0f-02d2-4f0e-974c-08dc444384a7",
    "lastReloadTime": "",
    "modifiedDate": "2021-02-15T07:01:46.575Z",
    "name": "testttt2",
    "originAppId": "",
    "owner": "auth0|b96eb87010c7ad52667b2dc8b1ec0b12f97c43ae7848740874267b62aa45c856",
    "ownerId": "ffnbiWZyssMZ5ofRfLc1JzFdZrPvACFl",
    "publishTime": "",
    "published": false,
    "thumbnail": ""
  },
  "create": [...],
  "privileges": [...]
}

Instead of returning information from the items API.

#Breaking change

app=$(qlik app create --attributes-name "example")
echo $app
#returns old response

{
  "actions": [...],
  "collectionIds": [],
  "createdAt": "2021-02-15T08:15:57Z",
  "creatorId": "ffnbiWZyssMZ5ofRfLc1JzFdZrPvACFl",
  "id": "602a2dbd31d6bf3d1f471c31",
  "isFavorited": false,
  "meta": {...},
  "name": "testttt3",
  "ownerId": "ffnbiWZyssMZ5ofRfLc1JzFdZrPvACFl",
  "resourceAttributes": {...},
  "resourceCreatedAt": "2021-02-15T08:15:57Z",
  "resourceCustomAttributes": null,
  "resourceId": "22205ac6-406c-4484-b715-1da12219b044",
  "resourceReloadEndTime": "",
  "resourceReloadStatus": "",
  "resourceSize": {... },
  "resourceSubType": "",
  "resourceType": "app",
  "resourceUpdatedAt": "2021-02-15T08:15:57Z",
  "tenantId": "xrpC13FnjenBc-mhBG98ah2qNlfmwj8X",
  "thumbnailId": "",
  "updatedAt": "2021-02-15T08:15:57Z",
  "updaterId": "ffnbiWZyssMZ5ofRfLc1JzFdZrPvACFl"
}

From now on, to obtain the unique id referencing the app in the items API, you need to issue a qlik item ls command after running qlik app create.

qlik item ls --resourceId $app --resourceType app
#returns item information formerly seen in the old response

Bug fixes

  • Fixed a bug with qlik app ls returning non-app resources.
  • Fixed qlik qrs task start by-id which failed with no such operation message.
  • Resolved runtime errors using qlik-cli on Windows computers.

qlik.dev changelog RSS feed available

Subscribe to receive update notifications

The qlik.dev changelog has an rss feed you can subscribe to by adding the URL https://qlik.dev/rss.xml to your preferred feed reader. Now updates from qlik.dev come to you in your inbox or wherever you consume syndicated content.

SaaS API updates to Apps and Users APIs

Engine REST API (Apps) updated with new attributes

The Engine REST API, aka Apps API, adds attributes for app name and description for POST and PUT request operations related to publishing and republishing Qlik Sense applications.

The new checkOriginAppId attribute is a true/false property validating that the source Qlik Sense application has the same Id as the originally published app.

"attributes": {
  "name": "string",
  "description": "string"
},
"checkOriginAppId": true

For more information, see the API reference for republishing a Qlik Sense application here.

Users API add attributes for user roles

As part of the ongoing work related to updates to users, groups, and roles in the Users API added additional properties for setting roles on users and new roles that may be applied to user records. While this feature is not accessible in product user interfaces, it does exist in the API. In addition, the Users API is public/stable.

For more information, see the API reference here.

SaaS API updates to Collections, Identity Providers, Reloads and more

Collections API adds new response information with app size metrics

Endpoints for the Collections API now include two new properties in the response object. appFile displays the size of an app on disk and appMemory shows the size of an app when it is loaded in memory. Both values are displayed in bytes and appear under the resourceSize property.

"appFile": {
    "description": "Size of the app on disk in bytes",
    "type": "number"
},
"appMemory": {
    "description": "Size of the app in memory in bytes",
    "type": "number"
}

Learn more about the Collections API here.

Identity Providers V1 API released public/stable

The Identity Providers REST API is a Management API for creating and updating identity provider configurations in a tenant. For more information regarding the API, please review the API reference here.

Licenses API releases two public/stable, three public/experimental endpoints

The Licenses REST API is a Management API for assigning, changing, and removing license assignements from users in tenants.

This release includes two public/stable endpoints:

  • get license status
  • get license overview

and three public/experimental endpoints:

  • assign access to users
  • delete user license assignments
  • update user license assignments

Learn more about the API here.

Reloads API re-released public/stable

The Reloads API is now verified public/stable in Qlik's API governance system. The Reloads API was mistakenly set to public/stable in late 2020 after a breaking change was introduced in the code. Subsequently, the Reloads API was adjusted to public/experimental before the new year to indicate the correct status. The outstanding issues with the API have been addressed.

Temporary Contents API released public/stable

The Temporary Contents Service API is now public/stable in compliance with Qlik's API governance policy. The TCS is used by other services to provided temporary file storage for uploads to the system (for example through Qlik Data Transfer) and downloads from (for example image and sheet exports from Qlik Sense Client).

Learn more about the API here.

Developer platform updates

qlik-cli 1.7.1 released

qlik-cli 1.7.1 enables the qlik app reload command to perform partial reloads by adding the --partial flag to the end of the command. Update using homebrew on a Mac, Chocolatey on Windows, or download the linux distro from https://github.com/qlik-oss/qlik-cli/releases/tag/v1.7.1.

qlik.dev now with dark mode

qlik.dev supports dark mode.

qlik-cli 1.6.0 released

qlik-cli 1.6.0: better, stronger, faster. This release has a number of performance improvements. Update using homebrew on a Mac, Chocolatey on Windows, or download the linux distro from https://github.com/qlik-oss/qlik-cli/releases/tag/v1.6.0.

Introducing the Developer Changelog

Are you looking for a way to consume the latest API updates in the Qlikosphere? Wondering what new tutorials have been added without having to visit every page on qlik.dev? Need to find out if you are using the most current version of qlik-cli? Or maybe you want to know what new APIs are available to you since the last time you visited?

The developer changelog on qlik.dev is the source for all of this and more!

Check out the blog to learn more.