Data model
The Supabase tables that back PermitOS and how they relate.
Last updated 2026-05-11
Tables
Core tables: organizations, organization_memberships, profiles, permit_projects, permit_documents, precheck_reports, precheck_issues, correction_tasks, reviewer_notes, zoning_checks, activity_log, email_preferences, suppression_list.
Ownership
Every business table carries an organization_id and (where applicable) a project_id. RLS policies require the requesting user to be a member of that organization.
Sample data flag
Records seeded by the deliberate sample-data action carry is_sample = true so they can be cleanly removed and labeled in UI.
Schema reference
Use the in-app types at src/integrations/supabase/types.ts for the authoritative column list. Do not hand-edit that file — it is generated.
Related docs
PermitOS concepts
Glossary of the entities PermitOS works with: projects, packets, documents, prechecks, issues, scores, corrections, zoning checks, and activity.
Organization and permissions
How sign-in, organizations, roles, and Row-Level Security combine to keep workspaces isolated.