NodeJS package to communicate with Qlik Sense Saas edition.
The official documentation about each endpoint parameters can be found on qlik.dev
npm install qlik-saas
Using the package is quite similar to qrs-interact
The package expose 5 methods:
Get
- params
path
(string, mandatory) (spaces
,spaces/space-id
etc)
- params
Delete
- params
path
(sting, mandatory)
- params
Patch
- params
- TBA
- params
Post
- params
path
(sting, mandatory) (spaces
,spaces/space-id
etc)data
(json, mandatory) (see each endpoint for the required format)contentType
(string, optional) (default isapplication/json
)
- params
Put
- params
path
(sting, mandatory) (spaces
,spaces/space-id
etc)data
(json, mandatory) (see each endpoint for the required format)contentType
(string, optional) (default isapplication/json
)
- params
Before usage the instance should be initialized:
let config = {
url: `tenant.eu.qlikcloud.com`,
token: `api-key-generated-from-the-admin-console `,
version: X, // optional. default is: 1
};
let saasInstance = new qlikSaas(config);
// Get all available spaces
let allSpaces = await saasInstance.Get("spaces");
// Delete single space
let deletedSpace = await saasInstance.Delete("spaces/1a002233cdd44555566ee77f");
// TBA
// Create new space
let data = {
name: "My new space",
description: "New space for more apps",
type: "shared",
};
let createSpace = await saasInstance.Post({
path: "spaces",
data: data,
contentType: "application/json",
});
// Update space
let data = {
name: "New name for old space",
};
let updateSpace = await saasInstance.Put({
path: `spaces/1a002233cdd44555566ee77f`,
data: data,
contentType: "application/json",
});
When requesting data Qlik will page it by default (max 100 items can be returned in a single call). If there are more records to be returned, the package will extract them all before returning the result
-
Config - to prevent configuration errors just wrap the initialization in
try ... catch
blocklet saasInstance; try { saasInstance = new qlikSaas(config); } catch (e) { console.log(e.message); }
-
Methods - once initialized each method returns
promise
and error handling can be done the usual way with.catch()
// Update space let data = { name: "New name for old space", }; let updateSpace = await saasInstance .Put({ path: `spaces/1a002233cdd44555566ee77f`, data, contentType: "application/json", }) .catch(function (e) { // do something with the error here // if Qlik is raising the error then the format of the error will be { status: XXX, statusText: XXXXY, message: XXXXXXX } // if Qlik is NOT raising the error then the format is: { message: XXXXXXX } (no status) });
At the moment the package interact with Qlik only via API keys
- published to
npm
- proper error handling
-
patch
method - test cases (in progress)
- more methods?
- more testing with the paging functionality
- support browser based authentication headers?
- able to use the package in browsers?