AES-256-GCM credential encryption
Each credential is encrypted with a fresh 12-byte IV and a 32-byte key from environment. The ciphertext, IV, and 16-byte authTag are stored in separate columns and the encrypted columns are explicitly excluded from list queries so plaintext never even leaves the database during normal browsing.
Just-in-time access requests
Viewers submit a request with justification and duration. Admins approve, deny, or shorten the window. Approved access expires automatically and a daily cron also expires pending requests older than seven days. Reveals only decrypt server-side and only when a non-expired approval exists.
Append-only audit log with CSV export
Every action writes an immutable audit entry with actor, IP, user agent, and timestamp. Vendor edits, credential CRUD, requests, approvals, denials, reveals, denied reveals, rotations, member changes, and auth events all flow through the same log. Filter, search, and stream the result to CSV.
Vendor directory with risk metadata
Track every SaaS, contractor, and integration with owner, criticality, compliance status, data access classification, and renewal date. Filter by status, criticality, and tag. The dashboard surfaces what is due for review and what is overdue for rotation.
Rotation tracking with atomic revocation
Each credential has a rotation period. A daily cron finds credentials within 14 days of their due date and emails the owner plus admins. When a credential is marked rotated, all active access for it is revoked atomically in the same transaction and each requester gets an email. The Rotation Center adds mark-rotated, snooze, and disable actions in one place.
RBAC with multi-tenant org isolation
Three roles (owner, admin, viewer) with last-owner protection that prevents accidentally locking the org out of itself. Path-scoped multi-tenancy at /app/[orgSlug]/... with middleware enforcing auth and membership on every request. Every database query is filtered by orgId at the ORM layer.
TOTP 2FA, OAuth, and Turnstile
Auth.js v5 handles email and password plus Google OAuth. TOTP-based two-factor authentication is built in. Cloudflare Turnstile guards signup, login, password reset, and verification resends. Auth events (login, logout, 2FA enable, password reset) all write audit entries.
Cmd+K commander, notifications, comments
A Cmd+K palette navigates the app and runs common actions. An in-app notifications inbox with an unread badge surfaces approvals, denials, and rotation reminders. Vendor comment threads keep context next to the work. A help overlay opens with the ? key.