diff --git a/apps/docs/components/AuthProviders.tsx b/apps/docs/components/AuthProviders.tsx
index 1c1950ff87c..c9b1ae80263 100644
--- a/apps/docs/components/AuthProviders.tsx
+++ b/apps/docs/components/AuthProviders.tsx
@@ -7,13 +7,13 @@ export default function AuthProviders({ type }: { type: string }) {
return (
<>
-
+
{filterProviders.map((x) => (
diff --git a/apps/docs/content/guides/ai/vector-columns.mdx b/apps/docs/content/guides/ai/vector-columns.mdx
index 5a1cc7ef803..235eb47169b 100644
--- a/apps/docs/content/guides/ai/vector-columns.mdx
+++ b/apps/docs/content/guides/ai/vector-columns.mdx
@@ -24,18 +24,18 @@ Vectors in Supabase are enabled via [pgvector](https://github.com/pgvector/pgvec
1. Go to the [Database](https://supabase.com/dashboard/project/_/database/tables) page in the Dashboard.
2. Click on **Extensions** in the sidebar.
-3. Search for "vector" and enable the extension.
+3. Search for "pgvector" and enable the extension.
```sql
- -- Example: enable the "vector" extension.
+ -- Example: enable the pgvector extension.
create extension vector
with
schema extensions;
--- Example: disable the "vector" extension
+-- Example: disable the pgvector extension
drop
extension if exists vector;
```
diff --git a/apps/docs/content/guides/auth/auth-deep-dive/auth-google-oauth.mdx b/apps/docs/content/guides/auth/auth-deep-dive/auth-google-oauth.mdx
index a33ce52d973..325c44d7ff3 100644
--- a/apps/docs/content/guides/auth/auth-deep-dive/auth-google-oauth.mdx
+++ b/apps/docs/content/guides/auth/auth-deep-dive/auth-google-oauth.mdx
@@ -88,7 +88,7 @@ Note however that your app will usually have to be verified by Google before you
The only thing left to implement is the UI, but if you prefer to use something pre-built, we have a handy [Auth Widget](https://github.com/supabase/ui/#using-supabase-ui-auth), where you can enable/disable whichever auth providers you want to support.
-For any support please get in touch at beta at [supabase.com](https://supabase.com) or for feature requests open an issue in the [backend](https://github.com/supabase/gotrue) or [frontend](https://github.com/supabase/gotrue-js) repos.
+For any support see [supabase.com/support](https://supabase.com/support) or for feature requests open an issue in the [backend](https://github.com/supabase/auth) or [frontend](https://github.com/supabase/auth-js) repos.
### Resources
diff --git a/apps/docs/content/guides/database/arrays.mdx b/apps/docs/content/guides/database/arrays.mdx
index a7579573c17..84a410d0770 100644
--- a/apps/docs/content/guides/database/arrays.mdx
+++ b/apps/docs/content/guides/database/arrays.mdx
@@ -172,11 +172,11 @@ console.log(JSON.stringify(data, null, 2))
returns:
-```js
-;[
+```json
+[
{
- textarray: ['Harry', 'Larry', 'Moe'],
- },
+ "textarray": ["Harry", "Larry", "Moe"]
+ }
]
```
diff --git a/apps/docs/content/guides/database/extensions/pg-safeupdate.mdx b/apps/docs/content/guides/database/extensions/pg-safeupdate.mdx
index faf7ee4dc67..c071df2b88a 100644
--- a/apps/docs/content/guides/database/extensions/pg-safeupdate.mdx
+++ b/apps/docs/content/guides/database/extensions/pg-safeupdate.mdx
@@ -10,11 +10,12 @@ The `pg-safeupdate` extension is a useful tool for protecting data integrity and
## Enable the extension
-`pg-safeupdate` can be enabled on a per connection basis:
+`pg-safeupdate` can be enabled on a role basis (where `anon` is the role we want to modify in this example):
{/* prettier-ignore */}
```sql
-load 'safeupdate';
+GRANT SET ON PARAMETER session_preload_libraries TO anon;
+ALTER ROLE anon SET session_preload_libraries = 'safeupdate';
```
or for all connections:
@@ -30,8 +31,6 @@ Let's take a look at an example to see how pg-safeupdate works. Suppose we have
{/* prettier-ignore */}
```sql
-load 'safeupdate';
-
update employees set date_of_birth = '1987-01-28';
```
@@ -52,3 +51,4 @@ update employees set date_of_birth = '1987-01-28' where id = 12345;
## Resources
- Official [pg-safeupdate documentation](https://github.com/eradman/pg-safeupdate)
+- Using [pg-safeupdate with PostgREST](https://postgrest.org/en/v12/integrations/pg-safeupdate.html)
diff --git a/apps/docs/content/guides/database/extensions/pg_cron.mdx b/apps/docs/content/guides/database/extensions/pg_cron.mdx
index 7dd38aaafac..9526c823a62 100644
--- a/apps/docs/content/guides/database/extensions/pg_cron.mdx
+++ b/apps/docs/content/guides/database/extensions/pg_cron.mdx
@@ -174,7 +174,7 @@ limit 10;
-The records in cron.job_run_details are not cleaned automatically which will take up disk space in your datbabase.
+The records in cron.job_run_details are not cleaned automatically which will take up disk space in your database.
diff --git a/apps/docs/content/guides/database/extensions/pgvector.mdx b/apps/docs/content/guides/database/extensions/pgvector.mdx
index 5495f587a07..b0b777eb11f 100644
--- a/apps/docs/content/guides/database/extensions/pgvector.mdx
+++ b/apps/docs/content/guides/database/extensions/pgvector.mdx
@@ -33,18 +33,18 @@ This is particularly useful if you're building on top of OpenAI's [GPT-3](https:
1. Go to the [Database](https://supabase.com/dashboard/project/_/database/tables) page in the Dashboard.
2. Click on **Extensions** in the sidebar.
-3. Search for "vector" and enable the extension.
+3. Search for "pgvector" and enable the extension.
```sql
- -- Example: enable the "vector" extension.
+ -- Example: enable the pgvector extension.
create extension vector
with
schema extensions;
--- Example: disable the "vector" extension
+-- Example: disable the pgvector extension
drop
extension if exists vector;
```
diff --git a/apps/docs/content/guides/database/postgres/column-level-security.mdx b/apps/docs/content/guides/database/postgres/column-level-security.mdx
index 7cdc62d6c2c..6ed691e326c 100644
--- a/apps/docs/content/guides/database/postgres/column-level-security.mdx
+++ b/apps/docs/content/guides/database/postgres/column-level-security.mdx
@@ -28,7 +28,7 @@ For example, let's assume you have a `posts` table with the following columns:
You can restrict updates to just the user who created it using [RLS](/docs/guides/auth#row-level-security), with the following policy:
```sql
-create a policy "Allow update for owners" on posts for
+create policy "Allow update for owners" on posts for
update
using ((select auth.uid()) = user_id);
```
@@ -127,7 +127,7 @@ supabase migration new create_posts_table
);
-- Add row-level security
- create a policy "Allow update for owners" on posts for
+ create policy "Allow update for owners" on posts for
update
using ((select auth.uid()) = user_id);
diff --git a/apps/docs/content/guides/functions/auth.mdx b/apps/docs/content/guides/functions/auth.mdx
index 609f18a46de..06f768bc8d2 100644
--- a/apps/docs/content/guides/functions/auth.mdx
+++ b/apps/docs/content/guides/functions/auth.mdx
@@ -40,11 +40,11 @@ Deno.serve(async (req: Request) => {
const supabaseClient = createClient(
Deno.env.get('SUPABASE_URL') ?? '',
Deno.env.get('SUPABASE_ANON_KEY') ?? '',
- { global: { headers: { Authorization: req.headers.get('Authorization')! } } }
)
// Get the session or user object
- const { data } = await supabaseClient.auth.getUser()
+ const token = authHeader.replace('Bearer ', '')
+ const { data } = await supabaseClient.auth.getUser(token)
const user = data.user
return new Response(JSON.stringify({ user }), {
diff --git a/apps/docs/content/guides/getting-started/tutorials/with-nextjs.mdx b/apps/docs/content/guides/getting-started/tutorials/with-nextjs.mdx
index d44da1bbb07..b9eb21ae17b 100644
--- a/apps/docs/content/guides/getting-started/tutorials/with-nextjs.mdx
+++ b/apps/docs/content/guides/getting-started/tutorials/with-nextjs.mdx
@@ -535,7 +535,7 @@ See the Next.js docs to learn more about [opting out of data caching](https://ne
-```js app/login/action.js
+```js app/login/actions.js
'use server'
import { revalidatePath } from 'next/cache'
@@ -596,7 +596,7 @@ export default function ErrorPage() {
-```ts app/login/action.ts
+```ts app/login/actions.ts
'use server'
import { revalidatePath } from 'next/cache'
diff --git a/apps/docs/content/guides/getting-started/tutorials/with-sveltekit.mdx b/apps/docs/content/guides/getting-started/tutorials/with-sveltekit.mdx
index a8d81139f41..cc48e134864 100644
--- a/apps/docs/content/guides/getting-started/tutorials/with-sveltekit.mdx
+++ b/apps/docs/content/guides/getting-started/tutorials/with-sveltekit.mdx
@@ -336,9 +336,9 @@ export const GET = async ({ url, locals: { supabase } }) => {
```ts title=src/routes/auth/callback/+server.ts
// src/routes/auth/callback/+server.ts
-import { redirect } from '@sveltejs/kit'
+import { redirect, type RequestHandler } from '@sveltejs/kit'
-export const GET = async ({ url, locals: { supabase } }) => {
+export const GET: RequestHandler = async ({ url, locals: { supabase } }) => {
const code = url.searchParams.get('code')
if (code) {
diff --git a/apps/docs/content/guides/platform/read-replicas.mdx b/apps/docs/content/guides/platform/read-replicas.mdx
index 8814c1368f1..7b82d21d602 100644
--- a/apps/docs/content/guides/platform/read-replicas.mdx
+++ b/apps/docs/content/guides/platform/read-replicas.mdx
@@ -41,7 +41,7 @@ You can only read data from a Read Replica. This is in contrast to a Primary dat
-Read replicas are available to projects created on the Teams and Enterprise plans after 2024 March 20. They will be progressively rolled out to older projects, and eventually available on the Pro plan.
+Read replicas are available to projects created on the Teams and Enterprise plans on or after 2024 January 1. They will be progressively rolled out to older projects, and eventually available on the Pro plan.
If your project doesn't meet these criteria, you can join the [early access queue](https://forms.supabase.com/read-replica).
diff --git a/apps/docs/content/guides/self-hosting/docker.mdx b/apps/docs/content/guides/self-hosting/docker.mdx
index f9e9dc3f6e5..e2aa7dfa756 100644
--- a/apps/docs/content/guides/self-hosting/docker.mdx
+++ b/apps/docs/content/guides/self-hosting/docker.mdx
@@ -206,7 +206,7 @@ If the tool doesn't exist, we build and open source it ourselves.
- [postgres-meta](https://github.com/supabase/postgres-meta) is a RESTful API for managing your Postgres, allowing you to fetch tables, add roles, and run queries, etc.
- [PostgreSQL](https://www.postgresql.org/) is an object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance.
-For the system to work cohesively, some services require additional configuration within the Postgres database. For example, the APIs and Auth system require several [default roles](/docs/guides/database/postgres-roles) and the `pgjwt` Postgres extension.
+For the system to work cohesively, some services require additional configuration within the Postgres database. For example, the APIs and Auth system require several [default roles](/docs/guides/database/postgres/roles) and the `pgjwt` Postgres extension.
You can find all the default extensions inside the [schema migration scripts repo](https://github.com/supabase/postgres/tree/develop/migrations). These scripts are mounted at `/docker-entrypoint-initdb.d` to run automatically when starting the database container.
diff --git a/apps/docs/public/humans.txt b/apps/docs/public/humans.txt
index 1c721c74f13..2b127ce16c9 100644
--- a/apps/docs/public/humans.txt
+++ b/apps/docs/public/humans.txt
@@ -48,7 +48,6 @@ Margarita Sandomirskaia
Marijana Pavlinić
Mark Burggraf
Monica El Khoury
-Nikita Kotlyarov
Oli R
Pamela Chia
Paul Caselton
diff --git a/apps/docs/spec/cli_v1_commands.yaml b/apps/docs/spec/cli_v1_commands.yaml
index d17bb6bb29e..f5ed03f07f1 100644
--- a/apps/docs/spec/cli_v1_commands.yaml
+++ b/apps/docs/spec/cli_v1_commands.yaml
@@ -1,7 +1,7 @@
clispec: '001'
info:
id: cli
- version: 1.163.2
+ version: 1.163.6
title: Supabase CLI
language: sh
source: https://github.com/supabase/cli
diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json
index 69ffa9315d0..b715e47a2d7 100644
--- a/apps/docs/tsconfig.json
+++ b/apps/docs/tsconfig.json
@@ -5,7 +5,8 @@
"baseUrl": ".",
"paths": {
"~/*": ["./*"],
- "@ui/*": ["./../../packages/ui/src/*"] // handle ui package paths
+ "@ui/*": ["./../../packages/ui/src/*"],
+ "@ui-patterns/*": ["./../../packages/ui-patterns/*"]
},
"target": "ES2021",
"lib": ["dom", "dom.iterable", "esnext"],
diff --git a/apps/studio/components/interfaces/Account/Preferences/DeleteAccountButton.tsx b/apps/studio/components/interfaces/Account/Preferences/DeleteAccountButton.tsx
index abe01bb2986..44bd433e9f1 100644
--- a/apps/studio/components/interfaces/Account/Preferences/DeleteAccountButton.tsx
+++ b/apps/studio/components/interfaces/Account/Preferences/DeleteAccountButton.tsx
@@ -107,7 +107,7 @@ export const DeleteAccountButton = () => {
Before submitting an account deletion request, please ensure that your account is
- not part of any organization. This can be done by leaving leaving or deleting the
+ not part of any organization. This can be done by leaving or deleting the
organizations that you are a part of.
@@ -56,7 +67,7 @@ const Introduction = ({ selectedLang }: IntroductionProps) => {
If you still want to use GraphQL, you can. Supabase provides you with a full Postgres
database, so as long as your middleware can connect to the database then you can still
use the tools you love. You can find the database connection details{' '}
- in the settings.
+ in the settings.
diff --git a/apps/studio/components/interfaces/Docs/PublicSchemaNotEnabledAlert.tsx b/apps/studio/components/interfaces/Docs/PublicSchemaNotEnabledAlert.tsx
new file mode 100644
index 00000000000..99be76b020f
--- /dev/null
+++ b/apps/studio/components/interfaces/Docs/PublicSchemaNotEnabledAlert.tsx
@@ -0,0 +1,37 @@
+import { AlertDescription_Shadcn_, AlertTitle_Shadcn_, Alert_Shadcn_, Button } from 'ui'
+import { Info } from 'lucide-react'
+import ReactMarkdown from 'react-markdown'
+import Link from 'next/link'
+import { useParams } from 'common'
+
+const PublicSchemaNotEnabledAlert = () => {
+ const { ref: projectRef } = useParams()
+
+ return (
+
+
+
+ The `public` schema for this project is not exposed
+
+
+
+ You will not be able to query tables and views in the `public` schema via supabase-js or
+ HTTP clients.
+
+
+
+
+
+
+
+ )
+}
+
+export default PublicSchemaNotEnabledAlert
diff --git a/apps/studio/components/interfaces/Home/NewProjectPanel/NewProjectPanel.tsx b/apps/studio/components/interfaces/Home/NewProjectPanel/NewProjectPanel.tsx
index 122e549468a..0ef1e55ef12 100644
--- a/apps/studio/components/interfaces/Home/NewProjectPanel/NewProjectPanel.tsx
+++ b/apps/studio/components/interfaces/Home/NewProjectPanel/NewProjectPanel.tsx
@@ -1,10 +1,11 @@
+import { ExternalLink } from 'lucide-react'
import Link from 'next/link'
import { useRouter } from 'next/router'
-import SVG from 'react-inlinesvg'
-import { Button, IconActivity, IconArchive, IconCode, IconExternalLink, IconKey } from 'ui'
+import { Button } from 'ui'
import Panel from 'components/ui/Panel'
import { useIsFeatureEnabled } from 'hooks'
+import { Auth, EdgeFunctions, Realtime, SqlEditor, Storage, TableEditor } from 'icons'
import APIKeys from './APIKeys'
import GetStartedHero from './GetStartedHero'
@@ -45,37 +46,13 @@ const NewProjectPanel = () => {