feat: add Supabase database connector#27511
feat: add Supabase database connector#27511aadityesh wants to merge 2 commits intoopen-metadata:mainfrom
Conversation
Adds full Supabase connector support across all layers: - **Ingestion**: SupabaseSource (extends PostgresSource + MultiDBSource), SupabaseLineageSource, connection builder, service_spec, queries with SUPABASE_SYSTEM_SCHEMAS (auth, storage, realtime, extensions, graphql, etc.) - **Schema**: supabaseConnection.json spec + databaseService.json enum entry - **Java**: SupabaseConnectionClassConverter + ClassConverterFactory registration - **Profiler**: PythonDialects.Supabase = "postgresql" (reuses pg dialect) - **UI**: Supabase icon, connection form schema, DatabaseServiceUtils wiring, service icon map, generated enum updates, Supabase.md docs panel - **Tests**: 6 unit tests covering connection, system schemas, data types, service type validation, pooler host support - **Test connection**: supabase.json test connection definition Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
- Remove redundant MultiDBSource from SupabaseSource class hierarchy (PostgresSource already inherits it) - Use SUPABASE_SYSTEM_SCHEMAS in get_schema_names() to filter out internal Supabase schemas (auth, storage, realtime, extensions, etc.) - Add test_system_schemas_are_filtered unit test to cover the filtering Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
Code Review ✅ Approved 2 resolved / 2 findingsSupabase database connector integration now properly excludes system schemas and removes redundant MultiDBSource inheritance. The implementation is clean and verified. ✅ 2 resolved✅ Bug: SUPABASE_SYSTEM_SCHEMAS defined but never used in extraction
✅ Quality: Redundant MultiDBSource in SupabaseSource class hierarchy
OptionsDisplay: compact → Showing less information. Comment with these commands to change:
Was this helpful? React with 👍 / 👎 | Gitar |
There was a problem hiding this comment.
@aadityesh I'm curious why do we need this connector, what is missing in the current postgres connector because of which we need to develop a Supabase connector?
|
Great question! Here's what the Postgres connector doesn't handle for Supabase: System schema filtering: Supabase projects include several internal schemas (auth, storage, realtime, extensions, graphql, supabase_functions, etc.) that are platform internals, not user data. The Postgres connector would ingest all of these as noise. SupabaseSource overrides get_schema_names() to filter them out automatically. Connection UX: Supabase has two distinct hostPort formats (direct connection and PgBouncer pooler) and enforces SSL by default. The dedicated connector surfaces this in the docs panel and defaults SSL mode to require. Discoverability: Users searching for "Supabase" would never think to look under "Postgres". A named connector with the Supabase icon makes it immediately findable. The ingestion logic fully reuses PostgresSource. The connector is intentionally thin and only adds what is Supabase-specific on top. |
Adds full Supabase connector support across all layers:
Describe your changes:
Fixes
I worked on ... because ...
Type of change:
Checklist:
Fixes <issue-number>: <short explanation>Summary by Gitar
MultiDBSourcemixin fromSupabaseSourceinmetadata.py.get_schema_namesto filter outSUPABASE_SYSTEM_SCHEMASduring metadata extraction.test_system_schemas_are_filteredintest_supabase.pyto verify schema exclusion logic.This will update automatically on new commits.