NodeJS package to communicate with Qlik Sense Saas edition.
The official documentation about each endpoint parameters can be found on qlik.dev
yet to be published to npm
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
Each method returns promise
. Errors can be handled using the usual way:
// 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
-
patch
method - test cases (in progress)
- proper error handling
- published to
npm
- more methods?
- more testing with the paging functionality
- support browser based authentication headers?
- able to use the package in browsers?