Supabase
Cloud PostgreSQL — sole source of truth for all CRUD. Pro plan.
Connections
- client: supabase-service (singleton)
- reads: supabase-read-service (drop-in replacement for smartsuite_service)
- writes: supabase-write-service (immediate writes)
- synced from: SmartSuite via supabase-sync (daily safety net at 2:00 AM ET)
- file tracking: file-registry-service (project_files table, 28,425 files)
- auth: portal-auth (portal_users in separate SQLite, not Supabase)
- library: supabase-py
Notes
- All CRUD routes through Supabase; SmartSuite reduced to daily safety-net sync
- 8 tables synced: projects, sow_lines, site_visits, products, accounts, contacts, cert_packages, rfis
- Migration 008: site visit date range RPC + JSON index
- Supabase cutover Phases 1-2 done; Phases 3-4 gated behind soak period (earliest 2026-04-06)