Runtime and deployment targets
Every sandbox backend and deployment target Fabric Harness supports, with its adapter, runnable example, credential-free path, and validation.
This page lists every runtime/sandbox and deployment target Fabric Harness supports. Each row names the adapter or driver that implements the target, a runnable example where one exists, the credential-free path, and the validation behind the row.
Sandbox backends
A sandbox is where shell commands and tool file operations execute. It is chosen at init({ sandbox }) and is independent of the deployment target. Backends that take a provider SDK object keep credentials inside the provider client; they are never serialized into session history.
| Backend | Adapter | Example | Credential-free path | Validation |
|---|---|---|---|---|
virtual (default) | Built into @fabric-harness/sdk | examples/hello-world/ | Fully local: in-memory filesystem and bash subset, no credentials. | SDK contract suites. |
empty | Built into @fabric-harness/sdk | — | Fully local: no filesystem or shell, model and tool calls only. | SDK contract suites. |
local | Built into @fabric-harness/node | examples/with-local-shell/ | pnpm --dir examples/with-local-shell run run uses the mock model and the host shell. | Node runtime contract suites. |
docker | init({ sandbox: { backend: 'docker', image } }) via @fabric-harness/node | examples/with-docker/ | pnpm --dir examples/with-docker run build; a run additionally needs a local Docker daemon. | Container contract suites. |
| E2B | e2bSandbox() from @fabric-harness/connectorsProvider SDK: @e2b/code-interpreter >=2.6.1 <3 | examples/with-e2b/ | pnpm --dir examples/with-e2b run run uses the mock provider. | Shared sandbox contract suites; set FABRIC_E2B_TEST=1 for the credentialed smoke. |
| Daytona | daytonaSandbox() from @fabric-harness/connectorsProvider SDK: @daytona/sdk >=0.195.0 <1 | examples/with-daytona/ | pnpm --dir examples/with-daytona run run uses the mock provider. | Shared sandbox contract suites; set FABRIC_DAYTONA_TEST=1 for the credentialed smoke. |
| Modal | modalSdkSandbox() from @fabric-harness/connectors/modalProvider SDK: modal >=0.9.0 <1 | examples/with-modal/ | pnpm --dir examples/with-modal run run uses the mock provider. | Shared sandbox contract suites; FABRIC_MODAL_TEST=1 plus Modal tokens for the credentialed smoke. |
| Vercel Sandbox | vercelSandbox() from @fabric-harness/connectors/vercelProvider SDK: @vercel/sandbox >=1.10.1 <2 | examples/with-vercel-sandbox/ | pnpm --dir examples/with-vercel-sandbox run run uses the mock provider. | Contract suites; run a provider smoke before production. |
| Kubernetes | kubernetesSandbox() from @fabric-harness/connectors/k8sProvider SDK: @kubernetes/client-node >=0.21.0 <0.22 | examples/with-kubernetes/ | pnpm --dir examples/with-kubernetes run run uses the mock provider. | Contract suites; cluster-gated validation. |
| Cloudflare Sandbox | createCloudflareSandboxEnv() from @fabric-harness/cloudflareProvider SDK: @cloudflare/sandbox >=0.9.2 <1 | examples/with-cloudflare-sandbox/ | pnpm --dir examples/with-cloudflare-sandbox run build:cloudflare; Miniflare/workerd runs locally. | workerd and Wrangler contract tests; account gate for deployment. |
| Cloudflare Shell Workspace | @fabric-harness/cloudflare/computerProvider SDK: @cloudflare/shell >=0.3.7 <0.4 | examples/with-cloudflare-shell-workspace/ | pnpm --dir examples/with-cloudflare-shell-workspace run build:cloudflare. | Early preview on the Worker Loader beta; Wrangler/account gate. |
| Databricks SQL | databricksSqlSandbox() from @fabric-harness/databricks/sql-sandbox | examples/with-databricks-compute/ | Mock HTTP contract suites run without a workspace. | Workspace, SQL Warehouse, and Unity Catalog gate. |
| AKS | aksSandbox() from @fabric-harness/azure | — | Structural client tests. | Cluster and identity gate. |
azure-container-apps | No first-party adapter; connect a project-owned client with remoteSandbox(). | — | — | Validate a project-owned adapter with validateSandboxAdapter(). |
azure-container-instances | No first-party adapter; connect a project-owned client with remoteSandbox(). | — | — | Validate a project-owned adapter with validateSandboxAdapter(). |
firecracker | No first-party adapter; connect a project-owned client with remoteSandbox(). | — | — | Validate a project-owned adapter with validateSandboxAdapter(). |
| boxd | Community blueprint — no shipped adapter | — | — | Untested integration guide; fh add boxd scaffolds a project-owned adapter that you implement and validate. |
| exe.dev | Community blueprint — no shipped adapter | — | — | Untested integration guide; fh add exedev scaffolds a project-owned adapter that you implement and validate. |
| islo | Community blueprint — no shipped adapter | — | — | Untested integration guide; fh add islo scaffolds a project-owned adapter that you implement and validate. |
| Mirage | Community blueprint — no shipped adapter | — | — | Untested integration guide; fh add mirage scaffolds a project-owned adapter that you implement and validate. |
| smolvm | Community blueprint — no shipped adapter | — | — | Untested integration guide; fh add smolvm scaffolds a project-owned adapter that you implement and validate. |
Rows marked Community blueprint are untested integration guides: Fabric Harness does not ship or certify an adapter for those providers, and the fh add recipe scaffolds a project-owned adapter that you implement and validate yourself. Backends with no first-party adapter (azure-container-apps, azure-container-instances, firecracker) are reserved names in the SandboxBackend union; connect a project-owned provider client with remoteSandbox() and validate it with validateSandboxAdapter().
Deployment targets
fh build --target <target> produces the deployable artifact offline for every target, and fh deploy --preview prints the deployment commands without executing them. Deploying itself requires the target's credentials and account configuration.
| Target | Deploy driver | Example | Validation |
|---|---|---|---|
node | NodeDriver in @fabric-harness/cli | examples/hello-world/ | Source, artifact, and clean-install contract tests. |
temporal-worker | TemporalWorkerDriver in @fabric-harness/cli | examples/with-temporal/ | Local Temporal and replay parity contracts. |
docker | DockerDriver in @fabric-harness/cli | examples/with-docker/ | Container contract tests. |
foundry-hosted-agent | FoundryHostedAgentDriver in @fabric-harness/cli | examples/support-agent-foundry/ | Client and build contracts; subscription, identity, and region gate. |
cloudflare | CloudflareDriver in @fabric-harness/cli | examples/with-cloudflare-sandbox/ | workerd/Miniflare and Wrangler tests; account gate. |
aks | AksDriver in @fabric-harness/cli | — | Structural client tests; cluster, identity, and network-policy gate. |
aca | AcaDriver in @fabric-harness/cli | — | Structural client tests; subscription and managed-identity gate. |
aci | AciDriver in @fabric-harness/cli | — | Structural client tests; subscription and managed-identity gate. |
k8s | K8sDriver in @fabric-harness/cli | examples/with-kubernetes/ | Manifest generation and structural tests; cluster gate. |
render | RenderDriver in @fabric-harness/cli | — | Build contracts; Render account gate. |
databricks-app | DatabricksAppDriver in @fabric-harness/cli | examples/with-databricks-app-resources/ | Tier R certification with retained candidate, app, and restart digests. |
databricks-serving | DatabricksServingDriver in @fabric-harness/cli | examples/with-databricks/ | Tier R certification with retained candidate, app, and restart digests. |
DatabricksAppDriver and DatabricksServingDriver activate the optional @fabric-harness/databricks peer at deploy time.
See also
- Sandboxes — provider setup guides and live-validation gates.
- Sandboxes matrix — capability axes and certification levels per backend.
- Deployment overview — what each build target produces and how to choose.
- Runnable examples — commands, expected proof, and cleanup for every example above.
- Capability matrix — validation level and operational guidance by area.