Security evidence package

State the control. Name the evidence. Leave unknowns unknown.

A current-deployment summary grounded in repository implementation and named service boundaries. It is not a certification and does not promise controls that have not been verified.

Current deployment

Confirmed architecture and controls.

01

Hosting architecture

The portal and marketing site run on Vercel. Database and authentication use a single Supabase project. Titan runs as titan-app on Google Cloud Run. Theta pipeline jobs run in GitHub Actions. Transactional email uses Resend.

Repository-verified
02

Transport encryption

All current public surfaces use HTTPS through Vercel, Google Cloud Run, and Supabase APIs.

Repository-verified
03

Authentication and MFA

Supabase Auth uses email and password with enforced TOTP MFA. Middleware checks the authentication assurance level on protected portal requests and redirects sessions without step-up to the MFA challenge.

Repository-verified
04

Login rate limiting

Login controls use an IP-and-email key, anti-enumeration behavior, and a fail-open mode if the rate-limit RPC errors.

Repository-verified
05

Tenant and role access

Companies and company_members implement role-based access. PERMISSIONS/can() is the shared authorization source enforced in Server Actions. Row-level security and campaign-entitlement coverage are withheld here pending a complete production-policy review.

Repository-verified
06

Candidate access

Candidate invitation links use a dedicated token-resolution flow. Token generation, storage, rotation, and expiry details are withheld here pending a complete production review. The superadmin console is outside the customer route group.

Repository-verified
07

Secrets and payment boundary

Secrets are held in Vercel environment variables or GitHub Secrets, not in code or messages. Stripe uses a restricted key and webhook signing secret. Checkout is Stripe-hosted, so card data does not touch AI Psychometrics servers.

Repository-verified
08

Audit and billing records

The portal records session and candidate-system events in audit_logs, administrative events in admin logs, and billing movements in the credit_ledger.

Repository-verified
09

Bulk CSV upload screening

The campaign bulk-upload CSV path scans every uploaded CSV with VirusTotal before processing. Known hashes use reputation lookup; unknown files use asynchronous full scanning with retries and backoff. A malicious result is logged and surfaced for human action rather than silently deleting the file.

Repository-verified
10

Service boundaries

Current service providers named in the repository are Vercel, Supabase, Google Cloud Run, Resend, Stripe, GitHub Actions, and VirusTotal. Naming a provider describes the current architecture; it is not a certification claim.

Repository-verified

Evidence artifacts

Implementation references available for review.

01

Live Privacy Policy and Terms of Service

02

MFA-enforcing middleware and /mfa-challenge flow

03

0004 rate-limit migration

04

Audit-log interface and audit helpers

05

Canonical score contract v1 · 2026-09-21

06

Calibration provenance JSON · 2026-09-21 · run 35553441453

Not yet published

Specifics withheld until verified.

These items remain visible so a buyer can distinguish a missing artifact from an affirmative control claim.

Data location or region

Not published

Encryption at rest and key management

Not published

Backup policy and recovery targets

Not published; Supabase plan dependent

Incident-response procedure and targets

Not published

Penetration testing

No evidence published

SOC 2 or other security certification

None claimed