Security Overview
Loom is operated by a single founder with a deep paranoia about secrets and a healthy respect for the fact that agents can do real damage if you let them. This page is the plain-English version of what we do to keep your data safe.
Encryption
Everything in transit uses TLS 1.3 with modern cipher suites. The frontend is served from CloudFront with HSTS preload. The backend accepts only TLS connections.
Everything at rest is encrypted: RDS Postgres with KMS-managed envelope encryption (customer-managed key), S3 artifact buckets with SSE-KMS, EBS volumes with default account-level KMS. The KMS key is rotated annually.
Secrets vault
API keys you connect (Anthropic, OpenAI, Voyage, Brave, GitHub PAT) are encrypted with a per-tenant data key derived from the KMS root, wrapped in a Fernet token, and stored in the provider_credentials table. The plaintext key is held in process memory only for the duration of a single tool call. We never log secrets and we redact them from error reports before they reach Sentry.
Audit log
Every state-changing API call writes an immutable row to audit_log with user ID, action, target, IP, user-agent, and timestamp. The table is append-only at the database role level and exported daily to S3 (Object Lock, 90-day retention).
Tool sandboxes
Code execution runs in a Docker container with --network=none, --read-only, a tmpfs scratch directory, 512 MB memory, half a CPU, and a 30-second wall clock. Web fetch enforces a 5 MB cap, a 10-second timeout, and a robots.txt opt-in. Browser automation runs in a Playwright sidecar with no access to host file systems. The orchestrator halts any agent that exceeds its per-job budget cap.
Authentication & access
Identity is delegated to Clerk, which supports passwordless email, Google, GitHub, and TOTP-based multi-factor. Backend admin access requires SSO + hardware key. The Fargate task runs as a least- privilege IAM role scoped to your tenant's S3 prefix and the Secrets Manager entries it actually needs.
Backups & recovery
RDS automated backups are retained for 7 days; a nightly logical dump is uploaded to a separate S3 bucket with Object Lock and 30-day retention. We have a written DR runbook and have completed at least one restore-from-backup drill before launch.
Reporting a vulnerability
If you find a security issue, please email security@mingllm.com. We commit to acknowledging within one business day and to a fix or mitigation timeline within seven business days for high-severity findings. We do not have a paid bug bounty yet, but we will publicly credit researchers on request. See /.well-known/security.txt for the RFC 9116 record.
Compliance
We are pre-SOC 2 — the audit is scheduled for Q3 2026. We will publish the report and a vendor questionnaire on request once it completes. We are GDPR and CCPA compliant; data subject rights are described in the Privacy Policy.