Skip to content

List of json schemas

ARLAS

arlasconfig.schema.json

source

{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "title": "Arlas WUI application  Configuration",
    "description": "The Configuration of an arlas web application",
    "type": "object",
    "$id": "arlasconfig.schema.json",
    "properties": {
        "arlas": {
            "description": "Configuration of ARLAS Wui Project",
            "type": "object",
            "properties": {
                "web": {
                    "description": "Configuration of ARLAS Web Front End",
                    "type": "object",
                    "properties": {
                        "contributors": {
                            "description": "Configuration of each arlas contributors",
                            "type": "array",
                            "uniqueItemProperties": [ "identifier"],
                            "items": {
                              "allOf": [
                                {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "analytics",
                                        "chipssearch",
                                        "detailedhistogram",
                                        "donut",
                                        "histogram",
                                        "powerbars",
                                        "map",
                                        "resultlist",
                                        "swimlane",
                                        "topomap",
                                        "tree"
                                      ]
                                    }
                                  }
                                },
                                {
                                  "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": "donut" } } },
                                  "then": {"$ref": "donutContributorConf.schema.json#"}
                                },
                                {
                                  "if": { "properties": { "type": { "const": "histogram" } } },
                                  "then": {"$ref": "histogramContributorConf.schema.json#"}
                                },
                                {
                                  "if": { "properties": { "type": { "const": "powerbars" } } },
                                  "then": {"$ref": "powerbarsContributorConf.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": "topomap" } } },
                                  "then": {"$ref": "topomapContributorConf.schema.json#"}
                                },
                                {
                                  "if": { "properties": { "type": { "const": "tree" } } },
                                  "then": {"$ref": "treeContributorConf.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"
                                                    ]
                                                }
                                            },
                                            "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#"
                                                                }
                                                            ]
                                                        }
                                                    }
                                                }
                                            ]
                                        }
                                    },
                                    "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_cluster": {
                                          "description": "Max number of elements returned by arlas-server in cluster mode",
                                          "type": "number"
                                      },
                                      "agg_field":{
                                          "description": "Field for aggregation",
                                          "type": "string"
                                      },
                                      "sort_excluded_type": {
                                          "description": "List of excluded field's types in sort option",
                                          "type": "array"
                                      }
                                  },
                                  "required": [
                                      "max_for_feature",
                                      "max_for_cluster",
                                      "agg_field",
                                      "sort_excluded_type"
                                  ]
                                }
                              }
                            },
                            "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"
                                },
                                "allowMapStyles": {
                                  "description": "Whether to allow writing the map selected styles in the url. If so the map shows the styles set in the url 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"
                                                  ]
                                              }
                                          }
                                      }
                                    }
                                  }
                                }

                            }
                          }
                        }
                    },
                    "required": [
                        "contributors"
                    ]
                },
                "server": {
                    "description": "Configuration of ARLAS Web Server",
                    "type": "object",
                    "properties": {
                        "url": {
                            "description": "URL of ARLAS Web Server",
                            "type": "string"
                        },
                        "collection": {
                            "description": "Configuration of ARLAS Collection",
                            "type": "object",
                            "properties": {
                                "id": {
                                    "description": "Id of an entity in collection",
                                    "type": "string"
                                },
                                "name": {
                                    "description": "Name of ARLAS Collection",
                                    "type": "string"
                                }
                            },
                            "required": [
                                "id",
                                "name"
                            ]
                        },
                        "max_age_cache": {
                            "description": "During of cache",
                            "type": "integer"
                        }
                    },
                    "required": [
                        "url",
                        "collection"
                    ]
                }
            },
            "required": [
                "web",
                "server"
            ]
        }
    },
    "required": [
        "arlas"
    ]
}

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"
        }
    },
    "required": [
        "identifier"
    ]
} 

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

donutContributorConf.schema.json

source

{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "title": "Donuts Contributor Configuration",
    "description": "The Configuration of Donut Contributor",
    "type": "object",
    "$id": "donutContributorConf.schema.json",
    "allOf": [{ "$ref": "rootContributorConf.schema.json#" }],
    "properties": {
        "title":{
            "description": "Title of Donut",
            "type":"string"
        },
        "arcMinPourcentage":{
            "description": "The minimum ratio of the arc in its ring needed to be plot. Otherwise the arc is considered as OTHER",
            "type":"number"
        }
    },
    "required": [
        "title"
    ]
} 

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"
                ]
            }
        },
        "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": [
        "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": {
        "idFieldName": {
            "description": "Id of entity to show on Map",
            "type": "string"
        },
        "includeFeaturesFields": {
            "description": "List of fields pattern or names that will be included in features mode as geojson properties.",
            "type": "array",
            "items": {
                "description": "Field pattern or name",
                "type": "string"
            }
        },
        "initZoom": {
            "description": "Initial zoom of  Map",
            "type": "number"
        },
        "geometry": {
            "description": "Geometry field of index",
            "type": "string"
        },
        "geomStrategy": {
            "description": "Geometry method of representation for aggregate data",
            "enum": [
                "bbox",
                "centroid",
                "first",
                "last",
                "byDefault",
                "geohash"
            ]
        },
        "isFlat": {
            "description": "If true, geosjon properties will be flat, true by default",
            "type": "boolean"
        },
        "zoomLevelFullData": {
            "description": "Max zoom to retrieve all world data",
            "type": "number"
        },
        "zoomLevelForTestCount": {
            "description": "Zoom from which we test to retrieve data without aggregation",
            "type": "number"
        },
        "nbMaxDefautFeatureForCluster": {
            "description": "Defaut number of features below which we show data without agrgegation",
            "type": "number"
        },
        "zoomToNbMaxFeatureForCluster": {
            "description": "List of couple zoom-number to associate a number of features below which we show data without agrgegation for each zoom",
            "type": "array",
            "items": {
                "type": "array",
                "minItems": 2,
                "maxItems": 2,
                "items": [
                    {
                        "description": "Zoom value",
                        "type": "number"
                    },
                    {
                        "description": "Number of features below which we show data without agrgegation",
                        "type": "number"
                    }
                ]
            }
        },
        "maxPrecision": {
            "type": "array",
            "minItems": 2,
            "maxItems": 2,
            "items": [
                {
                    "description": "Precision of geohash aggregation",
                    "type": "number"
                },
                {
                    "description": "Level of geohash to retrieve data like tile",
                    "type": "number"
                }
            ]
        },
        "zoomToPrecisionCluster": {
            "description": "List of triplet zoom-precison-level to associate a couple precision-level for each zoom",
            "type": "array",
            "items": {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": [
                    {
                        "description": "Zoom value",
                        "type": "number"
                    },
                    {
                        "description": "Precision of geohash aggregation",
                        "type": "number"
                    },
                    {
                        "description": "Level of geohash to retrieve data like tile",
                        "type": "number"
                    }
                ]
            }
        }
    },
    "required": [
        "idFieldName",
        "initZoom",
        "geometry",
        "geomStrategy",
        "zoomLevelFullData",
        "zoomLevelForTestCount",
        "nbMaxDefautFeatureForCluster",
        "zoomToNbMaxFeatureForCluster",
        "maxPrecision",
        "zoomToPrecisionCluster"
    ]
} 

powerbarsContributorConf.schema.json

source

{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "title": "Powerbars Contributor Configuration",
    "description": "The Configuration of Powerbars Contributor",
    "type": "object",
    "$id": "powerbarsContributorConf.schema.json",
    "allOf": [
        {
            "$ref": "rootContributorConf.schema.json#"
        }
    ],
    "properties": {
        "title": {
            "description": "Title of PowerBar",
            "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"
        }
    },
    "required": [
        "title"
    ]
} 

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",
            "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": "Fields elements to draw title of a grid element",
                    "type": "array",
                    "items": {
                        "description": "Fields",
                        "type": "object",
                        "properties": {
                            "fieldPath": {
                                "description": "Path of field",
                                "type": "string"
                            },
                            "process": {
                                "description": "Process transformation to display (ex : result.trim())",
                                "type": "string"
                            }
                        }
                    }
                },
                "tooltipFieldNames": {
                    "description": "Fields elements to draw tooltip  of a grid element",
                    "type": "array",
                    "items": {
                        "description": "Fields",
                        "type": "object",
                        "properties": {
                            "fieldPath": {
                                "description": "Path of field",
                                "type": "string"
                            },
                            "process": {
                                "description": "Process transformation to display (ex : result.trim())",
                                "type": "string"
                            }
                        }
                    }
                },
                "icon": {
                    "description": "Material icon value",
                    "type": "string"
                },
                "iconCssClass": {
                    "description": "Field path of field to customize css",
                    "type": "string"
                },
                "iconColorFieldName": {
                    "description": "Field path of field to use in arlas color service for 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": "string"
            },
            "urlThumbnailTemplate": {
                "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"
                ]
            }
        }
    },
    "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",
                "donut",
                "histogram",
                "powerbars",
                "map",
                "resultlist",
                "swimlane",
                "topomap",
                "tree"
            ]
        },
        "identifier": {
            "description": "The unique identifier 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"
                ]
            }
        }
    },
    "properties": {
        "identifier": {
            "$ref": "#/definitions/identifier"
        },
        "name": {
            "$ref": "#/definitions/name"
        },
        "aggregationmodels": {
            "$ref": "#/definitions/aggregationmodels"
        }
    },
    "required": [
        "type",
        "identifier",
        "name",
        "aggregationmodels"
    ]
} 

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": {},
                    "xAxisField": {
                        "description": "Numeric/temporal field represented on the x axis of the swimlane",
                        "type": "string"
                    },
                    "termField": {
                        "description": "The term field that separates the swimlane to lanes",
                        "type": "string"
                    },
                    "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",
                    "xAxisField",
                    "termField",
                    "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"
    ]
} 

topomapContributorConf.schema.json

source

{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "title": "Map Contributor Configuration",
    "description": "The Configuration of Topo Map Contributor",
    "type": "object",
    "$id": "topomapContributorConf.schema.json",
    "allOf": [
        {
            "$ref": "mapContributorConf.schema.json#"
        }
    ],
    "properties": {
        "topo_aggregationmodels": {
            "description": "List of topo 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"
                ]
            }
        },
        "field_cardinality": {
            "description": "Cardinality field for term aggregation",
            "type": "string"
        },
        "field_geometry": {
            "description": "Geometry field for geohash aggregation",
            "type": "string"
        }
    },
    "required": [
        "topo_aggregationmodels",
        "field_cardinality",
        "field_geometry"
    ]
} 

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"
      }
  },
  "required": [
      "id"
  ]
}

mapgl.schema.json

source

{
  "$schema": "http://json-schema.org/draft-06/schema#",
  "title": "Map's inputs configuration",
  "description": "The Configuration of the map's inputs",
  "type": "object",
  "$id": "mapgl.schema.json",
  "properties": {
    "displayScale": {
      "description": "Whether the scale is displayed",
      "type": "boolean"
    },
    "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"
        },
        "styleGroups": {
          "description": "Either a hex string color or a color name (in English) or a saturation interval.",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "description": "Id of the style group.",
                "type": "string"
              },
              "name": {
                "description": "Name of the style group.",
                "type": "string"
              },
              "base": {
                "description": "Ids list of base layers that are added to the map once this style group is chosen.",
                "type": "array"
              },
              "isDefault": {
                "description": "Whether this style group is the default one",
                "type": "boolean"
              },
              "styles": {
                "description": "List of the styles",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "description": "Id of the style.",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name of the style.",
                      "type": "string"
                    },
                    "geomStrategy": {
                      "description": "Geometry method of representation for aggregate data",
                      "enum": [
                          "bbox",
                          "centroid",
                          "first",
                          "last",
                          "byDefault",
                          "geohash"
                      ]
                  },
                    "layerIds": {
                      "description": "Ids list of layers that are added to the map when this style is chosen.",
                      "type": "array"
                    },
                    "isDefault": {
                      "description": "Whether this style group is the default one",
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id", "name", "layerIds"
                  ]
                }
              }
            },
            "required": [
              "id", "name", "base", "styles"
            ]
          }
        },
        "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", "styleGroups", "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 url to the default basemap style.",
      "type": "object",
      "properties": {
        "name": {
          "description": "name of the style",
          "type": "string"
        },
        "styleFile": {
          "description": "url to basemap style",
          "type": "string"
        }
      },
      "required": [
        "name", "styleFile"
      ]
    },
    "basemapStyles": {
      "description": "List of basemaps styles",
      "type": "array",
      "items": {
        "description": "Defines the name and url to the default basemap style.",
        "type": "object",
        "properties": {
          "name": {
            "description": "name of the style",
            "type": "string"
          },
          "styleFile": {
            "description": "url to basemap style",
            "type": "string"
          }
        },
        "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"
    }
  },
  "required": [
      "mapLayers", "idFeatureField", "margePanForLoad", "margePanForTest"
  ]
}

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 representation mode.",
            "enum": [
                "variableHeight",
                "fixedHeight"
            ]
        }
    }
} 

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 time in histogram",
            "enum": [
                "millisecond",
                "second"
            ]
        },
        "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"
            ]
        },
        "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"
        },
        "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.",
            "type": "array"
        },
        "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"
    ]
}

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