blob: 01e18fc7b9de254fc9a0f7edb5d6c4344753f330 [file] [log] [blame]
{
"$schema": "http://json-schema.org/schema#",
"title": "Schema for modular framework configuration",
"definitions": {
"basemgr": {
"type": "object",
"properties": {
"enable_cobalt": { "type": "boolean", "default": true },
"enable_presenter": { "type": "boolean", "default": false },
"test": { "type": "boolean", "default": false },
"use_minfs": { "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" }
},
"story_shell_url": {
"type": "string",
"pattern": "^fuchsia-pkg://([^/]+)/([^/#]+)(/([^/#]+))?(#(.+))?$",
"default": "fuchsia-pkg://fuchsia.com/mondrian#meta/mondrian.cmx"
}
},
"additionalProperties": false,
"required": ["base_shell", "session_shells"]
},
"base_shell": {
"type": "object",
"properties": {
"url": {
"type": "string",
"pattern": "^fuchsia-pkg://([^/]+)/([^/#]+)(/([^/#]+))?(#(.+))?$",
"default": "fuchsia-pkg://fuchsia.com/dev_base_shell#meta/dev_base_shell.cmx"
},
"keep_alive_after_login": { "type": "boolean", "default": false },
"args": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false,
"required": ["url"]
},
"session_shell": {
"type": "object",
"properties": {
"url": {
"type": "string",
"pattern": "^fuchsia-pkg://([^/]+)/([^/#]+)(/([^/#]+))?(#(.+))?$",
"default": "fuchsia-pkg://fuchsia.com/ermine_session_shell#meta/ermine_session_shell.cmx"
},
"display_usage": { "type": "string" },
"screen_height": { "type": "number" },
"screen_width": { "type": "number" }
},
"additionalProperties": false,
"required": ["url"]
},
"sessionmgr": {
"type": "object",
"properties": {
"cloud_provider": {
"type": "string",
"enum": ["LET_LEDGER_DECIDE", "FROM_ENVIRONMENT", "NONE"],
"default": "LET_LEDGER_DECIDE"
},
"enable_cobalt": { "type": "boolean", "default": true },
"enable_story_shell_preload": { "type": "boolean", "default": true },
"use_memfs_for_ledger": { "type": "boolean", "default": false },
"startup_agents": {
"type": "array",
"items": {
"type": "string",
"pattern": "^fuchsia-pkg://([^/]+)/([^/#]+)(/([^/#]+))?(#(.+))?$"
},
"uniqueItems": true
},
"session_agents": {
"type": "array",
"items": {
"type": "string",
"pattern": "^fuchsia-pkg://([^/]+)/([^/#]+)(/([^/#]+))?(#(.+))?$"
},
"uniqueItems": true
},
"component_args": {
"type": "array",
"items": {
"type": "object",
"$ref": "#/definitions/component_args"
}
},
"agent_service_index": {
"type": "array",
"items": { "$ref": "#/definitions/agent_service_index_entry" },
"uniqueItems": true
}
},
"additionalProperties": false
},
"component_args": {
"type": "object",
"properties": {
"uri": {
"type": "string",
"pattern": "^[a-z|-]+://.+"
},
"args": {
"type": "array",
"items": {
"type": "string"
}
},
"required": ["uri", "args"]
}
},
"agent_service_index_entry": {
"type": "object",
"properties": {
"service_name": {
"type": "string",
"pattern": "^[^.]+[.][^.]+([.][^.]+)*$"
},
"agent_url": {
"type": "string",
"pattern": "^fuchsia-pkg://([^/]+)/([^/#]+)(/([^/#]+))?(#(.+))?$"
}
},
"additionalProperties": false,
"required": ["service_name", "agent_url"]
}
},
"type": "object",
"properties": {
"basemgr": { "$ref": "#/definitions/basemgr" },
"sessionmgr": { "$ref": "#/definitions/sessionmgr" }
},
"required": ["basemgr", "sessionmgr"],
"additionalProperties": false
}