Friendly URL for component schemas (#5953)
* Created v{version} folder with copies of current schemas. Updated readme to note new location and legacy versions * Deleted definitions.schema and updated readme. * Deleted the right definitions.schema * removed extra space
This commit is contained in:
Родитель
cc217ecefa
Коммит
d309147b91
|
@ -5,3 +5,18 @@ Bot Framework declarative component definitions (via .schema files which describ
|
|||
The extensions are in baseComponent.schema and bf dialog:merge -u will
|
||||
merge baseComponent.schema + json.schema => component.schema
|
||||
|
||||
## Published location
|
||||
|
||||
The component JSON schemas are published at:
|
||||
|
||||
`https://schemas.botframework.com/schemas/component/v{version}/component.schema`
|
||||
|
||||
Example:
|
||||
|
||||
`https://schemas.botframework.com/schemas/component/v1.0/component.schema`
|
||||
|
||||
You should use the published version when referencing this schema.
|
||||
|
||||
## Legacy versions
|
||||
|
||||
The `component.schema` and `definitions.schema` files are left in the root folder for backwards compatibility purposes, and should not be used. Use the `\v{version}\component.schema` version instead.
|
||||
|
|
|
@ -0,0 +1,272 @@
|
|||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "https://schemas.botframework.com/schemas/component/v1.0/component.schema",
|
||||
"title": "JSON Schema definition for Bot Framework dialog schemas.",
|
||||
"description": "In order to create a component for Bot Framework .dialog files you need to create a schema file describing your configuration that meets this definition. This extends http://json-schema.org/draft-07/schema#.",
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "http://json-schema.org/draft-07/schema#"
|
||||
},
|
||||
{
|
||||
"properties": {
|
||||
"$role": {
|
||||
"title": "$role",
|
||||
"description": "Defines the roles played in the dialog schema one of [expression|interface|implements($kind)|extends($kind)].",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/role"
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/role"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"$kind": {
|
||||
"title": "$kind",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"definitions": {
|
||||
"role": {
|
||||
"title": "$role",
|
||||
"description": "Defines the role played in the dialog schema from [expression|interface|implements($kind)|extends($kind)].",
|
||||
"type": "string",
|
||||
"pattern": "^((expression)|(interface)|(implements\\([a-zA-Z][a-zA-Z0-9.]*\\))|(extends\\([a-zA-Z][a-zA-Z0-9.]*\\)))$"
|
||||
},
|
||||
"component": {
|
||||
"properties": {
|
||||
"$kind": {
|
||||
"title": "Kind of dialog object",
|
||||
"description": "Defines the valid properties for the component you are configuring (from a dialog .schema file)",
|
||||
"type": "string",
|
||||
"pattern": "^[a-zA-Z][a-zA-Z0-9.]*$"
|
||||
},
|
||||
"$designer": {
|
||||
"title": "Designer information",
|
||||
"type": "object",
|
||||
"description": "Extra information for the Bot Framework Composer."
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"$kind"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"patternProperties": {
|
||||
"^\\$": {
|
||||
"title": "Tooling property",
|
||||
"description": "Open ended property for tooling."
|
||||
}
|
||||
}
|
||||
},
|
||||
"expression": {
|
||||
"type": "string",
|
||||
"title": "Expression",
|
||||
"description": "Expression to evaluate.",
|
||||
"pattern": "^.*\\S.*",
|
||||
"examples": [
|
||||
"user.age > 13"
|
||||
]
|
||||
},
|
||||
"equalsExpression": {
|
||||
"type": "string",
|
||||
"title": "Expression",
|
||||
"description": "Expression starting with =.",
|
||||
"pattern": "^=.*\\S.*",
|
||||
"examples": [
|
||||
"=user.name"
|
||||
]
|
||||
},
|
||||
"condition": {
|
||||
"$role": "expression",
|
||||
"title": "Boolean condition",
|
||||
"description": "Boolean constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/expression"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean value.",
|
||||
"default": true,
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"booleanExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Boolean or expression",
|
||||
"description": "Boolean constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean constant.",
|
||||
"default": false,
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=user.isVip"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"numberExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Number or expression",
|
||||
"description": "Number constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "number",
|
||||
"title": "Number",
|
||||
"description": "Number constant.",
|
||||
"default": 0,
|
||||
"examples": [
|
||||
15.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=dialog.quantity"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"integerExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Integer or expression",
|
||||
"description": "Integer constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "integer",
|
||||
"title": "Integer",
|
||||
"description": "Integer constant.",
|
||||
"default": 0,
|
||||
"examples": [
|
||||
15
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=user.age"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"stringExpression": {
|
||||
"$role": "expression",
|
||||
"title": "String or expression",
|
||||
"description": "Interpolated string or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "string",
|
||||
"title": "String",
|
||||
"description": "Interpolated string",
|
||||
"pattern": "^(?!(=)).*",
|
||||
"examples": [
|
||||
"Hello ${user.name}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=concat('x','y','z')"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"arrayExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Array or expression",
|
||||
"description": "Array or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "array",
|
||||
"title": "Array",
|
||||
"description": "Array constant."
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression"
|
||||
}
|
||||
]
|
||||
},
|
||||
"objectExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Object or expression",
|
||||
"description": "Object or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"title": "Object",
|
||||
"description": "Object constant."
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression"
|
||||
}
|
||||
]
|
||||
},
|
||||
"valueExpression": {
|
||||
"$role": "expression",
|
||||
"title": "Any or expression",
|
||||
"description": "Any constant or expression to evaluate.",
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"title": "Object",
|
||||
"description": "Object constant."
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"title": "Array",
|
||||
"description": "Array constant."
|
||||
},
|
||||
{
|
||||
"type": "string",
|
||||
"title": "String",
|
||||
"description": "Interpolated string.",
|
||||
"pattern": "^(?!(=)).*",
|
||||
"examples": [
|
||||
"Hello ${user.name}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"title": "Boolean",
|
||||
"description": "Boolean constant",
|
||||
"examples": [
|
||||
false
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"title": "Number",
|
||||
"description": "Number constant.",
|
||||
"examples": [
|
||||
15.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/equalsExpression",
|
||||
"examples": [
|
||||
"=..."
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
Загрузка…
Ссылка в новой задаче