Server Side Extension (SSE) is a general technology for extending the Qlik built in expression library, both for load-script and for chart expressions with functionality from external calculation engines. The main purpose is to use SSE in Qlik visualization measures and to some extent also for calculated dimensions.
SSE is part of the Advanced Analytics Integration (AAI) concept at Qlik.
R is not a supported language in gRPC by default. The purpose of this repository is therefore to provide a possible solution using a C# SSE plugin which in turn accesses Rserve to be able to run R scripts. All documentation and guides regarding SSE in general, referred to as server-side-extension, are valid and useful for this plugin as well.
Current Plugin Version and State: v1.0.0
Matching Qlik Sense Version: Qlik Sense June 2017 release (or later). Both desktop and enterprise.
Matching QlikView Version: QlikView November 2017 (or later). Both desktop and server.
Disclaimer: Use it at your own risk. See License.
See the docs folder and the general SSE repo (server-side-extension).
- Overview
- Communication Flow
- Generating certificates for secure connection (server-side-extension)
- Limitations (server-side-extension)
- API Description (server-side-extension)
Since R scripts can be very powerful and you will never know what R script will be executed by this plugin (and R installation) you must be extra careful to secure the machine that this plugin and the R installation are deployed to as much as you can. If possible, sandbox the execution. Be aware of which user account that is starting the plugin and R installation and what access rights this user got in the machine and in your domain to minimize any harm a malicious script can cause.
Enable secure connection between the plugin server and Qlik by enabling mutual authentication. See the folder generate_certs_guide
that explains how to generate proper certificates. This can be found in the general SSE repo (server-side-extension).
- No support for Tensor calls from load script. Only scalar and aggregation.
- Resident Table load only.
- There is NO support of returning more rows or a matrix of data back to Qlik. The cardinality of the response from the plugin must be the same as sent from Qlik.
- If you make changes to the plugin config or add/remove plugins you have to restart the Qlik engine (i.e. restarting the Desktop process for Qlik Sense Desktop and QlikView Desktop, and restarting the Qlik Sense Engine Service or QlikView Server Service for server version). It is only during Engine startup that the plugin is connected and the GetCapability plugin method is called.
See LICENSE.txt. Also have a look at NOTICE.txt.
Please follow the instructions in CONTRIBUTING.md.