48 health checks across 6 categories on your Supabase PostgreSQL database — covering security, indexes, query performance, schema design, configuration, and maintenance. Connect with one click via Supabase OAuth — no database credentials required.
SIXTA Precursor scans your database metadata and system catalogs to produce a scored health report with actionable findings. Each finding includes severity, an explanation of the risk, and a concrete recommendation (often with the exact DDL to fix it).
Includes all Supabase advisor security lints:
auth.users accessible through API views without security_invokerpassword, ssn, or credit_card in API-accessible tables without RLSuser_metadata, multiple permissive policies for the same role, RLS enabled but no policies definedreg* column typesRequires pg_stat_statements (gracefully skipped if not available):
work_memEXPLAIN (GENERIC_PLAN, FORMAT JSON)EXPLAIN to show how your queries would behave at full production scale. This catches problems that only appear with large tables. The simulation also tests suggested index fixes and shows before/after cost comparisons. Your database is never modified; the simulation runs entirely on a separate PostgreSQL instance.shared_buffers, work_mem, effective_cache_size, max_connections, and other key tuning parameters against recommended valuesmax_connectionspg_stat_statements extension enabled for query performance checks. You can enable it from the Supabase Dashboard under Database → Extensions, or by running:CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
Without pg_stat_statements, query performance checks are skipped. All other categories (security, indexes, schema, configuration, maintenance) work without it.
SIXTA Precursor connects to your Supabase project through the Supabase Management API using OAuth 2.0. It never receives or stores your database password.
Once connected, Precursor executes read-only SQL queries against your database's system catalogs (pg_catalog, pg_stat_user_tables, pg_stat_statements, pg_settings, etc.) to collect diagnostic metadata. It does not read or modify your table data, schema, or configuration.
The analysis runs on demand. You initiate a scan, it runs, and you get results immediately. There is no continuous background process or persistent connection to your database. No results are stored server-side — once the page is closed, the data is gone.
Results are displayed immediately as an HTML report with a composite health score, findings grouped by category, and recommended fixes.
You can also connect directly without OAuth by providing either:
postgresql://postgres:password@db.xxx.supabase.co:5432/postgres)These methods give Precursor a direct PostgreSQL connection to your database. Credentials are used only for the duration of the scan and are not stored.
Precursor reads only system catalogs and metadata — never your table data:
| What | Why |
|---|---|
pg_stat_user_tables | Table scan statistics, dead tuple counts, vacuum/analyze timestamps |
pg_stat_user_indexes | Index usage statistics to identify unused or underused indexes |
pg_index, pg_constraint | Index definitions, foreign key constraints for duplicate/redundant detection |
pg_class, pg_stats | Table sizes, row estimates, column statistics for bloat estimation |
pg_stat_statements | Query text, execution times, I/O counters, temp file usage (if extension is enabled) |
pg_settings | PostgreSQL configuration parameters |
pg_stat_activity | Current connection states and long-running transactions |
pg_policy, pg_roles | RLS policies and role privileges for security checks |
Precursor does NOT access:
SELECT on user tables)You can disconnect SIXTA Precursor at any time:
Once revoked, SIXTA Precursor can no longer access your project. Since no analysis data is stored server-side, there is nothing to delete.
"pg_stat_statements not found"
The extension isn't enabled on your project. Enable it from the Supabase Dashboard under Database → Extensions, search for pg_stat_statements, and toggle it on. It may take a few minutes for query statistics to accumulate after enabling. Query performance checks will be skipped, but all other checks will still run.
"No queries found"
If pg_stat_statements was just enabled, it needs time to collect data. Run some queries against your database and try again in a few minutes.
"Authorization failed"
Your OAuth token may have expired. Click Login with Supabase to re-authorize. If the issue persists, revoke access in your Supabase organization settings and connect again.
"Token exchange failed"
This usually means the OAuth app configuration has changed. Try clearing your browser cookies for the Precursor site and logging in again.
"Scan is slow"
The Supabase Management API has rate limits (120 requests/minute). A typical scan uses around 20 API calls and completes in 15–45 seconds. Scans with the simulation option enabled may take longer (up to 2 minutes) as additional queries are needed to extract schema metadata.
If you have questions or run into issues, contact us at support@sixta.ai.