blob: 4700815316f1bae712913ba21cfbc682b6e0e414 [file] [log] [blame]
{
"$schema": "http://json-schema.org/schema#",
"title": "Schema for modular framework configuration",
"definitions": {
"agent_service_index_entry": {
"type": "object",
"properties": {
"service_name": {
"type": "string",
"pattern": "^[^.]+[.][^.]+([.][^.]+)*$"
},
"agent_url": {"$ref": "#/definitions/component_url" }
},
"additionalProperties": false,
"required": ["service_name", "agent_url"]
},
"basemgr": {
"type": "object",
"properties": {
"enable_cobalt": { "type": "boolean", "default": true },
"use_session_shell_for_story_shell_factory": {
"type": "boolean",
"default": false
},
"base_shell": { "$ref": "#/definitions/base_shell" },
"session_shells": {
"type": "array",
"items": { "$ref": "#/definitions/session_shell" },
"maxItems": 1
},
"story_shell_url": {
"$ref": "#/definitions/component_url",
"default": "fuchsia-pkg://fuchsia.com/dev_story_shell#meta/dev_story_shell.cmx"
},
"session_launcher": { "$ref": "#/definitions/component_url_and_args" }
},
"additionalProperties": false,
"oneOf": [
{ "required": ["session_launcher"] },
{ "required": ["session_shells"] }
]
},
"base_shell": {
"type": "object",
"properties": {
"url": {
"$ref": "#/definitions/component_url",
"default": "fuchsia-pkg://fuchsia.com/auto_login_base_shell#meta/auto_login_base_shell.cmx"
},
"keep_alive_after_login": { "type": "boolean", "default": false },
"args": {
"type": "array",
"items": { "type": "string" }
}
},
"additionalProperties": false,
"required": ["url"]
},
"component_args": {
"type": "object",
"properties": {
"uri": { "$ref": "#/definitions/component_url" },
"args": {
"type": "array",
"items": { "type": "string" }
}
},
"required": ["uri", "args"]
},
"component_url": { "$ref": "#/definitions/uri" },
"component_url_and_args": {
"type": "object",
"properties": {
"url": { "$ref": "#/definitions/component_url" },
"args": {
"type": "array",
"items": { "type": "string" }
}
},
"required": ["url", "args"]
},
"session_shell": {
"type": "object",
"properties": {
"url": {
"$ref": "#/definitions/component_url",
"default": "fuchsia-pkg://fuchsia.com/dev_session_shell#meta/dev_session_shell.cmx"
},
"display_usage": { "type": "string" },
"screen_height": { "type": "number" },
"screen_width": { "type": "number" }
},
"additionalProperties": false,
"required": ["url"]
},
"sessionmgr": {
"type": "object",
"properties": {
"enable_cobalt": { "type": "boolean", "default": true },
"startup_agents": {
"type": "array",
"items": { "$ref": "#/definitions/component_url" },
"uniqueItems": true
},
"session_agents": {
"type": "array",
"items": { "$ref": "#/definitions/component_url" },
"uniqueItems": true
},
"component_args": {
"type": "array",
"items": { "$ref": "#/definitions/component_args" }
},
"agent_service_index": {
"type": "array",
"items": { "$ref": "#/definitions/agent_service_index_entry" },
"uniqueItems": true
},
"restart_session_on_agent_crash": {
"type": "array",
"items": { "$ref": "#/definitions/component_url" },
"uniqueItems": true
}
},
"additionalProperties": false
},
"uri": {
"type": "string",
"pattern": "^[a-z|-]+:.+"
}
},
"type": "object",
"properties": {
"basemgr": { "$ref": "#/definitions/basemgr" },
"sessionmgr": { "$ref": "#/definitions/sessionmgr" }
},
"required": ["basemgr"],
"additionalProperties": false
}