1. CLI
Install theboat CLI:
boat reads the config that box wrote. Then do these steps:
- In scripts and CI, replace
boxwithboat. Subcommands do not change:boat new,boat list,boat ssh. - Rename
BOX_*variables toBOAT_*. Now, if aBOAT_*variable is not set, Boat uses itsBOX_*twin. It then prints a one-line notice on stderr. - Rename
.boxignorefiles to.boatignore. Boat reads both files now. If a directory has both,.boatignorewins. - Change
boat api-key create --box bx_1to--sandbox bx_1.
box prints a migration reminder. Use boat to get later updates. No date check disables legacy binaries.
2. SDKs
Replace the package:
The helpers keep their names:
In Python, pass the request body by keyword:
boat.create(create_sandbox_request=CreateSandboxRequest(...)). See Python SDK.
To change the types and keys, do a whole-word search and replace:
Then make two changes by hand: the package import, and
BoxApi to BoatApi.
3. Raw HTTP
sandbox / sandboxes / sandboxId, type: "sandbox.created", code: "sandbox_not_found". Request bodies also use the new keys, for example passSandboxCredentials and sourceSandboxId.
A request to /api/box/* answers in box words now. It has these headers:
Sunset. Each match is a call that you did not move yet.
4. Webhooks
Webhooks that you created before the rename still sendbox.* events with payloads that say box. Signatures, headers and retries do not change.
To move a webhook:
- Create it again through the Boat API, or with
boat webhook create. - Delete the old webhook.
sandbox.* events and X-Ascii-Event: sandbox.ready. There are 6 events: ready, error, archived (stopped), hydrated, degraded and recovered.
5. Hosted URLs
Each hosted route answers on two addresses, with the same_token:
https://<label>.on.ascii.devhttps://<label>.on.boat.dev
on.boat.dev form. Boat has not decided the retirement policy for the on.ascii.dev form.
6. Inside a sandbox
- The
boatCLI is on the PATH of each sandbox.boxstill points to it. - Boat exports
BOAT_ID,BOAT_CURRENT_IDandBOAT_CLI_*next to theirBOX_*twins. - Agent skills use the
boatskill. Boat removes aboxskill directory at the next start.