DockerIsol8for local executionRemoteIsol8for remote HTTP execution
Isol8Engine.
Use
DockerIsol8 for local in-process execution. Use RemoteIsol8 when execution is handled by an isol8 serve instance over HTTP.Installation
DockerIsol8
Constructor options (Isol8Options)
Execution mode. Ephemeral uses warm pool containers. Persistent reuses one container.
Network policy for execution container.
Filter rules used only when
network is "filtered".CPU limit as fraction/cores.
Memory cap for container.
Maximum process count in container.
Mount root filesystem read-only.
Output truncation threshold in bytes.
Secret env variables; values are masked in stdout/stderr post-processing.
Default timeout applied when request timeout is omitted.
Override runtime image selection.
Size of
/sandbox tmpfs mount.Size of
/tmp tmpfs mount.Enable internal debug logs.
Keep container running after execution completes (debug/inspection use case).
Include network request logs in result when filtered mode is used.
Seccomp behavior (
strict, unconfined, custom).Audit logging configuration.
Strategies for managing the ephemeral container pool.
fast: Dual-pool system (clean/dirty) with background cleanup. Use for high-throughput.secure: Synchronous cleanup before every acquisition. Use for maximum isolation assurance.
Warm pool size config.
RemoteIsol8
RemoteIsol8.start() performs a /health check. RemoteIsol8.stop() deletes the remote session only when sessionId is set.Base URL of remote server.
Bearer token for authentication.
Optional persistent session identifier.
Engine options sent with remote execution requests.
Isol8Engine methods
Initializes engine (or checks remote health).
DockerIsol8 accepts optional startup prewarm settings, for example:start({ prewarm: true })to prewarm all runtimesstart({ prewarm: { runtimes: ["python", "node"] } })to prewarm selected runtimes
Stops local resources or deletes remote session if used.
Runs code and returns full result.
Streams
stdout, stderr, exit, and error events.Upload file into active persistent/session container.
Download file from active persistent/session container.
File methods require stateful execution context: local persistent mode or a remote client with
sessionId.ExecutionRequest fields
Source code to execute.
Runtime selection.
Per-request timeout override.
Extra environment variables.
Optional script extension override.
Stdin payload.
Files to inject before execution.
Files to retrieve after execution.
Runtime-specific packages to install pre-run.
Metadata to attach to audit records.
ExecutionResult fields
Captured standard output.
Captured standard error.
Process exit code.
Wall time for execution.
Whether output exceeded
maxOutputSize.Unique execution identifier.
Runtime used for this execution.
ISO timestamp.
Container ID when available.
Base64 file map for requested
outputPaths.CPU/memory/network usage metrics (when enabled).
Request logs in filtered mode (when enabled).
Cleanup helper
Number of containers removed.
Number of removals that failed.
Error list for failed removals.
FAQ
When should I switch from DockerIsol8 to RemoteIsol8?
When should I switch from DockerIsol8 to RemoteIsol8?
Use
DockerIsol8 for local workflows and single-node apps. Use RemoteIsol8 when execution is centralized behind isol8 serve, shared across services, or isolated from app hosts.Do I always need to call start() and stop()?
Do I always need to call start() and stop()?
Yes.
start() initializes the engine or verifies remote health; stop() ensures cleanup (and session deletion for remote clients with sessionId).Why do file operations fail in remote mode without sessionId?
Why do file operations fail in remote mode without sessionId?
putFile and getFile require a persistent remote session. Set sessionId when constructing RemoteIsol8.Troubleshooting quick checks
Remote server health check failed: verify host URL, server status, and API key.File operations require a sessionId: setsessionIdforRemoteIsol8before usingputFile/getFile.- No streamed events from
executeStream: confirm server supports/execute/streamand the request is valid. - Unexpected truncation: increase
maxOutputSizein constructor options.