Skip to content

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",
                                                    "search",
                                                    "detailedhistogram",
                                                    "histogram",
                                                    "map",
                                                    "resultlist",
                                                    "swimlane",
                                                    "tree",
                                                    "metric",
                                                    "metricstable"
                                                ]
                                            }
                                        }
                                    },
                                    {
                                        "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": "search"
                                                }
                                            }
                                        },
                                        "then": {
                                            "$ref": "searchContributorConf.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#"
                                        }
                                    },
                                    {
                                        "if": {
                                            "type": "object",
                                            "properties": {
                                                "type": {
                                                    "const": "metricstable"
                                                }
                                            }
                                        },
                                        "then": {
                                            "$ref": "metricsTableContributorConf.schema.json#"
                                        }
                                    }
                                ]
                            }
                        },
                        "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",
                                                        "metricstable"
                                                    ]
                                                },
                                                "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#"
                                                                }
                                                            ]
                                                        }
                                                    }
                                                },
                                                {
                                                    "properties": {
                                                        "componentType": {
                                                            "enum": [
                                                                "metricstable"
                                                            ]
                                                        },
                                                        "input": {
                                                            "description": "Input of metrics table component.",
                                                            "allOf": [
                                                                {
                                                                    "$ref": "metrics-table.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)$": {
                                    "type": "object",
                                    "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"
                },
                "i18nIds": {
                    "description": "Map of 'language'-'identifer_of_i18n'",
                    "type": "object",
                    "properties": {
                        "en": {
                            "description": "Identifier of the english i18n file",
                            "type": "string"
                        },
                        "fr": {
                            "description": "Identifier of the french i18n file",
                            "type": "string"
                        }
                    }
                },
                "toursIds": {
                    "description": "Map of 'language'-'identifer_of_tour'",
                    "type": "object",
                    "properties": {
                        "en": {
                            "description": "Identifier of the english tour file",
                            "type": "string"
                        },
                        "fr": {
                            "description": "Identifier of the french tour file",
                            "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"
        },
        "post_logout_redirect_uri": {
          "description": "Redirecting the user to this URL after 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. `memorystorage` by default",
          "enum": [
            "localstorage",
            "sessionstorage",
            "memorystorage"
          ]
        },
        "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"
        },
        "sign_up_enabled": {
          "description": "Display or not the sign up button in arlas iam login page.",
          "type": "boolean"
        }


      },
      "required": [
        "use_authent",
        "force_connect"
      ]
    },
    "persistence": {
      "description": "Configuration of ARLAS-persistence server",
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "URL to the ARLAS-persistence server"
        }
      },
      "required": [
        "url"
      ]
    },
    "permission": {
      "description": "Configuration of ARLAS-permission server",
      "type": "object",
      "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"
    },
    "arlas_hub_url": {
      "description": "Url of ARLAS Hub app",
      "type": "string"
    },
    "arlas_iam_wui_url": {
      "description": "Url of ARLAS IAM app",
      "type": "string"
    },
    "links": {
      "description": "Links to other applications",
      "type": "array",
      "items": {
        "description": "Link",
        "type": "object",
        "properties": {
          "name": {
            "description": "Name of the application",
            "type": "string"
          },
          "url": {
            "description": "URL of the application",
            "type": "string"
          },
          "icon": {
            "description": "Icon to use to represent the application",
            "type": "string"
          },
          "tooltip": {
            "description": "Tooltip to display on hover of the icon",
            "type": "string"
          },
          "check_url": {
            "description": "URL to check if the user has access to the application",
            "type": "string"
          },
          "check_url_response_type": {
            "description": "Response type to specify for the check_url if it is different from 'json'",
            "type": "string"
          }
        },
        "required": [
          "name",
          "url",
          "icon",
          "check_url"
        ]
      }
    },
    "ticketing_key": {
      "description": "Key for Zendesk ticketing",
      "type": "string"
    },
    "tab_name": {
      "description": "Name of the browser tab",
      "type": "string"
    },
    "dashboards_shortcut": {
      "description": "Whether to display a quick access list to other dashboards. Should be true only in dev mode.",
      "type": "boolean"
    },
    "histogram": {
      "description": "Configuration for histograms",
      "type": "object",
      "properties": {
        "max_buckets": {
          "description": "Maximum number of buckets for an histogram",
          "type": "number"
        },
        "export_nb_buckets": {
          "description": "Maximum number of buckets that can be exported",
          "type": "number"
        }
      },
      "required": [
        "max_buckets",
        "export_nb_buckets"
      ]
    },
    "processes": {
      "description": "Configuration of processes for the result list",
      "type": "array",
      "items": {
        "description": "Process",
        "type": "object",
        "properties": {
          "name": {
            "description": "Name of the process",
            "type": "string"
          },
          "url": {
            "description": "URL to the process",
            "type": "string"
          },
          "max_items": {
            "description": "Number of maximum items the process can be applied to",
            "type": "number"
          },
          "settings": {
            "description": "Settings of the process",
            "type": "object",
            "properties": {
              "url": {
                "description": "URL of the description of the process according to OGC Processes standards",
                "type": "string"
              }
            },
            "required": [
              "url"
            ]
          },
          "status": {
            "description": "Status of the process",
            "type": "object",
            "properties": {
              "url": {
                "description": "URL to query to get information about the process status",
                "type": "string"
              }
            },
            "required": [
              "url"
            ]
          }
        },
        "required": [
          "settings",
          "status",
          "name"
        ]
      }
    },
    "geocoding": {
      "description": "Configuration of the geocoding for ARLAS",
      "type": "object",
      "properties": {
        "enabled": {
          "description": "Whether the geocoding is enabled",
          "type": "boolean"
        },
        "find_place_url": {
          "description": "URL of the geocoding service",
          "type": "string"
        },
        "find_place_zoom_to": {
          "description": "Maximum zoom that can be used to zoom on the features returned by the geocoding service",
          "type": "number"
        }
      }
    }
  }
}

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"
    ]
}

metricsTableContributorConf.schema.json

source

{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "title": "Metrics Table Contributor Configuration",
    "description": "The Configuration of Metrics List Contributor",
    "type": "object",
    "$id": "metricsTableContributorConf.schema.json",
    "allOf": [
        {
            "$ref": "rootContributorConf.schema.json#"
        }
    ],
    "properties": {
        "sort": {
            "description": "The collection as well as the field and metric on which the metric table will be sorted.",
            "type": "object",
            "properties": {
                "collection": {
                    "description": "Collection on which the sort is applied.",
                    "type": "string"
                },
                "order": {
                    "description": "Order of the sort ('asc' | 'desc').",
                    "type": "string"
                },
                "on": {
                    "description": "How to sort ? on 'alphabetical', 'count', 'metric'.",
                    "type": "string"
                },
                "metric": {
                    "description": "Metric on which the sort will be applied. To be specified when 'sort.on' === 'metric'.",
                    "type": "object",
                    "properties": {
                        "metric": {
                            "description": "Metric function.",
                            "type": "string",
                            "enum": [
                                "avg",
                                "max",
                                "min",
                                "sum",
                                "cardinality"
                            ]
                        },
                        "field": {
                            "description": "Field on which the metric is calculated.",
                            "type": "string"
                        }
                    },
                    "required": [
                        "metric",
                        "field"
                    ]
                }
            },
            "required": [
                "collection",
                "on",
                "order"
            ]
        },
        "configuration": {
            "type": "array",
            "description": "List of columns of the metric table.",
            "items": {
                "type": "object",
                "description": "Configuration of metrics to calculate on each term of the given collection and termfield.",
                "properties": {
                    "collection": {
                        "description": "Collection of data",
                        "type": "string"
                    },
                    "termfield": {
                        "description": "Term field which values constitute the table rows. Form each term value, metrics will be calculated.",
                        "type": "string"
                    },
                    "metrics": {
                        "type": "array",
                        "description": "List of metrics to calculate.",
                        "items": {
                            "type": "object",
                            "description": "Metric to calculate.",
                            "properties": {
                                "metric": {
                                    "description": "Metric function.",
                                    "type": "string",
                                    "enum": [
                                        "avg",
                                        "max",
                                        "min",
                                        "sum",
                                        "cardinality",
                                        "count"
                                    ]
                                },
                                "field": {
                                    "description": "Field on which the metric is calculated.",
                                    "type": "string"
                                }
                            },
                            "if": {
                                "anyOf": [
                                    {
                                        "properties": {
                                            "metric": {
                                                "const": "count"
                                            }
                                        }
                                    }
                                ]
                            },
                            "then": {
                                "required": [
                                    "metric"
                                ]
                            },
                            "else": {
                                "required": [
                                    "metric",
                                    "field"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "collection",
                    "termfield",
                    "metrics"
                ],
                "additionalProperties": false
            },
            "additionalProperties": true
        },
        "numberOfBuckets": {
            "description": "Number of terms to fetch for each collection",
            "type": "integer"
        },
        "filterOperator": {
            "description": "Operator to apply when selecting a row of the metrics table.",
            "type": "string",
            "enum": [
                "Eq",
                "Ne"
            ]
        }
    },
    "required": [
        "numberOfBuckets",
        "configuration"
    ]
}

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"
                },
                "detailsTitleTemplate": {
                    "description": "Template of details title",
                    "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",
                "metricstable"
            ]
        },
        "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"
    ]
} 

searchContributorConf.schema.json

source

{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "title": "Qearch Contributor Configuration",
    "description": "The Configuration of Search Contributor",
    "type": "object",
    "$id": "searchContributorConf.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"
    ]
}

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

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"
                        }
                    }
                }
            }
        }
    }
}

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"
    ]
}

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": "array",
                        "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"
    ]
}

metrics-table.schema.json

source

{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "title": "Metric Table inputs configuration",
    "description": "The inputs configuration input of a metrics table.",
    "type": "object",
    "$id": "metrics-table.schema.json",
    "properties": {
        "filterOperator": {
            "description": "Options about how to apply filters on the metric table.",
            "type": "object",
            "properties": {
                "value": {
                    "description": "The default operator value. \n if 'Eq', the selected line of the table is included in the ARLAS filter. \n if 'Neq', the selected line is marked as excluded 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"
                }
            }
        },
        "useColorService": {
            "description": "Whether to allow colorizing the bars according to its term or not using the ArlasColorService",
            "type": "boolean"
        },
        "applyColorTo": {
            "description": "Choose how to apply colors to the table. By column : all the bars in same column will have the same color. By row : all the bars in the same row, will have the same color.",
            "type": "string",
            "enum": ["column", "row"]
        },
        "headerDisplayMode": {
            "description": "Allows to choose what level of details to display in headers. 'chip' only displays a circular chip. 'title' only displays the title. 'full' displays both.",
            "type": "string",
            "enum": ["chip", "title", "full"]
        },
        "normaliseBy": {
            "description": "Normalise bars progression based on the maximum value of each column OR of the whole table",
            "type": "string",
            "enum": ["table", "column"]
        },
        "selectWithCheckbox": {
            "description": "Display a checkbox next to the terms that allows to select the row.",
            "type": "boolean"
        },
        "showRowField": {
            "description": "Display the name of the field use to retrieve row values for each sub table.",
            "type": "boolean"
        }
    },
    "required": []
}

powerbars.schema.json

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 excluded 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"
        }
    }
}

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"
        }
    }
}

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"
    ]
}