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, "screen_width": 100 } ] }, "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)false
args
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.cmx
enable_cobalt
: boolean (optional)true
enable_presenter
: boolean (optional)false
use_minfs
: boolean (optional)true
use_session_shell_for_story_shell_factory
: boolean (optional)story_shell_url
and any story shell args are ignored.false
test
: boolean (optional)false
cloud_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 by Voila to inject a custom cloud provider.NONE
: Do not use a cloud provider.LET_LEDGER_DECIDE
enable_cobalt
: boolean (optional)true
enable_story_shell_preload
: boolean (optional)true
use_memfs_for_ledger
: boolean (optional)false
startup_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.