Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: BotProject File Schema #3744

Merged
merged 13 commits into from
Oct 12, 2020
24 changes: 24 additions & 0 deletions Schemas/SampleOfficeVA.botProject.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"$schema": "https://schemas.botframework.com/schemas/botprojects/v0.1/botproject-schema.json",
"name": "OfficeVA",
"workspace": "file://../Projects/OfficeVA",
"provisioningProfile": "file://../Projects/DeploymentProfiles/officeVA.json",
srinaath marked this conversation as resolved.
Show resolved Hide resolved
"skills": [
{
"workspace": "file://../Projects/RoomSchedulerSkill",
"manifest": "room-scheduler-skill-manifest-v2.1.0",
srinaath marked this conversation as resolved.
Show resolved Hide resolved
"provisioningProfile": "file://../Projects/DeploymentProfiles/roomSchedulerProfile.json",
"remote": false,
"endpointName": "local"
},
{
"manifest": "https://calendar-skill/calendar-skill-manifest-v2.1.0.json",
"remote": true
},
{
"workspace": "file://../Projects/LunchOrderingSkill",
"provisioningProfile": "file://../Projects/DeploymentProfiles/lunchOrderingSkillProfile.json",
"remote": false
}
]
}
71 changes: 71 additions & 0 deletions Schemas/botproject-schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
{
"$id": "https://schemas.botframework.com/schemas/botprojects/v0.1/worskspace.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"$version": "0.1",
"title": "Virtual Assistant and Skills workspace schema",
"description": "This is a schema that captures the relationship between the virtual assistant and its skills.",
"type": "object",
"required": ["$schema", "name", "workspace", "skills"],
"properties": {
"$schema": {
"type": "string",
"format": "uri",
"description": "The schema to verify this workspace file against"
},
"name": {
"type": "string",
"description": "Name of the Virtual Assistant or Root Bot."
},
"workspace": {
"type": "string",
"description": "Path to the virtual assistant or Root Bot. Relative to the workspace file or an absolute path."
},
"provisioningProfile": {
"type": "string",
"description": "Path to provisioning profile."
},
"skills": {
srinaath marked this conversation as resolved.
Show resolved Hide resolved
"type": "array",
"minItems": 0,
srinaath marked this conversation as resolved.
Show resolved Hide resolved
"uniqueItems": true,
"description": "List of skills callable.",
"items": {
"$ref": "#/definitions/skill"
}
}
},
"definitions": {
"skill": {
"type": "object",
"description": "Properties of a skill.",
"additionalProperties": false,
"required": ["manifest", "remote"],
"properties": {
"manifest": {
"type": "string",
"description": "Path to the manifest file on local file system or a URL to a remote skill."
},
"workspace": {
"type": "string",
"description": "Path to the local skill project. If the workspace is local we use the file protocol as opposed to http/https for remote workspaces."
},
"remote": {
"type": "string",
"description": "Indication if the skill is remote or local skill.",
"$ref": "#/definitions/booleanExpression",
"title": "isRemote",
"default": false
},
"endpointName": {
"type": "string",
"description": "Indicates the name of the skill endpoint to use for writing the skill URL. If skill is remote no need for this property.",
"default": "default"
srinaath marked this conversation as resolved.
Show resolved Hide resolved
},
"provisioningProfile": {
"type": "string",
"description": "Path to provisioning profile."
}
}
}
}
}
112 changes: 112 additions & 0 deletions Schemas/provisioningProfile-schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
{
"$id": "https://schemas.botframework.com/schemas/botprojects/v0.1/provisioning.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"$version": "0.1",
"title": "Provisioning profile schema for Bot Projects",
"description": "This is a schema that captures the resource provisioning needs for a bot which maybe a Virtual Assistant or a skill",
"type": "object",
"required": [
"$schema",
"MicrosoftAppId",
"MicrosoftAppPassword",
"accessToken"
],
"additionalProperties": false,
"properties": {
"$schema": {
"type": "string",
"format": "uri",
"description": "The schema to verify this provisioning profile file against"
},
"MicrosoftAppId": {
"type": "string",
"description": "Micorosft App ID of the resource"
},
"MicrosoftAppPassword": {
"type": "string",
"description": "Micorosft App Password of the resource"
},
"name": {
"type": "string",
"description": "Optional name of the publishing target"
},
"accessToken": {
"type": "string",
"description": "Access token for azure account"
},
"applicationInsights": {
"type": "object",
"description": "Application Insights provisioning",
"properties": {
"endpointKey": {
"type": "string",
"description": "Instrumentation key for application insights"
}
}
},
"blobStorage": {
"type": "object",
"description": "Configuring blob storage on azure",
"properties": {
"connectionString": {
"type": "string",
"description": "Connection string for blob storage"
}
}
},
"luis": {
"type": "object",
"description": "LUIS provisioning for a bot",
"properties": {
"endpointKey": {
"type": "string",
"description": "Endpoint key for LUIS provisioning"
},
"authoringKey": {
"type": "string",
"description": "Authoring key for LUIS provisioning"
},
"region": {
"type": "string",
"description": "Region for LUIS provisioning"
},
"endpoint": {
"type": "string",
"description": "LUIS endpoint configuration"
},
"authoringEndpoint": {
"type": "string",
"description": "Authoring endpoint for LUIS"
}
}
},
"qna": {
"type": "object",
"description": "Qna maker provisioning for a bot",
"properties": {
"knowledgebaseid": {
"type": "string",
"description": "Qna maker knowledge base id"
},
"endpoint": {
"type": "string",
"description": "Hostname for QNA maker resource"
}
}
},
"cosmosDb": {
"type": "object",
"description": "Cosmos db provisioning for a bot",
"properties": {
"endpoint": {
"type": "string",
"description": "Endpoint configuration for cosmos db"
},
"authKey": {
"type": "string",
"description": "Authorization key for cosmos db"
}
}
}
}
}
28 changes: 28 additions & 0 deletions Schemas/sampleProvisionProfile.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"$schema": "https://schemas.botframework.com/schemas/botprojects/v0.1/provisioningProfile-schema.json",
"accessToken": "SDFSDFSDFSDBNASKDJASDJJLKJSADJLKMXRNZW",
"environment": "dev",
"MicrosoftAppId": "fd38ebff-02e2-427c-234234-234234",
"MicrosoftAppPassword": "XYZSASJDLKASjksdhfks!sfs",
"blobStorage": {
"connectionString": "DefaultEndpointsProtocol=https;AccountName=SampleSkill"
},
"cosmosDb": {
"endpoint": "https://todoluissample2-dev.documents.azure.com:443/",
"authKey": "XSFDDSFOHOI"
},
"qna": {
"knowledgebaseId": "6ea9080e0dsfsdfsdfb4c44",
"endpoint": "https://composerdemovenky.cognitiveservices.azure.com/qnamaker/v4.0/knowledgebases/89366431-a501-324324-asdhas"
},
"luis": {
"endpointKey": "234kj23h4asdjajdkjashdkjAAsad",
"authoringKey": "234kjh890aasdhakjs",
"region": "westus",
"endpoint": "https://westus.api.cognitive.microsoft.com/",
"authoringEndpoint": "https://westus.api.cognitive.microsoft.com/"
},
"applicationInsights": {
"endpointKey": "Asdfsdfa23432adsfsdf!sdsad"
}
}