qlik-repo-api
Version:
Interact with Qlik Sense Repository API (QSEoW)
549 lines (366 loc) • 20 kB
Markdown
# Changelog
All notable changes to this project will be documented in this file.
## [0.18.0] - 2025-08-18
- `Selections` methods are re-written. Handle creation and deletion of selection items based on area/type and item ids [#308](https://github.com/Informatiqal/qlik-repo-api/issues/308)
- dependency updates
## [0.17.0] - 2025-08-17
- new method `removeList`. Similar to `removeFilter` but remove entities by providing list of ids [#307](https://github.com/Informatiqal/qlik-repo-api/issues/307)
## [0.16.0] - 2025-08-17
- internal change - all `removeFilter` methods are using `selection` instead of loop and delete each [#306](https://github.com/Informatiqal/qlik-repo-api/issues/306)
- dependency updates
## [0.15.2] - 2025-06-16
- Notifications endpoints - make sure that the `create` endpoint uses the correct properties names and mapping
- dependency updates
- exclude some packages from renovate bot updates
## [0.15.1] - 2024-09-12
- load balancing properties for virtual proxies[#297](https://github.com/Informatiqal/qlik-repo-api/issues/297)
## [0.15.0] - 2024-09-12
- engine health endpoints [#296](https://github.com/Informatiqal/qlik-repo-api/issues/296)
## [0.14.0] - 2024-09-11
- methods changes in relation with preload [#295](https://github.com/Informatiqal/qlik-repo-api/issues/295)
## [0.13.4] - 2024-09-11
- fixes related to `custombannermessage` endpoints (now that i can properly test them)
- dependency updates
## [0.13.3] - 2024-09-06
- updates related to `daylightSavingTime` values for schema triggers
- dependency updates
## [0.13.2] - 2024-08-22
- dependency updates
## [0.13.1] - 2024-06-13
- `tag.create` - if tag already exists it will not create new one. Options to overwrite that logic
## [0.13.0] - 2024-06-10
- `table.create` supports filtering. The filter follows the standard QS syntax
- dependency update
## [0.12.3] - 2024-06-06
- `apps.uploadMany` accepts only an array
- `app.copy` supports updating of custom properties and tags on the same call
- fix a small issue with external and reload tasks
- dependency updates
## [0.12.2] - 2024-06-04
- `app.uploadMany` supports `ReadStream`s as an input
- dependency updates
## [0.12.1] - 2024-05-28
- `app.copy` wont throw an error when called without arguments
- dependency updates
## [0.12.0] - 2023-07-31
- load balancing endpoints implemented
## [0.11.0] - 2023-07-31
- odag request endpoints implemented
## [0.10.1] - 2023-07-29
- odag service endpoints implemented
## [0.9.0] - 2023-07-29
- dependency updates
- custom banner message endpoints implemented
## [0.8.0] - 2023-06-21
- dependency updates
- `app.export`, `apps.exportMany`, `contentLibrary.export` will now return stream of data instead of buffer. Check out the readme `Download files`, `Upload files` and `Stream data between servers` for code examples.
## [0.7.4] - 2023-06-06
- updated `qlik-rest-api` to latest version
- the type of `file` property (where available) now can be `ReadStream`
## [0.7.3] - 2023-06-05
- `app.export` returns both `id` and `name` properties
## [0.7.2] - 2023-05-28
- `tagOperations` is now `tagOperation`
- `customPropertyOperations` is now `customPropertyOperation`
## [0.7.0] - 2023-05-12
- Add composite and schema triggers methods [#69](https://github.com/Informatiqal/qlik-repo-api/issues/69)
- refactor a bit the reload task base class in regards to the new composite and schema triggers
- `vitest` replaced `mocha` and `chai`
## [0.6.1] - 2023-04-25
- Not sure why port was deleted. It should not be [#213](https://github.com/Informatiqal/qlik-repo-api/issues/213)
## [0.6.0] - 2023-04-25
- Execution sessions endpoints implementation [#212](https://github.com/Informatiqal/qlik-repo-api/issues/212)
## [0.5.1] - 2023-04-23
- dependency updates (typescript 5)
## [0.5.0] - 2023-04-23
- Execution result endpoints implementation [#211](https://github.com/Informatiqal/qlik-repo-api/issues/211)
## [0.4.1] - 2022-12-25
- options for update methods (mostly) now accepts `tagOperations` and `customPropertyOperations` = `set`/`remove`/`add`. Control the behavior of the update operation for tags and custom properties
- dependency updates
- NodeJS version set to >= 16.0.0
## [0.3.0] - 2022-10-19
- internal change related to generics usage when calling `qlik-rest-api` methods. Related to [qlik-rest-api#81](https://github.com/Informatiqal/qlik-rest-api/issues/81)
## [0.2.21] - 2022-05-15
- [fix] `serviceStatus.getAll` is returning the `full` data [#101](https://github.com/Informatiqal/qlik-repo-api/issues/101)
- [added] Notification endpoints added (`create`, `delete` and `changes`) [#99](https://github.com/Informatiqal/qlik-repo-api/issues/99)
- dependency updates
## [0.2.20] - 2022-04-27
- [fix] (internal) no more circular dependencies [#95](https://github.com/Informatiqal/qlik-repo-api/issues/95)
- [fix] interfaces are moved into separate file [#94](https://github.com/Informatiqal/qlik-repo-api/issues/94)
- [fix] review of most of create/update methods and make sure that they accept custom properties and tags [#58](https://github.com/Informatiqal/qlik-repo-api/issues/58)
## [0.2.19] - 2022-04-21
- [fix] `contentLibrary.export` and `contentLibrary.exportMany` return the full path as well [#65](https://github.com/Informatiqal/qlik-repo-api/issues/65)
- dependency updates
## [0.2.18] - 2022-03-29
- [fix] `externalTask.update` and `reloadTask.update` are now two different methods. Both object share a lot in common but the update methods are slightly different (in arguments). `reloadTask` **accept** `appId` and `appFilter` and `externalTask` is accepting `path` and `parameters` [#64](https://github.com/Informatiqal/qlik-repo-api/issues/64)
## [0.2.17] - 2022-03-20
- Dependency updates
- `externalTask.create` also populates the `triggerDetails` (same logs as in `reloadTask.create`)
## [0.2.16] - 2022-03-13
- Dependency updates
## [0.2.15] - 2022-02-21
- [fix] `reloadTask.create` populates `triggersDetails` (empty array)
## [0.2.14] - 2022-02-21
- [added] `reloadTask.removeAllTriggers` and `externalTask.removeAllTriggers` methods are implemented
- [fix] `reloadTask.update` and `externalTask.update` will update the task name as well (`name` was missing from the logic)
## [0.2.13] - 2022-02-21
- **BREAKING** `reloadTasks.create` `id` argument is rolled back to `appId`
## [0.2.12] - 2022-02-19
- **BREAKING** `reloadTasks.create` argument `appId` renamed to `id`
## [0.2.11] - 2022-02-19
- [fix] When fetching reload/external task details the triggers data is also fetched
## [0.2.10] - 2022-02-18
- [fix] Creating task trigger (Schema) require mandatory `repeat` parameter to be passed. Previously this parameter was optional
- [fix] Creating task triggers (Schema, Composite or Many) now returns the instance of the triggers, instead of the response status
## [0.2.9] - 2022-02-15
- [fix] passing new instance of the generic client class (with port). Needed for `app.exportMany`
- [added] new method `app.exportMany`. Exports apps based on provided filter. Optional parameter `skipData` is applied to all apps returned by the filter query
## [0.2.8] - 2022-02-15
- [fix] corrected url formatting when calling `app.export` with virtual proxy prefix
## [0.2.7] - 2022-02-14
- [change] `contentLibrary.exportMany` is correctly using `contentLibrary.export` in the background. This way the correct error message is thrown when certificates authentication is used
## [0.2.6] - 2022-02-14
- **BREAKING** `certificate.export` is renamed to `certificate.generate`
- `app.export` is returning the app name as well (`<appID>.qvf`)
## [0.2.5] - 2022-02-14
- [change] `contentLibrary.export` - this method now target specific file and its not possible to export all files through this methods. For multiple files export have a look at `contentLibrary.exportMany`
- [add] new method `contentLibrary.exportMany`. This method can export either all files in the library (if no params are provided) or a list of provided file names (the base file name)
- [add] tests to cover export functionality for content library
## [0.2.4] - 2022-02-14
- `app.export` accepts `token` as **optional** parameter. If not provided the method will auto-generate
- `app.export` no longer accepts `fileName` (was not used anyway)
- `app.export` correctly returns the exported content (via `QlikGenericRestClient`)
- `app.export` returns the `exportToken` as well
- [add] `ExternalProgramTask` to custom properties object types
- [add] test for app export
## [0.2.3] - 2022-02-13
- [fix] `task.getFilter` is using the correct url endpoints [#59](https://github.com/Informatiqal/qlik-repo-api/issues/59)
- [fix] external tasks are semi-separated from reload tasks abstract class. Some methods are not available for external tasks but available for reload tasks [#60](https://github.com/Informatiqal/qlik-repo-api/issues/60)
- [add] test for external task(s)
## [0.2.2] - 2022-02-10
- Virtual proxies changes. Header authentication, extended security, sameSite properties are parsed
## [0.2.1] - 2022-02-09
- `contentLibrary.importFile` - moved the method from `contentLibraries` and renamed to `importFile` instead of `import` [#55](https://github.com/Informatiqal/qlik-repo-api/issues/55)
- `contentLibrary.importFileMany` - import bulk files to content library [#54](https://github.com/Informatiqal/qlik-repo-api/issues/54)
- `contentLibrary.removeFile` - remove single file from content library [#56](https://github.com/Informatiqal/qlik-repo-api/issues/56)
- `contentLibrary.removeFileMany` - remove bulk files from content library [#56](https://github.com/Informatiqal/qlik-repo-api/issues/56)
- [fix] Weekly schema trigger correctly retrieves the days number representation [#51](https://github.com/Informatiqal/qlik-repo-api/issues/51)
- [fix] `extensions.import` now accepts `tags`, `customProperties` and `owner` [#52](https://github.com/Informatiqal/qlik-repo-api/issues/52) params
## [0.2.0] - 2022-02-07
- all methods expose only the required properties. Removed exposure of `repoClient` or `genericClient` or `id`. Whenever available these properties should be kept internal to the class [#49](https://github.com/Informatiqal/qlik-repo-api/issues/49)
## [0.1.14] - 2022-02-07
- `reloadTask.create` and `reloadTask.update` accepts and `appFilter` argument [#47](https://github.com/Informatiqal/qlik-repo-api/issues/47)
## [0.1.14] - 2022-01-24
- customer property (update and create) - check if the provided name is alphanumeric ([#42](https://github.com/Informatiqal/qlik-repo-api/issues/42))
- custom property update - `name` is no longer mandatory parameter
## [0.1.13] - 2022-01-16
- when updating object's tags (#44) or custom properties (#43) the values can be appended to the object instead of being overwritten (#45)
## [0.1.12] - 2022-01-16
- doc exports
- IHttpReturn import fix in `ReloadTaskBase.ts`
## [0.1.11] - 2022-01-16
- dependency updates
## [0.1.10] - 2021-10-15
- `virtualProxy.create` - `name` was not passed to Repo API. Now is mandatory parameter [#39](https://github.com/Informatiqal/qlik-repo-api/issues/39)
- `virtualProxy.update` - `modifiedDate` was not passed to Repo API [#40](https://github.com/Informatiqal/qlik-repo-api/issues/40)
- `certificate.export` - typo in export format [#41](https://github.com/Informatiqal/qlik-repo-api/issues/41)
## [0.1.9] - 2021-09-15
- all `update` methods are returning the response details instead of the status
## [0.1.8] - 2021-09-03
- the arguments for all methods are object
## [0.1.7] - 2021-08-18
- admin changes for separating the tests `tsconfig`
- `genericClient` not being passed in all instances
## [0.1.5] - 2021-08-18
- changes related to building the project
## [0.1.3] - 2021-08-17
- `contentLibraries.create` method accepts object as parameter instead of named params
- `contentLibrary.export` method with throw an error if the authentication is made with certificates. The export is not done via Repo APIs
- corrected function names in few error messages
- removed `id` from engine update interface
- `engine.update` handling more arguments
- `metadataExport` is moved under `VirtualProxy` class instead of `Proxy`
- `setCentral` is moved under `Node` class instead of `ServiceCluster`
- [fix] engine init uses the correct endpoint (instead of `tag`)
- [fix] sharedContent get uses the internal `id`
- [add] Oidc arguments are processed in Proxy/VirtualProxy
- [add] attribute parsing functions are in separate file (multiple files are using them)
- [add] schema trigger specific functions are in separate file (multiple files are using them)
## [0.1.2] - 2021-08-17
- `nodes.register` method implemented. Not sure if its working. Have to be tested somehow
## [0.1.1] - 2021-08-17
- User directory connector - create and update methods
- User directory connector - updated the interfaces/types
## [0.1.0] - 2021-08-16
- A lot had been changed. All `get` methods are returning instance of classes which expose their on methods. For example:
```javascript
const qlikApp = await repoApi.apps.get("some-app-id-here");
// At this point qlikApp will have the app details
const appName = qlikApp.details.name;
// all app methods will be exposed:
await qlikApp.update({
name: "new-app-name",
});
await qlikApp.remove();
```
- basic tests for Phase 1 are in place. More tests should/will be added
- various bugs were fixed while writing the tests
## [0.0.22] - 2021-07-29
- all methods, working with Update/GetCommonProperties are passing the correct argument and types
- [fix] `UpdateCommonProperties` and `GetCommonProperties` are adapted to work with the new code structure
## [0.0.21] - 2021-07-29
- all error messages are changed to return the function name in the new format - `xxx.yyy:` instead of `yyy:`
- whenever is relevant there is `xxx.removeFilter` method
- whenever is relevant there is `xxx.select` method
## [0.0.20] - 2021-07-28
- the codebase was overwritten
- interfaces and types are closer to the class implementation (inside it or in xxx.interface.ts file)
## [0.0.19] - 2021-07-26
- all `xxxRemoveFilter` methods internally are using `xxxRemove` instead duplicating the url request
## [0.0.18] - 2021-07-26
- `appGetAll` method
- `appObjectGetAll` method
- `contentLibraryGetAll` method
- `customPropertyGetAll` method
- `dataConnectionGetAll` method
- `extensionGetAll` method
- `engineGetAll` method
- `nodeGetAll` method
- `proxyGetAll` method
- `virtualProxyGetAll` method
- `sharedContentGetAll` method
- `schedulerGetAll` method
- `serviceClusterGetAll` method
- `serviceStatusGetAll` method
- `streamGetAll` method
- `ruleGetAll` method
- `tagGetAll` method
- `taskGetAll` method
- `taskReloadGetAll` method
- `taskExternalGetAll` method
- `taskScheduleGetAll` method
- `userGetAll` method
- `userDirectoryGetAll` method
- [change] for all `xxxGet` methods the `id` parameter is mandatory
- [change] all `xxGet` methods are returning `Ixxx`
## [0.0.17] - 2021-07-26
- `proxyCreate` method
- `proxyUpdate` method
## [0.0.16] - 2021-07-26
- `sharedContentGet` method
- `sharedContentGetFilter` method
- `sharedContentRemove` method
- `sharedContentUploadFile` method
- `sharedContentDeleteFile` method
- `sharedContentUpdate` method
- `sharedContentCreate` method
## [0.0.15] - 2021-07-26
- `proxyGet` method
- `proxyGetFilter` method
- `proxyMetadataExport` method
- `proxyAdd` method
- `virtualProxyGet` method
- `virtualProxyGetFilter` method
- `virtualProxyRemove` method
- `virtualProxyUpdate` method
- `schedulerGet` method
- `schedulerGetFilter` method
- `schedulerUpdate` method
## [0.0.13] - 2021-07-25
- `certificateExport` method
- `certificateDistributionPathGet` method
## [0.0.12] - 2021-07-25
- `privilegesGet` method
- `privilegesAssert` method
## [0.0.11] - 2021-07-24
- `appObjectGet` method
- `appObjectGetFilter` method
- `appObjectPublish` method
- `appObjectUnPublish` method
- `appObjectRemove` method
- `appObjectUpdate` method
## [0.0.10] - 2021-07-24
- `xxxGet` if `id` is provided the returned data is `Ixxx[]` if not `IxxxCondensed[]`
- all `xxxGet` are returning an array
- for all `xxxGet` `id` is optional
- uuid checks are removed (including the methods for them)
## [0.0.9] - 2021-07-24
- `dataConnectionGet` method
- `dataConnectionGetFilter` method
- `dataConnectionRemove` method
- `dataConnectionCreate` method
- `dataConnectionUpdate` method
`
## [0.0.8] - 2021-07-24
- `licenseAccessTypeInfoGet` method
- `licenseGet` method
- `licenseAnalyzerAccessTypeGet` method
- `licenseAnalyzerAccessTypeRemove` method
- `licenseProfessionalAccessTypeGet` method
- `licenseProfessionalAccessTypeRemove` method
- `licenseUserAccessTypeGet` method
- `licenseUserAccessTypeRemove` method
- `licenseLoginAccessTypeGet` method
- `licenseLoginAccessTypeRemove` method
- `licenseAuditGet` method
- `licenseSetSerial` method
- `licenseSetKey` method
- `licenseProfessionalAccessGroupCreate` method
- `licenseUserAccessGroupCreate` method
## [0.0.7] - 2021-07-23
### Added
- `nodeCount` method
- `nodeGet` method
- `nodeGetFilter` method
- `nodeRemove` method
- `nodeRemoveFilter` method
- `nodeUpdate` method
- `nodeCreate` method
## [0.0.6] - 2021-07-23
- `userDirectoryCount` method
- `userDirectoryGet` method
- `userDirectoryGetFilter` method
- `userDirectoryRemove` method
- `userDirectoryRemoveFilter` method
- `userDirectorySync` method
## [0.0.5] - 2021-07-22
- `serviceStatusCount` method
- `serviceStatusGet` method
- `serviceStatusGetFilter` method
## [0.0.4] - 2021-07-22
- `serviceClusterCount` method
- `serviceClusterGet` method
- `serviceClusterGetFilter` method
- `serviceClusterRemove` method
- `serviceClusterRemoveFilter` method
- `serviceClusterSetCentral` method
- `serviceClusterUpdate` method
## [0.0.3] - 2021-07-22
- `appUploadReplace` method
- `genericRepoClient` exposed. Used for all Repository endpoints which dont have `/qrs` prefix (for example `/tempcontent` endpoints)
- `genericWESClient` exposed. Used for `Web Extension Service API` endpoints. With port `9080`. For example `exportExtension` is one of these methods
- `Phase 1` test are started
- `appImport` method is renamed to `appUpload`
- `appExport` correctly returns the app content as `Buffer`
- `extensionExport` correctly returns the app content as `Buffer`
- `tagRemoveFilter` throws an error when 0 items are returned
- all `xxxRemove` methods are returning data in `IHttpReturnRemove` format (`{ id, status }`)
- [removed] `exportExtension` method. This is not part of Repository APIs
- [removed] `modifiedByUserName` parameter is no longer an option
## [0.0.2] - 2021-07-20
- `orderBy` parameter for all `xxxGetFilter`
- `appSelect` method
- `contentLibraryExport` method
- `contentLibraryImport` method
- `customPropertySelect` method
- `engineGetValid` method
- `ruleGetAudit` method
- `ruleLicenseCreate` method
- `taskScriptLogGet` method
- `taskScriptLogFileGet` method
- interfaces for the above methods
- for all `xxxGet` methods the `id` parameter is optional (it used to be mandatory). If `id` is not specified all objects are returned
- by default all `xxxGetFilter` methods return the `/full` endpoint
- `contentLibraryCreate` method now accept custom properties and tags parameters
- `userCreate` method now accept custom properties and tags parameters
- `streamCreate` method now accept custom properties and tags parameters