Last updated: March 2025
Security
How JARVIS protects your idea data.
Encryption at rest
All data stored in JARVIS is encrypted at rest using AES-256, enforced by Neon Postgres. This includes your idea content, snippets, contacts, and all associated metadata.
Encryption in transit
All communication between your browser and JARVIS servers is encrypted using TLS 1.2+ via Vercel's global edge network. HTTP connections are automatically upgraded to HTTPS. A Strict-Transport-Security header with a 1-year max-age is set on all responses.
Authentication
- Authentication is handled by Neon Auth (Stack Auth), a production-grade auth provider
- Session tokens are stored in HttpOnly, Secure, SameSite=Strict cookies, preventing XSS-based token theft
- Sessions expire after 7 days of inactivity
- Passwords are hashed server-side — JARVIS never stores plaintext passwords
- Sign-in errors return a generic message to prevent user enumeration
Access control (Row Level Security)
Every database query in JARVIS is scoped to the authenticated user's ID via PostgreSQL Row Level Security (RLS). This means it is architecturally impossible for one user's data to appear in another user's queries — even if there is a bug in the application logic.
RLS policies are applied to all 8 data tables: ideas, snippets, module_statuses, files, activity_log, bookmarks, contacts, and feedbacks.
No third-party data sharing
Your idea content is never shared with third parties, sold, or used to train AI models. The only external services JARVIS uses are:
- Neon — database hosting (encrypted, SOC 2)
- Vercel — application hosting (SOC 2 Type 2, ISO 27001)
- Vercel Analytics — cookieless, privacy-safe page views only
Responsible disclosure
Found a security vulnerability? Please report it responsibly to security@jarvis.app. We take all reports seriously and aim to respond within 24 hours. Please do not publicly disclose vulnerabilities before we have had a chance to address them.