Security
FormCheckRx was designed from day one to handle zero patient data. This page documents our complete security architecture for IT directors, compliance officers, and procurement teams.
Data Handling
Infrastructure Security
All data encrypted in transit via TLS 1.2+ with downgrade attack blocking. Database encrypted at rest via Supabase AES-256. No unencrypted data transmission at any layer of the stack. API keys stored as encrypted environment variables — never exposed to the client browser.
Email verification required on account creation. Six-digit device verification codes on new device login. Single-device session enforcement — logging in on a new device terminates existing sessions. Three consecutive failed login attempts trigger automatic lockout and password reset. Session tokens expire and are not replayable.
Row-level database security (RLS) on every table — users can only access records associated with their authenticated account. Service credentials are never exposed to the browser. Admin access requires separate authentication with email verification on every login. No shared admin credentials.
Per-endpoint rate limiting on all API routes with separate limits for authentication, search, and administrative endpoints. Cloudflare Web Application Firewall (WAF) provides DDoS protection and blocks known attack patterns. Each query executes in an isolated function context — no shared server process, no persistent state between requests.
Vendor Security
All third-party infrastructure vendors are selected for their compliance certifications. The following table reflects the compliance posture of each vendor as of the most recent published certification.
| Vendor | Purpose | Compliance Certifications | Notes |
|---|---|---|---|
| Supabase | Database, authentication, row-level security | SOC 2 Type IIHIPAA Eligible | All data stored in Supabase-managed infrastructure. RLS enforced at the database layer. |
| Vercel | Application hosting, edge network, serverless functions | SOC 2 Type IIISO 27001 | Each query runs in an isolated serverless function. No persistent server processes. |
| Stripe | Payment processing, subscription management | PCI DSS Level 1 | Card numbers are never transmitted to or stored on FormCheckRx infrastructure. |
| Cloudflare | DDoS protection, DNS, WAF, CDN | SOC 2 Type IIISO 27001 | All traffic routes through Cloudflare. Rate limiting and WAF rules applied at the edge. |
| Resend | Transactional email (verification codes, notifications) | SOC 2 Type II | Only email addresses and authentication codes transmitted. No patient data. |
Compliance Roadmap
We report compliance status honestly. Items are listed as completed, in progress, or planned — not as achieved until they are.
Security Contact
To report a potential security vulnerability, request our security documentation for procurement review, or ask questions about our security architecture:
We respond to all security inquiries within one business day. For urgent security issues, please include "Security" in the subject line.