Skip to content

Latest commit

 

History

History
226 lines (156 loc) · 9.33 KB

SSE_Protocol.md

File metadata and controls

226 lines (156 loc) · 9.33 KB

Protocol Documentation

Top

ServerSideExtension.proto

A number of rows collected in one message. The actual number will depend on the size of each row and is adjusted to optimize throughput.

Field Type Label Description
rows Row repeated

A full description of the plugin, sent to the Qlik engine, listing all functions available and indicating whether script evaluation is allowed.

Field Type Label Description
allowScript bool optional When true, the Qlik engine allows scripts to be sent to the plugin.
functions FunctionDefinition repeated The definitions of all available functions.
pluginIdentifier string optional The ID or name of the plugin.
pluginVersion string optional The version of the plugin.

A header sent at the start of both an EvaluateScript request and an ExecuteFunction request under the key "qlik-commonrequestheader-bin".

Field Type Label Description
appId string optional The ID of the app the request was executed in.
userId string optional The ID of the user the request was executed by.
cardinality int64 optional The cardinality of the parameters.

The basic data type for the data stream. Can contain double, string, or both.

Field Type Label Description
numData double optional Numeric value as double.
strData string optional String.

An empty message used when nothing is to be passed in a call.

Field Type Label Description

Field definition for function and script calls.

Field Type Label Description
dataType DataType optional The data type of the field.
name string optional The name of the field.
tags string repeated The tags of the field.

The definition of a function, which informs the Qlik engine how to use it.

Field Type Label Description
name string optional The name of the function.
functionType FunctionType optional The type of the function.
returnType DataType optional The return type of the function.
params Parameter repeated The parameters the function takes.
functionId int32 optional A unique ID number for the function, set by the plugin, to be used in calls from the Qlik engine to the plugin.

A header sent at the start of an ExecuteFunction request under the key "qlik-functionrequestheader-bin".

Field Type Label Description
functionId int32 optional The ID of the function to be executed.
version string optional A dummy variable as a workaround for an issue.

Parameter definition for functions and script calls.

Field Type Label Description
dataType DataType optional The data type of the parameter.
name string optional The name of the parameter.

A row of duals.

Field Type Label Description
duals Dual repeated Row of duals.

A header sent at the start of an EvaluateScript request under the key "qlik-scriptrequestheader-bin".

Field Type Label Description
script string optional The script to be executed.
functionType FunctionType optional The function type of the script evaluation: scalar, aggregation or tensor.
returnType DataType optional The return type from the script evaluation: numeric, string or both.
params Parameter repeated The parameters names and types passed to the script.

A header sent before returning data to Qlik, under the key "qlik-tabledescription-bin".

Field Type Label Description
fields FieldDescription repeated The fields of the table.
name string optional The name of the table.
numberOfRows int64 optional Number of rows in table.

Data types of the parameters and return values.

Name Number Description
STRING 0 Contains only string.
NUMERIC 1 Contains only double.
DUAL 2 Contains both a string and a double.

Types of functions (determined by their return values).

Name Number Description
SCALAR 0 The return value is a scalar per row.
AGGREGATION 1 All rows are aggregated into a single scalar.
TENSOR 2 Multiple rows in, multiple rows out.

The communication service provided between the Qlik engine and the plugin.

Method Name Request Type Response Type Description
GetCapabilities Empty Capabilities A handshake call for the Qlik engine to retrieve the capability of the plugin.
ExecuteFunction BundledRows BundledRows Requests a function to be executed as specified in the header.
EvaluateScript BundledRows BundledRows Requests a script to be evaluated as specified in the header.
.proto Type Notes C++ Type Java Type Python Type
double double double float
float float float float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int int
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 long int/long
uint32 Uses variable-length encoding. uint32 int int/long
uint64 Uses variable-length encoding. uint64 long int/long
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int int
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 long int/long
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int int
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 long int/long
sfixed32 Always four bytes. int32 int int
sfixed64 Always eight bytes. int64 long int/long
bool bool boolean boolean
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string String str/unicode
bytes May contain any arbitrary sequence of bytes. string ByteString str