Skip to main content

macOS sandbox runner plugin for Weft

Project description

weft-macos-sandbox

macOS sandbox runner plugin for Weft.

This extension adds the macos-sandbox runner via the weft.runners entry-point group. It currently supports one-shot command TaskSpecs only and uses sandbox-exec with a caller-provided profile.

Environment variables

The sandboxed child process does not inherit the full host environment. By default only a fixed baseline of session-plumbing variables is forwarded:

  • HOME
  • LANG
  • LC_ALL
  • LC_CTYPE
  • LOGNAME
  • PATH
  • SHELL
  • TERM
  • TMPDIR
  • USER

To forward additional host-derived values, opt in explicitly via spec.runner.options.env_passthrough:

{
  "runner": {
    "name": "macos-sandbox",
    "options": {
      "profile": "/path/to/sandbox.sb",
      "env_passthrough": ["MY_HOST_TOKEN"]
    }
  }
}

For fixed values (not derived from the host), set spec.env instead. spec.env always wins over both the baseline and env_passthrough, so TaskSpec-declared values cannot be shadowed by host state.

Migration note: weft-macos-sandbox releases before 0.6.0 inherited the full host environment; set env_passthrough explicitly if you depended on that.

Security model

This plugin's preflight validation only checks that spec.runner.options.profile exists on disk (not that it is a regular, non-empty file) and that the configured sandbox_binary (default sandbox-exec) is on PATH; at construction time the option only needs to be a non-empty string. It does not parse or validate the profile's contents. Isolation is exactly what the supplied Seatbelt profile grants — nothing more, nothing less. A profile that reads (allow default) grants no isolation at all; the plugin runs it without complaint. Writing a correctly restrictive profile is the caller's responsibility.

sandbox-exec is an Apple-deprecated, undocumented mechanism: Apple has marked the command deprecated for years and publishes no supported API or stability guarantee for the Seatbelt profile language it consumes. Treat this runner as a best-effort, host-specific containment tool, not a supported or guaranteed sandbox boundary — consistent with Weft's broader trust model (docs/specifications/00-Overview_and_Architecture.md, "Observability and Security"): user-level trust, not hostile multi-tenancy, with the OS/filesystem as the actual security boundary.

Release tag:

  • weft_macos_sandbox/vX.Y.Z

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

weft_macos_sandbox-0.6.0.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

weft_macos_sandbox-0.6.0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file weft_macos_sandbox-0.6.0.tar.gz.

File metadata

  • Download URL: weft_macos_sandbox-0.6.0.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for weft_macos_sandbox-0.6.0.tar.gz
Algorithm Hash digest
SHA256 79e26a69ac62fec8844e20a7ffa036f757f064a9d34b41abdfc87a7575af7a24
MD5 9deda0b841e0dff7e5884c17dbcfbd90
BLAKE2b-256 133ff0b2de4ea4266be83e8773498c3bebd0c10748dcac6462d733fcb4c78712

See more details on using hashes here.

File details

Details for the file weft_macos_sandbox-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: weft_macos_sandbox-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for weft_macos_sandbox-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 81ae8605f977992566c28e3127c8648b96c1968281ce56e7232b703d8106fad0
MD5 c53af6a09bae52efaac83bbc82018614
BLAKE2b-256 1ec193cb0cd756338320ff7cee14e3251e8107599cb4f45695d8128c2a0adecc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page