@snagtag/adapter-supabase
v0.2.3
Published
Supabase storage backend for SnagTag. Stores reports, screenshots, sessions, and groups in Supabase with RLS and realtime sync.
Readme
@snagtag/adapter-supabase
Supabase storage backend for SnagTag. Stores reports, screenshots, sessions, and groups in Supabase with RLS and realtime sync.
Install
npm install @snagtag/adapter-supabase @snagtag/coreSetup
Run the migrations to create tables, enums, storage bucket, and RLS policies:
import { runMigrations } from '@snagtag/adapter-supabase'
await runMigrations('https://your-project.supabase.co', 'your-service-role-key')All migrations are idempotent - safe to re-run.
Usage
Browser apps (recommended)
Pass your app's existing Supabase client to avoid creating a duplicate GoTrueClient instance:
import { createSupabaseAdapter } from '@snagtag/adapter-supabase'
import { supabase } from '@/lib/supabase' // your app's singleton
const adapter = createSupabaseAdapter({
supabaseClient: supabase,
tenantId: 'optional-tenant-id',
userId: 'optional-user-id',
})Server scripts / CLI
When there is no existing client (e.g. CLI tools, server scripts), use URL + key:
import { createSupabaseAdapter } from '@snagtag/adapter-supabase'
const adapter = createSupabaseAdapter({
supabaseUrl: 'https://your-project.supabase.co',
supabaseKey: 'your-service-role-key',
tenantId: 'optional-tenant-id',
})Features
- Full CRUD for reports, groups, and sessions
- Screenshot upload/download via Supabase Storage
- Realtime subscriptions (reports update live when CLI marks them fixed)
- Auto-incrementing report numbers per tenant
- Soft deletes (active flag)
- Optional multi-tenant scoping
Migrations
6 idempotent SQL files in migrations/:
001_create_enums.sql- Report status, type, severity, session/group status002_create_test_reports.sql- Main reports table with indexes003_create_test_report_groups.sql- Report groups004_create_testing_sessions.sql- Testing sessions005_create_storage_bucket.sql- Screenshot storage (2MB limit, JPEG/PNG)006_create_rls_policies.sql- Row-level security policies
License
MIT
