Implement ext.bwrap: local bubblewrap namespace extension (SAND-WP-0013)
Adds the first local, same-host, kernel-namespace-only sandbox extension: no SSH hop, no container runtime. Extends IsolationSpec.level with "process", implements BwrapExtension (provision/wait_ready/ teardown) spawning bwrap with unshared user/mount/pid/ipc/uts/net namespaces, registers ext.bwrap + profile.bwrap-local, and extends manager._handle_from_status to carry pid/workspace_dir. Verified with a live bwrap smoke run in addition to the mocked test suite. T04 (reachability vs. the SSH-based glas-harness consumer contract) deliberately left open pending glas-harness's harness contract. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
d2186e8ac8
commit
76c38e758c
8 changed files with 484 additions and 6 deletions
17
extensions/ext.bwrap.yaml
Normal file
17
extensions/ext.bwrap.yaml
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
id: ext.bwrap
|
||||
title: Bubblewrap local namespaces
|
||||
description: >
|
||||
Self-hosted extension using bubblewrap (bwrap) kernel namespaces on the
|
||||
local host. No SSH hop, no container runtime, no remote placement — the
|
||||
fastest path to an isolated workspace, and the first extension where
|
||||
network.default: deny is real (a genuine namespace with no interface)
|
||||
rather than declarative only.
|
||||
handler: sandboxer.extensions.bwrap:BwrapExtension
|
||||
capabilities:
|
||||
isolation_levels: [process]
|
||||
regions: []
|
||||
persistence: false
|
||||
pricing_model: self-hosted
|
||||
config:
|
||||
base_dir: /tmp/sandboxer-bwrap
|
||||
# ro_binds omitted — defaults to [/usr, /bin, /lib, /lib64, /etc/resolv.conf], filtered to what exists
|
||||
Loading…
Add table
Add a link
Reference in a new issue