Docs
Deployment
One installation per company, with its own service, database, storage, pool of workspaces and network. Nothing of one company's is reachable from another's.
Topologies
| Topology | For | Workspaces run as |
|---|---|---|
| Your cloud, with a Helm chart | Paid installations | Kubernetes pods, one per session, under the gVisor runtime class |
| Hosted by us, single-tenant | Trials, design partners, Observation Mode | The same chart, on our Kubernetes |
Every paid installation is single-tenant.
Network
| Flow | Policy |
|---|---|
| Workspace to the internet | Denied by default. Allowed: your package registry mirror, GitHub scoped to the app, and the download hosts of editor servers. Nothing else. A network policy per session |
| Your model vendor | Called from the Occlude service only, with your own key. The workspace holds no model credentials |
| Credentials a build needs | Attached on the way out, so a build job never holds the value |
| Service to workspace | Mutual TLS on your network. The only inbound path |
| Doors to the service | TLS. SSH on its own port |
| Preview | Proxied by the service. No public ingress to a workspace |
Images
Images are signed and pinned per installation, with a read-only root filesystem. Toolchains for Node and Python come first.
The isolation ladder
The compiler must read Occluded files, so they are in the workspace's memory. The person's processes cannot read it, because they run as a different user with no debugger attach. In the end the kernel holds that line, so the claim depends on the rung the workspace runs on.
| Rung | Isolation | Claim |
|---|---|---|
| runc, standard containers | Separate users with no debugging across them, on the host's shared kernel | Compartmented and governed. Not exfiltration-proof: a kernel bug could cross the line |
| gVisor | A user-space kernel between the workspace and the host, with a far smaller surface for a kernel bug | A hardened boundary. Required for anything sold as one |
| Firecracker | Hardware virtualisation per session | The highest assurance, for a customer who asks for it |
The four states, the job runner and output sanitisation behave the same on every rung. Credentials and data seeds are Absent on all of them.