Skip to content

Commit

Permalink
Implement API exchange JSON schema between mandr and dashboard
Browse files Browse the repository at this point in the history
  • Loading branch information
thomass-dev committed Jul 18, 2024
1 parent f7701e3 commit 3dc078b
Showing 1 changed file with 173 additions and 0 deletions.
173 changes: 173 additions & 0 deletions src/mandr/dashboard.jschema
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "schema",
"$defs": {
"any": {
"type": "object",
"properties": {
"type": { "const": "any" },
"data": true
},
"required": [ "type", "data" ],
"additionalProperties": false
},
"array": {
"type": "object",
"properties": {
"type": { "const": "array" },
"data": { "type": "array" }
},
"required": [ "type", "data" ],
"additionalProperties": false
},
"boolean": {
"type": "object",
"properties": {
"type": { "const": "boolean" },
"data": { "type": "boolean" }
},
"required": [ "type", "data" ],
"additionalProperties": false
},
"bytes": {
"type": "object",
"properties": {
"type": { "const": "bytes" },
"data": {
"type": "string",
"contentEncoding": "base64"
}
},
"required": [ "type", "data" ],
"additionalProperties": false
},
"date": {
"type": "object",
"properties": {
"type": { "const": "date" },
"data": {
"type": "string",
"format": "date"
}
},
"required": [ "type", "data" ],
"additionalProperties": false
},
"datetime": {
"type": "object",
"properties": {
"type": { "const": "datetime" },
"data": {
"type": "string",
"format": "date-time"
}
},
"required": [ "type", "data" ],
"additionalProperties": false
},
"file": {
"type": "object",
"properties": {
"type": { "const": "file" },
"data": {
"type": "string",
"format": "uri"
},
"metadata": true,
"internal": true
},
"required": [ "type", "data", "metadata", "internal" ],
"additionalProperties": false
},
"html": {
"type": "object",
"properties": {
"type": { "const": "html" },
"data": {
"type": "string",
"contentMediaType": "text/html"
}
},
"required": [ "type", "data" ],
"additionalProperties": false
},
"integer": {
"type": "object",
"properties": {
"type": { "const": "integer" },
"data": { "type": "integer" }
},
"required": [ "type", "data" ],
"additionalProperties": false
},
"markdown": {
"type": "object",
"properties": {
"type": { "const": "markdown" },
"data": {
"type": "string",
"contentMediaType": "text/markdown"
}
},
"required": [ "type", "data" ],
"additionalProperties": false
},
"number": {
"type": "object",
"properties": {
"type": { "const": "number" },
"data": { "type": "number" }
},
"required": [ "type", "data" ],
"additionalProperties": false
},
"string": {
"type": "object",
"properties": {
"type": { "const": "string" },
"data": { "type": "string" }
},
"required": [ "type", "data" ],
"additionalProperties": false
},
"vega": {
"type": "object",
"properties": {
"type": { "const": "vega" },
"data": { "$ref": "https://vega.github.io/schema/vega-lite/v5.json" }
},
"required": [ "type", "data" ],
"additionalProperties": false
}
},

"type": "object",
"properties": {
"schema": { "const": "schema:mandr" },
"uri": {
"type": "string",
"format": "uri-reference"
},
"payload": {
"additionalProperties": {
"oneOf": [
{ "$ref": "#/$defs/any" },
{ "$ref": "#/$defs/array" },
{ "$ref": "#/$defs/boolean" },
{ "$ref": "#/$defs/bytes" },
{ "$ref": "#/$defs/date" },
{ "$ref": "#/$defs/datetime" },
{ "$ref": "#/$defs/file" },
{ "$ref": "#/$defs/html" },
{ "$ref": "#/$defs/integer" },
{ "$ref": "#/$defs/markdown" },
{ "$ref": "#/$defs/number" },
{ "$ref": "#/$defs/string" },
{ "$ref": "#/$defs/vega" }
]
}
}
},
"required": [ "schema", "uri", "payload" ],
"additionalProperties": false
}

0 comments on commit 3dc078b

Please sign in to comment.