Security
Security Overview
Modus is a multi-tenant food manufacturing platform. This page summarizes our security posture for customers evaluating MODUS for production formula and batch data.
Tenant isolation
Every tenant-scoped database query filters by tenant_id from the authenticated session. PostgreSQL row-level security (RLS) is enabled on core tenant tables. Client-supplied tenant IDs are never trusted on mutations.
Authentication
Custom JWT authentication (RS256) with httpOnly cookies. Passwords hashed with Argon2. Role-based access control enforced on every tRPC mutation and sensitive route.
21 CFR Part 11
Formula approvals use password re-entry and reason capture on approve/reject actions — aligned with electronic record and signature expectations under 21 CFR Part 11. Audit trail entries are immutable with actor, timestamp, and before/after values. This is not a third-party Part 11 validation; customers should assess fit for their regulatory program.
Audit trail
Domain mutations record an immutable audit trail with actor, timestamp, and before/after values. Formula approvals support 21 CFR Part 11-style digital sign-off with password re-entry.
Data export
Organizations can export their data (JSON/CSV) at any time. You own your formulas and item master data.
Encryption
Data in transit uses TLS. Integration tokens and secrets are encrypted at the application layer where stored.
Subprocessors
- Neon — PostgreSQL database hosting
- Vercel — application hosting
- Upstash — Redis (rate limits, cache, token blacklist)
- Stripe — billing (when enabled)
- Resend — transactional email (when configured)
- Sentry — error monitoring (when configured)
SOC 2
Modus is pursuing SOC 2 readiness. We are not SOC 2 certified today. Contact us for our current control checklist.
Questions: security@runmodus.io