Skip to main content
Once your pilot environment works with company networking, define which settings employees must use. A protected managed.json overrides user configuration and CLI or SDK options; omitted settings remain under employee control.
Configuration precedence: built-in defaults, user configuration, CLI or SDK options, then managed overrides. Later layers override supplied fields.Configuration precedence: built-in defaults, user configuration, CLI or SDK options, then managed overrides. Later layers override supplied fields.

Define managed settings

Save the settings you want to enforce as managed.json:
This example enforces two vCPUs and 1 GiB of memory for new local and cloud sandboxes, plus a 15-minute inactivity timeout for SSH sessions created through the CLI or SDK, including sessions to cloud sandboxes.
  • version identifies the managed file format and defaults to 1 when omitted. It is independent of the user config version.
  • overrides accepts the fields in Global config, including registries, paths, runtime settings, and outbound proxies.
  • Omitted settings remain under employee control. Managed values are never written into the user’s config.json.
  • Unrecognized keys are ignored with a warning listing their paths. Check warnings during rollout to catch misspelled settings.
Precedence, from lowest to highest: built-in defaults → user config → CLI/SDK options → managed overrides.Tagged values need their discriminator, such as kind, mode, or protocol. See registry rules and backend selection for their specific behavior.

Understand policy coverage

To require cloud execution, add "allowed_backends": ["cloud"] under overrides. Use ["local"] for local only, or ["local", "cloud"] for both. This checks permission even when an employee explicitly chooses a backend through the SDK. To also set the default, use active_profile to name a configured cloud profile. An empty list is invalid. An omitted field inherits the user restriction; null clears it. msb context list shows prohibited profiles, while attempting to use one returns an error naming the restriction and its source. Supported CLI and SDK backends apply managed settings on the employee device. The file does not configure the cloud service or its hosted SSH gateway. An enforced multi-tenant deployment profile restricts several network settings together. Snapshot restores reject policy that conflicts with the captured root-disk layout or full-checkpoint CPU and memory geometry.

Keep credentials separate

Employees can read managed.json. Distribute credential references rather than passwords or tokens, and provision the credentials separately. For registries, omit auth to preserve employee credentials, supply it to enforce an authentication configuration, or set it to null to require anonymous access. See the registry example.

Protect the policy file

Your deployment tool must install the policy at the system location below and prevent employees from modifying or replacing it.

File location

MSB_HOME and MSB_CONFIG_PATH do not change this location. microsandbox needs no additional enrollment, daemon, plist, or mobileconfig.

File protection

On macOS and Linux, backend construction fails if the file or its immediate parent directory is not root-owned or is group- or world-writable, or if their permissions cannot be checked. An administrator must correct the reported ownership or permissions before retrying. These checks do not inspect ACLs or other ancestor directories; Windows permissions are not checked. Protect the complete path.
Deploy CLI and SDK versions that support allowed_backends before relying on it. Older versions ignore this field, and saving user config with an older version can remove it. Managed policy is never saved by user-config commands. Local administrators can remove policy or replace the runtime.

Next step

Deploy and verify the policy on a pilot group before rolling it out to the team.