fabro/docs/public/execution
Bryan Helmkamp bec4b90ad3
Move environments to SQLite storage (#539)
## Summary

Move server-managed environments from sibling TOML files into SQLite,
matching the storage model already used by variables and secrets.

This adds:
- an `environments` SQLite table with DB-level validation for IDs,
revisions, providers, network modes, booleans, and JSON fields
- a SQLite-backed `EnvironmentStore` with cached synchronous reads,
transactional create/replace/delete, synthetic unpersisted `local`, and
`default` as an ordinary seeded row users can delete
- one-time legacy import from `environments/*.toml` next to the active
server `settings.toml`, including relative Dockerfile path inlining and
backup rename to `environments.imported-<timestamp>.bak`
- install/test/CLI seeding of `default` directly into SQLite instead of
writing `environments/default.toml`
- docs updates for API/SQLite-managed server environments and legacy
import behavior

The REST API shape is unchanged; path Dockerfile sources remain rejected
over the environments API.

## Testing

- `cargo nextest run -p fabro-db -p fabro-environment` - 15 passed
- `cargo nextest run -p fabro-server --features test-support
environments` - 16 passed
- `cargo nextest run -p fabro-server --features test-support install` -
60 passed
- `cargo nextest run -p fabro-server --features test-support
create_run_rejects_disabled_sandbox_provider` - 1 passed
- `cargo nextest run -p fabro-server --features test-support
system_sandbox_provider` - 2 passed
- `cargo nextest run -p fabro-cli install` - 132 passed
- `cargo +nightly-2026-04-14 fmt --check --all`
- `cargo +nightly-2026-04-14 clippy --workspace --all-targets -- -D
warnings`
2026-07-01 10:31:58 -04:00
..
automations.mdx docs: refresh changelog and sync product docs 2026-06-11 11:04:31 -04:00
checkpoints.mdx refactor(workflow): remove retro stage (#230) 2026-05-09 10:18:20 -04:00
child-runs.mdx docs: add child runs guide 2026-05-25 15:43:53 -04:00
context.mdx docs: sync command output docs 2026-05-08 17:16:17 -07:00
environments.mdx Move environments to SQLite storage (#539) 2026-07-01 10:31:58 -04:00
failures.mdx refactor(types): remove stage status compatibility 2026-04-30 06:48:47 -04:00
observability.mdx docs: sync product docs with runtime changes 2026-05-26 21:55:17 -04:00
outcomes.mdx refactor(model): move provider facts into catalog (#298) 2026-05-17 20:59:08 -04:00
run-configuration.mdx feat(web): add server-managed Environments CRUD settings UI (#462) 2026-06-13 08:44:38 -04:00