Docker Sandbox

Every code execution node in NodeLoom runs inside an isolated Docker container with strict resource limits and security policies. This sandbox cannot be disabled from the frontend -- it is enforced at the server level.

Server-enforced isolation

The Docker sandbox is mandatory for all code execution nodes. There is no configuration option to bypass it. This is a deliberate security decision to protect your infrastructure from untrusted or malicious code.

Affected Nodes

The following node types are executed inside the Docker sandbox. Any workflow that includes one of these nodes will automatically spin up an isolated container for each execution.

Node TypeDescription
CodeGeneral-purpose code execution supporting multiple languages.
JavaScriptRuns JavaScript/Node.js code snippets.
PythonRuns Python scripts with access to common libraries.
BashExecutes Bash shell scripts.
ShellExecutes shell commands in a POSIX-compatible shell.
Execute CommandRuns arbitrary system commands.

Container Hardening

Each sandbox container is launched with a comprehensive set of security constraints. These are applied at the Docker level and cannot be overridden by user code.

Resource Limits

ConstraintValuePurpose
CPUConfigurable limitPrevents a single execution from monopolizing CPU resources.
MemoryConfigurable limitHard cap on memory usage. Exceeding this kills the container.
SwapDisabled (0)No swap space is available, preventing memory overcommit.
PID limit100Caps the number of processes to prevent fork bombs.
Open files (ulimit)1024Limits the number of file descriptors.
Processes (ulimit)64Limits the number of processes the user can spawn.
File size (ulimit)10 MBPrevents writing excessively large files to disk.

Security Policies

Each container runs with hardened security policies including privilege escalation prevention, restricted filesystem access, network isolation, and non-root execution. These policies are enforced at the Docker level and cannot be overridden by user code.

Output Truncation

Container output (stdout and stderr combined) is truncated at 1 MB. Any output beyond this limit is discarded to prevent memory exhaustion in the execution engine. If your code produces large output, write it to the tmpfs volume and read it back selectively.

SSH/SFTP Host Key Verification

When workflows connect to remote servers via SSH or SFTP, NodeLoom uses a Trust On First Use (TOFU) model for host key verification. The first time a connection is made to a host, its public key is recorded. Subsequent connections verify the key against the stored fingerprint.

If the host key changes (potentially indicating a man-in-the-middle attack), the connection is rejected and an error is logged. You can clear stored host keys from the credential management interface to re-establish trust.

If the host key changes, the connection is rejected with a verification error. You can clear stored host keys from the credential management interface to re-establish trust.

TOFU model

Trust On First Use means the first connection to any new host is implicitly trusted. For high-security environments, pre-load known host keys via the API before establishing connections.