Skip to main content

Data Model

The primary v2 datastore is Supabase/PostgreSQL.

Supabase configuration

  • Config: supabase/config.toml
  • Migrations: supabase/migrations
  • Rollbacks: supabase/migrations/rollbacks
  • Canonical schema dump: backend/core-api/db_schema.sql
  • Executable v2 baseline: supabase/migrations/20260304010000_v2_executable_schema.sql

Local Supabase ports from config:

  • API: 54321
  • DB: 54322
  • Studio: 54323
  • Inbucket: 54324
  • DB major version: 17

Major table families

DomainTables
Identity/RBACprofiles, roles, role_permissions, user_platform_roles, api_keys, api_key_logs
Teams/groups/projectsteams, team_members, team_roles, groups, group_members, circles, projects
Worktasks, task_assignees, task_reviewers, task_applications, milestones, documents, resources
Financetokens, payment_token_groups, payments, transactions, transaction_legs, project_funding, treasury tables
Escrow/web3chains, escrows, funding events, proposed operations, operation signatures, async jobs
Notifications/integrationsnotifications, notification_events, preferences/templates, registered webhooks, delivery logs
Community/analyticsfeed, reputation, Matrix space/room tables

Query guidelines

From AGENTS.md:

  • Prefer database filtering/aggregation over Python post-processing.
  • Select only needed columns.
  • Avoid select("*") unless necessary.
  • Use exact counts where needed.
  • Use RPC for complex or repeated aggregation logic.