Owned event types
events.iterate.com/sandbox/backup-created/workspace was snapshotted to R2 (an explicit sleep() or the idle timer); this backup is what the next start restores.payload: { backupId }consumed by 1events.iterate.com/sandbox/backup-failedA workspace snapshot failed; the container still stops, and the previous good backup (if any) remains the restore source.payload: { error }events.iterate.com/sandbox/configuredThe sandbox's env-var map changed (setEnvVars, or `env` at create). `env` is the map set in this change (key → value; null = key unset); values are conventionally `getSecret(path)` placeholders substituted only at egress, or non-secret literals. NEVER put raw secret material in a value — it lands on this durable stream.payload: { env }consumed by 1events.iterate.com/sandbox/create-requesteditx.sandboxes.get(path).create was called: the claimed path, the requested instance type (fixed for the sandbox's whole life) and any initial config. UNLIKE every other sandbox event this lands on the /sandboxes CATALOGUE stream, idempotency-keyed by path — the append IS the atomic name claim, and its instance type is what routes get(path) to the right container namespace. Setup follows; `created` (on the sandbox's own stream) confirms it.payload: { path, instanceType, sleepAfter?, keepAlive?, env? }events.iterate.com/sandbox/createdThe sandbox exists: identity and configuration are durably stored and itx.sandboxes.get(path) resolves it. No container is running yet — the first command (or start()) boots one.payload: { config }consumed by 1events.iterate.com/sandbox/destroy-requesteddestroy() was called: tear the sandbox down permanently. `destroyed` confirms.payload: {}events.iterate.com/sandbox/destroyedThe sandbox is permanently gone: container torn down and the identity tombstoned — the path can never be created again (pick a new name). Workspace snapshots in R2 age out on their ttl.payload: {}consumed by 1events.iterate.com/sandbox/kill-requestedkill() was called: the current Durable Object incarnation is deliberately aborted after this fact is durably reduced. The container lifecycle and reduced running state are unchanged; the next request boots a fresh object around the same sandbox.payload: {}events.iterate.com/sandbox/sleep-requestedsleep() was called (Cloudflare's word for what the idle timer does, on demand): snapshot /workspace, then tear the container down. The sandbox stays created — the next start (or command) boots a fresh container and restores the snapshot. The SDK's stop() forwards here so no spelling skips the snapshot.payload: {}events.iterate.com/sandbox/start-requestedstart() was called: boot the container now (rather than lazily on the first command). `started` confirms the boot.payload: {}events.iterate.com/sandbox/startedThe sandbox container booted (the SDK's onStart hook) — after an explicit start() OR implicitly because a command reached a stopped sandbox. /workspace is restored from the newest snapshot before commands run.payload: {}consumed by 1events.iterate.com/sandbox/stoppedThe sandbox container exited (the SDK's onStop hook) — after an explicit sleep(), the idle timer (sleepAfter), or a destroy. May be appended on a LATER wake: the SDK delivers a stop that happened while the Durable Object was hibernated on the next wake.payload: {}consumed by 1events.iterate.com/sandbox/workspace-restored/workspace was restored from the named R2 snapshot into the fresh container — what makes stop/sleep survivable: files under /workspace come back, everything else on the container disk is gone.payload: { backupId }
Consumes
events.iterate.com/sandbox/createdThe sandbox exists: identity and configuration are durably stored and itx.sandboxes.get(path) resolves it. No container is running yet — the first command (or start()) boots one.events.iterate.com/sandbox/startedThe sandbox container booted (the SDK's onStart hook) — after an explicit start() OR implicitly because a command reached a stopped sandbox. /workspace is restored from the newest snapshot before commands run.events.iterate.com/sandbox/stoppedThe sandbox container exited (the SDK's onStop hook) — after an explicit sleep(), the idle timer (sleepAfter), or a destroy. May be appended on a LATER wake: the SDK delivers a stop that happened while the Durable Object was hibernated on the next wake.events.iterate.com/sandbox/destroyedThe sandbox is permanently gone: container torn down and the identity tombstoned — the path can never be created again (pick a new name). Workspace snapshots in R2 age out on their ttl.events.iterate.com/sandbox/backup-created/workspace was snapshotted to R2 (an explicit sleep() or the idle timer); this backup is what the next start restores.events.iterate.com/sandbox/configuredThe sandbox's env-var map changed (setEnvVars, or `env` at create). `env` is the map set in this change (key → value; null = key unset); values are conventionally `getSecret(path)` placeholders substituted only at egress, or non-secret literals. NEVER put raw secret material in a value — it lands on this durable stream.
Emits
This processor emits no events.