Changelog

New updates and product improvements

Spam validation check now added to Auth templates#

We've now added a spam validation checker for your email templates in the Auth section of the dashboard! This is powered by SpamAssassin and is in hopes to assist you with writing email content in a way to avoid being marked as spam by email clients.

You will still be able to save your email templates regardless of whether you're using the built-in SMTP provider or a custom SMTP provider. However, we highly recommend fixing these warnings since they can affect email deliverability.

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

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

Other improvements and bug fixes#

Authentication

  • Hovering over auth logs for a user will show relative time info (PR)
  • Allow sorting on last signed in at for users (PR)
  • Allow selection of functions that return void for auth hooks (PR)
  • Allow updating of SMS rate limit irregardless of SMS autoconfirm being enabled (PR)

Storage

  • Fix developer roles not being able to update buckets (PR)

Database

  • Fix create index "Select a table" combobox not using search input (PR)
  • Support opening tables in table editor from the schema visualizer (PR)

Logs & Analytics

  • Fix filters for log reports (PR)

Edge Functions now support importing NPM packages from private registries. You will need to deploy your functions using Supabase CLI version v1.207.9 or above to make use of this feature.

How to use packages from private registries#

Create a .npmrc file within supabase/functions. This will allow you to import the private packages into multiple functions. Alternatively, you can place the .npmrc file directly inside supabase/functions/function-name directory.

Add your registry details in the .npmrc file. Follow this guide to learn more about the syntax of npmrc files.


_10
@myorg:registry=https://npm.registryhost.com
_10
//npm.registryhost.com/:_authToken=VALID_AUTH_TOKEN

After that, you can import the package directly in your function code or add it to the import_map.json (https://supabase.com/docs/guides/functions/import-maps#using-import-maps).


_10
import MyPackage from "npm:@myorg/private-package@v1.0.1"
_10
_10
// use MyPackage

To test your function locally, run supabase functions serve. When you're ready, you can deploy it to hosted platform by running supabase functions deploy function-name

Disk size usage section under organization settings#

Screenshot 2024-10-13 at 03 21 37

We've added a new disk size section for paid plans to give a quick overview of each project under the organization and their respective disk sizes for better visibility over the corresponding charges. This is only an initial iteration for this UI, we do plan to add historical statistics and more to improve visibility and transparency over what you're using and what you're paying for πŸ™‚

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

Link: https://supabase.com/dashboard/org/_/usage

Bug fixes and other improvements#

Table Editor

  • Fix views filtering in table editor for local dashboard (PR)
  • Fix exporting a table that contains columns of enum array types to CSV (PR)

SQL Editor

  • Fix snippets not loading for local dashboard (PR)

Authentication

  • Support searching by properties when viewing a user's raw JSON (PR)

We’ve announced a Vercel partnership, we’re hosting an AI hackathon with our friends at Y Combinator, and we raised $80M. Let’s dive right in:

Supabase + Vercel Partnership#

We released an official Vercel integration. You can quickly spin up Supabase projects from Vercel’s dashboard, with full support for Vercel templates like Supabase Starter and integrated billing through Vercel.

Full announcement

Revamped Users Management UI in Studio#

Our Frontend team revamped the Auth section in Studio. You now have access to more user details, ban-user functionality, authenticated logs grouped by user, sort columns based on your preference, and a few other features requested by the community.

Changelog

Edge Functions are 2x smaller and boot 3x faster#

The Edge Functions team has reduced function sizes by half and boot times by 300% in most cases when importing npm modules by lazy evaluating dependencies and reducing package section sizes as well as switching to the xxHash-3 hash algorithm.

Blog post

Supabase AI Hackathon at Y Combinator#

On November 22 + 23 we’re hosting an AI-focused hackathon at Y Combinator in San Francisco. We’re welcoming anyone to apply and build the next wave of AI applications. The panel of judges will include our founders, Paul Copplestone and Ant Wilson, and YC partners.

Full announcement

Launch Week 12 Hackathon Winners#

Many high quality projects were submitted for LW12’s hackathon but our panel of judges selected Whisker Jam as Best Overall Project because of its cuteness (who doesn’t love cats), funky musical instruments, and multiplayer functionality. Congratulations πŸ‘ to @n0t_buddy who will receive the prize of mechanical keyboards.

Full list of winners | All the submissions

Quick Product Announcements#

  • [Dashboard] Schema Visualizer nodes are now persisted [Changelog]

  • [Edge Functions] Serverless image transformations with ImageMagick (via Wasm) [Docs]

  • [Infra] Projects on compute instances XL and larger can create up to 5 Read Replicas [Changelog]

  • [Storage] XHTML responses only work with a Custom Domain [Changelog]

  • [Billing] Paid projects have an upgrade from Nano to Micro instance at no additional cost [Docs]

Community Highlights#

  • Using Cursor to have AI build out a social network app powered by Next.js and Supabase [Video]
  • Wordle Teams. Compete with friends, keep score to establish bragging rights in the ultimate app for Wordle enthusiasts [Repo]
  • Next.js + TanStack Query + Supabase + Supabase Cache Helpers: a detailed tutorial on how to implement this stack in your application [Article]
  • Supabase Auth: The Ultimate Authentication Solution for Cross-Platform Apps using React Native [Article]
  • How to build local-first Expo Apps [Video]

Supabase $80 Million Series C#

We raised $80 million Series C in an up round that brings our total funding to $196 million. This round was led by Peak XV and Craft Ventures with participation by Avra Capital and previous investors Coatue, Felicis, and Y Combinator.

Full announcement


This discussion was created from the release Developer Update - September 2024.

We improved the information architecture (IA) on our docs site.

Why?#

We’d outgrown the IA! As we added more features and guides, some sections grew to contain a miscellaneous collection of things that don’t belong together. They just had no better place to go.

With the new IA, it should be easier to find what you’re looking for.

Summary of changes#

  • Two top-level menus, Build and Manage, to replace the old Build menu
  • Build menu:
    • Local development / CLI is now primarily about local dev, CI/CD information has been moved to Deployment
    • Information on both Vercel and Supabase integrations now moved to Integrations section
    • New Deployment section covers everything needed to get your changes onto hosted Supabase (including branching, Terraform, CI/CD, and production checklists)
  • Manage menu:
    • Platform management (formerly β€œPlatform”) trimmed down to contain information about configuring your Supabase platform (including account management, project permissions, and billing)
    • New Monitoring and troubleshooting section contains troubleshooting guides and information on logging and telemetry

Improved users management UI#

One of our oldest pages on the dashboard has finally gotten an upgrade! πŸ˜„ We're taking the first steps towards a pattern of visualizing table data with a data grid, with the Auth users page being our first contender. Couple of stuff that we'd love to highlight that were improved and introduced:

Click on users to grab more details about them in a side panel (PR)#

Added a ban functionality within the danger zone at the bottom of the panel#

Search now also supports filtering for providers (PR)#

Columns can be sorted based on your preference (and will be persisted in local storage)#

https://github.com/user-attachments/assets/3f7890ca-04cf-4cb9-8046-63b3db9b6eb9

You can also now toggle column visibility, as well as apply sorts on columns#

View authentication logs of the user right from the panel (PR)#

These tooling should now allow you to customize the auth users view that best fits your workflow, and we definitely hope to keep making this better so as always, feel free to drop us any feedback good or bad, any bugs via the widget at the top right corner of the dashboard πŸ™‚ We say this all the time and its a promise that we've kept - we look at every feedback that comes in πŸ€™

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

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

Timestamp helper for Logs Collections#

https://github.com/user-attachments/assets/80541e0a-4571-4193-ab9e-8d9af4b63d55

Hovering over the date/time string in the left most column of a row in any logs collection will now show a helper tooltip that will depict the time in 4 different formats: UTC, Local TZ, Relative time, and raw numerical timestamp. This will hopefully help with interpreting timestamps much easier and faster and alleviate any confusion around timezones! πŸ™‚πŸ•°οΈ We're also planning to use this pattern across the whole dashboard too wherever time data is involved πŸ’ͺ🏻

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

Link: https://supabase.com/dashboard/project/_/logs/edge-logs

Other bug fixes and improvements#

General

  • Added breakdown of security issues dropdown on project home page (PR)

Organization Settings

  • Fixed tooltip not showing up for users with project scoped roles, to show which projects they have roles for (PR)

Table Editor

  • Autofocus on search input when navigating to table editor (PR)
  • Improved column type dropdown with searching for types (PR)
  • Improved datetime editing in table editor grid + support for setting these column values to NULL (PR)

Edge Functions

  • Added validations for adding/removing secrets on SUPABASE_ prefixed secrets (PR)

Reports

  • Added database connections charts to database reports (PR)

Summary#

Returning XHTML responses from the Data APIs and Edge Functions is now only allowed if a Custom Domain is being used.

Additionally, you can now serve HTML and XHTML responses from the Storage service as well, if a Custom Domain is being used.

If your use-case requires serving these content types, you can continue to do so by using a Custom Domain add-on.

Affected projects have been notified in advance.

Background#

HTML responses (i.e. content-types that can be directly rendered by browsers) were historically disallowed for projects not using a custom domain, in order to prevent abuse on the shared domains used for provisioning Supabase projects. This change updates this behavior to process XHTML responses in the same manner, due to the same rationale.

These breaking changes are rolling out on October 15, 2024 and affects only organizations on the Enterprise plan that have implemented project permissions with members assigned the Developer role.

Supabase launched new granular access control for Enterprise organizations so that its members are given access to specific projects instead of the entire organization. You can check out our Launch Week 12 announcement to learn more.

We recently re-evaluated the access that the Developer role has and decided to implement changes to restrict them on a couple of resources to improve your project's security.

On October 15, 2024, we will turn off certain access that the Developer role currently has to your project's resources. The following table is to illustrate all of the breaking changes that will be going into effect:

ResourceActionDeveloperRead-Only
API Configuration
JWT SecretGenerate newβœ…Β β†’ ❌❌1
API SettingsUpdateβœ…Β β†’ ❌❌1
Auth Configuration
Auth SettingsUpdateβœ…Β β†’ ❌❌1
Advanced SettingsUpdateβœ…Β β†’ ❌❌1
Storage Configuration
Upload LimitUpdateβœ…Β β†’ ❌❌1
S3 access keysCreateβœ…Β β†’ ❌❌1
Deleteβœ…Β β†’ ❌❌1
Edge Functions Configuration
SecretsCreateβœ…Β β†’ ❌❌1
Deleteβœ…Β β†’ ❌❌1
Authentication
ProvidersUpdateβœ…Β β†’ ❌❌1
Rate LimitsUpdateβœ…Β β†’ ❌❌1
Email TemplatesUpdateβœ…Β β†’ ❌❌1
URL ConfigurationUpdateβœ…Β β†’ ❌❌1
Logs & Analytics
Events CollectionsCreateβœ…Β β†’ ❌❌1
Updateβœ…Β β†’ ❌❌1
Deleteβœ…Β β†’ ❌❌1
Warehouse Access TokensCreateβœ…Β β†’ ❌❌1
Revokeβœ…Β β†’ ❌❌1

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. Role's permission to the resource and action will remain the same. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12 ↩13 ↩14 ↩15 ↩16 ↩17 ↩18

Deployment of up to 5 read replicas now supported on larger compute sizes#

Previously, each project could only deploy up to 2 read replicas, but we're now raising this limit to 5 for projects on larger compute sizes (XL and above).

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

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

Catch queries that contains an update query without a where clause in SQL Editor#

Another effort to safeguard against running queries with unintended side effects - this time, we're checking for UPDATE queries without a WHERE clause - this check kicks in prior to running the query. We've also consolidated this warning with our existing warning against destructive operations to catch both cases if they exist in the same query.

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

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

Other bug fixes and improvements#

General

  • Support querying a table via CMDK by opening the SQL editor (PR)
  • Update Supabase Assistant with GPT 4o from 3.5 (PR)

Table Editor

  • Improve pagination input field, by only navigating to page on Enter (PR)

SQL Editor

  • Fix inability to share queries that are under favorites (PR)
  • Fix moving snippets into folders (PR)

Storage Explorer

  • Fix to prevent continuously retrying when a file of an invalid mime type is uploaded (PR)

Auth

  • Support searching by UID (PR)
  • Add confirmation modal when closing tab with unsaved changes on templates page (PR)
  • Support adding/removing multiple redirect URLs (PR)

Database

  • Fix index page crashing when creating an index on a table with no columns (PR)

Logs Explorer

  • Layout shift and scroll fixes (PR)
  • Prevent use of WITH, ILIKE or wildcards (PR)

The initial launch of Read Replicas allowed for up to two Read Replicas per project.

The limit for projects on XL compute add-ons and larger has now been raised to 5 Read Replicas per project.

Projects on compute add-ons smaller than XL are still allowed up to 2 Read Replicas per project.

Build in a weekend, scale to millions