DoctorLogic Schemas
-
/component/v1/component.json
Toggle Code
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "http://schema.doctorlogic.com/component/v1/component.json#",
"definitions": {
"name": {
"description": "The name of the Component.",
"pattern": "^[a-z0-9_-]+$",
"type": "string"
},
"type": {
"description": "The type of the Component.",
"pattern": "^[a-z0-9_-]+$",
"type": "string"
}
},
"additionalProperties": false,
"properties": {
"dependencies": {
"description": "A list of absolute or relative URLs required for this Component. Relative paths will be resolved from the manifest file path.",
"additionalProperties": true,
"properties": {
"scripts": {
"type": "array",
"items": {
"type": "string"
}
},
"styles": {
"type": "array",
"items": {
"type": "string"
}
}
},
"type": "object"
},
"description": {
"description": "The description of the Component.",
"type": "string"
},
"name": {
"$ref": "#/definitions/name"
},
"template": {
"description": "The optional template to be used by the Component.",
"type": "string"
},
"type": {
"$ref": "#/definitions/type"
},
"context": {
"description": "The default rendering context for all instances of the Component.",
"type": "object"
}
},
"required": [
"description",
"name",
"type"
],
"type": "object"
} -
/component/v1/tree.json
Toggle Code
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "http://schema.doctorlogic.com/component/v1/tree.json#",
"definitions": {},
"additionalProperties": false,
"properties": {
"name": {
"$ref": "component.json#/properties/name"
},
"type": {
"$ref": "component.json#/properties/type"
},
"children": {
"description": "A list of component trees.",
"items": {
"$ref": "#"
},
"type": "array"
},
"context": {
"type": "object",
"description": "The rendering context for the Component."
},
"config": {
"description": "The configuration to override the database configuration.",
"type": "object"
},
"additionalDependencies": {
"description": "A list of absolute or relative URLs required for this Component instance. Relative paths will be resolved from the manifest file path.",
"additionalProperties": true,
"properties": {
"scripts": {
"type": "array",
"items": {
"type": "string"
}
},
"styles": {
"type": "array",
"items": {
"type": "string"
}
}
},
"type": "object"
}
},
"required": [
"name",
"type"
],
"type": "object"
} -
/component/v2/component.json
Toggle Code
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://schema.doctorlogic.com/component/v2/component.json#",
"$ref": "#/definitions/component",
"definitions": {
"name": {
"type": "string",
"description": "The name of the Component.",
"pattern": "^[a-z0-9_-]+$"
},
"type": {
"type": "string",
"description": "The type of the Component.",
"pattern": "^[a-z0-9_-]+$"
},
"dependencies": {
"type": "object",
"additionalProperties": true,
"properties": {
"scripts": {
"type": "array",
"items": {
"type": "string"
}
},
"styles": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"component": {
"type": "object",
"additionalProperties": false,
"properties": {
"dependencies": {
"$ref": "#/definitions/dependencies",
"description": "A list of absolute or relative URLs required for this Component. Relative paths will be resolved from the manifest file path."
},
"description": {
"description": "The description of the Component.",
"type": "string"
},
"name": {
"$ref": "#/definitions/name"
},
"template": {
"description": "The optional template to be used by the Component.",
"type": "string"
},
"type": {
"$ref": "#/definitions/type"
},
"context": {
"description": "The default rendering context for all instances of the Component.",
"type": "object"
}
},
"required": [
"description",
"name",
"type"
]
}
}
} -
/component/v2/tree.json
Toggle Code
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://schema.doctorlogic.com/component/v2/tree.json#",
"$ref": "#/definitions/tree",
"definitions": {
"tree": {
"type": "object",
"properties": {
"name": {
"$ref": "component.json#/definitions/name"
},
"type": {
"$ref": "component.json#/definitions/type"
},
"children": {
"description": "A list of component trees.",
"items": {
"$ref": "#/definitions/slotted_tree"
},
"type": "array"
},
"context": {
"type": "object",
"description": "The rendering context for the Component."
},
"config": {
"description": "The configuration to override the database configuration.",
"type": "object"
},
"additionalDependencies": {
"$ref": "component.json#/definitions/dependencies",
"description": "A list of absolute or relative URLs required for this Component instance. Relative paths will be resolved from the manifest file path."
}
},
"required": [
"name",
"type"
]
},
"slotted_tree": {
"allOf": [
{
"$ref": "#/definitions/tree"
},
{
"properties": {
"slot": {
"type": "string",
"description": "The parent slot this Component should be placed in."
}
}
}
]
}
}
} -
/component/v3/component.json
Toggle Code
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://schema.doctorlogic.com/component/v3/component.json#",
"$ref": "#/definitions/component",
"definitions": {
"name": {
"type": "string",
"description": "The name of the Component.",
"pattern": "^[a-z0-9_-]+$"
},
"type": {
"type": "string",
"description": "The type of the Component.",
"pattern": "^[a-z0-9_-]+$"
},
"dependencies": {
"type": "object",
"additionalProperties": true,
"properties": {
"scripts": {
"type": "array",
"items": {
"type": "string"
}
},
"styles": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"component": {
"type": "object",
"additionalProperties": false,
"properties": {
"dependencies": {
"$ref": "#/definitions/dependencies",
"description": "A list of absolute or relative URLs required for this Component. Relative paths will be resolved from the manifest file path."
},
"description": {
"description": "The description of the Component.",
"type": "string"
},
"name": {
"$ref": "#/definitions/name"
},
"template": {
"description": "The optional template to be used by the Component.",
"type": "string"
},
"type": {
"$ref": "#/definitions/type"
},
"context": {
"description": "The default rendering context for all instances of the Component.",
"type": "object"
}
},
"required": [
"description",
"name",
"template",
"type"
]
}
}
} -
/component/v3/pages.json
Toggle Code
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://schema.doctorlogic.com/component/v3/pages.json#",
"$ref": "#/definitions/pages",
"definitions": {
"pages": {
"type": "object",
"additionalProperties": {
"$ref": "#/definitions/tree"
}
},
"tree": {
"type": "object",
"properties": {
"name": {
"$ref": "component.json#/definitions/name"
},
"type": {
"$ref": "component.json#/definitions/type"
},
"extends": {
"type": "string",
"description": "The path to another tree which should be extended."
},
"children": {
"description": "A list of component trees.",
"items": {
"$ref": "#/definitions/slotted_tree"
},
"type": "array"
},
"context": {
"type": "object",
"description": "The rendering context for the Component."
},
"config": {
"description": "The configuration to override the database configuration.",
"type": "object"
},
"additionalDependencies": {
"$ref": "component.json#/definitions/dependencies",
"description": "A list of absolute or relative URLs required for this Component instance. Relative paths will be resolved from the manifest file path."
}
},
"oneOf": [
{
"required": [
"extends"
]
},
{
"required": [
"name",
"type"
]
}
]
},
"slotted_tree": {
"allOf": [
{
"$ref": "#/definitions/tree"
},
{
"properties": {
"slot": {
"type": "string",
"description": "The parent slot this Component should be placed in."
}
}
}
]
}
}
} -
/component/v3/tree.json
Toggle Code
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://schema.doctorlogic.com/component/v3/tree.json#",
"$ref": "#/definitions/tree",
"definitions": {
"tree": {
"type": "object",
"properties": {
"name": {
"$ref": "component.json#/definitions/name"
},
"type": {
"$ref": "component.json#/definitions/type"
},
"extends": {
"type": "string",
"description": "The path to another tree which should be extended."
},
"children": {
"description": "A list of component trees.",
"items": {
"$ref": "#/definitions/slotted_tree"
},
"type": "array"
},
"context": {
"type": "object",
"description": "The rendering context for the Component."
},
"config": {
"description": "The configuration to override the database configuration.",
"type": "object"
},
"additionalDependencies": {
"$ref": "component.json#/definitions/dependencies",
"description": "A list of absolute or relative URLs required for this Component instance. Relative paths will be resolved from the manifest file path."
}
},
"oneOf": [
{
"required": [
"extends"
]
},
{
"required": [
"name",
"type"
]
}
]
},
"slotted_tree": {
"allOf": [
{
"$ref": "#/definitions/tree"
},
{
"properties": {
"slot": {
"type": "string",
"description": "The parent slot this Component should be placed in."
}
}
}
]
}
}
}