One host, and the API key decides
Both modes answer at the same two hosts. Usehttps://api.sanning.io for SDKs and
scripts, and https://console.sanning.io for people. Both hosts serve the Sandbox and
Live, and the SDKs work against either.
The prefix of the API key routes each request to the Sandbox or to Live. A request that
reaches the wrong plane is refused by name: a Live plane refuses a Sandbox API key with
SANDBOX_KEY_ON_LIVE, and a Sandbox refuses a Live API key with LIVE_KEY_ON_SANDBOX.
Neither refusal reads or writes your data. See Errors.
Compare the modes
The following table lists what differs. A row that is not here is the same in both modes: the SDK calls, the record format, the log store, the pack and the verify commands.
The wire values in this table are the only place this documentation names them. Everywhere
else it says Sandbox and Live.
What stays the same
The records are real in both modes. An agent signs each record with its own signing key, the hash is computed on your machine, and the pack verifies with the same open kernel. Only the stamp is simulated in the Sandbox. That makes a Sandbox pack a faithful rehearsal of a Live one.How you enter the Sandbox
A Sandbox organization exists only by entry from a Live organization. Sign in on Live, open the account menu and select Switch to sandbox. Verify your email address first, or the entry is refused withEMAIL_NOT_VERIFIED.
In the Sandbox, a strip runs across the top of the console with Switch to live.
Settings has API keys, Signing keys and Sandbox. The Sandbox page holds
Reset the sandbox.
A Sandbox follows its Live organization: when Live archives or deletes the organization,
the Sandbox does too.
Retention and reset
Sandbox data older than 30 days is deleted daily. To clear it sooner, an owner or admin selects Reset the sandbox under Settings, Sandbox and types the organization’s name to confirm. A Reset:- Deletes every record, stored envelope, stamp and pack report.
- Keeps your API keys and signing keys, so your integration keeps working.
- Marks every agent decommissioned, which frees the agent ceiling.
A pack carries one mode
Thebundle command refuses to assemble a window that mixes Sandbox and Live evidence
for one agent. A mixed pack would leave the reader to notice which is which, and the
reader’s whole task is deciding what the evidence supports. Give the Sandbox version of
an agent its own agent_id, such as claims-triage-dev: Sandbox and Live identities are
separate, as How an agent enrolls
explains.
Why a Sandbox pack is never evidence
A simulated stamp is Sanning’s own computation. It supplies no independent time, so no reader can check it against anything outside Sanning, and the proof says so: “simulated stamp: sandbox, not evidence”. The signedenvironment is inside the signed bytes, so
nobody can relabel a Sandbox record as a Live one without breaking its signature. The
kernel reads that value offline and prints SANDBOX instead of VERIFIED. No flag turns
exit code 5 into 0.
Verification stays offline in both modes, and Sanning is never in the trust path in
either.
Go live
Switch the API key and produce evidence.
Test in CI
Run the Sandbox from a pipeline and accept exit code 5.