fabro/lib/apps/fabro-server/src
Bryan Helmkamp 80bc51c40e
Open sandbox provider identity to plugin kinds
SandboxProviderKind is now a validated string newtype instead of a
closed enum. The bundled kinds (local, docker, daytona) keep their
constants and a BundledProvider enum for the code paths that still
dispatch on them; any other well-formed sandbox-driver kind name is
accepted and names a plugin executable. EnvironmentProvider is gone:
environment settings carry SandboxProviderKind directly, and
is_clone_based is replaced by a workspace policy where local runs in a
designated directory and every other provider clones.

Server sandbox policy is keyed by kind. [server.sandbox.providers.<kind>]
accepts the bundled kinds with `enabled` and any plugin kind with its
launch settings (path, sha256, dev, args, env, inherit_env); bundled
kinds reject the plugin keys and a kind with no entry is disabled. The
OpenAPI schema, generated Rust and TypeScript clients, web settings
pages, and docs follow. The environments table drops its provider CHECK
enumeration in favour of the kind name rules so a plugin environment
can be stored.

Bundled-only code paths (run start, preflight, reconnect, terminal,
details) now fail with an explicit message for a plugin kind until the
driver construction function lands in the next step.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-09 15:17:32 -06:00
..
auth Keep auth code store naming consistent 2026-08-24 17:26:17 -04:00
demo Open sandbox provider identity to plugin kinds 2026-09-09 15:17:32 -06:00
prompts Render the run title prompt with Jinja instead of string replacement 2026-07-27 17:23:16 -04:00
server Open sandbox provider identity to plugin kinds 2026-09-09 15:17:32 -06:00
worker_control refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
automation_materializer.rs Tighten automation Git validation types 2026-08-31 18:02:08 -04:00
canonical_host.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
canonical_origin.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
csp.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
diagnostics.rs Open sandbox provider identity to plugin kinds 2026-09-09 15:17:32 -06:00
error.rs Make pull request creation durable and asynchronous 2026-08-01 19:28:52 -04:00
git_checkout.rs Tighten automation Git validation types 2026-08-31 18:02:08 -04:00
github_webhooks.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
install.rs Open sandbox provider identity to plugin kinds 2026-09-09 15:17:32 -06:00
interp.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
jwt_auth.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
lib.rs Remove expired startup secret migrations 2026-09-05 14:05:48 -04:00
manifest_validation.rs Simplify local RunIntent producer support 2026-08-31 14:08:35 -04:00
migrations.rs Remove expired startup secret migrations 2026-09-05 14:05:48 -04:00
principal_middleware.rs Unify blob hash vocabulary 2026-08-17 13:56:19 -04:00
request_id.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
run_compiler.rs Harden automation workflow source handling 2026-08-31 13:45:08 -04:00
run_files.rs Load inactive run projections on demand 2026-09-01 16:06:54 -04:00
run_files_security.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
run_intent.rs Reject automatic pull requests for Local runs 2026-09-02 17:15:52 -04:00
run_manifest.rs Open sandbox provider identity to plugin kinds 2026-09-09 15:17:32 -06:00
run_selector.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
run_title_generation.rs Warn when run title generation fails 2026-08-26 13:18:39 -04:00
run_tool_manifest.rs Remove run IDs from create manifest producers 2026-08-01 11:47:11 -04:00
security_headers.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
serve.rs Remove expired startup secret migrations 2026-09-05 14:05:48 -04:00
server.rs Open sandbox provider identity to plugin kinds 2026-09-09 15:17:32 -06:00
server_secrets.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
spawn_env.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00
startup.rs Remove expired startup secret migrations 2026-09-05 14:05:48 -04:00
static_files.rs feat(web): tell open tabs when a new build ships 2026-07-25 14:45:26 -04:00
test_support.rs Open sandbox provider identity to plugin kinds 2026-09-09 15:17:32 -06:00
web_auth.rs Serve CLI auth sessions from SQLite 2026-07-26 00:00:15 -04:00
worker_runtime.rs refactor: simplify cancellation lifecycle code from review 2026-07-23 21:15:35 -04:00
worker_token.rs refactor: organize crates into three layers 2026-07-23 17:59:34 -04:00