Templates API in Siren Investigate
context.registerPerspectives
The context
global variable provides a registerPerspectives
function you can use to register perspectives in the Siren Platform.
You must define perspectives in groups corresponding to their type. At the moment, there are 2 possible types of template perspectives:
-
view
- for displaying interactive data. -
binary
- for statically opening and downloading data.
Example
context.registerPerspectives({
shareComputedDataAcrossPerspectives: false,
view: {
'View 1': view1Definition,
'View 2': view2Definition
},
binary: {
'Download pdf report': myPdfReportDefinition
}
});
Properties
Name | Type | Description |
---|---|---|
view |
|
(Optional) Dictionary of view perspectives. |
binary |
|
(Optional) Dictionary of binary perspectives. |
shareComputedDataAcrossPerspectives |
|
(Optional) Whether perspectives of the script will share the |
PerspectiveDefinition
An object that defines a perspective to register with context.registerPerspectives
.
Properties
Name | Type | Description |
---|---|---|
computedDataTTL |
|
(Optional) A number representing the time, in seconds, Investigate will keep the |
dataModelFormatting |
|
A boolean or list of strings that controls the content of the
|
PerspectiveDefinition.render(PerspectiveInput)
Renders the output of the perspective. The output of the function depends on its type:
-
view
-JSX.Element
, a React element to display. -
binary
-BinaryOutput
, a binary output representation.
When the perspective defines an enrich function, the render function must be synchronous.
Parameter | Type | Description |
---|---|---|
PerspectiveInput |
Properties used to render the data. |
Returns: the output type depends on the perspective type.
-
view
: must return a React element. -
binary
: must return a BinaryOutput object.
PerspectiveDefinition.enrich(PerspectiveInput)
An optional function that is responsible for fetching and processing data.
Use it to refresh view perspectives during long data processing. Investigate will call the render
function periodically until enrich
completes.
You can store computed data in the input computedData
property to make it available to the render
function.
Parameter | Type | Description |
---|---|---|
PerspectiveInput |
Properties used to process the data. |
PerspectiveInput
Input data passed to all perspective functions.
Name | Type | Description |
---|---|---|
source |
|
A raw source of the record data. |
sourceMeta.sourceType |
|
Type of the input document. 'elasticsearch' refers to an Elasticsearch-based document. 'eid' refers to a virtual entity identifier. |
sourceMeta.fields |
|
The |
sourceMeta.formattedFields |
|
A key-value dictionary that maps field names to values as formatted strings ready to display. Only defined when |
record |
|
A DataRecord instance for the displayed record. |
dataModelEntity |
|
A DataModelEntity instance for the data model entity that prompted the record display. |
computedData |
|
An object used to store fetched data and make it available on |
computedMeta.creationTime |
|
Time the |
computedMeta.expirationTime |
|
Time the |
cancelPromise |
|
A promise rejected in case of cancellation (for example, the user changes the page or closes the Record Viewer). |
isCanceled |
|
A function returning whether the execution was canceled. |
BinaryOutput
Representation of an output binary object. The object must have either the content
property or the templateId
property.
Name | Type | Description |
---|---|---|
filename |
|
File name used when downloading the resource. |
content |
|
(Optional) Static content of the binary object. |
templateId |
|
(Optional) A jsreport template id. See Creating downloadable reports for how to create jsreport templates. |
data |
|
(Optional) Data supplied to the jsreport template. |