JSON Schema for CustomViewApi

Type: object

Definitions:

CustomViewApi.ViewApiManifest

Type: object

Describes the manifest.json file, which contains naming, settings, behaviour etc. for a custom view.

No Additional Properties

Type: string

The displayed name of this custom view when shared/exported. This is read-only property. This is set when you create the view. Allows views to use it as a key for storing custom data that is shared across views or tabs.

Type: boolean

Marks this as a native 'core' view bundled with Omniscope and loaded in the same page without using IFRAMEs. The resources (JS, CSS) for the view must be included in the main page index.html.
Example: true

Type: string

The version of the custom view framework; determines what JS libraries and methods are available, and internal workings such as communication with the enclosing application.
Must match with the JS client library version.

Type: string

SVG icon file name with extension.

Type: string

Thumbnail file name with extension.

Type: string

README.md file name with extension.

Type: array of string

List of tags used to search for the view.

No Additional Items

Each item of this array must be:

Type: boolean Default: false

Defines if the view is loaded in sandboxed iframe or not. Used to control the sandbox property of the iframe.
Example: true

Type: boolean Default: true

Enables auto-paning logic and options for the view.
Example: true

Type: boolean Default: true

Enables the view to receive data within the context automatically, otherwise the view will need to query server by itself.
Example: true

Type: boolean

Marks this view as the native devices view, enabling device view extensions needed to administer a query.
Example: true

Type: number

The limit to use in the query api calls if autoQuery is true. This will apply a limit to the query and show a watermark showing that there was some truncation if the number of rows exceed it.
Example: 123.45

Type: boolean Default: true

Marks this view as supporting selection
Example: true

CustomViewApi.OptionDefinitions

Type: object

Definitions for the menu options and actions/buttons relevant to views of this type.
These definitions are respective to the option instances in 'context.options'.

No Additional Properties

Type: objectFormat: map

Defines a mapping of all the items the user can configure in this view. Each item describes groupings, measures and other UI options/actions.The key in the mapping is the property name which is also used to store the user defined setting in the context. Only options listed here will be available in this view. On switching view, settings with the same key will be transferred where possible.

Note that 'paneX' and 'paneY' are special properties that apply to auto paning and are always skipped by auto query.

Each additional property must conform to the following schema

CustomViewApi.OptionDefinition

Type: object

Defines an option which is available in instances of the view.
Used for several purposes:
1. to define the schema in the View Context. E.g. "measures" is an array of measure objects
2. to define the UI for configuring these options.
3. to influence how data querying is performed if using auto-query.

No Additional Properties

Type: string

The display name of the option.
Can be omitted; the option key will be used. Allows you to rename a common concept such as 'split' (e.g. carried over on switch view) but giving it a different display name.

Type: string

Allows you to set a detail text for the option which is then shown on tooltip

Type: string

Allows you to specify a detailed description which is then shown below the option. Supports markdown.

Type: string

Font awesome icon to use. This should be the required CSS class names string, for example "fa fa-cube" will give you a cube. Only valid if the item appears in the micro-toolbar. In future other icon fonts may be supported, but currently only Font Awesome is supported and only the version currently bundled by Omniscope which may change.

Type: enum (of string)

Defines the type of the option.
ACTION: button that has an effect; n/a, there is no corresponding option/state;
CHOICE: arbitrary choice from list of choices; schema is whatever is available in #values, or array thereof;
FIELD: allows you to choose a schema field; schema is a string, or an array of field names as string depending on #list value.;
GROUPING: groups/splits the data into buckets, or discrete axes in the view; schema is query API Grouping, or array thereof;
MEASURE: calculates a sum/mean etc. for each group value, often for continuous axes in the view; schema is query API Measure, or array thereof;
TEXT: free-text entry; schema is string;
NUMBER: number entry; schema is number;
STYLE: style entry;
TOGGLE: yes/no checkbox; schema is boolean.

Must be one of:

  • "GROUPING"
  • "MEASURE"
  • "CHOICE"
  • "TOGGLE"
  • "ACTION"
  • "TEXT"
  • "FIELD"
  • "COLOUR"
  • "NUMBER"
  • "DATE"
  • "STYLE"
  • "FILE_REFERENCE"
  • "EMBEDDED_VIEW_OPTIONS"

Type: boolean

Determines whether this is a multi-list-of-items or a single (perhaps nullable) item.

Determines the schema in the view options - if true, it's a JSON array of zero or more objects; if false, it's a single JSON object (perhaps null).

Each item is of type #type, with the list extent limited by #minItems and #maxItems.
Note that lists cannot contain nulls. Whereas #mandatory controls whether the array itself can be null.
Note we may only support lists of measures or groupings, and may not support complex items like lists of choices.
Example: true

Type: number

The minimum number of items for this list.
Relevant only if #list is true, e.g. for measures, splits. Default 0, or 1 if #mandatory.
Example: 123.45

Type: number

The maximum number of items for this list.
Relevant only if #list is true, e.g. for measures, splits. Default null/undefined, meaning unlimited.
Example: 123.45

Type: boolean

If true, the value for this option MUST be specified.
In the view options, the value cannot be null. If this is a list, the array must have at least 1 item. If false, the value for this option can be null, unless it is a list, in which case it cannot be null, but can be empty. (For lists, mandatory=true has the same meaning as minItems=1).
Example: true

Type: array of string

Arbitrary values that can be chosen from, for the case of CHOICE. For GROUPING, MEASURE and FIELD, any special values other than field names that should be visible to end user to choose from.
For example, you might want to pick 'Node value' in a network view's colour-by; this would result in a string in the view options, instead of a Measure, if the user chose this special value - in this case, the schema for the view options would effectively be 'Measure|String' or List<Measure|String>' union type. Note: You should use #displayValues to specify display values for each entry.

No Additional Items

Each item of this array must be:

Type: array of string

A respective array corresponding to the #values property containing the display text to use for the entry found in the #values. Any missing entries or if this left blank then #values entry is used for display purposes.

No Additional Items

Each item of this array must be:

Type: array of string

A respective array corresponding to the #values property containing the description text to use for the entry found in the #values.

No Additional Items

Each item of this array must be:

Type: enum (of string)

If null, choices will be displayed via dropdown. If set, the value can be either AUTO (automatically decides layout), LIST (vertical list of radio buttons), MULTICOLUMN (multiple columns are used) or COMPACT (displays all radio buttons in a single line).

Must be one of:

  • "AUTO"
  • "LIST"
  • "COMPACT"
  • "MULTICOLUMN"

Type: boolean

Applies only to lists. Specifies whether fields are allowed to appear multiple times.
Example: true

Type: boolean

Defines whether or not grouping values can be sorted or not.
See GenericOptionDefinitions#sort. Only applies to OptionType#GROUPING.
Example: true

Type: boolean

Defines whether the number is a float. Only applies to OptionType#NUMBER.
Example: true

Type: number

The minimum value for this number.
Example: 123.45

Type: number

The maximum number for this number.
Example: 123.45

Type: array of enum (of string)

Defines various style options to be allowed to use. Only applies to OptionType#STYLE.

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "SIZE"
  • "COLOUR"
  • "BACKGROUND_COLOUR"
  • "ALIGNMENT"
  • "VERTICAL_ALIGNMENT"
  • "BOLD"
  • "ITALIC"

Type: array of string

Defines how the defaults for this definition are chosen. Only relevant when option type is FIELD, MEASURE, GROUPING. For example, to auto-select fields matching 'latitude' or matching 'latitude.*'. Accepts an array of regular expressions. The first field that matches one of them will be selected. Expressions at the beginning of the array have priority over those at the end.

No Additional Items

Each item of this array must be:

Type: string

Regular expression, if specified will be used to validate text entered. Only applicable for type TEXT. If you want to ensure that only numbers can be entered, change the OptionType to NUMBER

Type: boolean

Only applicable for type TEXT. If true, the text will be a multiline TEXTAREA.
Example: true

Type: boolean

Hides an option from the side panel - for options that don't need editing directly
Example: true

Type: array of enum (of string)

Relevant when option type is FIELD, MEASURE or GROUPING. Controls the type of fields to show. If empty array will result in all schema fields from being included. Leave null to allow field types. Available values are: NUMBER, DATE, TEXT.

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "TEXT"
  • "NUMBER"
  • "DATE"
  • "RANGE_NUMBER"
  • "RANGE_DATE"

Type: array of string

Relevant when option type is FIELD, MEASURE or GROUPING. Allows you to restrict to only allow certain fields to be picked. This is useful if you want to allow picking of certain fields only.

No Additional Items

Each item of this array must be:

Type: array of enum (of string)

Relevant for when the #type is MEASURE. Controls the type of measure function results supported. This is useful if the view will only handle certain types of measure function results.
Available values are: NUMBER, DATE, TEXT.

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "TEXT"
  • "NUMBER"
  • "DATE"
  • "RANGE_NUMBER"
  • "RANGE_DATE"

Type: array of enum (of string)

Relevant for when the #type is MEASURE. Allows you to restrict the type measure functions supported.

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "RECORD_COUNT"
  • "MIN"
  • "MAX"
  • "MEAN"
  • "SUM"
  • "SINGLETON"
  • "UNIQUE_VALUE_COUNT"
  • "STANDARD_DEVIATION"
  • "MEDIAN"
  • "LOWER_QUARTILE"
  • "UPPER_QUARTILE"
  • "PERCENTILE"
  • "MODE"
  • "EMPTY_COUNT"
  • "NON_EMPTY_COUNT"
  • "FORMULA"

Type: array of enum (of string)

Relevant for when the #type is GROUPING. Allows you to restrict the type grouping types supported.
Available values are: "HISTOGRAM" or "UNIQUE_VALUES". If not specified then all types are supported.

No Additional Items

Each item of this array must be:

Type: enum (of string)

Must be one of:

  • "UNIQUE_VALUES"
  • "HISTOGRAM"

Type: enum (of string)

Must be one of:

  • "NONE"
  • "BACKGROUND_COLOUR"
  • "FOREGROUND_COLOUR"
  • "FOREGROUND_COLOUR_50PC"
  • "FOREGROUND_COLOUR_25PC"
  • "DEFAULT_COLOUR"
  • "DEFAULT_COLOUR_25PC"
  • "FOREGROUND_AND_BACKGROUND_BLEND_90PC"

Type: enum (of string)

Must be one of:

  • "IMAGE"
  • "VIDEO"
  • "GEO"

CustomViewApi.ToolbarStructure

Type: object

Defines the order of items within the UI area for each placement choice.

No Additional Properties

Type: array of string

The main toolbar, above the view

No Additional Items

Each item of this array must be:

Type: array of string

The X axis, below the view.

No Additional Items

Each item of this array must be:

Type: array of string

The Y axis, left of the view.

No Additional Items

Each item of this array must be:

Type: array of string

The micro toolbar, upper-right of the view.

No Additional Items

Each item of this array must be:

Type: array

Defines a group which allows you to organise your options so that they can be grouped together. The order in which you specify groups controls the order in which groups are displaced.

No Additional Items

Each item of this array must be:

CustomViewApi.OptionGroup

Type: object

Allows you to group options together for UI purposes. When you configure your view the options are then grouped according to what you specify here. Any options that are not in group are grouped together in the end in the end in a special group. A group is rendered like a table i.e. it has rows which consists of cells. Each option in the manifest is represented by a cell. You cannot have two options sharing the same cell.

No Additional Properties

Type: string

The name of the group which must be unique and is shown in the UI. Must be specified and must be unique among all other groups. Group names are case insensitive.

Type: array

A group contains a list of rows, and each row is shown in a new line in the UI. The "rows" contain one or more "cells". Each cell in a row is represented by an option. Some options may take up entire row if you have several cells on the same row. If this happens then subsequent cells will automatically wrap to the next line.

No Additional Items

Each item of this array must be:

CustomViewApi.OptionGroupRow

Type: object

A row represents a line in the UI to show one or more UI option in the row. Ideally, we suggest you have no more than 3 cells per-row. However, if you specify more than any additional cells will auto-wrap to next row. Some cells may take up the entire row i.e. Grouping which have further options the user needs to configure i.e. grouping type, grouping field etc.

No Additional Properties

Type: string

Optional title to display. Can be used to create sub-sections inside a group.

Type: array

An array of cells for the row to show in the UI.

No Additional Items

Each item of this array must be:

CustomViewApi.OptionGroupCell

Type: object

A cell represents the UI component that renders your manifest option. A cell must be contained within a row and cannot represent more than one option. You cannothave empty cells in the UI. The name given to this option in the UI is derived from the option definition itself.

No Additional Properties

Type: string

These are the internal names of the option which is defined by the "key" you used to put the options in the "items" property of the manifest. This cannot be left blank and must be specified.

Type: boolean Default: false

Allows you to specify that the title should be inside the input element
Example: true

Type: enum (of string)

Allows you to specify a width type ONE, TWO, etc.. to specify how much space should be alloted to the option in a row

Must be one of:

  • "SHRINK"
  • "HALF"
  • "ONE"
  • "ONE_AND_HALF"
  • "TWO"
  • "THREE"

Type: objectFormat: map

Defines selection strategies and which options uses them.

Each additional property must conform to the following schema

CustomViewApi.PickOptionValueStrategySettings

Type: object

Selection strategies define the type of the selector and their group. Already selected items in a group are shared with all strategies participating strategies

No Additional Properties

Type: enum (of string)

Defines the type of the selection strategy

Must be one of:

  • "NONE"
  • "LEAST_SEEN"
  • "PRIORITISE_FIELDS"
  • "LONGITUDE"
  • "LATITUDE"
  • "REGEX"
  • "UPPER_CONFIDENCE_BOUND"
  • "LOWER_CONFIDENCE_BOUND"
  • "CANDLESTICK_OPEN"
  • "CANDLESTICK_CLOSE"
  • "CANDLESTICK_LOW"
  • "CANDLESTICK_HIGH"
  • "CANDLESTICK_VOLUME"

Type: string

Already selected items are shared with all strategies that have the same group name

Type: array
No Additional Items

Each item of this array must be:

CustomViewApi.OptionSection

Type: object

Defines a section of options, and the options within it, and how it is presented.

No Additional Properties

Type: enum (of string)

Must be one of:

  • "Style"
  • "Pane"
  • "Selection"
  • "X axis"
  • "Y axis"
  • "Z axis"
  • "Split axis (X)"
  • "Split"
  • "Range axis"
  • "Range"
  • "Measure axis (Y)"
  • "Measure"
  • "Stack"
  • "Layer"
  • "Segment"
  • "Bar"
  • "Table"
  • "Cell"
  • "Box"
  • "Band"
  • "Content"
  • "Marker"
  • "Bullet"
  • "Line"
  • "Area"
  • "Node"
  • "Edge"
  • "Link"
  • "Total"
  • "Difference"
  • "Image"
  • "Filters"
  • "Query"
  • "Settings"
  • "Target"
  • "Stats"
  • "Field"
  • "Funnel"
  • "Tile"
  • "Tag"
  • "Stream"
  • "Mirror"
  • "Map"
  • "Response"
  • "Predictor"
  • "Variable"
  • "Confidence band"
  • "Total"
  • "Event"
  • "3D"
  • "Titles"
  • "Group"
  • "Bubble"
  • "Lollipop"
  • "Dumbbell"
  • "Technical indicators"
  • "Editing"
  • "Network"
  • "Timeline"
  • "Task"
  • "Event"
  • "Tooltip"

Type: array
No Additional Items

Each item of this array must be:

CustomViewApi.OptionSubsection

Type: object

Defines a subsection of options within an OptionSection.

No Additional Properties

Type: array
No Additional Items

Each item of this array must be:


CustomViewApi.ViewOptions

Type: object

The default option values to use in a newly created instance of this view.

Does not need to have values for all mandatory items, although it is recommended for any non-data-related options for better usability. You can also list defaults for data-related options such as Groupings and Measures, but these will be ignored if the fields do not exist at point of use.

No Additional Properties

Type: objectFormat: map

Contains the mapping of user's choice for different options defined by the manifest. The key of the map is the same key defined by the manifest to represent the item. Values are String, Number, Boolean, Date, Color, QueryApi.Grouping, QueryApi.Measure, or a list of these.

Each additional property must conform to the following schema


Type: stringFormat: date-opt-time

Example: "1997-07-16", "1997-07-16T19:20:30Z" or "1997-07-16T19:20:30.452Z", always in UTC

QueryApi.Grouping

Type: object

Describes a single level/tier of grouping, similar an SQL GROUP BY condition or Omniscope "Bar" view's 'Split' option.

No Additional Properties

Type: string

The name of the input field. Field names are case insensitive but preserving, and cannot have leading or trailing whitespace.
Aliases: field

Type: enum (of string) Default: "UNIQUE_VALUES"

The method for bucketing/grouping the data. UNIQUE_VALUES is comparable to GROUP BY in SQL.

Must be one of:

  • "UNIQUE_VALUES"
  • "HISTOGRAM"

Type: enum (of string)

Relevant when #type is HISTOGRAM and #inputField is a date type.
If the input field has some formatting options, these will be amended to drop no longer significant sections.
If the input field does not have formatting options, a new date formatting will be introduced with pattern 'yyyy-MM-dd hh:mm:ss'
dropped to the unit specified.
For example, if the input field does not have a formatting and we are grouping by hour, the
output field will have a date formatting options with pattern dd/MM/yyyy HH

Must be one of:

  • "YEAR"
  • "QUARTER"
  • "MONTH"
  • "WEEK"
  • "DAY"
  • "HOUR"
  • "MINUTE"
  • "SECOND"

Type: number

Required when #type is HISTOGRAM. The width of each histogram interval. For DATE fields, must be integer and also factors of 60 (for minutes/seconds), 24 (hours), 12 (months), precisely 1 (days), or any integer (years).
Example: 123.45

Type: array

Relevant and mandatory when #type is SEQUENCE. The list of configurations that this grouping is a sequence of. Can contain either exclusively Measures or exclusively Groupings, not a mix.

No Additional Items

Each item of this array must be:


QueryApi.Measure

Type: object

Describes how to roll up numeric/date data, thereby producing an additional aggregated column in the output.

No Additional Properties

Type: string

The name of the output field. Field names are case insensitive but preserving, and cannot have leading or trailing whitespace.
If left unspecified a default name will be assigned as the name of the input field followed by the name of the function between parenthesis. It is a good practice to not, rely on this automatic name generation but use an explicit name where necessary

Type: string

Relevant when #function is a field-specific function such as SUM, MIN, MEAN. The name of the input field. Field names are case insensitive but preserving, and cannot have leading or trailing whitespace.
Aliases: field

Type: string

Relevant when #function is {@link MeasureFunction#MEAN} to specify a weighted mean.

Type: enum (of string)

The aggregation function to roll up a series of values.

Must be one of:

  • "RECORD_COUNT"
  • "MIN"
  • "MAX"
  • "MEAN"
  • "SUM"
  • "SINGLETON"
  • "UNIQUE_VALUE_COUNT"
  • "STANDARD_DEVIATION"
  • "MEDIAN"
  • "LOWER_QUARTILE"
  • "UPPER_QUARTILE"
  • "PERCENTILE"
  • "MODE"
  • "EMPTY_COUNT"
  • "NON_EMPTY_COUNT"
  • "FORMULA"

Type: number

Must be populated if and only if the function is PERCENTILE. If populated its value must be between 0 and 100 inclusive.
+The result of the measure will be the value of the field below which a this percentage of values will fall.
For example, if set to 20, the result of the measure will be the value below which 20% of the field values are found
Example: 123.45


Relevant (but optional) when #function is CONTEXTUALFROMSEQUENCE. Uniquely identifies the SEQUENCE measure which this measure reflects contextually; matches #id in the grouping of type SEQUENCE.Not needed if there is only one SEQUENCE-of-measures.

Type: string

Relevant when #function is FORMULA only. The formula itself, such as SUBSET_SUM([a]) / SUBSET_MEAN([b]).

QueryApi.MeasureLabelOptions

Type: object
No Additional Properties

CustomViewApi.TextStyle

Type: object
No Additional Properties

Type: enum (of string)

Must be one of:

  • "LEFT"
  • "RIGHT"
  • "HIDDEN_SHARED"
  • "HIDDEN_INDEPENDENT"

QueryApi.NumericFieldFormattingOptions

Type: object

Describes a numeric values should be formatted for a field

No Additional Properties

Type: boolean Default: false

If true the numeric values should be rendered as a percentage.
Example: true

Type: boolean Default: true

If true, thousand separator should be visible, false it should not be visible
Example: true

Type: string

If present a suffix to be displayed after the numeric value (before the % sign, if relevant)

QueryApi.DateFieldFormattingOptions

Type: object

Describes how date values should be formatted

No Additional Properties

Type: string

Specifies the pattern on how the date value should be formatted. e.g, yyyy-MM-dd'T'HH:mm:ss

QueryApi.Grouping

Type: object

Describes a single level/tier of grouping, similar an SQL GROUP BY condition or Omniscope "Bar" view's 'Split' option.

Same definition as QueryApi.Grouping


Relevant (but optional) when #type is SEQUENCE. An ID which uniquely identifies this grouping within the enclosing grid or table query. Not needed if this is the only SEQUENCE-of-measures or SEQUENCE-of-groupings. Can be a number or string.


Relevant (but optional) when #type is CONTEXTUALFROMSEQUENCE. Uniquely identifies the SEQUENCE grouping which this grouping reflects contextually; matches #id in the grouping of type SEQUENCE.Not needed if there is only one SEQUENCE-of-groupings.

Type: string

The name of the output field. Field names are case insensitive but preserving, and cannot have leading or trailing whitespace.

QueryApi.Measure

Type: object

Describes how to roll up numeric/date data, thereby producing an additional aggregated column in the output.

Same definition as QueryApi.Measure

CustomViewApi.FileReference

Type: object
No Additional Properties

Type: enum (of string) Default: "URL"

Must be one of:

  • "URL"
  • "PROJECT_ATTACHMENT"
  • "BUNDLED"
Type: array
No Additional Items

Each item of this array must be:


Type: stringFormat: date-opt-time

Example: "1997-07-16", "1997-07-16T19:20:30Z" or "1997-07-16T19:20:30.452Z", always in UTC

QueryApi.Grouping

Type: object

Describes a single level/tier of grouping, similar an SQL GROUP BY condition or Omniscope "Bar" view's 'Split' option.

Same definition as QueryApi.Grouping

QueryApi.Measure

Type: object

Describes how to roll up numeric/date data, thereby producing an additional aggregated column in the output.

Same definition as QueryApi.Measure

Type: object or array

An arbitrary JSON object for persisting custom instance-specific settings and state.

CustomViewApi.AutoPaneOptions

Type: object

Describes user-configurable options related to auto-paning. These apply to all panes, and are not specific to a given cell.

No Additional Properties

Type: number Default: 75

The header width for Y axis in pixels. Irrelevant if placement is NONE.
Example: 123.45

Type: number Default: 200

The width of the pane in pixels, then stretch to fill.
Example: 123.45

Type: number Default: 200

The height of the pane in pixels, then stretch to fill.
Example: 123.45

Type: boolean Default: true

Show or hide the pane grid.
Example: true

Type: number Default: 1

The thickness of the pane grid, in pixels.
Example: 123.45

Type: stringFormat: color

The colour of the pane grid.
Example: "rgba(255,255,255,1)"

Type: boolean Default: true

Example: true

Type: boolean Default: true

Example: true

Type: boolean Default: true

Example: true

Type: number Default: 1

Example: 123.45

Type: number Default: 1

Example: 123.45

Type: enum (of string) Default: "TOP"

The header placement of the X axis.

Must be one of:

  • "TOP"
  • "BOTTOM"
  • "NONE"

Type: enum (of string) Default: "LEFT"

The header placement of the Y axis.

Must be one of:

  • "LEFT"
  • "RIGHT"
  • "NONE"

Type: boolean Default: false

If true, show a colour key inside each pane. If false then show a colour key for all the panes.
Example: true

Type: boolean Default: false

If true, enable scrolling anywhere on the pane. For advanced use only, as this may interfere with the interactions on the view underneath.
Example: true

Type: object

An arbitrary JSON object containing custom manifest settings, such as API key. Not to be confused with 'options.custom'. Guaranteed not to be populated by visokio.

CustomViewApi.PaneConstraints

Type: object

Pane constraints for the view.

No Additional Properties

Type: number Default: 50

Defines the minimum width of a pane in pixels.
Example: 123.45

Type: number Default: 50

Defines the minimum height of a pane in pixels.
Example: 123.45

Type: number

Defines the maximum number of panes to load concurrently in the visible viewport of a single view. Null means there is no limit. This is the default for most views. If we specify a limit the framework will attempt to resize the views to ensure no more than maxCells are visible at any one time. This means PaneOptions.paneWidth and PaneOptions.paneHeight may be ignored.
Example: 123.45

Type: boolean

Example: true

Type: enum (of string)

Must be one of:

  • "MAP"

Type: boolean

Example: true

CustomViewApi.ViewApiContext

Type: object

The context object that is shared between the Container and the View Framework, to describe the data and configuration of the view

No Additional Properties

Type: string

The displayed name of this view, and also the unique name within the IOK file.


ID used to identify an instance of a view uniquely within a tab. For internal use only.

Type: string

The full absolute base URL for static resources for this custom view.

CustomViewApi.DataConfig

Type: object

Configuration describing how the view receives it's data

No Additional Properties

Type: string

The query API endpoint. Can be a relative (to enclosing document) or absolute URL. Never null in practice. If the view is invalid/unconfigured, it won't be rendered.

Type: object

The root node to supply in all submitted queries, which corresponds to the base data ('ALL') for the view's configured data source. This may be a report input, or a derivation of a report input by adding formulas, for example.

Type: string

Watermark displayed over the view to indicate health/quality issues with the data currently being served from the query API endpoint, such as 'Random sample'. It will automatically be rendered by the view framework.

QueryApi.Filter

Type: object

The filter rule used if paneX is configured

No Additional Properties

Type: enum (of string) Default: "FIELD_VALUE"

Must be one of:

  • "FIELD_VALUE"
  • "AND"
  • "OR"
  • "NOT"

Type: string

Relevant when #type is FIELD_VALUE only. The name of the input field. Field names are case insensitive but preserving, and cannot have leading or trailing whitespace.
Aliases: field

Type: enum (of string)

Relevant when #type is FIELD_VALUE only. Default EQUALS. Note that operators such as ">=" implicitly exclude NULL values.

Must be one of:

  • "="
  • "EQUALS_IGNORE_CASE"
  • "!="
  • "<"
  • "<="
  • ">"
  • ">="
  • "IN"
  • "CONTAINS"
  • "CONTAINS_IGNORE_CASE"


Relevant when #type is FIELD_VALUE only. The value to compare against, or for #operator IN, an array of values. Can be null for "EQUALS null" rule, or an array containing null for "IN (..., null, ...)" rule. Note that (e.g.) EQUALS(42) will match only 42 and will implicitly exclude all nulls; likewise NOT(EQUALS(42)) will match only 'not 42' so will implicitly include nulls and all other numbers. ValueRange objects can be used here to provide minumum and maximum bounds. Long values greater than 2^53 can be written as String to maintain precision.
Aliases: values

Type: stringFormat: date-opt-time

Example: "1997-07-16", "1997-07-16T19:20:30Z" or "1997-07-16T19:20:30.452Z", always in UTC

QueryApi.ValueRange

Type: object

Stores lower and upper bound values of a range.

No Additional Properties


Lower bound of range - inclusive

Type: stringFormat: date-opt-time

Example: "1997-07-16", "1997-07-16T19:20:30Z" or "1997-07-16T19:20:30.452Z", always in UTC


Upper bound of range - exclusive

Type: stringFormat: date-opt-time

Example: "1997-07-16", "1997-07-16T19:20:30Z" or "1997-07-16T19:20:30.452Z", always in UTC

Type: array
No Additional Items

Each item of this array must be:

Type: array

Relevant when #type is AND, OR or NOT. The nested filters to combine in an AND or OR rule (can be empty for FULL or NONE selections respectively), or a single nested filter for a NOT rule.
Aliases: filter

No Additional Items

Each item of this array must be:

QueryApi.Filter

Type: object

Describes a single constraint (or a group of constraints with logical combination), equivalent to an SQL WHERE clause item.

Same definition as paneXFilter

QueryApi.Filter

Type: object

The filter rule used if paneY is configured

Same definition as paneXFilter

QueryApi.Filter

Type: object

The main filter rule that should be used when querying the active data for the view. Typically includes the state of the application filter devices.

Automatically also narrows for a selection in another view, if any (auto brushing).
If auto-paning is enabled, automatically also narrowed for the pane cell's filter rule.
May be null/undefined if no filter rule applies at all.

Same definition as paneXFilter

QueryApi.Filter

Type: object

Relevant only when brushing is active (when another view has a selection). A filter rule to use when querying data before brushing took effect. Use this to optionally add rendering of the brushing 'shadow' typically shown underneath the main view rendering.
Null/undefined when brushing is inactive.

Same definition as paneXFilter

QueryApi.Filter

Type: object

Relevant only when auto-paning is enabled. A filter rule to use if you need to query data for the entire view, not just the enclosing pane cell.
Null/undefined when paning is disabled.

Same definition as paneXFilter

QueryApi.Filter

Type: object

Relevant only when auto-paning is enabled and brushing is active. A filter rule to use to query data for the entire view, before brushing took effect, as per shadowFilter.
Null/undefined when paning is disabled.

Same definition as paneXFilter


A ViewSelection object, or null/undefined. Describes the view's own selection, or null if no selection is present.
For convenience you can put a Filter here, but the framework will wrap it in a ViewSelection.

CustomViewApi.ViewSelection

Type: object

Describes a selection within a view

No Additional Properties

QueryApi.Filter

Type: object

A mandatory Filter object; if null, the selection (and this object) will be cleared. As per dataConfig.filter.
Describes the view's selection in terms of the query rules it equates to. Should not include the view's base filters from dataConfig.filter. This validated on the server when schema changes and invalid reason is stored in "invalidReason" property.

Same definition as paneXFilter

Type: object or array

A sister property to filter that describes the selection in the view in terms that are internal to the view implementation. Optional. If used, it will be persisted and can be consulted to restore a persistent selection more easily than the Filter. If this is not populated, the selection will not be persistent (saved & restored). If this is populated, your view must be able to reinstate the visual selection appearance, or choose to clear it by updating the context. Be sure to check this value is recognised, as the selection may have been persisted in an older version of your custom view.

Type: string

States the invalid reason if the Filter object is not valid against the schema. For example, the field the Filter object references is no longer present in the schema. Your view will be marked as invalid if this is set.

QueryApi.Filter

Type: object

Describes a single constraint (or a group of constraints with logical combination), equivalent to an SQL WHERE clause item.

Same definition as paneXFilter

CustomViewApi.GlobalOptions

Type: object

Global options which are not specific to any particular view, but need to be available to the custom view implementation.

No Additional Properties

Type: boolean Default: true

Example: true

Type: boolean Default: false

Example: true

Type: boolean Default: false

Example: true

Type: boolean Default: false

Example: true

Type: boolean Default: false

Example: true

Type: array

All the image sets configured in this file, allowing building of an image URL for a given record in the data.

No Additional Items

Each item of this array must be:

CustomViewApi.ImageSetInfo

Type: object

Describes a data-driven image set.

No Additional Properties

Type: string

The unique name of this image set

Type: string

The base location to retrieve the images. Needed only if field has only filenames or relative paths.

Type: string

The name of the field, which will contain the image filenames, or relative or absolute paths.

Type: string Default: "jpg"

The default extension of the images, if not specified in the field's values. Null/absent to support files without filename extensions.

Type: array

All the link definitions configured in this file, allowing building of an external URL for a given record in the data.

No Additional Items

Each item of this array must be:

CustomViewApi.LinkDefinition

Type: object

A data-driven web link (a URL building formula)

No Additional Properties

Type: string

The unique name of this link definition

Type: array

The elements that are used to build up the link. The elements are ordered in the sequence in which the URL should be built.

No Additional Items

Each item of this array must be:

CustomViewApi.LinkDefinitionElement

Type: object

A URL element within a LinkDefinition. Used to build up the link.

No Additional Properties

Type: enum (of string) Default: "TEXT"

Whether this is static (TEXT) or data-driven by field value (FIELD)

Must be one of:

  • "TEXT"
  • "FIELD"

Type: string

Relevant for FIELD; the field name whose value will be injected into the URL.

CustomViewApi.ViewAnimationOptions

Type: object
No Additional Properties

Type: enum (of string) Default: "INHERIT"

Must be one of:

  • "INHERIT"
  • "SINGLE_SELECTION"
  • "MULTI_SELECTION"

CustomViewApi.ViewOptions

Type: object

View instance options and permissions.

Same definition as defaultOptions

CustomViewApi.ViewOptions

Type: object

View instance options.
Persisted and provided by the enclosing application

Same definition as defaultOptions

CustomViewApi.StylisedTitle

Type: object
No Additional Properties

CustomViewApi.StylisedText

Type: object
No Additional Properties

Type: boolean

Example: true

Type: boolean Default: true

Example: true

CustomViewApi.ViewApiManifest

Type: object

A read-only copy of the custom view's manifest.json file, which describes the view's implementation and behaviour. This can be null if the manifest is not valid with the reason specified in the invalidReason property.

Same definition as CustomViewApi.ViewApiManifest

CustomViewApi.AutoQueryResult

Type: object

Contains the result of the auto-query, if auto-query is enabled in the manifest. Can be null/undefined.

No Additional Properties

QueryApi.TableQueryOutput

Type: object

The table query api output.

No Additional Properties

QueryApi.SchemaFieldsQueryOutput

Type: object

Metadata about each output column.

No Additional Properties

Type: array

The fields in this table.

No Additional Items

Each item of this array must be:

QueryApi.SchemaField

Type: object

Describes a single field in the source data.
An array of these objects forms the response body for the /schema/fields endpoint.

No Additional Properties

Type: string

The name of the output field. Field names are case insensitive but preserving, and cannot have leading or trailing whitespace.

Type: enum (of string)

The data type of the field.

Must be one of:

  • "TEXT"
  • "NUMBER"
  • "DATE"
  • "RANGE_NUMBER"
  • "RANGE_DATE"

Type: number

The granularity of the field. The smallest increment that the field can model. Relevant to number fields (e.g. 1 for integer fields, 0.1 for precision to 1dp) and date fields (the number of milliseconds e.g. 3600000 for precision to 1 hour).
Example: 123.45


Formatting options for the field.

QueryApi.NumericFieldFormattingOptions

Type: object

Describes a numeric values should be formatted for a field

Same definition as numericFormattingOptions

QueryApi.DateFieldFormattingOptions

Type: object

Describes how date values should be formatted

Same definition as dateFormattingOptions

QueryApi.TableQueryDiagnostics

Type: object

Diagnostics associated with a query api request

No Additional Properties

QueryApi.TableQueryVertexDiagnostics

Type: object
No Additional Properties

QueryApi.SchemaFieldsQueryOutput

Type: object

Describes the schema (field names and data types) of a table query source or result table.

Same definition as schema

Type: string

An identifier for the query used to track diagnostics on the server side

Type: string

If the query has been executed as part of a composite query, it's the queryTag of the composite query. Null otherwise.
For example, the parentQueryTag of a table api request executed as part of a Batch request, would be the queryTag
of the batch query.

Type: string

A brief description of why the query was executed

Type: boolean Default: false

If the QueryNode is editable in the implementation.
This refers to 'structural editability' and does not include editing permissions.
In other words this would true if the source of the query support editing, and each operation
also allows for editing. If this is true, and EditAgainst query could be submitted with the query as input
Example: true

Type: array of array

Output data table containing the resulting data rows and columns. A 2d array indexed [row][column]. Cells are data values (numbers, dates, strings) or ValueRanges (in group columns for histogram groupings).

No Additional Items

Each item of this array must be:

Type: array
No Additional Items

Each item of this array must be:

QueryApi.TableQueryDiagnostics

Type: object

Diagnostics associated with a query api request

Same definition as diagnostics

QueryApi.TableQueryOutput

Type: object

The table query api output for the brushed out data. Can be null/undefined.

Same definition as data

Type: objectFormat: map

Maps the option key to the column index in the query output (#data and #shadowData). If the option is defined as a 'list' in the manifest, this will be an array of column indexes respective to the list of options configured.

Each additional property must conform to the following schema


Type: array of number
No Additional Items

Each item of this array must be:

CustomViewApi.AutoPaneCell

Type: object

When auto-pane is enabled, describes the enclosing pane cell's coordinates in the pane grid, in contexts given to per-pane rendering logic.

No Additional Properties

CustomViewApi.AutoPaneCellPosition

Type: object

X position of the chart within the pane.

No Additional Properties

Type: number Default: 0

Index into the pane grid.
Example: 123.45

Type: array

A respective array of data values for each level in the pane groupings. When paning by just one tier (most common) then this is a singleton array containing the pane value. Identical to output headers in Query grid API

No Additional Items

Each item of this array must be:


Type: stringFormat: date-opt-time

Example: "1997-07-16", "1997-07-16T19:20:30Z" or "1997-07-16T19:20:30.452Z", always in UTC

QueryApi.ValueRange

Type: object

Stores lower and upper bound values of a range.

Same definition as QueryApi.ValueRange

QueryApi.DifferenceMarker

Type: object

Stores a difference header cell marking a difference column/row.

No Additional Properties

QueryApi.AllMarker

Type: object

Marker that indicates the 'All' value when totals are included in a grouping, e.g. for grid total rows/columns

No Additional Properties

Type: boolean Default: true

Always present, always true
Example: true

CustomViewApi.AutoPaneCellPosition

Type: object

Y position of the chart within the pane.

Same definition as x

Type: objectFormat: map

The current values for all variables. Depending on the variable configuration, this value may be specific to the current tab or global to all tabs. The key is the precise name given to the variable and displayed on screen, which may contain spaces or illegal JS identifier characters so should be accessed using ["Name"] notation.

Each additional property must conform to the following schema


Type: stringFormat: date-opt-time

Example: "1997-07-16", "1997-07-16T19:20:30Z" or "1997-07-16T19:20:30.452Z", always in UTC

Type: array
No Additional Items

Each item of this array must be:

QueryApi.FormulaVariable

Type: object

A formula variable's current value, for a FieldMappingOperation

No Additional Properties

Type: string

The unique name of the variable. Note this is case insensitive unique and must not conflict with any field names.


The variable value, of any type corresponding to {@link VariableDataType}; can be null.

Type: enum (of string)

The explicit data type of this variable. This is mandatory if value is null, because it cannot be inferred.

Must be one of:

  • "BOOLEAN"
  • "TEXT"
  • "NUMBER"
  • "DATE"

Type: string

If non-null, this view is entirely invalid and will not be rendered. The text will be displayed instead.

Type: number

Example: 123.45