Security posture
Your network is isolated by the database, not by application code.
Every query executes under your credentials against Postgres Row-Level Security across all 24 tables. Code bugs cannot expose another user’s contacts — the database refuses to return the rows.
No email stored
Fetched live, rendered, discarded. No bodies, subjects, or snippets written to disk.
AES-256-GCM encryption
Refresh tokens sealed at rest. Short-lived access tokens kept in memory only.
Read-only mail
Cannot send on your behalf. Compose links open directly in Gmail.
Staged permissions
Sign-in requests name and email only. Mail and calendar are separate grants.
Zero trackers
No advertising pixels, analytics trackers, or session replay scripts.
Deterministic logic
No AI models score or re-order contacts. All ranking is deterministic.
Technical specifications
Controls verifiable against the repository.
Database isolation
- • RLS on all 24 tables: Postgres ownership policies on every table holding user rows.
- • Inherited view permissions: Views and functions execute as caller, preventing policy bypass.
- • No admin keys in web requests: Service-role key restricted strictly to the nightly cron.
- • Storage isolation: Storage bucket policies scope resumes to account ID.
Data deliberately never stored
- • Email bodies & snippets: Fetched on demand, rendered, discarded. Kept: timestamp only.
- • Full calendar: Read live. Kept: only CRM-created events.
- • Passwords: None. Delegated to Google OAuth.
Credentials & encryption
- • AES-256-GCM: Authenticated encryption at rest for refresh tokens.
- • In-memory access tokens: Kept in RAM only, retired prior to expiry, never logged.
- • Zero client secrets: No provider API keys in browser bundles.
- • Key rotation: Supported via fallback decryption key without downtime.
- • HSTS: TLS enforced with HTTP Strict Transport Security.
Granular third-party access
- • Minimal sign-in: Name and email only. No mailbox scopes requested.
- • Mailbox read-only: Scoped per connected address. No send permissions.
- • Separate calendar: Read and write are distinct, optional tiers.
- • Immediate revocation: Disconnect calls Google revoke API and drops stored credentials.
Application hardening
- • Nonce CSP & headers: Per-request cryptographic nonces, anti-framing, MIME nosniff.
- • SSRF guards: Portal URLs filtered against private, loopback, and cloud metadata IPs.
- • OAuth CSRF: Nonces in httpOnly cookies + origin validation.
- • Zero trackers: No third-party analytics, tracking pixels, or session replays.
- • Invariants tested: Automated CI tests assert RLS on every table before build.
The one cross-account exception
Nightly summary notification cron reads across accounts:
- • Counts only: Function returns numbers, never names, emails, or messages.
- • Restricted role: Web user sessions cannot execute the routine.
- • Bearer token: Validated in constant time; fails closed if unset.
Controls & reporting
Full deletion: Settings → Delete account wipes database rows, files, and tokens immediately.
Vulnerability reports: Private disclosure to solomonjmoon@gmail.com.