Cubicle

Limits and defaults

Every Cubicle limit and default in one place, covering Box vCPU, memory and disk ranges and base image sizes, name rules, exec timeouts and output limits, request body size, rate limits, auto-hibernation, SDK and CLI wait timeouts, API key expiry, session lifetimes, private network sessions and what is not available yet.

These are the values on api.cubicle.sh. They may change. Values marked "SDK default" are options you set in the SDK, for a client or per call.

Box resources

ResourceMinimumMaximumdefault imageomarchy image
vCPUs (vcpus)16424
Memory (memoryMiB)256 MiB262,144 MiB (256 GiB)2048 MiB8192 MiB
Disk (diskGiB)1 GiB2048 GiB12 GiB40 GiB

All three are whole numbers. The image columns are the sizes a Box created from that base image gets when you leave them out. Resources explains defaults, placement and reservations, and Size rules covers Boxes created from a snapshot.

Names

NameRulePatternUnique among
Box1 to 63 lowercase letters, digits and dashes, starting with a letter or digit^[a-z0-9][a-z0-9-]{0,62}$The organization's Boxes that are not deleted
Generated Box namebox- and 6 hex characters, such as box-1a2b3c, when you leave the name out^box-[0-9a-f]{6}$As above
OrganizationSame rule as a Box name^[a-z0-9][a-z0-9-]{0,62}$All organizations
Service accountSame rule as a Box name; its identity is ORG/NAME^[a-z0-9][a-z0-9-]{0,62}$The organization's service accounts that are not deleted
API key1 to 63 lowercase letters, digits, ., _ and -, starting with a letter or digit^[a-z0-9][a-z0-9._-]{0,62}$The service account's keys that are not revoked
SnapshotSame rule as an API key name^[a-z0-9][a-z0-9._-]{0,62}$Not unique; use the snapshot's ID

A deleted Box's name is free for a new Box as soon as the delete is accepted. See Boxes.

Exec

SettingDefaultLimit
argvRequired1 to 1024 strings of up to 65,536 characters each; the 64 KiB request body limit applies first
timeoutMs60,000 ms (60 s)At least 100 ms. Larger values than 600,000 ms (10 min) are lowered to it without an error
maxOutputBytes65,536 bytes (64 KiB)At least 0. Larger values than 1,048,576 bytes (1 MiB) are lowered to it without an error
cwdThe account's home directoryAn absolute path of up to 4096 characters
  • maxOutputBytes is one budget for stdout and stderr together. Output past it is discarded and truncated is true.
  • A command that runs out of time ends with timedOut: true and exit code 124.
  • List a Box's operations returns the 50 most recent operations.

See Run commands.

API

ItemValue
Request bodyAt most 64 KiB; larger bodies fail with 413 payload_too_large
Idempotency-Key1 to 200 characters, kept for 7 days
Requests per user or service account600 a minute
Non-GET requests per user or service account120 a minute
Refused requests before an address is blocked30 an hour
Automatic address block60 minutes
Sign-in requests, including device sign-in starts20 a minute per client address, 300 a minute in all
Device sign-in polls120 a minute per client address, 3000 a minute in all
PaginationNone: lists return every item, except a Box's operations (the 50 most recent)

See Rate limits and Requests and waiting.

Lifecycle and waiting

ItemValue
Automatic hibernation60 minutes after the Box first reports running following a start, whatever its activity
StopThe guest is asked to shut down, and turned off if it has not stopped within about 15 s
Boot timeout180 s; then the start fails with guest did not become reachable
Retry after a failed hibernation30 s, then twice as long each time, up to 5 minutes
SDK lifecycle waitsSDK default 5 minutes: create, start, stop, hibernate, delete and waitUntil
SDK exec waitThe command's timeoutMs plus 2 minutes
SDK snapshot, restore and operations.waitSDK default 15 minutes
SDK pollingSDK default every 1 s, at most 5 polls a second per client
SDK and CLI request timeout30 s per HTTP request: SDK default (requestTimeoutMs), fixed in the CLI
CLI --wait10 minutes, polling every 1 s
CLI exec, snapshot and restorePoll every 500 ms with no deadline

See Box lifecycle and Waiting.

Keys and sessions

ItemValue
API key expiry1 to 3650 days, or never when no expiry is given
API key scopesread (GET only) or write
API key tokenShown once, when the key is created
Sign-in session30 days from sign-in; using it does not extend it
Device sign-in codeExpires after 600 s; poll every 2 s
SSH keysssh-ed25519 only, up to 1000 characters; the comment is cut to 200 characters

See Sign in and API keys and Authentication.

Private network and console

ItemValue
Private network session30 s, renewed by the CLI every 10 s, and never past the expiry of the sign-in session that opened it
CredentialsA sign-in session; API keys cannot open private network sessions
Open console viewers8 per person

See Networking and Use the desktop console.

Not available yet

  • Streaming exec output, and exec with stdin or a TTY. Output arrives when the command ends.
  • File upload and download APIs. See Move files into and out of a Box.
  • Port forwarding, proxies and public URLs. Boxes are reachable only over the private network.
  • Forking, resizing, renaming and rebooting a Box. A reboot inside the guest leaves the Box failed; start it again.
  • Deleting a single snapshot. Snapshots are deleted with their Box.
  • Network connections to a Box from the SDK, and SSH or private network access with API keys. To reach a service in a Box from code, run the client inside the Box with exec.
  • A hibernate command in the CLI. Use the SDK, the API or the Dashboard.
  • The CLI on Windows.

On this page