Sandbox API

Providers

Windows VMs (Guacamole) and macOS via AWS EC2 Mac — how each substrate is wired.

Desktop profiles that are not plain Linux pods use a VM or external provider. Operators enable those catalog entries only after the verify scripts pass.

Windows VM (driver_hint: ec2-vm)

ItemValue
Profiledesktop-windows
SubstrateEC2 Windows VM (also accepts gce-vm / vm hints in the router)
Viewerguacamole — Guacamole in the AWS desktop VPC
EnvSANDBOX_VM_DESKTOP_VIEWER_HOST / SANDBOX_VM_DESKTOP_VIEWER_ENDPOINT

Sandboxes pods reach Guacamole over the private network (VPN / PrivateLink). The trainer still only opens viewer.url on the gateway host.

Verify: scripts/verify-viewer-windows-dev.sh

macOS external (kind: aws-ec2-mac)

Catalog fragment:

desktop_provider:
  kind: aws-ec2-mac
  region: us-east-1
  secret_ref: sandbox-desktop-aws
ItemValue
Profiledesktop-macos
driver_hintexternal
Viewerprovider
SecretsKubernetes secret named by secret_ref

Verify: scripts/verify-viewer-macos-dev.sh

Linux pod (for comparison)

desktop-ubuntu uses driver_hint: k8s — no VM, no external provider. Stream is TigerVNC + websockify inside the trial pod.