fabro/lib/apps/fabro-server/tests/it/api
Bryan Helmkamp 28d4242df0
Route Daytona sandboxes through the sandbox driver
The `daytona` provider kind now maps onto the sandbox-driver Daytona
provider instead of fabro's own SDK client. Fabro keeps what is its own:
the HMAC-named snapshot built from the environment's image or Dockerfile,
the explicit 120 minute auto-stop default, the managed labels that gate
destructive operations, the clone decision and layout, and push
credentials. The driver creates the sandbox, clones natively, and serves
exec, files, search, terminal, SSH, preview, and VNC through its facets.

- `daytona.rs` builds the driver `SandboxSpec` (snapshot source,
  `/home/daytona/workspace`, labels, timers, network policy, run name),
  ensures the snapshot through the driver `SnapshotProvider`, attaches by
  persisted id with fabro's label guard, and probes credentials through
  the provider health check under fabro's 20 second budget.
- `DriverSandbox` gains a create plan that settles the spec right before
  the provider call, records the snapshot a sandbox came from, and
  reports the provider console URL on `Ready`.
- Terminals use the driver `Pty` facet; the server's SSH, preview, and
  VNC endpoints use the `SshAccess`, `PreviewUrls`, and `Vnc` facets
  through the driver-typed reconnect. The preview endpoint now answers
  for every provider with a preview facet, so the local sandbox returns
  its loopback URL.
- Daytona credentials travel as `DaytonaCredentials` built from the
  vault key plus configured URL and organization; nothing reads the
  process environment implicitly. The inventory registry uses the shared
  `DriverInventoryProvider`.
- The SDK-based `daytona/mod.rs`, `provider/daytona.rs`, the Daytona
  terminal, the `daytona` cargo feature, and the direct daytona-sdk,
  git2 (in fabro-sandbox), tungstenite, and rustls dependencies are
  gone. The live Daytona tests run against the driver-backed sandbox.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 19:14:13 -06:00
..
auth_sessions.rs Remove stale auth-session test import 2026-08-24 14:40:38 -04:00
automations.rs Align remote workflow selectors with run targets 2026-08-31 17:13:20 -04:00
cli_auth_token.rs Keep retired Slate helpers test-only 2026-08-24 17:31:15 -04:00
compression.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
docs.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
environments.rs Require a server-managed environment for automations 2026-08-30 09:58:13 -04:00
events.rs Activate atomic SQLite run history storage 2026-08-28 15:18:25 -04:00
install.rs Route Daytona sandboxes through the sandbox driver 2026-09-09 19:14:13 -06:00
install_openai_compatible.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
mcp_servers.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
mod.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
routing.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
run_files.rs Open sandbox provider identity to plugin kinds 2026-09-09 15:17:32 -06:00
runs.rs Open sandbox provider identity to plugin kinds 2026-09-09 15:17:32 -06:00
sandbox_vnc.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
sessions.rs Index session ownership from creation events 2026-08-31 14:16:58 -04:00
settings.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
system.rs Stabilize SQLite-backed server tests 2026-08-28 15:54:23 -04:00
tcp.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
variables.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00