List of json schemas
ARLAS
arlasconfig.schema.json
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "ARLAS-wui application Configuration",
"description": "The Configuration of an arlas web application",
"type": "object",
"$id": "arlasconfig.schema.json",
"properties": {
"arlas": {
"description": "Configuration of ARLAS-wui Project",
"type": "object",
"properties": {
"web": {
"description": "Configuration of ARLAS Web Front End",
"type": "object",
"properties": {
"contributors": {
"description": "Configuration of each arlas contributors",
"type": "array",
"uniqueItemProperties": [
"identifier"
],
"items": {
"allOf": [
{
"type": "object",
"properties": {
"type": {
"enum": [
"analytics",
"chipssearch",
"detailedhistogram",
"histogram",
"map",
"resultlist",
"swimlane",
"tree",
"metric"
]
}
}
},
{
"if": {
"type": "object",
"properties": {
"type": {
"const": "analytics"
}
}
},
"then": {
"$ref": "analyticsContributorConf.schema.json#"
}
},
{
"if": {
"type": "object",
"properties": {
"type": {
"const": "chipssearch"
}
}
},
"then": {
"$ref": "chipssearchContributorConf.schema.json#"
}
},
{
"if": {
"type": "object",
"properties": {
"type": {
"const": "detailedHistogram"
}
}
},
"then": {
"$ref": "detailedHistogramContributorConf.schema.json#"
}
},
{
"if": {
"type": "object",
"properties": {
"type": {
"const": "histogram"
}
}
},
"then": {
"$ref": "histogramContributorConf.schema.json#"
}
},
{
"if": {
"type": "object",
"properties": {
"type": {
"const": "map"
}
}
},
"then": {
"$ref": "mapContributorConf.schema.json#"
}
},
{
"if": {
"type": "object",
"properties": {
"type": {
"const": "resultlist"
}
}
},
"then": {
"$ref": "resultlistContributorConf.schema.json#"
}
},
{
"if": {
"type": "object",
"properties": {
"type": {
"const": "swimlane"
}
}
},
"then": {
"$ref": "swimlaneContributorConf.schema.json#"
}
},
{
"if": {
"type": "object",
"properties": {
"type": {
"const": "tree"
}
}
},
"then": {
"$ref": "treeContributorConf.schema.json#"
}
},
{
"if": {
"type": "object",
"properties": {
"type": {
"const": "metric"
}
}
},
"then": {
"$ref": "computeContributorConf.schema.json#"
}
}
]
},
"additionalProperties": false
},
"filters_shortcuts": {
"description": "List of shortcut widgets to filter data",
"type": "array",
"items": {
"description": "Analytic components organisation configuration",
"type": "object",
"properties": {
"uuid": {
"description": "identifier of the shortcut",
"type": "string"
},
"title": {
"description": "Title of the shortcut",
"type": "string"
},
"order": {
"description": "order in the list",
"type": "number"
}
},
"required": [
"uuid",
"title",
"order"
]
}
},
"analytics": {
"description": "Configuration of an Analytics Panel",
"type": "array",
"items": {
"description": "Analytic components organisation configuration",
"type": "object",
"properties": {
"groupId": {
"description": "Id of group to regroup component in same line",
"type": "string"
},
"filterValues": {
"description": "Values used to filter the display of group",
"type": "array",
"items": {
"description": "Value used to filter the display of group",
"type": "string"
}
},
"components": {
"description": "List of components in group",
"type": "array",
"items": {
"description": "Component configuration",
"type": "object",
"properties": {
"contributorId": {
"description": "Identifer of contributor link to this component",
"type": "string"
},
"componentType": {
"description": "Type of component",
"enum": [
"histogram",
"powerbars",
"swimlane",
"resultlist",
"donut",
"metric"
]
},
"title": {
"description": "Title of the component",
"type": "string"
},
"icon": {
"description": "icon of the component, from material design icon",
"type": "string"
},
"customizedCssClass": {
"description": "css class name to be applied on the component container",
"type": "string"
}
},
"required": [
"contributorId",
"componentType",
"input"
],
"anyOf": [
{
"properties": {
"componentType": {
"enum": [
"histogram"
]
},
"input": {
"description": "Input of histogram component.",
"allOf": [
{
"$ref": "histogram.schema.json#"
}
]
}
}
},
{
"properties": {
"componentType": {
"enum": [
"resultlist"
]
},
"input": {
"description": "Input of resultlist component.",
"type": "object"
}
}
},
{
"properties": {
"componentType": {
"enum": [
"powerbars"
]
},
"input": {
"description": "Input of powerbars component.",
"allOf": [
{
"$ref": "powerbars.schema.json#"
}
]
}
}
},
{
"properties": {
"componentType": {
"enum": [
"donut"
]
},
"input": {
"description": "Input of donut component.",
"allOf": [
{
"$ref": "donut.schema.json#"
}
]
}
}
},
{
"properties": {
"componentType": {
"enum": [
"swimlane"
]
},
"input": {
"description": "Input of swimlane component.",
"allOf": [
{
"$ref": "swimlane.schema.json#"
}
]
}
}
},
{
"properties": {
"componentType": {
"enum": [
"metric"
]
},
"input": {
"description": "Input of metric component.",
"allOf": [
{
"$ref": "metric.schema.json#"
}
]
}
}
}
]
}
},
"title": {
"description": "Title of panel group",
"type": "string"
},
"icon": {
"description": "Icon of panel group, from material design icon",
"type": "string"
}
},
"required": [
"groupId",
"components"
]
}
},
"components": {
"description": "Configuration of arlas components",
"type": "object",
"patternProperties": {
"^(share)$": {
"patternProperties": {
"^(geojson)$": {
"description": "Configuration of arlas share component",
"type": "object",
"properties": {
"max_for_feature": {
"description": "Max number of elements returned by arlas-server in feature mode",
"type": "number"
},
"max_for_topology": {
"description": "Max number of elements returned by arlas-server in topology mode",
"type": "number"
},
"sort_excluded_type": {
"description": "List of excluded field's types in sort option",
"type": "array"
}
},
"required": [
"max_for_feature",
"sort_excluded_type"
]
}
}
},
"download": {
"description": "Download component configuration",
"type": "object",
"properties": {
"auth_type": {
"description": "Authentication/Authorization type to ARLAS-server",
"type": "string",
"enum": [
"basic"
]
}
}
},
"^(mapgl)$": {
"description": "Mapgl component configuration",
"type": "object",
"properties": {
"input": {
"description": "Mapgl component inputs",
"type": "object",
"allOf": [
{
"$ref": "mapgl.schema.json#"
}
]
},
"allowMapExtend": {
"description": "Whether to allow writing the map extend in the url. If so the map moves to that extend at the initial load.",
"type": "boolean"
},
"mapExtendTimer": {
"description": "Laps of time, after map moveend, to be considered before changing the map extend in the url.",
"type": "number"
}
},
"required": [
"input"
]
},
"timeline": {
"description": "Timeline component configuration",
"type": "object",
"properties": {
"contributorId": {
"description": "Identifier of the timeline contributor",
"type": "string"
},
"input": {
"description": "Histogram component inputs for timeline",
"type": "object",
"allOf": [
{
"$ref": "histogram.schema.json#"
}
]
},
"dateFormat": {
"description": "Format of the date.",
"type": "string"
}
},
"required": [
"contributorId",
"input"
]
},
"detailedTimeline": {
"description": "Detailed timeline component configuration",
"type": "object",
"properties": {
"contributorId": {
"description": "Identifier of the detailed timeline contributor. It should be a detailedhistogram contributor.",
"type": "string"
},
"input": {
"description": "Histogram component inputs for detailed timeline",
"type": "object",
"allOf": [
{
"$ref": "histogram.schema.json#"
}
]
},
"dateFormat": {
"description": "Format of the date.",
"type": "string"
}
},
"required": [
"contributorId",
"input"
]
}
}
},
"colorGenerator": {
"description": "",
"type": "object",
"properties": {
"keysToColors": {
"description": "List of [key, color] couples that associates a hex color to each key",
"type": "array",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": [
{
"description": "Key to which a color is associated",
"type": "string"
},
{
"description": "Hex color associated to the key",
"type": "string"
}
]
}
},
"colorsSaturationWeight": {
"description": "Knowing that saturation scale is [0, 1], `colorsSaturationWeight` is a factor (between 0 and 1) that tightens this scale to [(1-colorsSaturationWeight), 1]. Therefore saturation of generated colors will be within this tightened scale.",
"type": "number"
},
"colorAggregations": {
"description": "List of aggregation, order matters",
"type": "array",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": {
"type": "object",
"properties": {
"type": {
"description": "Type of aggregation",
"enum": [
"datehistogram",
"geohash",
"histogram",
"term"
]
},
"field": {
"description": "Field of aggregation",
"type": "string"
},
"interval": {
"description": "Interval of aggregation",
"type": "object",
"properties": {
"value": {
"description": "Value of interval",
"type": "integer"
},
"unit": {
"description": "Unit of interval",
"enum": [
"year",
"quarter",
"month",
"week",
"day",
"hour",
"minute",
"second"
]
}
}
},
"fetchGeometry": {
"description": "How to retrieve geometry for term and geohash aggregation",
"type": "object",
"properties": {
"strategy:": {
"description": "Strategy to fetch geometry",
"enum": [
"bbox",
"centroid",
"first",
"last",
"byDefault",
"geohash"
]
}
}
}
}
}
}
}
}
},
"options": {
"description": "List of global options of an arlas app",
"type": "object",
"properties": {
"drag_items": {
"description": "Whether drag and drop of widgets analitycs is enabled.",
"type": "boolean"
}
}
}
},
"required": [
"contributors"
]
},
"server": {
"description": "Configuration of ARLAS-server",
"type": "object",
"properties": {
"url": {
"description": "URL of ARLAS-server",
"type": "string"
},
"collection": {
"description": "Configuration of ARLAS Collection",
"type": "object",
"properties": {
"name": {
"description": "Name of ARLAS Collection",
"type": "string"
}
},
"required": [
"name"
]
},
"max_age_cache": {
"description": "During of cache",
"type": "integer"
}
},
"required": [
"url",
"collection"
]
},
"tagger": {
"description": "Configuration of ARLAS-tagger",
"type": "object",
"properties": {
"url": {
"description": "URL of ARLAS-tagger",
"type": "string"
},
"collection": {
"description": "Name of ARLAS Collection",
"type": "string"
}
}
}
},
"required": [
"web",
"server"
]
},
"resources": {
"description": "Declaration of resources related to this dashboard, such as previews and i18n files.",
"type": "object",
"properties": {
"previewId": {
"description": "Identifier of the preview related to this dashboard",
"type": "string"
}
}
}
},
"required": [
"arlas"
]
}
settings.schema.json
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "ARLAS-wui settings file validator",
"description": "The settings file is used to configure: 1) authentication 2) persistence",
"type": "object",
"$id": "settings.schema.json",
"properties": {
"authentication": {
"description": "Configuration of Oauth2 OIDC connection",
"type": "object",
"properties": {
"use_authent": {
"description": "Defines whether to be authenticated or not",
"type": "boolean"
},
"auth_mode": {
"description": "Defines which type of authentication is used. `openid` by default",
"enum": [
"iam",
"openid"
]
},
"force_connect": {
"description": "When authentication is enabled, this option forces to be connected to Auth0 at application bootstrap.",
"type": "boolean"
},
"use_discovery": {
"description": "Defines whether we use document discovery service",
"type": "boolean"
},
"client_id": {
"description": "The client's id as registered with the auth server",
"type": "string"
},
"issuer": {
"description": "The issuer's uri.",
"type": "string"
},
"redirect_uri": {
"description": "The client's redirectUri as registered with the auth server",
"type": "string"
},
"silent_refresh_redirect_uri": {
"description": "The client's silentRefreshRedirectUri as registered with the auth server",
"type": "string"
},
"scope": {
"description": "The requested scopes, e.g:'openid profile'",
"type": "string"
},
"token_endpoint": {
"description": "Url of the token endpoint as defined by OpenId Connect and OAuth 2. Mandatory if use_discovery is false.",
"type": "string"
},
"userinfo_endpoint": {
"description": "Url of the userinfo endpoint as defined by OpenId Connect. Mandatory if use_discovery is false.",
"type": "string"
},
"jwks_endpoint": {
"description": "JSON Web Key Set (https://tools.ietf.org/html/rfc7517) with keys used to validate received id_tokens. This is taken out of the disovery document.. Mandatory if use_discovery is false.",
"type": "string"
},
"login_url": {
"description": "The auth server's endpoint that allows to log the user in when using implicit flow. Mandatory if use_discovery is false.",
"type": "string"
},
"logout_url": {
"description": "Redirecting the user to this URL (https://YOUR_DOMAIN/v2/logout) clears all Single Sign-on (SSO) cookies set by Auth0 for the user. If you want to navigate the user to a specific URL after the logout, set that URL at the returnTo parameter. Check https://auth0.com/docs/api/authentication?javascript#logout ",
"type": "string"
},
"show_debug_information": {
"description": "Defines whether additional debug information should be shown at the console",
"type": "boolean"
},
"require_https": {
"description": "Defines whether https is required.",
"type": "boolean"
},
"response_type": {
"description": "Response type values, e.g: 'id_token token'",
"type": "string"
},
"silent_refresh_timeout": {
"description": "Timeout for silent refresh.",
"type": "number"
},
"timeout_factor": {
"description": "Defines when the token_timeout event should be raised.If you set this to the default value 0.75, the event s triggered after 75% of the token's life time.",
"type": "number"
},
"session_checks_enabled": {
"description": "If true, the lib will try to check whether the user is still logged in on a regular basis as described",
"type": "boolean"
},
"clear_hash_after_login": {
"description": "Defines whether to clear the hash fragment after logging in.",
"type": "boolean"
},
"storage": {
"description": "Defines where authentication information is stocked. `localstorage` by default",
"enum": [
"localstorage",
"sessionstorage"
]
},
"disable_at_hash_check": {
"description": "This property has been introduced to disable at_hash checks and is indented for Identity Provider that does not deliver an at_hash EVEN THOUGH its recommended by the OIDC specs.",
"type": "boolean"
},
"dummy_client_secret": {
"description": "dummy string for tests. DO NOT USE IT in production environment.",
"type": "string"
}
},
"required": [
"use_authent",
"force_connect"
]
},
"persistence": {
"description": "Configuration of ARLAS-persistence server",
"properties": {
"url": {
"type": "string",
"description": "URL to the ARLAS-persistence server"
}
},
"required": [
"url"
]
},
"permission": {
"description": "Configuration of ARLAS-permission server",
"properties": {
"url": {
"type": "string",
"description": "URL to the ARLAS-permission server"
}
},
"required": [
"url"
]
},
"arlas_wui_url": {
"description": "Url of arlas wui app",
"type": "string"
},
"arlas_builder_url": {
"description": "Url of arlas builder app",
"type": "string"
}
}
}
Contributors
analyticsContributorConf.schema.json
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Analytics Contributor Configuration",
"description": "The Configuration of Analytics Contributor",
"type": "object",
"$id": "analyticsContributorConf.schema.json",
"allOf": [
{
"$ref": "rootContributorConf.schema.json#"
}
],
"properties": {
"jsonpath": {
"description": "Json path to find value used in aggregation, for example $.count or $.metrics[0].value, $.count is used by default if this property is not setted.",
"type": "string"
}
},
"required": []
}
chipssearchContributorConf.schema.json
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Chipsearch Contributor Configuration",
"description": "The Configuration of ChipSearch Contributor",
"type": "object",
"$id": "chipssearchContributorConf.schema.json",
"properties": {
"identifier": {
"description": "The unique identifier for a Contributor",
"type": "string"
},
"search_field": {
"description": "Keyword field on which the full text search is applied.",
"type": "string"
},
"autocomplete_field": {
"description": "Keyword field on which the autocompletion is performed.",
"type": "string"
},
"autocomplete_size": {
"description": "Number of suggested keywords by the autocompletion.",
"type": "number"
}
},
"required": [
"identifier",
"search_field"
]
}
computeContributorConf.schema.json
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Compute Contributor Configuration",
"description": "The Configuration of Compute Contributor",
"type": "object",
"$id": "computeContributorConf.schema.json",
"properties": {
"title": {
"description": "Title of the contributor",
"type": "string"
},
"metrics": {
"type": "array",
"minItems": 1,
"items": {
"description": "Field pattern or name",
"type": "object",
"properties": {
"field": {
"description": "The field on which the metric is computed",
"type": [
"string",
"null"
]
},
"metric": {
"description": "The metric to compute",
"type": "string",
"enum": [
"avg",
"cardinality",
"max",
"min",
"spanning",
"sum",
"count"
]
}
}
}
},
"function": {
"description": "Function to apply with metrics result as parameter, exemple (m[0] + m[1]) / m[2]), where m[0] is the result of the first metric. To do a simple metric, put one element in metrics and set function to m[0].",
"type": "string"
}
},
"required": [
"metrics",
"function"
]
}
detailedHistogramContributorConf.schema.json
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Detailed Histogram Contributor Configuration",
"description": "The Configuration of Detailed Histogram Contributor",
"type": "object",
"$id": "detailedHistogramContributorConf.schema.json",
"allOf": [
{
"$ref": "histogramContributorConf.schema.json#"
}
],
"properties": {
"annexedContributorId": {
"description": "Id of the histogram contributor which fetches data of the main histogram.",
"type": "string"
},
"selectionExtentPercentage": {
"description": "Percentage of current selection extent. This percentage will be used to calculate an offset to add to this extent : offset + selectionextent = data extent",
"type": "number"
}
},
"required": [
"annexedContributorId"
]
}
histogramContributorConf.schema.json
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Histogram Contributor Configuration",
"description": "The Configuration of Histogram Contributor",
"type": "object",
"$id": "histogramContributorConf.schema.json",
"allOf": [
{
"$ref": "rootContributorConf.schema.json#"
}
],
"properties": {
"isOneDimension": {
"description": "True if it's one dimension histogram",
"type": "boolean"
},
"numberOfBuckets": {
"description": "Number of buckets in the histogram. If not specified, the interval in aggregation model is used instead.",
"type": "number"
},
"timeShortcuts": {
"description": "List of time shortcuts labels to be fetched from the predefined shortcuts list",
"type": "array",
"items": {
"type": "string",
"enum": [
"Today", "This week", "This month", "This year", "Today so far", "This week so far", "This month so far", "This year so far",
"Last 15 minutes", "Last 30 minutes", "Last hour", "Last 4 hours", "Last 12 hours", "Last 24 hours", "Last 7 days",
"Last 30 days", "Last 60 days", "Last 90 days", "Last 6 months", "L"
]
}
},
"yearShortcuts": {
"description": "",
"type": "array",
"items": {
"type": "string"
}
},
"jsonpath": {
"description": "Json path to find value used in aggregation, for example $.count or $.metrics[0].value, $.count is used by default if this property is not setted.",
"type": "string"
},
"additionalCollections": {
"description": "List of collections to add in a histogram",
"type": "array",
"items": {
"type": "object",
"properties": {
"collectionName": {
"description": "Name of the collection",
"type": "string"
},
"field": {
"description": "Field of aggregation",
"type": "string"
}
},
"required": [
"collectionName",
"field"
]
}
}
},
"required": [
"isOneDimension"
]
}
mapContributorConf.schema.json
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Map Contributor Configuration",
"description": "The Configuration of Map Contributor",
"type": "object",
"$id": "mapContributorConf.schema.json",
"allOf": [
{
"$ref": "rootContributorConf.schema.json#"
}
],
"properties": {
"layers_sources": {
"description": "List of layer_source objects that describe the data source needed to display a layer of data on the map.",
"type": "array",
"items": {
"description": "object that describes the data source needed to display a layer of data on the map",
"type": "object",
"properties": {
"id": {
"description": "Identifier of the layer.",
"type": "string"
},
"source": {
"description": "Type of the data - concat - id.",
"type": "string"
},
"maxzoom": {
"description": "Maximum zoom level beyond which the layer is no longer displayed.",
"type": "number"
},
"minzoom": {
"description": "Minimum zoom level below which the layer is no longer displayed.",
"type": "number"
},
"maxfeatures": {
"description": "Maximum number of features displayed on the map, below which the layer is no longer displayed. To be specified for `feature` and `feature-metric` sources",
"type": "number"
},
"minfeatures": {
"description": "Minimum number of features that a geoaggregation represents as clusters. below this value a `cluster` layer is no longer displayed on the map.",
"type": "number"
},
"returned_geometry": {
"description": "`geo-point` or a `geo-shape` field to display on the map for a feature layer",
"type": "string"
},
"include_fields": {
"description": "List of fields to include in `feature` source that allow a data-driven styling of the layer",
"type": "array",
"items": {
"type": "string"
}
},
"provided_fields": {
"description": "List of color fields and their label fields",
"type": "array",
"items": {
"type": "object",
"properties": {
"color": {
"description": "Color field",
"type": "string"
},
"label": {
"description": "label field",
"type": "string"
}
}
}
},
"colors_from_fields": {
"description": "a list of fields whose values will be transformed to colors, thanks to ARLAS-color-service, and used for a data-driven colouring of the layer features.",
"type": "array",
"items": {
"description": "field whose values will be transformed to colors, thanks to ARLAS-color-service, and used for a data-driven colouring of the layer features.",
"type": "string"
}
},
"normalization_fields": {
"description": "List of numeric or date fields patterns or names whose values are normalized. The fields values can be normalized locally on the current map extent OR globally; considering the current filters. Also you can normalize fields values (locally or globally) per a given key : For instance I want to normalize the speed of boats for each boat id. **Note** : Global normalization is only possible per a given key.",
"type": "array",
"items": {
"description": "Field pattern or name",
"type": "object",
"properties": {
"on": {
"description": "The **date** of **numeric** field whose values are normalized",
"type": "string"
},
"per": {
"description": "Optional. **keyword** field that allows to normalize the `on` field values per keyword. A keyword being a value of the '`per`' field.",
"type": "string"
}
}
}
},
"agg_geo_field": {
"description": "This `geo-point` field is used when geo-aggregating data on a geohash grid. The data on each cell of the grid will be aggregated by this field.",
"type": "string"
},
"granularity": {
"description": "Describes how precise the geo-aggregation is. Possible: Coarse, Medium, Fine, Finest",
"type": "string",
"enum": [
"Coarse",
"Fine",
"Finest",
"Medium"
]
},
"aggregated_geometry": {
"description": "Corresponds to the geometry that reprensents the aggregated data on each cell of a geo-aggregation. It's called aggregated geometry because it has the following possible values: geohash_center, geohash, bbox, centroid.",
"type": "string",
"enum": [
"bbox",
"centroid",
"cell",
"cell_center",
"geohash",
"geohash_center"
]
},
"raw_geometry": {
"description": "Corresponds to the geometry that represents the aggregated data on each cell of a geo-aggregation. This geometry should be a `geo-point` or a `geo-shape` geometry of a document that will be representing all the cell.",
"type": "object",
"properties": {
"geometry": {
"description": "`geo-point` or a `geo-shape` field of the document that will be representing each bucket (cell) of the grid",
"type": "string"
},
"sort": {
"description": "Comma separated fields on which documents within the cell are sorted. The first resulted document of this sort is the one representing the cell.",
"type": "string"
}
}
},
"metrics": {
"description": "List of metrics that are calculated inside each aggregation bucket",
"type": "array",
"items": {
"description": "metric that is calculated inside each aggregation bucket",
"type": "object",
"properties": {
"field": {
"description": "Field on which the metric is calculated",
"type": "string"
},
"metric": {
"description": "The metric to calculate. Possible values are: avg | min | max | sum | count",
"type": "string",
"enum": [
"avg",
"min",
"max",
"sum",
"count",
"cardinality"
]
},
"normalize": {
"description": "If specified, it normalizes the metrics above locally to the current map extend or globally",
"type": "boolean"
}
}
}
},
"geometry_id": {
"description": "A keyword field that identifies a set of similar geometries",
"type": "string"
},
"geomeetry_support": {
"description": "A `geo-point` or `geo-shape` field that represents the geometry_id"
}
}
}
},
"geo_query_field": {
"description": "Geometry field used for geo query",
"type": "string"
},
"geo_query_op": {
"description": "Operator used for geo query",
"enum": [
"Within",
"NotWithin",
"Intersects",
"NotIntersects"
]
},
"isFlat": {
"description": "If true, geosjon properties will be flat, true by default",
"type": "boolean"
},
"draw_precision": {
"description": "Number of digits after the decimal point for coordinates in geosjon used for filter",
"type": "number"
},
"data_mode": {
"description": "Initial mode of the contributor : dynamic is the classic cluster/feature mode, simple si always feature mode",
"enum": [
"simple",
"dynamic"
]
},
"simple_mode_accumulative": {
"description": "Indicates whether rendered old data is kept or removed when onMove event is triggered. Taken into account only when data_mode = simple.",
"type": "boolean"
},
"search_sort": {
"description": "Separated comma field to defined the order of te search",
"type": "string"
},
"search_size": {
"description": "Number of features return by a geosearch",
"type": "number"
},
"network_fetching_level": {
"description": "Zoom level 'Z' of the XYZ grid, used to fetch network analytics data",
"type": "number"
}
},
"required": [
"layers_sources"
]
}
resultlistContributorConf.schema.json
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "ResultList Contributor Configuration",
"description": "The Configuration of ResultList Contributor",
"type": "object",
"$id": "resultlistContributorConf.schema.json",
"properties": {
"identifier": {
"$ref": "rootContributorConf.schema.json#/definitions/identifier"
},
"name": {
"$ref": "rootContributorConf.schema.json#/definitions/name"
},
"search_size": {
"description": "The size of search result on server side. Defaults to 100",
"type": "integer"
},
"max_pages": {
"description": "Maximum number of pages that the contributor fetches. Default to 3.",
"type": "integer"
},
"fieldsConfiguration": {
"description": "Global configuration of resultlist",
"type": "object",
"properties": {
"idFieldName": {
"description": "Field name of unique identifier",
"type": "string"
},
"urlImageTemplate": {
"description": "Url template of image",
"type": "string"
},
"urlThumbnailTemplate": {
"description": "Url template of thumbnail",
"type": "string"
},
"titleFieldNames": {
"description": " List of fields which values are used as titles in the resultlist. Values are joined with a space ' '",
"type": "array",
"items": {
"description": "Fields",
"type": "object",
"properties": {
"fieldPath": {
"description": "Field name/path",
"type": "string"
},
"process": {
"description": "A javascript process applied to the field value. The field value is stored in `result` variable. (ex : result.trim())",
"type": "string"
}
}
}
},
"tooltipFieldNames": {
"description": "List of fields which values are used as tooltips in the resultlist. Values are joined with a space ' '",
"type": "array",
"items": {
"description": "Fields",
"type": "object",
"properties": {
"fieldPath": {
"description": "Field name/path",
"type": "string"
},
"process": {
"description": "A javascript process applied to the field value. The field value is stored in `result` variable. (ex : result.trim())",
"type": "string"
}
}
}
},
"imageFieldName": {
"description": "Field which value indicates whether there is a image for a row (tile) or not",
"type": "string"
},
"thumbnailFieldName": {
"description": "Field which value indicates whether there is a thumbnail image for a row (tile) or not",
"type": "string"
},
"icon": {
"description": "Material icon value",
"type": "string"
},
"iconCssClass": {
"description": "Field which value is used as a css class name => allows data driven styling of the resultlist rows/tiles",
"type": "string"
},
"iconColorFieldName": {
"description": "Field which value is transformed to a hex color (using an ArlasColorService) and associated to the icon color",
"type": "string"
}
}
},
"columns": {
"description": "Configuration of columns",
"type": "array",
"items": {
"description": "Columns",
"type": "object",
"properties": {
"columnName": {
"description": "Name of column view in app",
"type": "string"
},
"fieldName": {
"description": "Field of column",
"type": "string"
},
"dataType": {
"description": "Unit of column (ex: °C, km ..)",
"type": "string"
},
"process": {
"description": "Process transformation to display (ex : result.trim())",
"type": "string"
},
"dropdown": {
"description": "Whether the filter column search has a dropdown list",
"type": "boolean"
},
"dropdownsize": {
"description": "Size of dropdown list, 10 by default",
"type": "number"
},
"useColorService": {
"description": "Wether if use color service for column value",
"type": "boolean"
}
}
}
},
"process": {
"description": "Process",
"type": "object",
"properties": {
"urlImageTemplate": {
"description": "Process transformation for urlImageTemplate",
"type": "object",
"properties": {
"process": {
"description": "Process transformation for urlImageTemplate",
"type": "string"
}
}
},
"urlThumbnailTemplate": {
"description": "Process transformation for urlThumbnailTemplate",
"type": "object",
"properties": {
"process": {
"description": "Process transformation for urlThumbnailTemplate",
"type": "string"
}
}
}
}
},
"details": {
"description": "Details for one item, list of theme",
"type": "array",
"items": {
"description": "Theme configuration",
"type": "object",
"properties": {
"name": {
"description": "Name of theme",
"type": "string"
},
"order": {
"description": "Position of theme section",
"type": "number"
},
"fields": {
"description": "List field to return in this theme",
"type": "array",
"items": {
"description": "Field configuration",
"type": "object",
"properties": {
"label": {
"description": "Label of field",
"type": "string"
},
"path": {
"description": "Path of field",
"type": "string"
},
"process": {
"description": "Process transformation for the field",
"type": "string"
}
},
"required": [
"label",
"path",
"process"
]
}
}
},
"required": [
"name",
"order",
"fields"
]
}
},
"includeMetadata": {
"description": "List of metadata field paths to include in the search query",
"type": "array",
"items": {
"description": "metadata field path",
"type": "string"
}
},
"attachments": {
"description": "Attachments for one item, list of attachments",
"type": "array",
"items": {
"type": "object",
"properties": {
"attachmentsField": {
"description": "Field path to attachements list",
"type": "string"
},
"attachmentLabelField": {
"description": "Path to Label field inside attachmentsField",
"type": "string"
},
"attachementUrlField": {
"description": "Path to Url field inside attachmentsField",
"type": "string"
},
"attachmentTypeField": {
"description": "Path to Type field inside attachmentsField",
"type": "string"
},
"attachmentDescriptionField": {
"description": "Path to Description field inside attachmentsField",
"type": "string"
},
"attachmentIcon": {
"description": "Material icon value",
"type": "string"
}
},
"required": [
"attachmentsField",
"attachementUrlField"
]
}
}
},
"required": [
"identifier",
"name",
"fieldsConfiguration",
"columns",
"details"
]
}
rootContributorConf.schema.json
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Contributors Configuration",
"description": "The Configuration of Contributors",
"type": "object",
"$id": "rootContributorConf.schema.json",
"definitions": {
"type": {
"enum": [
"analytics",
"chipssearch",
"detailedhistogram",
"histogram",
"map",
"resultlist",
"swimlane",
"topomap",
"tree",
"metric"
]
},
"identifier": {
"description": "The unique identifier for a Contributor",
"type": "string"
},
"linked_contributor_id": {
"description": "The identifier of a contributor that is linked to this one",
"type": "string"
},
"collection": {
"description": "The unique collection for a Contributor",
"type": "string"
},
"name": {
"description": "The name of the Contributor",
"type": "string"
},
"aggregationmodels": {
"description": "List of aggregation, order matters",
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"properties": {
"type": {
"description": "Type of aggregation",
"enum": [
"datehistogram",
"geohash",
"histogram",
"term"
]
},
"field": {
"description": "Field of aggregation",
"type": "string"
},
"interval": {
"description": "Interval of aggregation",
"type": "object",
"properties": {
"value": {
"description": "Value of interval",
"type": "integer"
},
"unit": {
"description": "Unit of interval",
"enum": [
"year",
"quarter",
"month",
"week",
"day",
"hour",
"minute",
"second"
]
}
}
},
"fetch_geometry": {
"description": "How to retrieve geometry for term and geohash aggregation",
"type": "object",
"properties": {
"strategy:": {
"description": "Strategy to fetch geometry",
"enum": [
"bbox",
"centroid",
"first",
"last",
"byDefault",
"geohash"
]
}
}
}
},
"required": [
"type",
"field"
]
}
},
"cache_duration":{
"description": "Duration of browser cache.",
"type": "number"
}
},
"properties": {
"identifier": {
"$ref": "#/definitions/identifier"
},
"name": {
"$ref": "#/definitions/name"
},
"aggregationmodels": {
"$ref": "#/definitions/aggregationmodels"
}
},
"required": [
"type",
"identifier",
"name"
]
}
swimlaneContributorConf.schema.json
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Swimlane Contributor Configuration",
"description": "The Configuration of Swimlane Contributor",
"type": "object",
"$id": "swimlaneContributorConf.schema.json",
"properties": {
"identifier": {
"description": "The unique identifier for a Contributor",
"type": "string"
},
"name": {
"description": "The name of the Contributor",
"type": "string"
},
"swimlanes": {
"description": "List of swimlanes",
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"properties": {
"id": {},
"name": {},
"aggregationmodels": {
"$ref": "rootContributorConf.schema.json#/definitions/aggregationmodels"
},
"jsonpath": {
"description": "Json path to find value used in aggregation, for example $.count or $.metrics[0].value, $.count is used by default if this property is not setted.",
"type": "string"
}
},
"required": [
"id",
"name",
"aggregationmodels"
]
}
},
"numberOfBuckets": {
"description": "Number of buckets in the swimlane. If not specified, the interval in aggregation model is used instead.",
"type": "number"
}
},
"required": [
"identifier",
"name",
"swimlanes"
]
}
treeContributorConf.schema.json
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Tree Contributor Configuration",
"description": "The Configuration of Tree Contributor",
"type": "object",
"$id": "treeContributorConf.schema.json",
"allOf": [{ "$ref": "rootContributorConf.schema.json#" }],
"properties": {
"title": {
"description": "Title of contributor",
"type": "string"
},
"nodeSizeMinPourcentage": {
"description": "The minimum ratio of the node size in its level needed to be plotted. Otherwise the node is considered as OTHER",
"type": "number"
}
},
"required": [
"title"
]
}
Components
metric.schema.json
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Card input configuration",
"description": "The Configuration input of Card",
"type": "object",
"$id": "metric.schema.json",
"properties": {
"customizedCssClass": {
"description": "Css class name to use to customize a specific card's style.",
"type": "string"
}
}
}
mapgl.schema.json
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Map's inputs configuration",
"description": "The Configuration of the map's inputs",
"type": "object",
"$id": "mapgl.schema.json",
"properties": {
"displayScale": {
"description": "Whether the scale is displayed",
"type": "boolean"
},
"displayLayerSwitcher": {
"description": "Whether the layer switcher controll is displayed. If not, the map component uses the default style group and with its default style.",
"type": "boolean"
},
"maxWidthScale": {
"description": "Max width of the scale in px. Default value is 100px.",
"type": "number"
},
"unitScale": {
"description": "Unit of the scale. Default value is 'metric'.",
"type": "string"
},
"mapLayers": {
"$id": "/properties/mapLayers",
"type": "object",
"properties": {
"layers": {
"description": "List of mapbox-gl layers",
"type": "array"
},
"events": {
"type": "object",
"properties": {
"onHover": {
"description": "List of layers ids to listen to on hover",
"type": "array"
},
"emitOnClick": {
"description": "List of layers ids to listen to on click event in order to emit features",
"type": "array"
},
"zoomOnClick": {
"description": "List of layers ids to listen to on click event in order to trigger zoom action",
"type": "array"
}
},
"required": [
"onHover", "emitOnClick", "zoomOnClick"
]
}
},
"required": [
"layers", "events"
]
},
"idFeatureField": {
"description": "Field name of the identifier",
"type": "string"
},
"mapSources": {
"description": "List of mapboxgl sources to add to the map",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "Id of the source.",
"type": "string"
},
"source": {
"description": "Mapboxgl source.",
"type": "object",
"properties": {
"type": {
"description": "Type of the source. Possible values : 'vector' | 'raster' | 'geojson' | 'image' | 'video' | 'canvas'",
"type": "string"
},
"minzoom": {
"description": "Minimum zoom to display the source layers",
"type": "integer"
},
"maxzoom": {
"description": "Maximum zoom to display the source layers",
"type": "integer"
},
"url": {
"description": "Url to the source (for `vector`, `raster`, `image`, `video` types).",
"type": "string"
},
"tiles": {
"description": "List of tiles (for `vector` and `raster` types).",
"type": "array"
},
"coordinates": {
"description": "The 4 corners coordinates of the canvas/image/video, given as [longitude, latitude].",
"type": "array"
},
"data": {
"description": "A geojson object or a url to a geojson file (for `geosjson` type).",
"type": "array"
},
"canvas": {
"description": "Id of the canvas element (for `canvas` type)",
"type": "string"
},
"animate": {
"description": "Whether the canvas source is animated (for `canvas` type)",
"type": "boolean"
}
},
"required": [
"type"
]
}
},
"required": [
"id", "source"
]
}
},
"defaultBasemapStyle": {
"description": "Defines the name and default basemap style.",
"type": "object",
"properties": {
"name": {
"description": "name of the style",
"type": "string"
},
"styleFile": {
"description": "url to basemap style or a `mapboxgl.Style`",
"type": ["string", "object"]
}
},
"required": [
"name", "styleFile"
]
},
"basemapStyles": {
"description": "List of basemaps styles",
"type": "array",
"items": {
"description": "Defines the name and the basemap style.",
"type": "object",
"properties": {
"name": {
"description": "name of the style",
"type": "string"
},
"styleFile": {
"description": "url to basemap style or a `mapboxgl.Style`",
"type": ["string", "object"]
}
},
"required": [
"name", "styleFile"
]
}
},
"initCenter": {
"description": "Coordinates of the map's centre when it's initialized.",
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": [
{
"description": "Longitude",
"type": "number"
},
{
"description": "Latitude",
"type": "number"
}
]
},
"initZoom": {
"description": "Zoom of the map when it's initialized",
"type": "number"
},
"minZoom": {
"description": "Min zoom of the map",
"type": "number"
},
"maxZoom": {
"description": "Max zoom of the map",
"type": "number"
},
"margePanForLoad": {
"description": "Margin applied to the map extent. Data is loaded in all this extent",
"type": "number"
},
"margePanForTest": {
"description": "Margin applied to the map extent. Before loading data, the components checks first if there are features already loaded in this extent.",
"type": "number"
},
"drawButtonEnabled": {
"description": "Whether the draw tools are activated.",
"type": "boolean"
},
"drawPolygonVerticesLimit": {
"description": "Maximum number of vertices allowed when drawing a polygon."
},
"visualisationSetsConfig": {
"description": "List of visualisation sets",
"type": "array",
"items": {
"description": "A Visualisation set is an entity where to group layers together",
"type": "object",
"properties": {
"name": {
"description": "Name of the visualisation set",
"type": "string"
},
"layers": {
"description": "List of layers ids grouped in this visualisation set",
"type": "string",
"items": {
"description": "layer id",
"type": "string"
}
},
"enabled": {
"description": "If enabled, all the layers can be displayed on the map, otherwise the layers are removed from the map.",
"type": "boolean"
}
}
}
},
"icons": {
"description": "List of icons to add to the map and to use in layers styling.",
"type": "array",
"items": {
"description": "Icon to add",
"type": "object",
"properties": {
"path": {
"description": "path to the icon. The icon should be placed at `assest/icons` folder and should be `png` or `jpeg`. Example : 'path': 'name_of_icon.png'",
"type": "string"
},
"recolorable": {
"description": "Whether to allow recolorising the icon or not.",
"type": "boolean"
}
}
}
}
},
"required": [
"mapLayers", "idFeatureField", "margePanForLoad", "margePanForTest"
]
}
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Powerbars input configuration",
"description": "The Configuration input of powerbars",
"type": "object",
"$id": "powerbars.schema.json",
"properties": {
"customizedCssClass": {
"description": "Css class name to use to customize a specific powerbar's style.",
"type": "string"
},
"keysToColors": {
"description": "List of [key, color] couples that associates a hex color to each key",
"type": "array",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": [
{
"description": "Key to which a color is associated",
"type": "string"
},
{
"description": "Hex color associated to the key",
"type": "string"
}
]
}
},
"colorsSaturationWeight": {
"description": "Knowing that saturation scale is [0, 1], `colorsSaturationWeight` is a factor (between 0 and 1) that tightens this scale to [(1-colorsSaturationWeight), 1]. Therefore all generated colors saturation will be within this scale.",
"type": "number"
},
"useColorService": {
"description": "Whether to allow colorizing the bar according to its term or not using the ArlasColorService",
"type": "boolean"
},
"displayFilter": {
"description": "Whether text input, to filter powerbars, is displayed",
"type": "boolean"
},
"unit": {
"description": "Unit that a powerbar represents",
"type": "string"
},
"filterOperator": {
"description": "Options about how to apply filters on powerbars",
"type": "object",
"properties": {
"value": {
"description": "The default operator value. \n if 'Eq', the selected powerbar is included in the ARLAS filter. \n if 'Neq', the selected powerbar is included in the ARLAS filter.",
"type": "string",
"enum": ["Eq", "Neq"]
},
"display": {
"description": "Whether to display a switcher between 'Eq' and 'Neq' or keep the default operator all the time",
"type": "boolean"
}
}
},
"groupSelections": {
"description": "Whether to group the selected powerbars in a dedicated list or not.",
"type": "boolean"
},
"selectWithCheckbox": {
"description": " Whether to have the option to select the powerbar using checkboxes.",
"type": "boolean"
}
}
}
calendar-timeline.schema.json
source
histogram.schema.json
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Histogram input configuration",
"description": "The Configuration input of an histogram",
"type": "object",
"$id": "histogram.schema.json",
"properties": {
"id": {
"description": "Identifier of the histogram",
"type": "string"
},
"dataType": {
"description": "Type of data in histogram",
"enum": [
"numeric",
"time"
]
},
"dataUnit": {
"description": "Unit of represented data on the histogram. Deprecated. If xUnit is specified, dataUnit is not taken into account.",
"type": "string"
},
"xUnit": {
"description": "Unit of x axis values.",
"type": "string"
},
"yUnit": {
"description": "Unit of x axis values.",
"type": "string"
},
"chartXLabel": {
"description": "Chart's label for the x axis (Visible when there is one bucket on the histogram).",
"type": "string"
},
"isHistogramSelectable": {
"description": "If you can select a period on histogram",
"type": "boolean"
},
"multiselectable": {
"description": "If you can select several period on histogram",
"type": "boolean"
},
"displayOnlyIntervalsWithData": {
"description": "If you can select several period on histogram",
"type": "boolean"
},
"applyOffsetOnAreaChart": {
"description": "Translates area chart by half data interval",
"type": "boolean"
},
"topOffsetRemoveInterval": {
"description": "Top position of the remove-selection-button",
"type": "number"
},
"leftOffsetRemoveInterval": {
"description": "Left offset position of the remove-selection-button",
"type": "number"
},
"brushHandlesHeightWeight": {
"description": " A 0 to 1 weight of the brush height. It controls the brush handles height.",
"type": "number"
},
"chartType": {
"description": "Chart's representation type.",
"enum": [
"bars",
"area",
"oneDimension",
"curve"
]
},
"chartTitle": {
"description": "Chart's title",
"type": "string"
},
"chartWidth": {
"description": "Chart's width. If set to null, the chart takes the component's container width.",
"oneOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"chartHeight": {
"description": "Chart's height. If set to null, the chart takes the component's container height",
"oneOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"customizedCssClass": {
"description": "Css class name to use to customize a specific `arlas-histogram` component.",
"type": "string"
},
"yAxisStartsFromZero": {
"description": "Whether the histogram values start from zero or from the minimum of data.",
"type": "boolean"
},
"showStripes": {
"description": "Whether to add stripes in the histogram when yAxis starts from minimum of data.",
"type": "boolean"
},
"xAxisPosition": {
"description": "The xAxis positon : above or below the chart.",
"enum": [
"top",
"bottom"
]
},
"descriptionPosition": {
"description": "The start/end values positon : above or below the chart.",
"enum": [
"top",
"bottom"
]
},
"xTicks": {
"description": "Number of ticks in the X axis.",
"type": "integer"
},
"yTicks": {
"description": "Number of ticks in the Y axis.",
"type": "integer"
},
"xLabels": {
"description": "Number of labels in the X axis.",
"type": "integer"
},
"shortYLabels": {
"description": "Display short labels on y axis.",
"type": "boolean"
},
"yLabels": {
"description": "Number of labels in the Y axis.",
"type": "integer"
},
"showXTicks": {
"description": "Whether showing the X axis ticks.m",
"type": "boolean"
},
"showYTicks": {
"description": "Whether showing the Y axis ticks.",
"type": "boolean"
},
"showXLabels": {
"description": "Whether showing the X axis labels.",
"type": "boolean"
},
"showYLabels": {
"description": "Whether showing the Y axis labels.",
"type": "boolean"
},
"showHorizontalLines": {
"description": "Whether showing the horizontal dashed lines.",
"type": "boolean"
},
"paletteColors": {
"description": "Either a hex string color or a color name (in English) or a saturation interval [0, 100].",
"type": ["array", "string"]
},
"ticksDateFormat": {
"description": "The date format of ticks.* Please refer to this [list of specifiers](https://github.com/d3/d3-time-format/blob/master/README.md#locale_format).",
"type": "string"
},
"isSmoothedCurve": {
"description": " Whether the curve of an `area` chart is smoothed.",
"type": "boolean"
},
"barWeight": {
"description": "Weight applied to bars width. ]0,1].",
"type": "number"
}
},
"required": [
"id"
]
}
swimlane.schema.json
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Swimlane input configuration",
"description": "The Configuration input of a swimlane",
"type": "object",
"$id": "swimlane.schema.json",
"allOf": [
{
"$ref": "histogram.schema.json#"
}
],
"properties": {
"swimLaneLabelsWidth": {
"description": "The width of swimlane labels space.",
"type": "number"
},
"swimlaneBorderRadius": {
"description": "The radius of swimlane bars borders",
"type": "number"
},
"swimlaneHeight": {
"description": " The height of a single lane. If not specified, a lane height is the chartHeight devided by the number of lanes.",
"type": "number"
},
"swimlaneMode": {
"description": "The swimlane mode. Variable or fixed Height. Or circles",
"enum": [
"variableHeight",
"fixedHeight",
"circles"
]
},
"swimlane_representation": {
"description": "The swimlane representation. `column` representation focuses on terms of the same column; each term is compared to the sum of all terms of the column. `global` representation compares all the buckets to the maximum value in the swimlane.",
"enum": [
"column",
"global"
]
},
"swimlane_options": {
"description": "Graphical options to configure for the swimlane",
"type": "object",
"properties": {
"nan_color": {
"description": "Hex color attributted to buckets whose values are NaN",
"type": "string"
},
"zeros_color": {
"description": "Hex color attributted to buckets whose values are 0",
"type": "string"
},
"level_tick": {
"description": "Graphical options to configure the level tick. The level tick being a tick plotted on each swimlane bucket that indicates how high/low the bucket value is",
"type": "object",
"properties": {
"color": {
"description": "Hex color of the tick",
"type": "string"
},
"width": {
"description": "Width of the tick in pixels",
"type": "number"
},
"opacity": {
"description": "Opacity of the tick",
"type": "number"
}
}
}
}
}
}
}
donut.schema.json
source
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Donut input configuration",
"description": "The Configuration input of donut",
"type": "object",
"$id": "donut.schema.json",
"properties": {
"id": {
"description": "Identifier of the donut",
"type": "string"
},
"customizedCssClass": {
"description": "Css class name to use to customize a specific donut's style.",
"type": "string"
},
"opacity": {
"description": "Opacity of unselected/unhovered arcs",
"type": "number"
},
"multiselectable": {
"description": "Whether the donut is multi-selectable",
"type": "boolean"
},
"keysToColors": {
"description": "List of [key, color] couples that associates a hex color to each key",
"type": "array",
"items": {
"type": "array",
"minItems": 2,
"maxItems": 2,
"items": [
{
"description": "Key to which a color is associated",
"type": "string"
},
{
"description": "Hex color associated to the key",
"type": "string"
}
]
}
},
"colorsSaturationWeight": {
"description": "Knowing that saturation scale is [0, 1], `colorsSaturationWeight` is a factor (between 0 and 1) that tightens this scale to [(1-colorsSaturationWeight), 1]. Therefore all generated colors saturation will be within this scale.",
"type": "number"
},
"diameter": {
"description": "Diameter of the donut. If it's not set, the donut take the Max(width,height) of the div containing the svg.",
"type": "number"
},
"unit": {
"description": "Unit of a node in the donut",
"type": "string"
}
},
"required": [
"id"
]
}