Changelog

New updates and product improvements

WebAssembly Foreign Data Wrapper (Wasm FDW) is now on public alpha from Wrappers version >= 0.4.1. This release also contains two new Wasm FDWs: Snowflake and Paddle.

What is Wasm FDW?

In previous versions of Wrappers, all the foreign data wrappers need to be built into wrappers extension. The develop/test/release cycle is time consuming and fully on Supabase teams. To speed up this process and give more flexibility to community, we're adding Wasm to the Wrappers framework. With this new feature, users can build their own FDW using Wasm and use it instantly on Supabase platform.

Another benefit is because of the improved modularity, each FDW can be updated and loaded individually. New FDWs release will be quicker than before. Also, wrappers extension size won't be bloated as more FDWs added in.

What are the changes?

There is no changes from end-users' perspective, all existing native FDWs are still same. The Wasm FDW only brings a new way of developing and distributing FDW.

How to use it?

Visit Database -> Platform -> Wrappers on Supabase Studio, enable Wrappers and choose Snowflake or Paddle, then create foreign tables.

Visit Snowflake Wasm FDW docs or Paddle Wasm FDW docs for more details.

How to develop my own Wasm FDW?

To build your own Wasm FDW, visit the example project to get started.

We have several updates and new features to share with you this month. Dive in to see what’s new from Supabase.

Edge Runtime Inspector Feature (CLI)

We’ve introduced the Edge Runtime Inspector, a powerful new feature in the CLI that helps you inspect and debug edge functions more efficiently. Pull Request

View and Abort Running Queries (Supabase Studio)

You can now view and abort queries currently running on your database (primary or replica) in the Supabase Studio SQL Editor. This feature gives you greater control and flexibility in managing your queries. Pull Request

Logging Integration With The ELK Stack

The Logflare to Elastic filebeat backend has been merged. This integration enables log drains to ELK stacks, providing more robust logging and monitoring capabilities. Documentation

Interpreting Supabase Grafana I/O Charts

We have published a guide on how to use the Supabase I/O charts to identify when you may need to scale your database, optimize your queries, or spin up a read replica. Github Discussion

Breaking Change to Supabase Platform Access Control

On July 26, 2024, Supabase will be making breaking changes to our platform’s access control system. Developer and Read-Only roles will no longer have write access to an organization’s GitHub and Vercel integrations. These changes will not affect existing integrations that are in place. Github Discussion

Change to Retention of Paused Free Tier Projects

Starting June 24, 2024, paused Free Tier projects are restorable for 90 days. There is a grace period where all paused projects will continue to be restorable until September 22, 2024. Github Discussion

Billing Improvements

We’ve made significant improvements to our billing system to help you better understand compute pricing. These changes aim to prevent unexpected charges and provide clarity on “Compute Hours.” Github Discussion

Quick product announcements

[Edge Functions] We’ve implemented some key updates to Edge Functions, including adding Deno 1.43 support [Github Discussion]

New Engineering and Troubleshooting Guides

Made with Supabase

  • Dribble - Flutter NBA name guess game available for iOS and Android [Website]
  • EvalHub - an open-source platform for researchers to discover AI evaluation metrics [Website]
  • SVGPS - Removes the burden of working with a cluster of SVG files by converting your icons into a single JSON file [Website]
  • CleanCoffee - Lean coffee discussion utility where you can create boards and share with friends [Website]
  • Rewritebar - Improve your writing in any macOS application with AI assistance. Quickly correct grammar mistakes, change writing styles or translate text [Website]

Community highlights

  • Building a Basic Social Network with Remix and Supabase [YouTube]
  • Next Level Supabase Techniques For Your Production App! [YouTube]
  • Building a Local-First React Native App with PowerSync and Supabase [YouTube]
  • Build a Fullstack Job Portal App with Next.js 14, Tailwind, Supabase, Stripe, Clerk [YouTube]
  • Generate Vector Tiles with PostGIS [Blog] [YouTube]

Supabase HTTP APIs are no longer using DigiCert as the root CA. This should have no impact on the vast majority of environments, as the other CAs in use are essentially universally trusted.

If your client environment only trusts certificates signed by DigiCert, you could be impacted. We're currently using Cloudflare to serve our HTTP APIs, and recommend ensuring that any client environment that only trusts a specific subset of CAs trusts all of the CAs Cloudflare uses.

In an effort to simplify pricing, we are going to remove usage-based billing for the number of Edge Functions in your projects. Instead, we are going for a bigger quota across all plans at no extra costs. We picked the limits to ensure all customers are benefiting from this change.

Free Plan customers can now create 25 instead of 10 functions without the need to upgrade to a paid Plan.

Free PlanPro PlanTeam Plan Enterprise Plan
Before10 included100 included, then $10 per additional 100100 included, then $10 per additional 100Custom
After25 included500 included1000 includedUnlimited

This change is effective immediately and in case you were previously exceeding the number of included functions on a paid Plan, you will no longer be charged for it.

These breaking changes are rolling out on July 26, 2024 and affects all organizations that have members assigned either the Developer or Read-Only roles.

All Supabase organizations invite users and assign them to one of the following roles as part of membership to an organization:

  • Owner
  • Administrator
  • Developer
  • Read-Only (available only on Team and Enterprise plans).

Depending on the role, members are authorized to access a specific set of the organization's resources, such as permission to create a new project or change the billing email.

We recently re-evaluated the access that the Developer and Read-Only roles have and decided to implement changes to restrict them on a couple of resources to improve your organizations' security.

On July 26, 2024, we will turn off certain access that the Developer and Read-Only roles currently have to your organization's resources. The following table is to illustrate the breaking changes that will be going into effect:

ResourceActionDeveloperRead-Only
Integrations1
Authorize GitHub-✅ → ❌✅ → ❌
Add GitHub Repositories-✅ → ❌✅ → ❌
GitHub ConnectionsDelete✅ → ❌2
Vercel ConnectionsUpdate✅ → ❌2
Delete✅ → ❌2

You can learn more about our Platform Access Control here: https://supabase.com/docs/guides/platform/access-control.

If you have any questions or concerns please contact support.

Footnotes

  1. Existing integrations will continue to work.

  2. Role's permission to the resource and action will remain the same. 2 3

Option to use a dedicated api schema for your project

By default, the public schema is used to generate API routes for your database. In some cases, it's better to use a custom schema - this is important if you use tools that generate tables in the public schema to prevent accidental exposure of your data.

The dashboard supports this workflow through 2 options: either at the project creation step under "Security Options", or in the project's API settings after your project has been created. More information about this workflow in our documentation here!

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

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

Other bug fixes and improvements

SQL Editor

  • Text area under AI assistant is now expandable for better UX with multi-line prompts (PR)

Database

  • Added placeholder for function body editor section to hint the syntax if language selected is plpgsql (PR)

Logs Explorer

  • Fixed logs explorer placeholder query for local set up (PR)

Supabase support for Postgres 13 is being deprecated as of 15th July 2024, and support for it will be fully removed on 15th November 2024.

All Postgres 13 projects should be upgraded to Postgres 15 before 15th November, 2024.

Any projects still on Postgres 13 after the 15th of November 2024 will be automatically upgraded to Postgres 15. If any Postgres extensions or functions are in use that cause the upgrade process to fail, a backup will be taken instead, and the project will be paused.

Postgres 15 comes with numerous features, bug fixes and performance improvements. Check out the announcement blog posts to find out what each version introduces.

Deprecation Timeline

  • 15th July: All users are notified via email about Postgres 13 Deprecation. Users can self-serve upgrade to Postgres 15 from our dashboard.
  • 30th September: Users are reminded of impending deprecation via email.
  • 30th October: Users are sent a final email reminder.
  • 15th November: Any remaining projects on PG13 start getting migrated to PG15 (or paused, if there are upgrade issues).

Option to disable Data API when creating projects

Screenshot 2024-06-24 at 6 58 14 PM

You can now opt to disable the Data API when creating a new project under a section called "Advanced Options", such that you will only be able to connect to your database via connection string. Note that this setting can be subsequently updated again in the project's API settings if and when you want to connect your project via the client libraries.

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

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

Authorization for Realtime is now available!

You can now control client access to Realtime Broadcast and Presence by adding Row Level Security policies to the realtime.messages table! Read more about through our documentation here!

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

Link: https://supabase.com/dashboard/project/_/realtime/inspector\

Optimizations for table editor row count query

image

Previously, the Table Editor on the dashboard would run a select count(*) from table query to retrieve the number of rows in the table and display it in the editor (this also supports the pagination logic as well). However, understandably this query can be resource intensive and expensive if the table in question is particularly large. As such, we've chucked some optimizations around this logic to only retrieve the exact row count if the table has less than 50k rows, otherwise we'll retrieve an estimate of the row count instead. You'll still be able to get the exact row count but on demand instead.

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

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

Support showing all entity types in the database/tables page

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

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

Other improvements and bug fixes

General

  • More granular project statuses for pausing and restoration (PR)
  • Support filtering projects by status (either active or paused) (PR)

Account

  • Added instructions on how to change your email for your account (PR)

Storage

  • Fix uploading a folder to the storage explorer causes all files to be uploaded in a flat list with the folder name prefixed to the file name (PR)

Table Editor

  • Optimized table editor select query when cutting off column values (PR)

SQL Editor

  • Added labels and grid to SQL editor charts (PR)

Greater clarity on costs when creating new projects

Screenshot 2024-06-14 at 17 06 16

One of our bigger papercuts in terms of billing is customers not understand compute pricing and that they cannot launch unlimited projects for $25 in total per month. Customers also get confused with "Compute Hours" on their bill. The changes aim to alleviate any "surprise" compute charges and serves as kaizen improvement.

Changes involved are only applicable to paid plan organizations, as it's irrelevant for free plan organizations.

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

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

Address Table Editor "resorting" of rows when rows are updated and no active sorts applied

If you've tried updating a table via the Table Editor without an active sort in place, you'd have noticed that the rows seem to re-sort themselves, specifically the row that you were updating. While this is because rows are returned in an unspecified order without a sort clause from the select query, it certainly must've been a confusing UX. We've alleviated this problem by setting a default sort by clause when reading the table via the Table Editor, which will get overriden once you've set a sort via the UI.

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

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

Other improvements and bug fixes

General

  • Greater granularity in project statuses, specifically for when project is restoring, when restoring failed and when pausing failed (PR)

Database

  • Table searching is now case in-sensitive (PR)
  • Add duplicate table CTA (Similar to the Table Editor) (PR)

SQL Editor

  • Auto limit fix for when SQL query has "fetch first n rows only" (PR)
  • Preserve whitespace in results (PR)

Query Performance

  • Support index advisor for queries from Postgrest (PR)

Org Billing

  • Users can now only manage a single tax ID instead of multiple (PR)

This only impacts projects on the Free Plan because projects in any of the paid plans cannot be paused.

Beginning June 24, 2024, we're updating some project pause/restore behavior:

  • paused Free projects are restorable for 90 days following their pause date
  • any Free projects paused before June 24 will be able to restore at any point before September 22, 2024 so they have a full 90 days from when this announcement is made
  • once a project is no longer restorable, the "restore" option is replaced with an option to download the latest logical backup, taken right before the project is paused, and all Storage objects

This change is being made to enable us to maintain high development velocity on the platform. Previously, paused projects could be restored indefinitely. That creates the need for the platform to remain fully backwards compatible with outdated versions of Postgres and associated extensions. The update allows us to provide a reasonable pause/restore window while gaining the ability to evolve the platform.

Some more relevant docs here

Build in a weekend, scale to millions