Skip to content

Database Schema

The T3 webapp uses Postgres with Drizzle ORM. The schema is defined in packages/shared/src/schema.ts.

Key Tables

TableKey Columns
workspaceid, slug, name, created_at
fundid, workspace_id, name — UNIQUE(workspace_id, name) since migration 0003
investorid, workspace_id, name, type, classification
inbox_itemid, workspace_id, fund_id (FK since migration 0004), filename, status, classified_type
reviewid, fund_id, slug, safety_score, grade, verdict, reviewed_at
runid, workspace_id, agent, status, input, output, created_at
issueid, fund_id, severity, title, description, status

Migrations

Migrations live in packages/shared/drizzle/. Key migrations:

MigrationChange
0001Initial schema
0002NextAuth tables
0003fund(workspace_id, name) UNIQUE constraint
0004inbox_item.fund_id FK to fund

Running Migrations

bash
pnpm db:migrate

Seeding

bash
pnpm seed

Seeds 3 funds, 20 investors, 13 issues, and 7 inbox items.

Drizzle Studio

bash
pnpm db:studio

Opens Drizzle Studio for visual database exploration.

T1 (skills + CLI) and T2 (vault template) are MIT licensed.