FabricFabricHarness
Deployment

Deployment Overview

Build targets and where to run them.

fh build produces a deployable artifact for a chosen target. The same agent code runs on every target — only the build output and runtime differ.

Targets at a glance

TargetWhat it producesDeployment requirementBest for
Nodedist/server.mjs HTTP serverConfigure auth, durable stores, limits, and monitoring.Local services, internal automation, container wrapping.
DockerDockerfile + Node bundleConfigure registry, secrets, network policy, and persistent stores.CI smoke tests, ECS / Kubernetes, generic container hosts.
AWSDocker artifact for ECS/App Runner/EKSProvision the AWS container control plane around the artifact.AWS container platforms with external durable state.
Fly.ioDocker artifactConfigure the application, secrets, port, health checks, and volume/database.Regional container applications.
RailwayDocker artifactConfigure service variables, port, health checks, and durable database.Managed container deployment.
SSTNode/Docker artifactProvision a long-running AWS container service.AWS infrastructure defined from TypeScript.
Temporal workerWorker entrypoint + activitiesProvide a Temporal namespace, task queue, identity, and worker operations.Durable, replayable, approval-gated agent sessions.
Cloudflare Workers + SandboxWorker + DO + Sandbox container bindingConfigure Worker, Durable Object, R2, and optional Sandbox bindings.Edge-triggered webhooks, per-tenant Durable Object sessions.
Foundry Hosted AgentsDockerfile + azure.yaml + Bicep; Agent Service client/toolsConfigure Azure identity, role assignments, project, networking, and region.Azure-native agents with per-session isolation, Entra Agent ID, OBO auth.
Azure Container Apps / ACI / AKSARM control-plane tools; Docker deploy pathConfigure subscription identity, registry, network, and compute resources.Azure customers without Foundry availability or with K8s mandates.
DatabricksDatabricks App/Serving artifacts, governed tools, OAuth, and Lakebase storesConfigure workspace identity, UC grants, App resources, and certification.Data, analytics, ML, and governance agents.
E2BControl-plane helpers for E2B sandbox runtimeProvide provider credentials and validate lifecycle and cleanup.Ephemeral sandbox execution for untrusted code.
DaytonaControl-plane helpers for Daytona workspace runtimeProvide provider credentials and validate workspace lifecycle.Reproducible dev environments as agent sandboxes.
ModalNative TypeScript SDK sandbox adapterConfigure Modal credentials, image, resources, network policy, and cleanup.Serverless GPU/CPU tasks from agent sessions.
Azure Container Instances (ACI)ARM control-plane helpers for ACIConfigure ACR, managed identity, resource group, and networking.Lightweight container instances for single-shot agents.

What remains portable

The source definition stays the same while the build manifest records the selected runtime, capabilities, policy, package versions, digest, and provenance for the target-specific artifact.

RevenueOpsAgent source becoming a verified build manifest and portable Node, Docker, Temporal, Cloudflare, and Databricks targets
Representative UIThe build manifest binds definitions, policy, runtime requirements, capabilities, package versions, digest, and provenance.

How to choose

Diagram flow: graph TD; Where will the agent run? leads to Local / on-prem?; Local leads Yes Node; Local leads No Cloud preference?; Cloud leads Edge / per-tenant Cloudflare; Cloud leads Azure-native Foundry available?; Azure leads Yes Foundry Hosted Agent; Azure leads No Azure Container Apps; Cloud leads Data / ML Databricks tools; Cloud leads Other Docker / K8s; Cloud leads Serverless GPU/CPU Modal; Cloud leads Ephemeral sandbox E2B.
Text alternative and Mermaid source

Diagram flow: graph TD; Where will the agent run? leads to Local / on-prem?; Local leads Yes Node; Local leads No Cloud preference?; Cloud leads Edge / per-tenant Cloudflare; Cloud leads Azure-native Foundry available?; Azure leads Yes Foundry Hosted Agent; Azure leads No Azure Container Apps; Cloud leads Data / ML Databricks tools; Cloud leads Other Docker / K8s; Cloud leads Serverless GPU/CPU Modal; Cloud leads Ephemeral sandbox E2B.

graph TD
    Start[Where will the agent run?] --> Local{Local / on-prem?}
    Local -->|Yes| Node
    Local -->|No| Cloud{Cloud preference?}
    Cloud -->|Edge / per-tenant| Cloudflare
    Cloud -->|Azure-native| Azure{Foundry available?}
    Azure -->|Yes| Foundry[Foundry Hosted Agent]
    Azure -->|No| ACA[Azure Container Apps]
    Cloud -->|Data / ML| Databricks[Databricks tools]
    Cloud -->|Other| Docker[Docker / K8s]
    Cloud -->|Serverless GPU/CPU| Modal[Modal]
    Cloud -->|Ephemeral sandbox| E2B[E2B]
    Cloud -->|Reproducible dev env| Daytona[Daytona]
    Cloud -->|Lightweight containers| ACI[Azure Container Instances]
    Node --> Durable{Need durability?}
    Durable -->|Yes| Temporal[+ Temporal worker]
    Durable -->|No| NodeOnly[Node server]

Build invocation

fh build --target node
fh build --target docker --docker-build --docker-tag myorg/agents:latest
fh build --target temporal-worker
fh build --target cloudflare
fh build --target foundry-hosted-agent
fh build --target databricks-app
fh build --target databricks-serving

Each target writes to .fabricharness/build/<target>/ and emits a manifest.json next to the artifact. See Build manifest.

For the v2 artifact layout, route examples, and production environment controls, follow Build and run artifacts. For an end-to-end workspace deployment, use the Databricks App tutorial.

CI/CD recipes

Hardening checklist

Before promoting any target to production, walk through Security hardening: provenance, attestation, secret handling, network egress, approval gating, and rate limits.