Skip to main content
Trust & Compliance

Security at TCDS Insurance

Last updated: August 19, 2026

We handle nonpublic personal information from your borrowers every day — names, addresses, dates of birth, prior-claim history, and loan details. Below is an overview of the controls used by the platform.

Tenant isolation

Core customer tables use agency_id scoping and Postgres Row-Level Security; coverage is reviewed during releases.

Authentication

  • Email + password via Supabase Auth, with optional TOTP multi-factor enrollment.
  • Microsoft 365 SSO available for enterprise tenants.
  • Service-role API keys are scoped to specific feature paths and are rotated through the operational credential process.
  • Session cookies are HttpOnly + Secure with SameSite=Lax.

Encryption

  • All traffic served over TLS 1.2+ end-to-end.
  • Application data encrypted at rest by Supabase (Postgres + S3), attachments encrypted at rest in Cloudflare R2.
  • Secrets are stored only in Coolify environment variables and a credential vault, never committed to source.

Audit ledger

Selected critical events are written to an append-only audit_events table with a per-tenant hash chain, with verification handled as part of operations.

AI call hygiene & data minimization

Every AI call is gated by a tenant-level spend budget pre-charge and a post-flight reconcile. Direct provider-SDK imports are blocked outside the audited wrapper. PII (SSNs, dates of birth, account numbers, loan numbers) is redacted before any cross-provider boundary.

Backups & recovery

  • Postgres point-in-time recovery and logical backups are configured by environment.
  • Retention and restore-drill evidence are confirmed during operational review.

Reporting a vulnerability

Email [email protected]. We acknowledge within 24 hours and aim to triage within 5 business days. Please do not perform invasive testing against production — we will provide a sandbox tenant on request.

Current compliance and security assessment materials are available on request from the security contact. See our disclosures page →