Supabase: where your data lives
Row-level security and tenant scoping.
Your library's data lives in a Supabase Postgres database.
What's stored
- Books, copies, loans, holds, bookmarks
- Patrons, families
- Settings, custom genres, custom topics
- Sales leads
- Email log
- All transaction history
Multi-tenant scoping
Each library is a tenant. Every row in tenant-scoped tables has a library_id pointing to the library. Row-Level Security (RLS) ensures one library's queries can only see their own data.
Data residency
Currently: US (Supabase's default region). Available regions: EU, Asia-Pacific, etc.
If you need EU data residency (GDPR), contact us to migrate.
Backups
Daily automated backups. Retained for 7 days on Starter/Community, 30 days on Custom. Restore from any backup point.
Direct database access
For Custom plans, you can request direct PostgreSQL access. Read-only by default. Useful for custom integrations or BI tools.
Schema
The full schema is in supabase/migrations/. Migration files document every change.
Patron-facing privacy
Patrons see only their own data via Row-Level Security. They cannot query other patrons' loan history even if they figured out a database connection — RLS blocks it.
Export
- Per-library data export: Settings → Export
- Includes books, patrons, loans, holds, email log
- Format: JSON or CSV