managed.json file to employee devices. Its settings take precedence over user configuration and CLI or SDK options.
Choose your device manager
Prepare your policy, then follow the steps for your tool. Each deployment must install the same JSON file at the protected system location.- Jamf Pro
- Intune macOS
- Intune Windows
1
Build a configuration package
On a packaging Mac, place
managed.json in /Library/Application Support/microsandbox/. Drag the folder into Composer to create a package source.Set the owner to root, group to wheel, directory permissions to 0755, and file permissions to 0644. Select Build as PKG and sign according to your organization’s policy.2
Upload the package
In Jamf Pro, open Settings > Computer management > Packages > New. Upload the PKG and make it available on your distribution point.
3
Create a deployment policy
Open Computers > Policies > New. In General, select Recurring Check-in and a daily execution frequency. Under Packages, add the PKG with the Install action.
4
Deploy to a pilot group
In Scope, select your pilot computers and save the policy. After check-in, review its logs and verify the effective settings as an employee before expanding the scope.
Define managed settings
Save the settings you want to enforce asmanaged.json:
versionidentifies the managed file format and defaults to1when omitted. It is independent of the user config version.overridesaccepts 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.
How overrides are merged
How overrides are merged
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. Sandbox settings are applied before cloud create requests are sent. Unsupported sandbox options cause an error. Snapshot restores reject managed settings that conflict with the captured root-disk layout or full-checkpoint CPU and memory geometry. Registry settings govern local pulls; cloud pulls use explicit or cloud-stored credentials. Host runtime and data-path settings remain local; this file does not reconfigure the cloud service or its hosted SSH gateway.Deploy to employee devices
Install supported CLI and SDK runtime releases. Provision runtime files in the employee’s context or a shared protected location, rather than root’s or SYSTEM’s home.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, and keep secrets in credential stores or references.
Older CLI and SDK releases do not enforce managed settings. Include supported versions in your rollout. Local administrators can remove policy or replace the runtime.
Verify the configuration
-
Sign in as an employee and open a fresh terminal. Confirm
msb contextselects a local backend. -
Create a sandbox with values that conflict with the sample policy:
-
Confirm
config.resources.cpusis2andconfig.resources.memory_mibis1024. Repeat with your employees’ SDKs. -
Remove the test sandbox with
msb rm --force managed-check.
Apply configuration updates
- Publish: replace the complete file atomically, preserving permissions. Update the device-manager package or action and its detection rules together.
- Apply: new CLI invocations and backend instances load the new settings. Existing backend handles, sandbox records, and SSH sessions retain theirs. There are no file watchers.
- Roll back: redeploy the previous policy through the same tool. Removing a device from a deployment’s scope does not remove its file.