Protected credentials
Passwords are hashed with Argon2id and are never stored or logged in plaintext.
OpsPath is designed to protect learner accounts, preserve progress, and keep administrative controls behind explicit server-side authorization.
These controls are part of the application architecture, not a post-launch checklist.
Passwords are hashed with Argon2id and are never stored or logged in plaintext.
Auth.js uses encrypted JWT sessions with secure, HttpOnly, SameSite cookies in production.
Learner and administrator permissions are checked on the server for every protected action.
Zod validates untrusted input and Drizzle uses parameterized queries with relational constraints.
HTTPS, HSTS, CSP, frame denial, content-type protection, and restrictive browser policies are enabled.
Important administrator changes create audit records so curriculum and access changes are reviewable.
Production credentials belong in Vercel and Turso environment settings—not source code, screenshots, chat messages, or committed files. Database migrations are reviewed and applied explicitly, and destructive sample seeding is reserved for empty development databases.
Run dependency audits before releases and rotate exposed credentials immediately. Keep the first administrator bootstrap command one-off, then remove its temporary password from the shell environment.
The login rate limiter currently uses process memory and should be moved to a durable shared store before horizontal scaling. Transactional password-reset email is not enabled until an email provider is approved.
Learn more about OpsPath