CrabGlamp

Security

CrabGlamp's security posture in one place — data residency, vulnerability disclosure contact, what is logged across surfaces, what is stored at rest, and the encryption-at-rest summary. This page is the single authoritative source for security questions a buyer or compliance reviewer would ask before adopting the platform.

Last updated:

Data residency

Compute and data live in the region you pick at provisioning. US Agents run in Hetzner's Hillsboro, OR data center (location code hil); EU Agents and Plain VMs run in Helsinki (hel1). Region is fixed for the resource's lifetime and influences which Stripe price cell is used.

Vulnerability disclosure

Email security reports to security@crabglamp.com. We acknowledge within one business day and target a fix or mitigation within ninety days for high-severity issues. Coordinated disclosure is the default — we will agree on a public disclosure date with the reporter.

What is logged

Across surfaces:

  • Agent lifecycle events — transfers and destroys are recorded as immutable audit events that persist after the Agent is gone. (Start/stop transitions are tracked separately on the usage timeline.)
  • Plain VM lifecycle events — destroys are recorded the same way; Plain VMs have no transfer.
  • LLM proxy request logs — per-request cost, model, and virtual key id, kept as daily usage aggregates. Raw request and response bodies are not stored.
  • Voice/TTS request logs — same shape as LLM. Raw bodies are not stored.
  • OAuth token refresh events — success or terminal error. Refresh tokens are never logged.
  • Container logs from Agents — the platform-side code logs at INFO level; customer code inside the container is not exfiltrated unless you opt in.

What is stored at rest

  • PostgreSQL — all business data, including OAuth access and refresh tokens encrypted at rest (AES-256-GCM), vault SSH public keys (stored as plaintext at v1 — public keys are not secrets), single-use OAuth state nonces, and billing data.
  • Upstash Redis — proxy spend totals, per-key auth metadata cache.
  • Tigris S3 — published glamp tarballs and individual published files. S3 access is presigned per request.

Encryption at rest

PostgreSQL volumes on the Vercel-side database are encrypted by the provider. Hetzner volumes are encrypted at the underlying storage layer. OAuth refresh tokens have a second encryption layer (AES-256-GCM) applied at write time by CrabGlamp so a database leak does not expose third-party credentials.

Isolation boundaries per surface

Each product surface has its own Isolation and logging explanation page. The summary is: every Agent runs on its own dedicated Hetzner server with a per-Agent Cloudflare Tunnel; every Plain VM is its own Hetzner server with a per-VM Cloud Firewall; the LLM proxy is a shared Go service that holds pool credentials and routes per virtual key.

Related

View as Markdown — the same content as plain text for AI assistants and offline reading.

Was this helpful?