Operate
Security
The MVP is local-only. The daemon creates its Unix socket with mode 0600 and has
no TCP listener. It provides execution, not authentication or remote access.
Commands use direct process execution. Shell parsing occurs only when the caller
sets shell: true; the daemon records that fact in session metadata. Working
directories are canonicalized and must already be directories.
Child environments begin with a small operational baseline (PATH, HOME, locale,
TERM, and TMPDIR when present). Request-provided variables can be restricted
with the comma-separated JOYMUX_ENV_ALLOW allowlist. Environment values are not
serialized in session records or logs.
JOYMUX_REDACT accepts comma-separated regular expressions applied to derived text
and compact views. It intentionally does not rewrite raw evidence. Raw files under
the data directory can contain credentials printed by child processes; protect and
retain that directory like other sensitive execution logs.
The data/output directories use mode 0700; the socket, database, and raw files
use mode 0600. Raw-file opens use O_NOFOLLOW. Startup refuses a symlink data
directory and refuses to replace a regular file or symlink at the socket path.
Session IDs are generated UUIDs and are the only names used for evidence files.
Parent-directory replacement races and storage encryption remain deployment
responsibilities.
Protocol frames and field sizes are bounded as documented in protocol.md. Errors and daemon logs do not include child environment values. Command arguments, metadata, stdout, and stderr can themselves contain secrets; raw evidence intentionally preserves them.
The subprocess adapter has one Unix-only unsafe block around pre_exec. Its child
closure calls setsid() to isolate the process group. It performs no allocation,
locking, or other application logic after fork.
Resource limits in v1 are declarations only and have enforced: false. Resource
usage is observed best-effort. Do not interpret these fields as sandboxing.
JoyMux also has no disk quota, syscall sandbox, user-namespace isolation, or remote
authentication surface.