Skip to content

Update UI to de-couple ETL replication context from Analytics Buckets#40645

Merged
joshenlim merged 9 commits intomasterfrom
joshen/depr-272-analytics-bucket-hide-etl-flow-prioritise-a-create-table
Nov 21, 2025
Merged

Update UI to de-couple ETL replication context from Analytics Buckets#40645
joshenlim merged 9 commits intomasterfrom
joshen/depr-272-analytics-bucket-hide-etl-flow-prioritise-a-create-table

Conversation

@joshenlim
Copy link
Member

@joshenlim joshenlim commented Nov 20, 2025

Context

We're scoping down the technicalities of Analytics Buckets by de-coupling it from ETL replication (so Analytics Bucket will just be about the buckets themselves), which helps us simplify a lot of the complexities around the UI + makes the UI behaviour a lot more deterministic and fault tolerant.

Main user flows covered will be:

  • Creating namespaces/tables
  • Viewing data from tables
  • Deleting namespaces/tables

The decision of whether to fully de-couple ETL from Analytics Bucket is still in the air, so decided to leave all of the relevant code as is for now, in case we'll revisit them again down the road. On that note though, the code might be a little messy but I hope to clean things up bit by bit in subsequent PRs.

Changes involved

Our primary CTA of creating tables in a bucket will be to do so through an external Iceberg client - so the empty state is a set of instructions for Pyiceberg which should work out of the box.
image

The sample snippet here will create a namespace called default and a table events within that namespace. (There's no automatic polling so you'll need to refresh the browser here)
image

You can opt to view the data in the Iceberg table via Postgres by following the "Query from Postgres" which then explains + prompts you to do so via Foreign Data Wrappers. At this step you just need to specify which schema you'd want to have the foreign tables in.
image

This then creates the foreign tables and shows you how you can view the data of your iceberg table from
image

From here that's pretty much it in terms of functionality. You can then choose to delete individual iceberg tables (which also cleans up any associated foreign tables), or delete the whole namespace (which will also clean up any associated foreign tables for iceberg tables in the namespace)

Past the empty state, the "Create table" CTA then shifts up to the header section (as per Vector Buckets), where clicking just opens the set of instructions within a Dialog. (The relevancy of these instructions at this state is up for future debate but good for now)

Known issues

  • We're using the temporary API keys for all iceberg related requests, and it's currently a known issue that we'll run into 403s rather often (Especially when deleting namespaces / tables). Currently being discussed with Auth team, so if you run into any network request issues because of this, best bet is to just try again for now. (e.g Refresh browser)

To test

  • Validate that the empty state instructions work, let me know if there's any confusion
  • Generally, validate how the UX feels like, if there's any confusion, any copy writing improvements

@joshenlim joshenlim requested a review from a team as a code owner November 20, 2025 11:09
@supabase
Copy link

supabase bot commented Nov 20, 2025

This pull request has been ignored for the connected project xguihxuzqibwxjnimxev because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@vercel
Copy link

vercel bot commented Nov 20, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
studio-self-hosted Ready Ready Preview Comment Nov 21, 2025 7:44am
studio-staging Ready Ready Preview Comment Nov 21, 2025 7:44am
6 Skipped Deployments
Project Deployment Preview Comments Updated (UTC)
studio Ignored Ignored Nov 21, 2025 7:44am
cms Skipped Skipped Nov 21, 2025 7:44am
design-system Skipped Skipped Nov 21, 2025 7:44am
docs Skipped Skipped Nov 21, 2025 7:44am
ui-library Skipped Skipped Nov 21, 2025 7:44am
zone-www-dot-com Skipped Skipped Nov 21, 2025 7:44am

@github-actions
Copy link
Contributor

github-actions bot commented Nov 20, 2025

🎭 Playwright Test Results

passed  46 passed

Details

stats  46 tests across 7 suites
duration  1 minute, 42 seconds
commit  6c70c57

Copy link
Contributor

@charislam charislam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't seem to get the default main.py script working. Tried several times with two different buckets and I keep getting a 403 on /storage/v1/iceberg/v1/config

joshenlim and others added 5 commits November 21, 2025 15:17
…lyticsBucketDetails/NamespaceWithTables/TableRowComponent.tsx

Co-authored-by: Charis <26616127+charislam@users.noreply.github.com>
Copy link
Member

@alaister alaister left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

  • Tested as instructed on preview

@joshenlim joshenlim merged commit 2209d72 into master Nov 21, 2025
22 checks passed
@joshenlim joshenlim deleted the joshen/depr-272-analytics-bucket-hide-etl-flow-prioritise-a-create-table branch November 21, 2025 08:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants