Metadata-Version: 2.4
Name: docketeer-bubblewrap
Version: 0.0.13
Summary: Bubblewrap sandbox executor plugin for Docketeer
Project-URL: Homepage, https://github.com/chrisguidry/docketeer
Project-URL: Repository, https://github.com/chrisguidry/docketeer
Project-URL: Issues, https://github.com/chrisguidry/docketeer/issues
Author-email: Chris Guidry <guid@omg.lol>
License-Expression: MIT
Classifier: Development Status :: 3 - Alpha
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Security
Requires-Python: >=3.12
Requires-Dist: docketeer
Description-Content-Type: text/markdown

# docketeer-bubblewrap

Sandboxed command execution for [Docketeer](https://github.com/chrisguidry/docketeer)
using [bubblewrap](https://github.com/containers/bubblewrap) (`bwrap`).

This plugin provides a `CommandExecutor` implementation that runs external
programs inside a lightweight Linux sandbox using unprivileged user namespaces.
Each process gets its own PID, UTS, IPC, and cgroup namespaces, and network
access is denied by default. The `--die-with-parent` flag ensures sandboxed
processes are cleaned up if the parent exits.

## Requirements

- Linux with unprivileged user namespaces enabled
- `bwrap` on `PATH` (install via your distro's `bubblewrap` package)

## How it works

The executor builds a minimal filesystem view inside the sandbox:

- Read-only binds for system directories (`/usr`, `/bin`, `/lib`, `/etc/ssl`, etc.)
- `/proc`, `/dev`, and a tmpfs `/tmp`
- User-specified mounts (read-only or writable)
- Optional network access via `--share-net`
