Docs menu

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.