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": [
                                    {
                                        "properties": {
                                            "type": {
                                                "enum": [
                                                    "analytics",
                                                    "chipssearch",
                                                    "detailedhistogram",
                                                    "histogram",
                                                    "map",
                                                    "resultlist",
                                                    "swimlane",
                                                    "tree",
                                                    "metric"
                                                ]
                                            }
                                        }
                                    },
                                    {
                                        "if": {
                                            "properties": {
                                                "type": {
                                                    "const": "analytics"
                                                }
                                            }
                                        },
                                        "then": {
                                            "$ref": "analyticsContributorConf.schema.json#"
                                        }
                                    },
                                    {
                                        "if": {
                                            "properties": {
                                                "type": {
                                                    "const": "chipssearch"
                                                }
                                            }
                                        },
                                        "then": {
                                            "$ref": "chipssearchContributorConf.schema.json#"
                                        }
                                    },
                                    {
                                        "if": {
                                            "properties": {
                                                "type": {
                                                    "const": "detailedHistogram"
                                                }
                                            }
                                        },
                                        "then": {
                                            "$ref": "detailedHistogramContributorConf.schema.json#"
                                        }
                                    },
                                    {
                                        "if": {
                                            "properties": {
                                                "type": {
                                                    "const": "histogram"
                                                }
                                            }
                                        },
                                        "then": {
                                            "$ref": "histogramContributorConf.schema.json#"
                                        }
                                    },
                                    {
                                        "if": {
                                            "properties": {
                                                "type": {
                                                    "const": "map"
                                                }
                                            }
                                        },
                                        "then": {
                                            "$ref": "mapContributorConf.schema.json#"
                                        }
                                    },
                                    {
                                        "if": {
                                            "properties": {
                                                "type": {
                                                    "const": "resultlist"
                                                }
                                            }
                                        },
                                        "then": {
                                            "$ref": "resultlistContributorConf.schema.json#"
                                        }
                                    },
                                    {
                                        "if": {
                                            "properties": {
                                                "type": {
                                                    "const": "swimlane"
                                                }
                                            }
                                        },
                                        "then": {
                                            "$ref": "swimlaneContributorConf.schema.json#"
                                        }
                                    },
                                    {
                                        "if": {
                                            "properties": {
                                                "type": {
                                                    "const": "tree"
                                                }
                                            }
                                        },
                                        "then": {
                                            "$ref": "treeContributorConf.schema.json#"
                                        }
                                    },
                                    {
                                        "if": {
                                            "properties": {
                                                "type": {
                                                    "const": "metric"
                                                }
                                            }
                                        },
                                        "then": {
                                            "$ref": "computeContributorConf.schema.json#"
                                        }
                                    }
                                ]
                            },
                            "additionalProperties": false
                        },
                        "analytics": {
                            "description": "Configuration of an Analytics Panel",
                            "type": "array",
                            "items": {
                                "description": "Analytic components organisation configuration",
                                "type": "object",
                                "properties": {
                                    "groupId": {
                                        "description": "Id of group to regroup component in same line",
                                        "type": "string"
                                    },
                                    "filterValues": {
                                        "description": "Values used to filter the display of group",
                                        "type": "array",
                                        "items": {
                                            "description": "Value used to filter the display of group",
                                            "type": "string"
                                        }
                                    },
                                    "components": {
                                        "description": "List of components in group",
                                        "type": "array",
                                        "items": {
                                            "description": "Component configuration",
                                            "type": "object",
                                            "properties": {
                                                "contributorId": {
                                                    "description": "Identifer of contributor link to this component",
                                                    "type": "string"
                                                },
                                                "componentType": {
                                                    "description": "Type of component",
                                                    "enum": [
                                                        "histogram",
                                                        "powerbars",
                                                        "swimlane",
                                                        "resultlist",
                                                        "donut",
                                                        "metric"
                                                    ]
                                                },
                                                "title": {
                                                    "description": "Title of the component",
                                                    "type": "string"
                                                },
                                                "icon": {
                                                    "description": "icon of the component, from material design icon",
                                                    "type": "string"
                                                },
                                                "customizedCssClass": {
                                                    "description": "css class name to be applied on the component container",
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "contributorId",
                                                "componentType",
                                                "input"
                                            ],
                                            "anyOf": [
                                                {
                                                    "properties": {
                                                        "componentType": {
                                                            "enum": [
                                                                "histogram"
                                                            ]
                                                        },
                                                        "input": {
                                                            "description": "Input of histogram component.",
                                                            "allOf": [
                                                                {
                                                                    "$ref": "histogram.schema.json#"
                                                                }
                                                            ]
                                                        }
                                                    }
                                                },
                                                {
                                                    "properties": {
                                                        "componentType": {
                                                            "enum": [
                                                                "resultlist"
                                                            ]
                                                        },
                                                        "input": {
                                                            "description": "Input of resultlist component.",
                                                            "type": "object"
                                                        }
                                                    }
                                                },
                                                {
                                                    "properties": {
                                                        "componentType": {
                                                            "enum": [
                                                                "powerbars"
                                                            ]
                                                        },
                                                        "input": {
                                                            "description": "Input of powerbars component.",
                                                            "allOf": [
                                                                {
                                                                    "$ref": "powerbars.schema.json#"
                                                                }
                                                            ]
                                                        }
                                                    }
                                                },
                                                {
                                                    "properties": {
                                                        "componentType": {
                                                            "enum": [
                                                                "donut"
                                                            ]
                                                        },
                                                        "input": {
                                                            "description": "Input of donut component.",
                                                            "allOf": [
                                                                {
                                                                    "$ref": "donut.schema.json#"
                                                                }
                                                            ]
                                                        }
                                                    }
                                                },
                                                {
                                                    "properties": {
                                                        "componentType": {
                                                            "enum": [
                                                                "swimlane"
                                                            ]
                                                        },
                                                        "input": {
                                                            "description": "Input of swimlane component.",
                                                            "allOf": [
                                                                {
                                                                    "$ref": "swimlane.schema.json#"
                                                                }
                                                            ]
                                                        }
                                                    }
                                                },
                                                {
                                                    "properties": {
                                                        "componentType": {
                                                            "enum": [
                                                                "metric"
                                                            ]
                                                        },
                                                        "input": {
                                                            "description": "Input of metric component.",
                                                            "allOf": [
                                                                {
                                                                    "$ref": "metric.schema.json#"
                                                                }
                                                            ]
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    },
                                    "title": {
                                        "description": "Title of panel group",
                                        "type": "string"
                                    },
                                    "icon": {
                                        "description": "Icon of panel group, from material design icon",
                                        "type": "string"
                                    }
                                },
                                "required": [
                                    "groupId",
                                    "components"
                                ]
                            }
                        },
                        "components": {
                            "description": "Configuration of arlas components",
                            "type": "object",
                            "patternProperties": {
                                "^(share)$": {
                                    "patternProperties": {
                                        "^(geojson)$": {
                                            "description": "Configuration of arlas share component",
                                            "type": "object",
                                            "properties": {
                                                "max_for_feature": {
                                                    "description": "Max number of elements returned by arlas-server in feature mode",
                                                    "type": "number"
                                                },
                                                "max_for_topology": {
                                                    "description": "Max number of elements returned by arlas-server in topology mode",
                                                    "type": "number"
                                                },
                                                "sort_excluded_type": {
                                                    "description": "List of excluded field's types in sort option",
                                                    "type": "array"
                                                }
                                            },
                                            "required": [
                                                "max_for_feature",
                                                "sort_excluded_type"
                                            ]
                                        }
                                    }
                                },
                                "download": {
                                  "description": "Download component configuration",
                                  "type": "object",
                                  "properties": {
                                      "auth_type": {
                                          "description": "Authentication/Authorization type to ARLAS-server",
                                          "type": "string",
                                          "enum": [
                                            "basic"
                                          ]
                                      }
                                  }
                                },
                                "^(mapgl)$": {
                                    "description": "Mapgl component configuration",
                                    "type": "object",
                                    "properties": {
                                        "input": {
                                            "description": "Mapgl component inputs",
                                            "type": "object",
                                            "allOf": [
                                                {
                                                    "$ref": "mapgl.schema.json#"
                                                }
                                            ]
                                        },
                                        "allowMapExtend": {
                                            "description": "Whether to allow writing the map extend in the url. If so the map moves to that extend at the initial load.",
                                            "type": "boolean"
                                        },
                                        "mapExtendTimer": {
                                            "description": "Laps of time, after map moveend, to be considered before changing the map extend in the url.",
                                            "type": "number"
                                        }
                                    },
                                    "required": [
                                        "input"
                                    ]
                                },
                                "timeline": {
                                    "description": "Timeline component configuration",
                                    "type": "object",
                                    "properties": {
                                        "contributorId": {
                                            "description": "Identifier of the timeline contributor",
                                            "type": "string"
                                        },
                                        "input": {
                                            "description": "Histogram component inputs for timeline",
                                            "type": "object",
                                            "allOf": [
                                                {
                                                    "$ref": "histogram.schema.json#"
                                                }
                                            ]
                                        },
                                        "dateFormat": {
                                            "description": "Format of the date.",
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "contributorId",
                                        "input"
                                    ]
                                },
                                "detailedTimeline": {
                                    "description": "Detailed timeline component configuration",
                                    "type": "object",
                                    "properties": {
                                        "contributorId": {
                                            "description": "Identifier of the detailed timeline contributor. It should be a detailedhistogram contributor.",
                                            "type": "string"
                                        },
                                        "input": {
                                            "description": "Histogram component inputs for detailed timeline",
                                            "type": "object",
                                            "allOf": [
                                                {
                                                    "$ref": "histogram.schema.json#"
                                                }
                                            ]
                                        },
                                        "dateFormat": {
                                            "description": "Format of the date.",
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "contributorId",
                                        "input"
                                    ]
                                }
                            }
                        },
                        "colorGenerator": {
                            "description": "",
                            "type": "object",
                            "properties": {
                                "keysToColors": {
                                    "description": "List of [key, color] couples that associates a hex color to each key",
                                    "type": "array",
                                    "items": {
                                        "type": "array",
                                        "minItems": 2,
                                        "maxItems": 2,
                                        "items": [
                                            {
                                                "description": "Key to which a color is associated",
                                                "type": "string"
                                            },
                                            {
                                                "description": "Hex color associated to the key",
                                                "type": "string"
                                            }
                                        ]
                                    }
                                },
                                "colorsSaturationWeight": {
                                    "description": "Knowing that saturation scale is [0, 1], `colorsSaturationWeight` is a factor (between 0 and 1) that tightens this scale to [(1-colorsSaturationWeight), 1]. Therefore saturation of generated colors will be within this tightened scale.",
                                    "type": "number"
                                },
                                "colorAggregations": {
                                    "description": "List of aggregation, order matters",
                                    "type": "array",
                                    "items": {
                                        "type": "array",
                                        "minItems": 2,
                                        "maxItems": 2,
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "type": {
                                                    "description": "Type of aggregation",
                                                    "enum": [
                                                        "datehistogram",
                                                        "geohash",
                                                        "histogram",
                                                        "term"
                                                    ]
                                                },
                                                "field": {
                                                    "description": "Field of aggregation",
                                                    "type": "string"
                                                },
                                                "interval": {
                                                    "description": "Interval of aggregation",
                                                    "type": "object",
                                                    "properties": {
                                                        "value": {
                                                            "description": "Value of interval",
                                                            "type": "integer"
                                                        },
                                                        "unit": {
                                                            "description": "Unit of interval",
                                                            "enum": [
                                                                "year",
                                                                "quarter",
                                                                "month",
                                                                "week",
                                                                "day",
                                                                "hour",
                                                                "minute",
                                                                "second"
                                                            ]
                                                        }
                                                    }
                                                },
                                                "fetchGeometry": {
                                                    "description": "How to retrieve geometry for term and geohash aggregation",
                                                    "type": "object",
                                                    "properties": {
                                                        "strategy:": {
                                                            "description": "Strategy to fetch geometry",
                                                            "enum": [
                                                                "bbox",
                                                                "centroid",
                                                                "first",
                                                                "last",
                                                                "byDefault",
                                                                "geohash"
                                                            ]
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        },
                        "options": {
                            "description": "List of global options of an arlas app",
                            "type": "object",
                            "properties": {
                                "drag_items": {
                                    "description": "Whether drag and drop of widgets analitycs is enabled.",
                                    "type": "boolean"
                                }
                            }
                        }
                    },
                    "required": [
                        "contributors"
                    ]
                },
                "server": {
                    "description": "Configuration of ARLAS-server",
                    "type": "object",
                    "properties": {
                        "url": {
                            "description": "URL of ARLAS-server",
                            "type": "string"
                        },
                        "collection": {
                            "description": "Configuration of ARLAS Collection",
                            "type": "object",
                            "properties": {
                                "name": {
                                    "description": "Name of ARLAS Collection",
                                    "type": "string"
                                }
                            },
                            "required": [
                                "name"
                            ]
                        },
                        "max_age_cache": {
                            "description": "During of cache",
                            "type": "integer"
                        }
                    },
                    "required": [
                        "url",
                        "collection"
                    ]
                },
                "tagger": {
                    "description": "Configuration of ARLAS-tagger",
                    "type": "object",
                    "properties": {
                        "url": {
                            "description": "URL of ARLAS-tagger",
                            "type": "string"
                        },
                        "collection": {
                          "description": "Name of ARLAS Collection",
                          "type": "string"
                        }

                    }
                }
            },
            "required": [
                "web",
                "server"
            ]
        }
    },
    "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 to Auth0",
          "type": "boolean"
        },
        "force_connect": {
          "description": "When authentication is enabled, this option forces to be connected to Auth0 at application bootstrap.",
          "type": "boolean"
        },
        "use_discovery": {
          "description": "Defines whether we use document discovery service",
          "type": "boolean"
        },
        "client_id": {
          "description": "The client's id as registered with the auth server",
          "type": "string"
        },
        "issuer": {
          "description": "The issuer's uri.",
          "type": "string"
        },
        "redirect_uri": {
          "description": "The client's redirectUri as registered with the auth server",
          "type": "string"
        },
        "silent_refresh_redirect_uri": {
          "description": "The client's silentRefreshRedirectUri as registered with the auth server",
          "type": "string"
        },
        "scope": {
          "description": "The requested scopes, e.g:'openid profile'",
          "type": "string"
        },
        "token_endpoint": {
          "description": "Url of the token endpoint as defined by OpenId Connect and OAuth 2. Mandatory if use_discovery is false.",
          "type": "string"
        },
        "userinfo_endpoint": {
          "description": "Url of the userinfo endpoint as defined by OpenId Connect. Mandatory if use_discovery is false.",
          "type": "string"
        },
        "jwks_endpoint": {
          "description": "JSON Web Key Set (https://tools.ietf.org/html/rfc7517) with keys used to validate received id_tokens. This is taken out of the disovery document.. Mandatory if use_discovery is false.",
          "type": "string"
        },
        "login_url": {
          "description": "The auth server's endpoint that allows to log the user in when using implicit flow. Mandatory if use_discovery is false.",
          "type": "string"
        },
        "logout_url": {
          "description": "Redirecting the user to this URL (https://YOUR_DOMAIN/v2/logout) clears all Single Sign-on (SSO) cookies set by Auth0 for the user. If you want to navigate the user to a specific URL after the logout, set that URL at the returnTo parameter. Check https://auth0.com/docs/api/authentication?javascript#logout ",
          "type": "string"
        },
        "show_debug_information": {
          "description": "Defines whether additional debug information should  be shown at the console",
          "type": "boolean"
        },
        "require_https": {
          "description": "Defines whether https is required.",
          "type": "boolean"
        },
        "response_type": {
          "description": "Response type values, e.g: 'id_token token'",
          "type": "string"
        },
        "silent_refresh_timeout": {
          "description": "Timeout for silent refresh.",
          "type": "number"
        },
        "timeout_factor": {
          "description": "Defines when the token_timeout event should be raised.If you set this to the default value 0.75, the event s triggered after 75% of the token's life time.",
          "type": "number"
        },
        "session_checks_enabled": {
          "description": "If true, the lib will try to check whether the user is still logged in on a regular basis as described",
          "type": "boolean"
        },
        "clear_hash_after_login": {
          "description": "Defines whether to clear the hash fragment after logging in.",
          "type": "boolean"
        },
        "storage": {
          "description": "Defines where authentication information is stocked. `localstorage` by default",
          "enum": [
            "localstorage",
            "sessionstorage"
          ]
        },
        "disable_at_hash_check": {
          "description": "This property has been introduced to disable at_hash checks and is indented for Identity Provider that does not deliver an at_hash EVEN THOUGH its recommended by the OIDC specs.",
          "type": "boolean"
        },
        "dummy_client_secret": {
          "description": "dummy string for tests. DO NOT USE IT in production environment.",
          "type": "string"
        }
      },
      "required": [
        "use_authent",
        "force_connect",
        "use_discovery",
        "client_id",
        "issuer"
      ]
    },
    "persistence": {
      "description": "Configuration of ARLAS-persistence server",
      "properties": {
        "url": {
          "type": "string",
          "description": "URL to the ARLAS-persistence server"
        }
      },
      "required": [
        "url"
      ]
    },
    "permission": {
      "description": "Configuration of ARLAS-permission server",
      "properties": {
        "url": {
          "type": "string",
          "description": "URL to the ARLAS-permission server"
        }
      },
      "required": [
        "url"
      ]
    },
    "arlas_wui_url": {
      "description": "Url of arlas wui app",
      "type": "string"
    },
    "arlas_builder_url": {
      "description": "Url of arlas builder app",
      "type": "string"
    }
  }
}

Contributors

analyticsContributorConf.schema.json

source

{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "title": "Analytics Contributor Configuration",
    "description": "The Configuration of Analytics Contributor",
    "type": "object",
    "$id": "analyticsContributorConf.schema.json",
    "allOf": [
        {
            "$ref": "rootContributorConf.schema.json#"
        }
    ],
    "properties": {
        "jsonpath": {
            "description": "Json path to find value used in aggregation, for example  $.count or $.metrics[0].value, $.count is used by default if this property is not setted.",
            "type": "string"
        }
    },
    "required": [
    ]
} 

chipssearchContributorConf.schema.json

source

{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "title": "Chipsearch Contributor Configuration",
    "description": "The Configuration of ChipSearch Contributor",
    "type": "object",
    "$id": "chipssearchContributorConf.schema.json",
    "properties": {
        "identifier": {
            "description": "The unique identifier for a Contributor",
            "type": "string"
        },
        "search_field": {
            "description": "Keyword field on which the full text search is applied.",
            "type": "string"
        },
        "autocomplete_field": {
            "description": "Keyword field on which the autocompletion is performed.",
            "type": "string"
        },
        "autocomplete_size": {
            "description": "Number of suggested keywords by the autocompletion.",
            "type": "number"
        }
    },
    "required": [
        "identifier",
        "search_field"
    ]
} 

computeContributorConf.schema.json

source

{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "title": "Compute Contributor Configuration",
    "description": "The Configuration of Compute Contributor",
    "type": "object",
    "$id": "computeContributorConf.schema.json",
    "properties": {
        "title": {
            "description": "Title of the contributor",
            "type": "string"
        },
        "metrics":{
            "type":"array",
            "items": {
                "description": "Field pattern or name",
                "minItems": 1,
                "type": "object",
                "properties": {
                    "field": {
                        "description": "The field on which the metric is computed",
                        "type": "string"
                    },
                    "metric": {
                        "description": "The metric to compute",
                        "type": "string",
                        "enum": [
                            "avg",
                            "cardinality",
                            "max",
                            "min",
                            "spanning",
                            "sum"
                        ]
                    }
                }
            }
        },
        "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",
            "itesms":{
                "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": {
                            "properties": {
                                "color": {
                                    "description": "Color field",
                                    "type": "string"
                                },
                                "label": {
                                    "description": "label field",
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "colors_from_fields": {
                        "description": "a list of fields whose values will be transformed to colors, thanks to ARLAS-color-service, and used for a data-driven colouring of the layer features.",
                        "type": "array",
                        "items": {
                            "description": "field whose values will be transformed to colors, thanks to ARLAS-color-service, and used for a data-driven colouring of the layer features.",
                            "type": "string"
                        }
                    },
                    "normalization_fields": {
                        "description": "List of numeric or date fields patterns or names whose values are normalized. The fields values can be normalized locally on the current map extent OR globally; considering the current filters. Also you can normalize fields values (locally or globally) per a given key : For instance I want to normalize the speed of boats for each boat id. **Note** : Global normalization is only possible per a given key.",
                        "type": "array",
                        "items": {
                            "description": "Field pattern or name",
                            "type": "object",
                            "properties": {
                                "on": {
                                    "description": "The **date** of **numeric** field whose values are normalized",
                                    "type": "string"
                                },
                                "per": {
                                    "description": "Optional. **keyword** field that allows to normalize the `on` field values per keyword. A keyword being a value of the '`per`' field.",
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "agg_geo_field": {
                        "description": "This `geo-point` field is used when geo-aggregating data on a geohash grid. The data on each cell of the grid will be aggregated by this field.",
                        "type": "string"
                    },
                    "granularity": {
                        "description": "Describes how precise the geo-aggregation is. Possible: Coarse, Medium, Fine, Finest",
                        "type": "string",
                        "enum": [
                            "Coarse",
                            "Fine",
                            "Finest",
                            "Medium"
                        ]
                    },
                    "aggregated_geometry": {
                        "description": "Corresponds to the geometry that reprensents the aggregated data on each cell of a geo-aggregation. It's called aggregated geometry because it has the following possible values: geohash_center, geohash, bbox, centroid.",
                        "type": "string",
                        "enum": [
                            "bbox",
                            "centroid",
                            "cell",
                            "cell_center",
                            "geohash",
                            "geohash_center"
                        ]
                    },
                    "raw_geometry": {
                        "description": "Corresponds to the geometry that represents the aggregated data on each cell of a geo-aggregation. This geometry should be a `geo-point` or a `geo-shape` geometry of a document that will be representing all the cell.",
                        "type": "object",
                        "properties": {
                            "geometry": {
                                "description": "`geo-point` or a `geo-shape` field of the document that will be representing each bucket (cell) of the grid",
                                "type": "string"
                            },
                            "sort": {
                                "description": "Comma separated fields on which documents within the cell are sorted. The first resulted document of this sort is the one representing the cell.",
                                "type": "string"
                            }
                        }
                    },
                    "metrics": {
                        "description": "List of metrics that are calculated inside each aggregation bucket",
                        "type": "array",
                        "items": {
                            "description": "metric that is calculated inside each aggregation bucket",
                            "type": "object",
                            "properties": {
                                "field": {
                                    "description": "Field on which the metric is calculated",
                                    "type": "string"
                                },
                                "metric": {
                                    "description": "The metric to calculate. Possible values are: avg | min | max | sum | count",
                                    "type": "string",
                                    "enum": [
                                        "avg",
                                        "min",
                                        "max",
                                        "sum",
                                        "count",
                                        "cardinality"
                                    ]
                                },
                                "normalize": {
                                    "description": "If specified, it normalizes the metrics above locally to the current map extend or globally",
                                    "type": "boolean"
                                }
                            }
                        }
                    },
                    "geometry_id": {
                        "description": "A keyword field that identifies a set of similar geometries",
                        "type": "string"
                    }, 
                    "geomeetry_support": {
                        "description": "A `geo-point` or `geo-shape` field that represents the geometry_id"
                    }
                }
            }
        },
        "geo_query_field": {
            "description": "Geometry field used for geo query",
            "type": "string"
        },
        "geo_query_op": {
            "description": "Operator  used for geo query",
            "enum": [
                "Within",
                "NotWithin",
                "Intersects",
                "NotIntersects"
            ]
        },
        "isFlat": {
            "description": "If true, geosjon properties will be flat, true by default",
            "type": "boolean"
        },
        "draw_precision": {
            "description": "Number of  digits after the decimal point for coordinates in geosjon used for filter",
            "type": "number"
        },
        "data_mode": {
            "description": "Initial mode of the contributor : dynamic is the classic cluster/feature mode, simple si always feature mode",
            "enum": [
                "simple",
                "dynamic"
            ]
        },
        "simple_mode_accumulative": {
            "description": "Indicates whether rendered old data is kept or removed when onMove event is triggered. Taken into account only when data_mode = simple.",
            "type": "boolean"
        },
        "search_sort": {
            "description": "Separated comma field to defined the order of te search",
            "type": "string"
        },
        "search_size": {
            "description": "Number of  features return by a geosearch",
            "type": "number"
        },
        "network_fetching_level": {
            "description": "Zoom level 'Z' of the XYZ grid, used to fetch network analytics data",
            "type": "number"
        }
    },
    "required": [
        "layers_sources"
    ]
} 

resultlistContributorConf.schema.json

source

{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "title": "ResultList Contributor Configuration",
    "description": "The Configuration of ResultList Contributor",
    "type": "object",
    "$id": "resultlistContributorConf.schema.json",
    "properties": {
        "identifier": {
            "$ref": "rootContributorConf.schema.json#/definitions/identifier"
        },
        "name": {
            "$ref": "rootContributorConf.schema.json#/definitions/name"
        },
        "search_size": {
            "description": "The size of search result on server side. Defaults to 100",
            "type": "integer"
        },
        "max_pages": {
            "description": "Maximum number of pages that the contributor fetches. Default to 3.",
            "type": "integer"
        },
        "fieldsConfiguration": {
            "description": "Global configuration of resultlist",
            "type": "object",
            "properties": {
                "idFieldName": {
                    "description": "Field name of unique identifier",
                    "type": "string"
                },
                "urlImageTemplate": {
                    "description": "Url template of image",
                    "type": "string"
                },
                "urlThumbnailTemplate": {
                    "description": "Url template of thumbnail",
                    "type": "string"
                },
                "titleFieldNames": {
                    "description": " List of fields which values are used as titles in the resultlist. Values are joined with a space ' '",
                    "type": "array",
                    "items": {
                        "description": "Fields",
                        "type": "object",
                        "properties": {
                            "fieldPath": {
                                "description": "Field name/path",
                                "type": "string"
                            },
                            "process": {
                                "description": "A javascript process applied to the field value. The field value is stored in `result` variable. (ex : result.trim())",
                                "type": "string"
                            }
                        }
                    }
                },
                "tooltipFieldNames": {
                    "description": "List of fields which values are used as tooltips in the resultlist. Values are joined with a space ' '",
                    "type": "array",
                    "items": {
                        "description": "Fields",
                        "type": "object",
                        "properties": {
                            "fieldPath": {
                                "description": "Field name/path",
                                "type": "string"
                            },
                            "process": {
                                "description": "A javascript process applied to the field value. The field value is stored in `result` variable. (ex : result.trim())",
                                "type": "string"
                            }
                        }
                    }
                },
                "imageFieldName": {
                    "description": "Field which value indicates whether there is a image for a row (tile) or not",
                    "type": "string"
                },
                "thumbnailFieldName": {
                    "description": "Field which value indicates whether there is a thumbnail image for a row (tile) or not",
                    "type": "string"
                },  
                "icon": {
                    "description": "Material icon value",
                    "type": "string"
                },
                "iconCssClass": {
                    "description": "Field which value is used as a css class name => allows data driven styling of the resultlist rows/tiles",
                    "type": "string"
                },
                "iconColorFieldName": {
                    "description": "Field which value is transformed to a hex color (using an ArlasColorService) and associated to the icon color",
                    "type": "string"
                }
            }
        },
        "columns": {
            "description": "Configuration of columns",
            "type": "array",
            "items": {
                "description": "Columns",
                "type": "object",
                "properties": {
                    "columnName": {
                        "description": "Name of column view in app",
                        "type": "string"
                    },
                    "fieldName": {
                        "description": "Field of column",
                        "type": "string"
                    },
                    "dataType": {
                        "description": "Unit of column (ex: °C, km ..)",
                        "type": "string"
                    },
                    "process": {
                        "description": "Process transformation to display (ex : result.trim())",
                        "type": "string"
                    },
                    "dropdown": {
                        "description": "Whether the filter column search has a dropdown list",
                        "type": "boolean"
                    },
                    "dropdownsize": {
                        "description": "Size of dropdown list, 10 by default",
                        "type": "number"
                    },
                    "useColorService": {
                        "description": "Wether if use color service for column value",
                        "type": "boolean"
                    }
                }
            }
        },
        "process": {
            "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",
                "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": {
                "properties": {
                    "attachmentsField": {
                        "description": "Field path to attachements list",
                        "type": "string"
                    },
                    "attachmentLabelField": {
                        "description": "Path to Label field inside attachmentsField",
                        "type": "string"
                    },
                    "attachementUrlField": {
                        "description": "Path to Url field inside attachmentsField",
                        "type": "string"
                    },
                    "attachmentTypeField": {
                        "description": "Path to Type field inside attachmentsField",
                        "type": "string"
                    },
                    "attachmentDescriptionField": {
                        "description": "Path to Description field inside attachmentsField",
                        "type": "string"
                    },
                    "attachmentIcon": {
                        "description": "Material icon value",
                        "type": "string"
                    }
                },
                "required": [
                    "attachmentsField",
                    "attachementUrlField"
                ]
            }
        }
    },
    "required": [
        "identifier",
        "name",
        "fieldsConfiguration",
        "columns",
        "details"
    ]
} 

rootContributorConf.schema.json

source

{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "title": "Contributors Configuration",
    "description": "The Configuration of Contributors",
    "type": "object",
    "$id": "rootContributorConf.schema.json",
    "definitions": {
        "type": {
            "enum": [
                "analytics",
                "chipssearch",
                "detailedhistogram",
                "histogram",
                "map",
                "resultlist",
                "swimlane",
                "topomap",
                "tree",
                "metric"
            ]
        },
        "identifier": {
            "description": "The unique identifier for a Contributor",
            "type": "string"
        },
        "collection": {
            "description": "The unique collection for a Contributor",
            "type": "string"
        },
        "name": {
            "description": "The name of the Contributor",
            "type": "string"
        },
        "aggregationmodels": {
            "description": "List of aggregation, order matters",
            "type": "array",
            "minItems": 1,
            "items": {
                "type": "object",
                "properties": {
                    "type": {
                        "description": "Type of aggregation",
                        "enum": [
                            "datehistogram",
                            "geohash",
                            "histogram",
                            "term"
                        ]
                    },
                    "field": {
                        "description": "Field of aggregation",
                        "type": "string"
                    },
                    "interval": {
                        "description": "Interval of aggregation",
                        "type": "object",
                        "properties": {
                            "value": {
                                "description": "Value of interval",
                                "type": "integer"
                            },
                            "unit": {
                                "description": "Unit of interval",
                                "enum": [
                                    "year",
                                    "quarter",
                                    "month",
                                    "week",
                                    "day",
                                    "hour",
                                    "minute",
                                    "second"
                                ]
                            }
                        }
                    },
                    "fetch_geometry": {
                        "description": "How to retrieve geometry for term and geohash aggregation",
                        "type": "object",
                        "properties": {
                            "strategy:": {
                                "description": "Strategy to fetch geometry",
                                "enum": [
                                    "bbox",
                                    "centroid",
                                    "first",
                                    "last",
                                    "byDefault",
                                    "geohash"
                                ]
                            }
                        }
                    }
                },
                "required": [
                    "type",
                    "field"
                ]
            }
        },
        "cache_duration":{
            "description": "Duration of browser cache.",
            "type": "number"
        }
    },
    "properties": {
        "identifier": {
            "$ref": "#/definitions/identifier"
        },
        "name": {
            "$ref": "#/definitions/name"
        },
        "aggregationmodels": {
            "$ref": "#/definitions/aggregationmodels"
        }
    },
    "required": [
        "type",
        "identifier",
        "name"
    ]
} 

swimlaneContributorConf.schema.json

source

{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "title": "Swimlane Contributor Configuration",
    "description": "The Configuration of Swimlane Contributor",
    "type": "object",
    "$id": "swimlaneContributorConf.schema.json",
    "properties": {
        "identifier": {
            "description": "The unique identifier for a Contributor",
            "type": "string"
        },
        "name": {
            "description": "The name of the Contributor",
            "type": "string"
        },
        "swimlanes": {
            "description": "List of swimlanes",
            "type": "array",
            "minItems": 1,
            "items": {
                "type": "object",
                "properties": {
                    "id": {},
                    "name": {},
                    "aggregationmodels": {
                        "$ref": "rootContributorConf.schema.json#/definitions/aggregationmodels"
                    },
                    "jsonpath": {
                        "description": "Json path to find value used in aggregation, for example  $.count or $.metrics[0].value, $.count is used by default if this property is not setted.",
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "aggregationmodels"
                ]
            }
        },
        "numberOfBuckets": {
            "description": "Number of buckets in the swimlane. If not specified, the interval in aggregation model is used instead.",
            "type": "number"
        }
    },
    "required": [
        "identifier",
        "name",
        "swimlanes"
    ]
} 

treeContributorConf.schema.json

source

{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "title": "Tree Contributor Configuration",
    "description": "The Configuration of Tree Contributor",
    "type": "object",
    "$id": "treeContributorConf.schema.json",
    "allOf": [{ "$ref": "rootContributorConf.schema.json#" }],
    "properties": {
        "title":{
            "description": "Title of contributor",
            "type":"string"
        },
        "nodeSizeMinPourcentage":{
            "description": "The minimum ratio of the node size in its level needed to be plotted. Otherwise the node is considered as OTHER",
            "type":"number"
        }
    },
    "required": [
        "title"
    ]
} 

Components

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

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

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

metric.schema.json

source

{
  "$schema": "http://json-schema.org/draft-06/schema#",
  "title": "Card input configuration",
  "description": "The Configuration input of Card",
  "type": "object",
  "$id": "metric.schema.json",
  "properties": {
      "customizedCssClass":{
          "description": "Css class name to use to customize a specific card's style.",
          "type":"string"
      }
  }
}

mapgl.schema.json

source

{
  "$schema": "http://json-schema.org/draft-06/schema#",
  "title": "Map's inputs configuration",
  "description": "The Configuration of the map's inputs",
  "type": "object",
  "$id": "mapgl.schema.json",
  "properties": {
    "displayScale": {
      "description": "Whether the scale is displayed",
      "type": "boolean"
    },
    "displayLayerSwitcher":{
      "description": "Whether the layer switcher controll is displayed. If not, the map component uses the default style group and with its default style.",
      "type": "boolean"
    },
    "maxWidthScale": {
      "description": "Max width of the scale in px. Default value is 100px.",
      "type": "number"
    },
    "unitScale": {
      "description": "Unit of the scale. Default value is 'metric'.",
      "type": "string"
    },
    "mapLayers": {
      "$id": "/properties/mapLayers",
      "type": "object",
      "properties": {
        "layers": {
          "description": "List of mapbox-gl layers",
          "type": "array"
        },
        "events": {
          "type": "object",
          "properties": {
            "onHover": {
              "description": "List of layers ids to listen to on hover",
              "type": "array"
            },
            "emitOnClick": {
              "description": "List of layers ids to listen to on click event in order to emit features",
              "type": "array"
            },
            "zoomOnClick": {
              "description": "List of layers ids to listen to on click event in order to trigger zoom action",
              "type": "array"
            }
          },
          "required": [
            "onHover", "emitOnClick", "zoomOnClick"
          ]
        }
      },
      "required": [
        "layers", "events"
      ]
    },
    "idFeatureField": {
      "description": "Field name of the identifier",
      "type": "string"
    },
    "mapSources": {
      "description": "List of mapboxgl sources to add to the map",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Id of the source.",
            "type": "string"
          },
          "source": {
            "description": "Mapboxgl source.",
            "type": "object",
            "properties": {
              "type": {
                "description": "Type of the source. Possible values : 'vector' | 'raster' | 'geojson' | 'image' | 'video' | 'canvas'",
                "type": "string"
              },
              "minzoom": {
                "description": "Minimum zoom to display the source layers",
                "type": "integer"
              },
              "maxzoom": {
                "description": "Maximum zoom to display the source layers",
                "type": "integer"
              },
              "url": {
                "description": "Url to the source (for `vector`, `raster`, `image`, `video` types).",
                "type": "string"
              },
              "tiles" : {
                "description": "List of tiles (for `vector` and `raster` types).",
                "type": "array"
              },
              "coordinates": {
                "description": "The 4 corners coordinates of the canvas/image/video, given as [longitude, latitude].",
                "type": "array"
              },
              "data" : {
                "description": "A geojson object or a url to a geojson file (for `geosjson` type).",
                "type": "array"
              },
              "canvas":  {
                "description": "Id of the canvas element (for `canvas` type)",
                "type": "string"
              },
              "animate":  {
                "description": "Whether the canvas source is animated (for `canvas` type)",
                "type": "boolean"
              }
            },
            "required": [
              "type"
            ]
          }
        },
        "required": [
          "id", "source"
        ]
      }
    },
    "defaultBasemapStyle": {
      "description": "Defines the name and default basemap style.",
      "type": "object",
      "properties": {
        "name": {
          "description": "name of the style",
          "type": "string"
        },
        "styleFile": {
          "description": "url to basemap style or a `mapboxgl.Style`",
          "type": ["string", "object"]
        }
      },
      "required": [
        "name", "styleFile"
      ]
    },
    "basemapStyles": {
      "description": "List of basemaps styles",
      "type": "array",
      "items": {
        "description": "Defines the name and the basemap style.",
        "type": "object",
        "properties": {
          "name": {
            "description": "name of the style",
            "type": "string"
          },
          "styleFile": {
            "description": "url to basemap style or a `mapboxgl.Style`",
            "type": ["string","object"]
          }
        },
        "required": [
          "name", "styleFile"
        ]
      }
    },
    "initCenter": {
      "description": "Coordinates of the map's centre when it's initialized.",
      "type": "array",
      "minItems": 2,
      "maxItems": 2,
      "items": [
        {
            "description": "Longitude",
            "type": "number"
        },
        {
            "description": "Latitude",
            "type": "number"
        }
      ]
    },
    "initZoom": {
      "description": "Zoom of the map when it's initialized",
      "type": "number"
    },
    "minZoom": {
      "description": "Min zoom of the map",
      "type": "number"
    },
    "maxZoom": {
      "description": "Max zoom of the map",
      "type": "number"
    },
    "margePanForLoad": {
      "description": "Margin applied to the map extent. Data is loaded in all this extent",
      "type": "number"
    },
    "margePanForTest": {
      "description": "Margin applied to the map extent. Before loading data, the components checks first if there are features already loaded in this extent.",
      "type": "number"
    },
    "drawButtonEnabled": {
      "description": "Whether the draw tools are activated.",
      "type": "boolean"
    },
    "drawPolygonVerticesLimit": {
      "description": "Maximum number of vertices allowed when drawing a polygon."
    },
    "visualisationSetsConfig": {
      "description": "List of visualisation sets",
      "type": "array",
      "items": {
        "description": "A Visualisation set is an entity where to group layers together",
        "type": "object",
        "properties": {
          "name": {
            "description": "Name of the visualisation set",
            "type": "string"
          },
          "layers": {
            "description": "List of layers ids grouped in this visualisation set",
            "type": "string",
            "items": {
              "description": "layer id",
              "type": "string"
            }
          },
          "enabled": {
            "description": "If enabled, all the layers can be displayed on the map, otherwise the layers are removed from the map.",
            "type": "boolean"
          }
        }
      }
    },
    "icons": {
      "description": "List of icons to add to the map and to use in layers styling.",
      "type": "array",
      "items": {
        "description": "Icon to add",
        "type": "object",
        "properties": {
          "path": {
            "description": "path to the icon. The icon should be placed at `assest/icons` folder and should be `png` or `jpeg`. Example : 'path': 'arlas_direction_arrow.png'",
            "type": "string"
          },
          "recolorable": {
            "description": "Whether to allow recolorising the icon or not.",
            "type": "boolean"
          }
        }
      }
    }
  },
  "required": [
      "mapLayers", "idFeatureField", "margePanForLoad", "margePanForTest"
  ]
}