Skip to content

Security

  • Every app, static site, cron job and service runs in its own container under gVisor, a sandbox with its own kernel between your code and the server, with its own memory and CPU limits.
  • Each workspace has its own private network. Other workspaces can’t reach your nodes. Isolated groups narrow that further, inside a workspace.
  • Containers can’t reach the platform’s private addresses or cloud metadata, and can’t send mail directly on SMTP ports.
  • Linux boxes and agent sandboxes run as isolated system containers, separate from other users.
  • All public addresses use HTTPS, with certificates issued and renewed automatically.
  • Nodes are private until you make them public. Allowed IPs, domain rules with passwords, and IP allow and block lists narrow access further.
  • Databases and caches are reachable from outside only when an owner turns on external access, only from allowed IPs, only over TLS, and never as root.
  • Environment values, secrets and stored tokens are encrypted at rest (AES-256-GCM).
  • Values are write-only for the CLI, API tokens and AI agents, never exported, and masked for roles that may not see them. The activity log records key names, never values.
  • Personal access tokens are stored only as hashes and shown once.
  • Workspace settings → Pushed code → Refuse to build code with secret-looking files refuses builds of uploaded or pushed code containing .env files, private keys or credential-looking text (AWS, GitHub, Stripe, Slack keys). With it off, those builds go ahead with a warning. Uploads always leave secret-named files out.
  • Roles per workspace, optional deploy approval, and an activity log of every change, including those made by tokens and AI agents.
  • AI agents only stage changes unless you grant deploy, and can then only deploy the exact plan they showed.
  • SSH to boxes uses keys only, with limits on sessions and bans for repeated failures.