Files
ITWorx-Pulse-Public/specs/widget-instance.schema.json
ITWorx Pulse release export bd774932d5
Public source validation / validate (push) Failing after 3m8s
Publish ITWorx Pulse source
2026-09-03 02:09:19 +02:00

247 lines
4.8 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://itworx.local/pulse/specs/widget-instance.schema.json",
"title": "Dashboard widget instance",
"type": "object",
"additionalProperties": false,
"required": [
"id",
"type",
"title",
"data",
"visualization",
"behavior",
"layouts"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"type": {
"type": "string",
"enum": [
"stat",
"timeseries",
"gauge",
"ranked-list",
"status-grid",
"table",
"heatmap",
"event-timeline",
"storage-map",
"topology",
"service-matrix",
"alert-summary",
"text",
"query-inspector"
]
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"description": {
"type": "string",
"maxLength": 500
},
"data": {
"type": "object",
"additionalProperties": false,
"required": [
"sourceType"
],
"properties": {
"sourceType": {
"type": "string",
"enum": [
"semantic-metric",
"inventory",
"events",
"alerts",
"incidents",
"text"
]
},
"metric": {
"type": "string",
"maxLength": 160
},
"scope": {
"type": "object",
"maxProperties": 20
},
"range": {
"type": "string",
"maxLength": 60
},
"aggregation": {
"type": "string",
"maxLength": 40
},
"groupBy": {
"type": "array",
"maxItems": 10,
"items": {
"type": "string",
"maxLength": 80
}
},
"transformations": {
"type": "array",
"maxItems": 20,
"items": {
"type": "object",
"maxProperties": 20
}
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 1000
}
}
},
"visualization": {
"type": "object",
"additionalProperties": true,
"properties": {
"unit": {
"type": "string",
"maxLength": 40
},
"decimals": {
"type": "integer",
"minimum": 0,
"maximum": 6
},
"legend": {
"type": "boolean"
},
"showSparkline": {
"type": "boolean"
},
"min": {
"type": [
"number",
"null"
]
},
"max": {
"type": [
"number",
"null"
]
},
"thresholds": {
"type": "array",
"maxItems": 10,
"items": {
"type": "object",
"maxProperties": 10
}
}
}
},
"behavior": {
"type": "object",
"additionalProperties": false,
"properties": {
"locked": {
"type": "boolean"
},
"hidden": {
"type": "boolean"
},
"hideWhenEmpty": {
"type": "boolean"
},
"showOnlyOnProblem": {
"type": "boolean"
},
"link": {
"type": [
"string",
"null"
],
"maxLength": 1000
},
"liveIntervalSeconds": {
"type": "integer",
"minimum": 1,
"maximum": 300
},
"independentTimeRange": {
"type": [
"string",
"null"
],
"maxLength": 60
}
}
},
"layouts": {
"type": "object",
"additionalProperties": false,
"required": [
"desktop",
"tablet",
"mobile",
"wallboard"
],
"properties": {
"desktop": {
"$ref": "#/$defs/layout"
},
"tablet": {
"$ref": "#/$defs/layout"
},
"mobile": {
"$ref": "#/$defs/layout"
},
"wallboard": {
"$ref": "#/$defs/layout"
}
}
}
},
"$defs": {
"layout": {
"type": "object",
"additionalProperties": false,
"required": [
"x",
"y",
"w",
"h",
"visible"
],
"properties": {
"x": {
"type": "integer",
"minimum": 0,
"maximum": 24
},
"y": {
"type": "integer",
"minimum": 0
},
"w": {
"type": "integer",
"minimum": 1,
"maximum": 24
},
"h": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"visible": {
"type": "boolean"
}
}
}
}
}