DEPRECATION WARNING: The Modular framework is being deprecated in favor of the Session Framework.
To configure the modular framework, you will need to create a JSON file defining the required configurations for basemgr and sessionmgr as detailed below. The configuration file should be packaged via the build rule modular_config, which will validate your file against a schema. You must then include the modular_config() target in the product's base packages.
{
"basemgr": {
"enable_cobalt": false,
"use_session_shell_for_story_shell_factory": true,
"base_shell": {
"url": "fuchsia-pkg://fuchsia.com/dev_base_shell#meta/dev_base_shell.cmx",
},
"session_shells": [
{
"url": "fuchsia-pkg://fuchsia.com/ermine_session_shell#meta/ermine_session_shell.cmx",
"display_usage": "near",
"screen_height": 50.0,
"screen_width": 100.0
}
]
},
"sessionmgr": {
"use_memfs_for_ledger": true,
"cloud_provider": "NONE",
"startup_agents": [
"fuchsia-pkg://fuchsia.com/startup_agent#meta/startup_agent.cmx"
],
"session_agents": [
"fuchsia-pkg://fuchsia.com/session_agent#meta/session_agent.cmx"
],
"component_args": [
{
"uri": "fuchsia-pkg://fuchsia.com/startup_agent#meta/startup_agent.cmx",
"args": [ "--foo", "--bar=true" ]
}
],
"agent_service_index": [
{
"service_name": "fuchsia.modular.SomeServiceName",
"agent_url": "fuchsia-pkg://fuchsia.com/some_agent#meta/some_agent.cmx"
}
]
}
}
base_shell boolean (required)url: string (required)keep_alive_after_login boolean (optional)falseargs string[] (optional)session_shells array (required)url: string (required)display_usage: string (optional)handheld: the display is used well within arm's reach.close: the display is used at arm's reach.near: the display is used beyond arm's reach.midrange: the display is used beyond arm's reach.far: the display is used well beyond arm's reach.screen_height: float (optional)screen_width: float (optional)story_shell_url: string (optional)fuchsia-pkg://fuchsia.com/mondrian#meta/mondrian.cmxenable_cobalt: boolean (optional)trueuse_minfs: boolean (optional)trueuse_session_shell_for_story_shell_factory: boolean (optional)story_shell_url and any story shell args are ignored.falsecloud_provider: string (optional)LET_LEDGER_DECIDE: Use a cloud provider configured by ledger.FROM_ENVIRONMENT: Use a cloud provider available in the incoming namespace, rather than initializing and instance within sessionmgr. This can be used to inject a custom cloud provider.NONE: Do not use a cloud provider.LET_LEDGER_DECIDEenable_cobalt: boolean (optional)trueenable_story_shell_preload: boolean (optional)trueuse_memfs_for_ledger: boolean (optional)falsestartup_agents: string[] (optional)session_agents: string[] (optional)component_args: array (optional)uri: The component's uri.args: A list of arguments to be passed to the component specified by uri. Arguments must be prefixed with --.agent_service_index: array (optional)service_name: The name of a service offered by a session agent.agent_url: A fuchsia component url that specifies which agent will provide the named service.