Security
How that trust is engineered.
You are trusting us with your research questions and decisions. Here is what is in place.
- Tenant isolation, enforced twice
- Every workspace's data is isolated at the application layer and by PostgreSQL row-level security. A missed filter in application code still cannot cross workspaces.
- Credentials done right
- Passwords are hashed with scrypt. API keys are stored as SHA-256 hashes and shown exactly once. Sessions are server-side and revocable instantly.
- Least-privilege database access
- The application connects as a restricted role subject to row-level security, never as the database owner.
- Auditability
- Every meaningful action (logins, role changes, key creation) lands in a per-workspace activity log, and every research query the assistant runs is recorded with its parameters, rows and errors for workspace administrators.
- Payment data never touches us
- Billing runs on Stripe Checkout and the Stripe customer portal; card details never reach our servers. Webhooks are signature-verified with replay protection.
- Transport and headers
- TLS everywhere, HSTS, frame-ancestors none, strict referrer policy, and per-request trace IDs on every response.
Found a vulnerability? Email security@quad99.com. We respond within one business day.