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:
Dec 1, 2020
We've been building for 9 months now, are we're getting even closer to Beta.
This is also available as a blog post and a video demo.
You can now add users manually from your dashboard.
You can also perform admin functions on existing users - send password reset emails, magic links, and delete users.
Last month we announced an improved SQL Editor, and this month we've taken it even further. The SQL Editor is now a full Monaco editor, like you'd find in VS Code. Build your database directly from the browser.
We added a Status Page which tracks the uptime and latency of the Supabase platform.
Nov 3, 2020
We're now 8 months into building Supabase. We're focused on performance, stability, and reliability but that hasn't prevented us from shipping some great features.
This is also available as a blog post and a video demo.
In the lead-up to our Beta launch, we've released supabase-js version 1.0 and it comes with some major Developer Experience improvements. We received a lot of feedback from the community and we've incorporated it into our client libraries for our 1.0 release.
Check out the blog post to learn more.
Although it was only intended to be a temporary feature, the SQL Editor has become one of the most useful features of Supabase. This month we decided to make give it some attention, adding Tabs and making it full-screen. This is the first of many updates, we've got some exciting things planned for the SQL Editor.
For the heavy table editor users, we've gone ahead and added a bunch of key commands and keyboard shortcuts so you can zip around and manipulate your tables faster than ever.
One of the most requested Auth features was the ability to send magic links that your users can use to log in. You can use this with new or existing users, and alongside passwords or stand alone.
Oct 7, 2020
This is also available as a blog post.
We've released OAuth logins! You can now enable third-party logins on your app for Bitbucket, GitHub, GitLab, or Google.
You can duplicate your tables, just like you would inside a spreadsheet.
Extensions are easier to use. You can enable Postgres extensions with the click of a button.
The SQL editor now stores your query history in your browser. You can also save your favorite queries to run later!
Supabase was given access to GitHub Discussions! This is the place for you to ask questions or show off what you've built with Supabase.
gotrue-js TypeScript library for interacting with Netlify's GoTrue server. This will soon be bundled into supabase-jspostgrest-js library to TypeScript, and it will soon be bundled into supabase-jsSep 6, 2020
This is also available as a blog post.
We're 6 months into building our hosted database platform and we've made some major improvements to our auth system and table view.
Set up tables and columns directly from the table view.
You can now invite team members to your organisation.
You can now enable Email Confirmations for new users. This can be toggled on or off and the template for this email can be edited via the dashboard.
The biggest communty contribution to date, @thorwebdev added Typescript support to Supabase. He even live streamed the process.
We have a number of small improvements:
Aug 5, 2020
This is also available as a full blog post with videos.
After 5 months of building, we're releasing one of our most anticipated features: Supabase Auth.
This month, we're ecstatic to announce a feature we think you'll love: Supabase Auth. It's too big to fit into a monthly update so look out for a full update in the next few days.
We want to make it easy to get started adding Auth to your app, so we've released a simple example and a video tutorial which shows you how to implement a basic auth system using PostgreSQL's Row Level Security.
We've made some massive improvements to our Table Editor that we're excited to share.
Last month we made it easy to drill into your table relationships. This month, we make it possible to drill multiple levels deep.
We're making it easier to manipulate your data. Next month, you'll be able to add and remove columns directly from the Table view.
If you launch a new Supabase project, you'll have access to several new Postgres extensions:
We have a number of small improvements:
or filter to the client libraryJul 2, 2020
This is also available as a full blog post with videos.
We're now 4 months into building Supabase, which means another major update. Here's a few things we think you'll love in this release.
We're sometimes asked how we will make Postgres as simple as Firebase, since Postgres is a relational database. This month we're making our first steps to prove that relational databases can be even easier to use than document stores. We're releasing an excel-like editing interface which can drill down into your relational data.
Postgres is an amazing database, giving the flexibility of a document store with the power of a RDBMS. If you use JSON data in Postgres, then we want to make that easy too. Supabase detects when your column is JSON or JSONB, and provides an easy way to edit and view your data. More improvements coming soon for this feature!
If you noticed a bit of latency on Supabase, it's because your projects were previously set up in Singapore. It was always our intention that you'd be able to choose your database region, and this month we've delivered it. In the next releases we'll even allow you to go multi-region, instantly replicating your database close to your customers.
A guiding principle at Supabase is zero lock-in. So this month we are exposing your daily database backups on the dashboard, giving you a simple way to migrate off Supabase. We have a lot more to build in this space (WAL-G!), so watch this space.
