Skip to main content

PocketBase Patterns

Pattern Selection

Choose the data model based on tenancy requirements.

Integrated RBAC

  • account_id is a relation field
  • Rules use @request.auth.current_account
  • Use accountRelation() in migrations

Federated Multi-Tenant

  • tenant_id and account_id are opaque text fields
  • JWT verified via tenant lookup
  • Use multiTenantFields() and multi-tenant middleware

Migration Rules

  • Write TypeScript migrations in pb_migrations_src/
  • Generate JS via pnpm build:migrations
  • Do not edit generated JS migration files

High-Risk Gotchas

Missing Autodate Fields

PocketBase does not auto-create created and updated. Declare them explicitly in all collection migrations.

Wrong Pattern In New App

Do not mix relation-based and opaque-ID-based schemas in one app.

If uncertain, revisit System Architecture.