Changelog

New updates and product improvements

A quicker way to get your project's connection parameters#

We've made retrieving your project's connection parameters more easily accessible by adding a "Connect" button to each projects' homepage. This will show you some quick instructions on how to either connect to your database directly, or connect to your project via some app frameworks and ORMs. Hopefully this will help both new and familiar developers on Supabase to get to building quicker without having to jump around the dashboard to find these information.

PR: https://github.com/supabase/supabase/pull/20328

Link: https://supabase.com/dashboard/project/_

Table Editor side menu revamp#

screenshot-2023-12-22-at-13 06 32

We're in the midst of revising the UX around the table editor to ensure that controls aren't sprawled across the page despite us building more and more features - and this is just the first step of more to come. Icons for tables and views have been tweaked to be more minimal, each table has an indicator to whether RLS has been enabled or not, and the search bar has been made a tad sleeker. As an assurance, we definitely hear everyone's feedback about the changes here in particular with the search bar being less visible and are actively looking to improve the experience here! šŸ™

PR: https://github.com/supabase/supabase/pull/19977

Link: https://supabase.com/dashboard/project/_/editor

Table Editor header simplification#

Similar to the above, we've updated the layout a little for the Table Editor itself, briefly the changes include

  • Support for enabling RLS from the Table Editor
  • Showing an indication of how many policies the table has
  • Shifting refresh + data/definition toggle to the footer of the grid

All these are tiny steps to allowing us to build more functionality into the Table Editor without turning it into a control panel!

PR: https://github.com/supabase/supabase/pull/18366

Link: https://supabase.com/dashboard/project/_/editor

View auth user details#

We've had some feedback from users that they'd want a convenient way to check on their project's users from the UI rather than having to go through the Table Editor or SQL Editor to query the auth.users table, and so we've gone ahead to ship this one.

PR: https://github.com/supabase/supabase/pull/21239

Link: https://supabase.com/dashboard/project/_/auth/users

Other improvements and bug fixes#

Table Editor

  • Fix definition view showing empty result if formatting the definition throws an error (PR)

SQL Editor

  • Refocus to code editor after closing destructive query warning modal (PR)

Authentication

  • Fix policies under tables from "protected" schemas not showing RLS disabled/enabled state (PR)
    • Also show "protected" schemas notice when viewing policies of tables under those schemas
  • Clicking "Toggle feature preview" from the new RLS creation UI will show a confirmation dialog if changes were made before closing the panel (PR)

Storage

  • Renaming a file will just highlight the name of the file without the extension, similar to MacOS (PR)

SQL editor bulk deletes#

https://github.com/supabase/supabase/assets/19742402/f50eabbf-9c30-4828-8f5f-0efeef67a025

We hear you! This has been a very popular request by everyone and we're happy to make the first step to improving the UX around your SQL snippets. You can now delete your queries in bulk - gone are the days of rows full with Untitled queries šŸ˜„ Fret not, we're also aware that everyone is also requesting for better organization of snippets (specifically folders) - we're actively figuring out how best to bring that UX into the dashboard for everyone so be sure to watch this space šŸ˜‰

PR: https://github.com/supabase/supabase/pull/20927

Link: https://supabase.com/dashboard/project/_/sql/new

Query performance updates#

Unoptimized queries are a major cause of poor database performance - which is why the query performance report was initially built. We're equipping this page with better tooling, allowing users to:

  1. Search by query or role
  2. Sort results by latency
  3. Expand results to view the full query that was run

As always, if there's anything more we can do for you, feel free to give us a shout in the feedback widget up top šŸ™‚

PR: https://github.com/supabase/supabase/pull/20907

Link: https://supabase.com/dashboard/project/_/reports/query-performance

Logs Explorer face lift#

In an effort to make our UI more consistent + coherent across all products, we've revamped the Logs Explorer to look just like the SQL Editor in hopes that there's less UI for users to learn, and users can just stay focused on doing what they want to do.

PR: https://github.com/supabase/supabase/pull/21055

Link: https://supabase.com/dashboard/project/_/logs/explorer

Support for composite foreign keys in table editor#

The previous UI for managing foreign keys in the table editor had functional limitations as it assumed single column relations for foreign keys (overly simplified). We've thus shifted the management of foreign keys into the table side panel editor instead. You can manage all foreign keys across all columns on the table in one place, rather than going into each column individually to do so.

PR: https://github.com/supabase/supabase/pull/21078

Link: https://supabase.com/dashboard/project/_/editor

Other improvements and bug fixes#

Table Editor#

  • Fixed duplicating a table not saving it's description (PR)
  • Fixed viewing a reference row in the table editor from the grid not updating the selected schema if referenced row is in another schema (PR)
  • Fixed errors from adding data via spreadsheet/CSV text not surfacing as toasts (PR)

SQL Editor#

  • Fixed long errors getting cut off / not horizontally scrollable (PR)
  • Fixed deleting a query that's not saved throws an error (PR)

Logs Explorer#

  • Inserting a source will insert the value after the FROM command (PR)

Database#

  • Fixed enumerated types side panel input fields not resetting after saving (PR)
  • Fixed roles side panel input fields not resetting after saving (PR)

Misc#

  • Support page is now mobile responsive (PR)

Supavisor replaces PgBouncer for database connection pooling#

We’re deprecating PgBouncer and migrating all projects to our Supavisor connection pooler. Go grab the pooler connection string in your project’s Database Settings.

Learn more

Direct database connection resolve only to IPv6#

[ACTION REQUIRED] AWS is deprecating IPv4, so we’ve migrating your project to IPv6. If your network supports IPv6 and/or you’re using PostgREST then you don’t need to make any changes. Otherwise, you need to update any connections to Supavisor’s connection pooler. We’ve also made IPv4 addresses available to purchase (passing on the cost from AWS).

Learn more

Supabase Studio's latest enhancements#

Improved text editing in Table Editor, with Markdown previews#

We’ve made it much better for you to edit text in the Table Editor, including Markdown previews so you can preview your changes with ease. [PR]

Preview HTML email templates right from the dashboard#

We’ve added the ability to preview your HTML email templates right from the dashboard. [PR]

Preview SQL snippets for better discoverability#

We’ve added previews to your saved query snippets so you can find the one you’re looking for much faster. [PR]

More Studio updates#

Quick product announcements#

  • [AI] Added a guide on how to integrate Amazon Bedrock SDK with Supabase Vecs, our vector client for Postgres. [Guide]
  • [Auth] Improved guide on implementing Server-Side Auth for Next.js. [Guide]
  • [Auth] Fixed the cookie chunking issue in @supabase/ssr - shout out to SyntheticGoop from Mobbin. [PR]
  • [Auth] Fixed a bug in using a custom cookie name in @supabase/ssr. [PR]
  • [Edge Functions] Created a guide on custom routing. [Guide]
  • [Edge Functions] Created a guide on how to deploy via CI/CD pipelines on GitHub, GitLab, and Bitbucket. [Guide]
  • [Edge Functions] Edge Runtime now supports Deno 1.39.2. [Learn more]
  • [Edge Functions] Updated quickstart guide. [Video]

Blog Central#

How pg_graphql Works#

Learn about how we built the GraphQL Postgres extension, written in the Rust programming language, that powers our GraphQL data API.

Learn more

Getting started with Ruby on Rails and Postgres on Supabase#

Learn about how you can spin up a Rails app, integrate a Supabase database, and deploy it to Fly.io.

Learn more

Other awesome blog posts#

Greater clarity on billing breakdown#

new-billing-breakdown

We value transparency here at Supabase and that includes ensuring our users having clear visibility over what they are paying for. We've added some details in the organization billing breakdown section to show what are the "Current costs", on top of the "Projected costs" for the organization, and also added information regarding both of them in the form of tooltips. Compute credits are also shown here to ensure that those are considered in the costs calculation.

PR: https://github.com/supabase/supabase/pull/20498

Link: https://supabase.com/dashboard/org/_/billing#breakdown

SQL Editor preview snippets by hovering over them in the navigation menu#

In efforts to hopefully to make it easier to find your queries. We're aware that users are facing difficulty in managing their SQL queries, in particular when the number of queries grow really big - we're actively looking into how to make things better šŸ™ Watch this space!

PR: https://github.com/supabase/supabase/pull/20694

Link: https://supabase.com/dashboard/project/_/sql/new

Table Editor edit text cells with larger real estate#

We've seen some users reaching out to us via feedback that they'd like a larger editor to edit their text-based column cells on the table editor - we hear you! And we've also sprinkled in some Markdown preview for those who might need it šŸ™‚

PR: https://github.com/supabase/supabase/pull/20727

Link: https://supabase.com/dashboard/project/_/editor

Auth email templates preview#

image

Many users have been requesting for this, and so has the team internally - you may now preview your HTML email templates right here in the dashboard. Gone are the days having to manually check your templates elsewhere, hopefully this will make your development lives a little easier.

PR: https://github.com/supabase/supabase/pull/20681

Link: https://supabase.com/dashboard/project/_/auth/templates

Database enumerated types will show enumerated types only#

Shoutout to @Nabhag8848 for the help on this! We always appreciate and look up to any support from the community šŸ™

PR: https://github.com/supabase/supabase/pull/20576

Link: https://supabase.com/dashboard/project/_/database/types

cron schema from the pg-cron extension no longer editable via the GUI#

The schema is nonetheless still editable from the SQL editor by writing queries directly. This is in efforts to prevent directly inserting/updating rows on the pg_cron extension's cron.job table as it bypasses security checks that would've been asserted when jobs are scheduled/modified via pg_cron functions. More information here.

PR: https://github.com/supabase/supabase/pull/20664

Link: https://supabase.com/dashboard/project/_/editor

Table Editor fix inability to copy input field values in the row side panel editor#

PR: https://github.com/supabase/supabase/pull/20671

Link: https://supabase.com/dashboard/project/_/editor

Updates to the Database Settings page#

We're stream-lining the connection UI on the database settings page to be more concise and simpler in hopes to improve the UX around connecting to your project's database, and a push to using the connection pooler as a recommended practice. As always, feel free to drop us feedback via the feedback widget in the navigation bar up top - we promise that we look at every single one of the feedback that comes in.

PR: https://github.com/supabase/supabase/pull/20575

Link: https://supabase.com/dashboard/project/_/settings/database

Network Restrictions now support adding restrictions to IPv6 addresses#

PR: https://github.com/supabase/supabase/pull/20548

Link: https://supabase.com/dashboard/project/_/settings/database#network-restrictions

Network Restrictions addresses will be normalized when adding a new restriction#

image

PR: https://github.com/supabase/supabase/pull/20514

Link: https://supabase.com/dashboard/project/_/settings/database#network-restrictions

IPv4 add-on now available to allow direct connections to your database via an IPv4 address#

You may consider enabling this add-on via the dashboard if you're not planning on using our connection pooler (which still supports IPv4) and your environment does not support IPv6. More information regarding this add-on here.

PR: https://github.com/supabase/supabase/pull/20433

Link: https://supabase.com/dashboard/project/_/settings/addons

Logs Explorer support for updating and deleting queries#

PR: https://github.com/supabase/supabase/pull/20343

Link: https://supabase.com/dashboard/project/_/logs/explorer/saved

Table Editor cell dropdown for enum columns will not show NULL option if column is not nullable#

image

PR: https://github.com/supabase/supabase/pull/20474

Link: https://supabase.com/dashboard/project/_/editor

Removed deprecated LinkedIn Provider from Auth Providers#

The LinkedIn provider was scheduled to be deprecated in favour of the current LinkedIn OIDC provider with a notice set up since November 2023 and a couple of email notifications sent out to our users. The LinkedIn provider is now removed from our Auth Providers page. Please do reach out to us via support if you might have been affected by this!

PR: https://github.com/supabase/supabase/pull/20510

Link: https://supabase.com/dashboard/project/_/auth/providers

Supavisor, our connection pooler, does not support using Network Restrictions at the moment. Support for Network Restrictions will be enabled on the 24th of January 2024.

If you are not using Supavisor, this change does not affect you.

Starting the 24th, projects with existing network restrictions will have their Supavisor configuration automatically updated with the same restrictions. Changes to any project’s network restrictions will also be automatically propagated to Supavisor.

FAQ#

If direct connections to your database resolve to a IPv6 address, you need to add both IPv4 and IPv6 CIDRs to the list of allowed CIDRs. Network Restrictions will be applied to all database connection routes, whether pooled or direct. You will need to add both the IPv4 and IPv6 networks you want to allow. There are two exceptions: if you have been granted an extension on the IPv6 migration OR if you have purchased the IPv4 add-on, you need only add IPv4 CIDRs.

On February 1st 2024, AWS will start charging for IPv4 addresses. We're deprecating IPv4 for direct connections.

For more rationale behind the change, please read our blog post: Brace yourself, IPv6 is coming.

If you plan on not using our connection pooler, which still supports IPv4, and your environment does not support IPv6, consider enabling the add-on.

[!NOTE]
You do not need to enable this add-on if you use Supavisor, our new connection pooler!

The add-on is $4 per month - we're simply passing on the AWS costs to you. The add-on is available for all paid plans.

You still need to migrate away from PGBouncer even with this add-on enabled.

You can now enable the IPv4 addon in your project addon settings.

Additionally, we're working on making this even better by offering dedicated IPv4 addresses which help with IP allowlisting and network restrictions. There will be another update once dedicated IPv4 addresses are ready to use.

Column-level privileges management#

Manage column-level privileges via the dashboard. This was a long time coming with many users looking forward to the addition of this to the dashboard. Huge shoutout once again to @HTMHell and everyone for their patience while we got this through the gates šŸ™

PR: https://github.com/supabase/supabase/pull/13745

Link: https://supabase.com/dashboard/project/_/auth/column-privileges

Table editor support for copying cells via keyboard shortcut#

You can now copy cell values in the Table Editor via Cmd+c and Cmd+v (or Ctrl+c or Ctrl+v)! Hopefully this makes managing your data a little more easier.

PR: https://github.com/supabase/supabase/pull/20261

Link: https://supabase.com/dashboard/project/_/editor

Table editor prevent deleting all rows in a table through the GUI while impersonating a role#

We're disabling the "Delete rows" action in the Table Editor when you've selected all rows in a table, and are impersonating a role due to an issue which @jacob-8 found (appreciate your report! šŸ™) The issue mentioned can be found here.

PR: https://github.com/supabase/supabase/pull/20349

Link: https://supabase.com/dashboard/project/_/editor

Storage Explorer support for emptying a bucket#

PR: https://github.com/supabase/supabase/pull/20335

Link: https://supabase.com/dashboard/project/_/storage/buckets

Supavisor 1.1.6

Jan 11, 2024

A rundown of everything we shipped during Launch Week X

Day 1 - Supabase Studio: AI Assistant and User Impersonation#

Supabase Studio received a major update that reflects our commitment to a SQL-first approach and user-centric development. Awesome features like easy RLS policies with an AI assistant, Postgres Roles, User Impersonation, and much more.

Day 2 - Edge Functions: Node and native npm compatibility#

Edge Functions now natively supports npm modules and Node built-in APIs. You can directly import millions of popular, commonly used npm modules into your Edge Functions.

Day 3 - Supabase Branching#

A Postgres database for every GitHub branch. Database branching means you can have separate database instances for each feature of your application.

Day 4 - Supabase Auth: Identity Linking, Hooks, and HaveIBeenPwned integration#

We announced several new features for Supabase Auth: Identity Linking, Session Control, Leaked Password Protection, and Auth Hooks with Postgres functions.

Day 5 - Introducing Read Replicas#

This is a huge one for anyone wanting to serve data closer to the users or distribute loads across multiple databases. Learn how we implemented Read Replicas and how to use them in your projects.

More announcements from Launch Week X#

As if all that wasn't enough, we shipped even more cool stuff:

March Beta 2021

Apr 6, 2021

Launch week, Storage, Supabase CLI, Connection Pooling, Supabase UI, and Pricing. Here's what we released last month.

This is also available as a blog post and a video demo.

Supabase Storage#

Need to store images, audio, and video clips? Well now you can do it onĀ SupabaseĀ Storage. It's backed by S3 and our newĀ OSS storage APIĀ written in Fastify and Typescript. Read the full blog post.

Connection Pooling#

TheĀ SupabaseĀ API already handles Connection Pooling, but if you're connecting to your database directly (for example, with Prisma) we nowĀ bundle PgBouncer. Read the full blog post.

React UI Component Library#

We open sourced our internal UI component library, so that anyone can use and contribute to theĀ SupabaseĀ aesthetic. It lives atĀ ui.supabase.ioĀ . It was also the #1 Product of the Day on Product Hunt.

CLI#

Now you can runĀ SupabaseĀ locally in the terminal with supabaseĀ start. We have done some preliminary work on diff-based schema migrations, and added some new tooling for self-hostingĀ SupabaseĀ with Docker.Ā Blog post here.

OAuth Scopes#

Thanks to a comunity contribution (@_mateomorris and @Beamanator), Supabase Auth now includes OAuth scopes. These allow you to request elevated access during login. For example, you may want to request access to a list of Repositories when users log in with GitHub. Check out theĀ Documentation.

Kaizen#

  • You can now manage your PostgREST configuration inside the Dashboard.
  • Our website has been redesigned. Check out our new Homepage and Blog, and our new Database, Auth, and Storage product pages.
  • We refactored some of our Filter methods to make them even easier to use. Check out the Full Text Search refactor.
  • We have added several new sections to our Docs including: Local Dev, Self Hosting, and Postgres Reference docs (all still under development).

Supabase is an open source Firebase alternative. We've now been building for one year. Here's what we released last month.

This is also available as a blog post and a video demo.

Dashboard Sidebars#

We've improved the UX of our Dashboard with sidebars in every section, including the Table view, the Auth section, and the SQL Editor.

SQL Autocomplete#

Writing SQL just got 10x easier. We added autocomplete to the SQL editor, including table & column suggestions.

Auth Redirects#

Redirect your users to specific route within your site on signIn() and signUp().

Redirect your users after sign up

Learning Resources#

We've released a new Resources section in our docs, as well as two new Auth modules: GoTrue Overview and Google OAuth.

New Region#

Launch your database in South Africa.

Kaizen#

New year, new features. We've been busy at Supabase during January and our community has been even busier. Here's a few things you'll find interesting.

This is also available as a blog post and a video demo.

Count functionality#

Anyone who has worked with Firebase long enough has become frustrated over the lack of count functionality. This isn't a problem with PostgreSQL! Our libraries now have support for PostgREST's exact, planned, and estimated counts. A massive thanks to @dshukertjr for this adding support to our client library.

New Auth Providers#

We enabled 2 new Auth providers - Facebook and Azure. Thanks to @Levet for the Azure plugin, and once again to Netlify's amazing work with GoTrue to implement Facebook.

Auth Audit Trail#

We have exposed the audit trail directly in the dashboard, as well as the GoTrue logs. Great for security and debugging.

Auth UI widget#

In case our Auth endpoints aren't easy enough already, we've built a React Auth Widget for you to drop into your app and to get up-and-running in minutes.

New auth.email() function#

We added a helper function for extracting the logged in user's email address.

New Regions#

Launch your database in London or Sydney!

Launch your database in London or Sydney

Copy rows as Markdown#

You can now copy SQL results as Markdown - super useful for adding to blogs and issues.

React server components#

If you're excited by React Server components then check out the Supabase + Server Components experimental repo. https://github.com/supabase/next-server-components

Learn#

We know that Auth can be a bit daunting when you're just starting out, so we have created some intro videos to get you up to speed in no time:

Kaizen#

  • Performance: We migrated all of our subdomains to Route53, implementing custom Let's Encrypt certs for your APIs. As a result, our read benchmarks are measuring up 12% faster.
  • Performance: We upgrade your databases to the new GP3 storage for faster and more consistent throughput.

After 10 hectic months of building, Supabase is now in Beta.

This is also available as a blog post and a video demo.

Supabase is now in Beta#

We spent months working on Performance, Security, and Reliability. Read more on our Beta Page.

This image shows our Beta Page

Improve your docs inline#

Add comments and descriptions to your Tables directly from our auto-generated docs.

Table View now has realtime changes#

Any updates that happen to your database are reflected in the Table View immediately.

Table Pagination#

Our table view now has pagination - better for working with large data sets.

Supabase raised a Seed Round#

We raised $6M from Y Combinator, Mozilla, and Coatue. You can read more on TechCrunch.

Kaizen#

  • Supabase is now 26% faster in regions which support Graviton (1460 reqs/s up from 1167 reqs/s)
  • We launched a new region in Sao Paulo.
  • Postgres Array Support. You can now edit Native Postgres array items in the grid editor or the side panel.
  • We added better support for your custom Database Types.
  • Fixed some buggy keyboard commands. We're continuously improving key commands in the Table editor.

Build in a weekend, scale to millions