Notable#
- Fixes a bug which caused prepared statements to fail in
sessionmode
New updates and product improvements
Jan 11, 2024
session modeJan 11, 2024
A rundown of everything we shipped during Launch Week X
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.
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.
A Postgres database for every GitHub branch. Database branching means you can have separate database instances for each feature of your application.
We announced several new features for Supabase Auth: Identity Linking, Session Control, Leaked Password Protection, and Auth Hooks with Postgres functions.
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.
As if all that wasn't enough, we shipped even more cool stuff:
Jan 10, 2024
Previously Supavisor would start a deterministic number of connection depending on the pool size specified on the tenant or tenant user.
Now Supavisor will start 10 connections and then allocate more as needed.
It was pretty easy to over-allocate your database max_connections without fully understanding what your max_connections were and how many were currently being used by other services.
This also makes migration from PgBouncer easier as it's much safer to run multiple connection poolers at the same time as you migrate, as long as they both don't need to allocate their full database connection pools.
Also an implied behavior of Supavisor was that each user connected spins up it's own pool. Without understanding this behavior it's easy to over-allocate database connections by connecting different Posgres users to the pooler.
Jan 8, 2024
Navigating between pages if your project has many users is now less jarring.
PR: https://github.com/supabase/supabase/pull/19940
Link: https://supabase.com/dashboard/project/_/auth/users
More specifically if the table does not belong to the public schema.
PR: https://github.com/supabase/supabase/pull/20100
Link: https://supabase.com/dashboard/project/_/editor
Thank you @tranhoangvuit for helping us on this!
PR: https://github.com/supabase/supabase/pull/20023
Link: https://supabase.com/dashboard/project/_/database/types
Once again, thank you @tranhoangvuit for helping us with this!
PR: https://github.com/supabase/supabase/pull/20163
Link: https://supabase.com/dashboard/project/_/auth/policies
allow_list field on the tenant to support network restrictionsclient_heartbeat_interval on the tenant to detect zombie client connectionsThe client_heartbeat_interval helps us detect client connections from behind a load balancer which are dead but did not close the TCP connection correctly. This interval defaults to one minute but is configurable per tenant.
The allow_list field on the tenant takes a list of CIDR ranges and validates incoming connection addresses against this list. The incoming client address must be in one of these ranges to be accepted.
Also, started a Supavisor FAQ!
Further to https://github.com/orgs/supabase/discussions/18654 , the threshold for transitioning large databases to use physical backups for their daily backups is being lowered to 40GB over the next few days.
Physical backups are more performant, have lower impact on the db, and avoid holding locks for long periods of time. Restores continue to work as expected, but backups taken using this method can no longer be downloaded from the dashboard.
Over the next few months, we'll be introducing functionality to restore to a separate, new database, allowing for the perusal of the backed up data without disruption to the original project.
Please refer to supabase.com/docs/guides/platform/backups#daily-backups-process for additional details.
Dec 18, 2023
Launch Week X is just over, but the fun doesn't stop! This changelog summarizes what has been released for Studio over last week as well as other improvements that we shipped behind the scenes while Launch Week X was ongoing.
https://github.com/supabase/supabase/assets/19742402/c10ab0bc-a2be-4739-be3a-5eb6ef802af1
We've got a new RLS Editor that brings SQL front-and-center, giving developers access to the full potential of Postgres rather than abstracting it away. Accompanying it is an AI assistant that has been tuned to produce SQL for Row Level Security policies, making it fast and easy to get your policies setup the way you need them.
If you're keen to give this a spin, you may enable this feature from the Feature Previews section (which we'll cover more in the last section of this changelog) while you're in a project. This will replace the current UI for creating RLS policies with this new AI assisted RLS Editor UI.
PR: https://github.com/supabase/supabase/pull/19166
Link: https://supabase.com/dashboard/project/_/auth/policies
Run queries in Studio using different roles - this is potentially a powerful tool for testing your Row Level Security policies and determining which data each role can access. You may also impersonate a specific user in Studio by "minting" a JWT with their ID and then running the queries using that JWT.
This feature is available not just in the Table Editor, but also in the SQL Editor, GraphiQL interface, and Realtime Inspector (which we'll talk about more right in the next section below)
PR: https://github.com/supabase/supabase/pull/18945
Link: https://supabase.com/dashboard/project/_/editor
An easy way to prototype, inspect, and debug Realtime directly in the Studio. You can use the Realtime Inspector to view messages being sent and received in channels, and also filter messages by type: presence, broadcast, and database changes.
PR: https://github.com/supabase/supabase/pull/17617
Link: https://supabase.com/dashboard/project/_/realtime/inspector
Our new tool for unveiling new features - we'll release beta features as previews before making them generally available. This will help us to get features out to you faster, make it easier for you to give us feedback, and also shorten the iteration loop.
PR: https://github.com/supabase/supabase/pull/17775
Link: https://supabase.com/dashboard/project/_
Supabase Auth allows a user to initiate identity linking with a different email address when they are logged in. More information can be found in our documentation here.
PR: https://github.com/supabase/supabase/pull/19615
Link: https://supabase.com/dashboard/project/_/settings/auth
extensions schema when creating/editing columns#Database extensions that are installed through the dashboard on the database/extensions page are, most of the time, installed by default in the extensions schema (as it's the default dropdown option) unless the extension has a schema that it's required to be in, or the user changes it to be installed in another schema.
If the installed extension (e.g vector) has enumerated types, the Table Editor then can access those types for users to assign them to columns, without having the user to install them in another schema.
PR: https://github.com/supabase/supabase/pull/19580
Link: https://supabase.com/dashboard/project/_/editor
PR: https://github.com/supabase/supabase/pull/19666
Link: https://supabase.com/dashboard/project/_/settings/database
Nov 6, 2023
We've released @supabase/ssr, which makes it super easy to use cookies for storing user sessions. We’ve updated npx create-next-app -e with-supabase to use @supabase/ssr and made it compatible with Next.js 14.
pgvector is becoming the vector store of choice for developers. We’ve put it to the test against Pinecone and found that it performs better on cost and query throughput, without sacrificing accuracy.
You can now manage Storage buckets with the Supabase CLI:
supabase storage ls -r: show all buckets and objectssupabase cp -r readme.md ss:///bucket: upload local files to bucketsupabase cp -r ss:///bucket: download objects from bucketsupabase rm -r ss:///bucket: delete files from bucketManaging Storage buckets with CLI works best if there are less than 100k objects in your bucket and each of them is smaller than 20MB. Reference docs are here.
Supabase Studio is improved many times per day, here is some of what's new:
Secure your Supabase account with Multi-Factor Authentication. You can now add a time-based one-time password (TOTP), managed by apps such as 1Password, Authy, Google Authenticator or Apple's Keychain.
Oct 6, 2023
You can now broadcast Realtime messages to all your connected users by simply using a REST API call, removing the need to connect to a WebSocket. This will be especially useful with our Edge Functions!
Less than two months ago, we announced Supavisor, our own Postgres connection pooler that handles millions of connections. It’s now available in all new projects. You can continue using pgbouncer alongside Supavisor, however, it will be deprecated effective January 15th, 2024.
With IPv4 addresses becoming increasingly scarce and cloud providers starting to charge for it, we won’t be assigning IPv4 addresses to Supabase projects from January 15th, 2024. [db.projectref.supabase.co](http://db.projectref.supabase.co) will start resolving to a IPv6 address instead. If you plan on connecting to your database directly, you must ensure that your network can communicate over IPv6. Supavisor will continue to return IPv4 addresses, so you can update your applications to connect to Supavisor instead.
Introducing the latest addition to our Wrappers lineup: Airtable! You can use it to query data from your Airtable bases and tables directly from Postgres:
_10select * from my_airtable_table;_10# data from Airtable
Read the Airtable Wrapper docs Learn about Wrappers
Supabase Studio is under constant improvement, here is what’s new:
Added HNSW support inside Vecs, our Python library for pgvector. Vecs automatically creates schemas and collections inside your database, making it one of the easiest ways to get started with pgvector.
supabase-js in these environments to fall back to use this default storage mechanism now. Upgrade to supabase-js v2.36.0 or gotrue-js v2.54.0 for the latest changes. [PR]Deno.serve(req => new Response("ok")). No http standard library dependency needed. (Thanks eifr for contributing with updated CLI templates. [PR]Sep 8, 2023
pgvector v0.5.0 adds Hierarchical Navigable Small World (HNSW), a new type of index that ensures lightning-fast vector searches, especially in high-dimensional spaces and embeddings.
We are all about open source collaboration, and Hugging Face is one of the open source communities we admire most. That’s why we've added Hugging Face support in our Python Vector Client and Edge Functions (Javascript).
The CLI received some serious upgrades including observability tools, streamlined backups, and enhanced migrations. But that's not all – the big game-changer is the introduction of Supabase branching which we’re rolling out to selected customers.
Supabase Studio brings some huge new features, including AI SQL editor, Schema diagrams, Wrappers UI, and a lot more!
With the release of OAuth2 applications, we've made it easier than ever for our partners to extend the Supabase platform with useful tooling.
The New Supabase x Vercel integration streamlines the process of creating, deploying, and maintaining web applications with several enhancements. Plus, it fully supports the App Router in Next.js ▲
Supavisor is a scalable, cloud-native Postgres connection pooler written in Elixir. It has been developed with multi-tenancy in mind, handling millions of connections without significant overhead or latency. We’re rolling it out to every database on our platform.
Launch Week is an event for our community, so it’s a good time to look back at what happened in the last months (spoiler: a lot).
HIPAA and SOC2 Type 2
Supabase is officially SOC2 Type 2 and HIPAA compliant! In this write-up, we offer insights into what you can expect if you’re planning to go through the same process.
Shipping doesn’t stop here at Supabase! We are back in full shipping mode and already thinking about the next LW. These are some of the things we’ve been working on: