Sandboxes

Branch-based configuration sandboxes for safe experimentation. Create a sandbox, modify config freely, then merge back or discard.

SandboxInfo

FieldDescription
nameBranch name
is_activeWhether this branch is currently checked out
created_atBranch creation timestamp
last_modifiedLast commit timestamp on this branch

Operations

MethodDescription
create(name)Create branch from current HEAD
switch(name)Checkout branch, update HEAD
delete(name)Delete branch (protected branches rejected)
current()Get currently active branch name
list()List all sandboxes with creation/modification times

Workflow

Rust
// 1. Create sandbox from current config
sandbox_manager.create("experiment_new_alerts")?;

// 2. Switch to it — all config changes isolated
sandbox_manager.switch("experiment_new_alerts")?;

// 3. Make changes, test, iterate...
//    (auto-save commits to the sandbox branch)

// 4. Happy? Merge back to main
git_engine.send(GitOperation::Merge {
    branch: "experiment_new_alerts".into()
})?;

// 5. Or discard
sandbox_manager.delete("experiment_new_alerts")?;

Questions?

Reach out for help with integration, deployment, or custom domain codecs.