Security
BusyBot holds credentials to your other systems. That is a serious responsibility, and this page describes what actually happens to them — not aspirations.
Credentials
- Encrypted at rest with AES-256-GCM. Secret fields are encrypted before they reach the database; the plaintext never lands in durable storage.
- Write-only in the UI. Once saved, a secret value is never rendered back to you or sent to the browser again.
- Never logged. The event log scrubs secret-shaped keys as a backstop, and emitters are held to keeping values out in the first place. Audit records store changed field names, never values.
- Ownership-checked on every use. A credential is resolved against the user who owns it; a workflow cannot reference another account's credential.
Isolation
- Every workspace's data is scoped per user, including cache keys.
- Pro plans run in a dedicated pod that wakes on demand and scales to zero; Enterprise runs on a contracted pool with its own URL.
- User-supplied code executes sandboxed — V8 isolates for lightweight JavaScript, container-level sandboxing for untrusted code.
Transport
- TLS on every public endpoint, with certificates issued and renewed automatically.
- The application and the API are separate origins with an explicit CORS allowlist.
Model providers
Prompts and completions are sent to the model provider you select (OpenAI, Anthropic, Google or xAI). On plans that support bring-your-own-key, calls run against your own provider account instead of ours.
Reporting a vulnerability
If you believe you have found a security issue, please contact us before disclosing it publicly. We will confirm receipt and keep you updated on the fix.
Certifications and formal attestations
Needs counsel — do not claim SOC 2, ISO 27001, HIPAA or GDPR posture here until the corresponding work is actually complete and attested.
Last updated 2026-08-16.