diff --git a/apps/www/.env b/apps/www/.env
index 1fdeb47aa32..dcdeb38120f 100644
--- a/apps/www/.env
+++ b/apps/www/.env
@@ -1,7 +1,10 @@
# this is a public env file
+
# do not use secrets in this file
# Replace this URL with the URL of your blog app
+
NEXT_PUBLIC_URL="https://localhost:3000"
NEXT_PUBLIC_DOCS_URL="http://localhost:3005"
-NEXT_PUBLIC_STUDIO_URL="https://localhost:8082"
\ No newline at end of file
+NEXT_PUBLIC_STUDIO_URL="https://localhost:8082"
+NEXT_PUBLIC_LAUNCHWEEKSITE_URL="https://localhost:3008"
diff --git a/apps/www/_blog/2021-07-30-supabase-functions-updates.mdx b/apps/www/_blog/2021-07-30-supabase-functions-updates.mdx
index 827f4b2cd90..c03e986925c 100644
--- a/apps/www/_blog/2021-07-30-supabase-functions-updates.mdx
+++ b/apps/www/_blog/2021-07-30-supabase-functions-updates.mdx
@@ -60,13 +60,15 @@ This is especially true for our Enterprise customers, but also Jamstack develope
To meet these goals, we're releasing Supabase Functions in stages:
-- _Stage 1:_ Give developers the ability to trigger external HTTP functions - today, using Function Hooks.
+- _Stage 1:_ Give developers the ability to trigger external HTTP functions - today, using Database Webhooks.
- _Stage 2:_ Give developers the ability to trigger their own Serverless functions on AWS and GCP - Q4 2021.
- _Stage 3:_ Release our own Serverless Functions (Supabase Functions) - Q4 for Early Preview customers.

-## Function Hooks (Alpha)
+## Database Webhooks (Alpha)
+
+(Note: Database Webhooks were previously called "Function Hooks")
Today we're releasing Functions Hooks in `ALPHA`. The `ALPHA` tag means that it is NOT stable, but it's available for testing and feedback. The API will change, so do not use it for anything critical. You have been warned.
@@ -76,7 +78,7 @@ Postgres already has the concept of [Triggers](https://www.postgresql.org/docs/c
### Hook Events
-Function Hooks allow you to "listen" to any change in your tables to trigger an asynchronous Function. You can hook into a few different events:`INSERT`, `UPDATE`, and `DELETE`. All events are fired **after** a database row is changed. Keen eyes will be able to spot the similarity to Postgres triggers, and that's because Function Hooks are just a convenience wrapper around triggers.
+Database Webhooks allow you to "listen" to any change in your tables to trigger an asynchronous Function. You can hook into a few different events:`INSERT`, `UPDATE`, and `DELETE`. All events are fired **after** a database row is changed. Keen eyes will be able to spot the similarity to Postgres triggers, and that's because Database Webhooks are just a convenience wrapper around triggers.

@@ -88,7 +90,7 @@ Supabase will support several different targets.
- AWS Lambda/Google Cloud Run: Provide Supabase with a restricted IAM role to trigger Serverless functions natively.
- Supabase Functions: We'll develop an end-to-end experience.
-
+
### Hook Payload
@@ -120,14 +122,14 @@ type DeletePayload = {
## Hooks technical design: `pg_net v0.1`
-As with most of the Supabase platform, we leverage PostgreSQL's native functionality to implement Function Hooks.
+As with most of the Supabase platform, we leverage PostgreSQL's native functionality to implement Database Webhooks (previously called "Function Hooks").
To build hooks, we've released a new PostgreSQL Extension, [pg_net](https://github.com/supabase/pg_net/), an asynchronous networking extension with an emphasis on scalability/throughput. In its initial (unstable) release we expose:
- asynchronous HTTP `GET` requests.
- asynchronous HTTP `POST` requests with a JSON payload.
-The extension is (currently) capable of >300 requests per second and is the networking layer underpinning Function Hooks. For a complete view of capabilities, check out [the docs](https://supabase.github.io/pg_net/api/).
+The extension is (currently) capable of >300 requests per second and is the networking layer underpinning Database Webhooks. For a complete view of capabilities, check out [the docs](https://supabase.github.io/pg_net/api/).
### **Usage**
@@ -244,7 +246,7 @@ This is only the beginning! First we'll thoroughly test it and make a stable rel
## Get started today
-Function Hooks is enabled today on all [new projects](https://app.supabase.com). Find it under Database > Alpha Preview > Function Hooks.
+Database Webhooks is enabled today on all [new projects](https://app.supabase.com). Find it under Database > Alpha Preview > Database Webhooks.

diff --git a/apps/www/_blog/2021-09-10-supabase-beta-august-2021.mdx b/apps/www/_blog/2021-09-10-supabase-beta-august-2021.mdx
index 254427ee8f9..0ee022965e3 100644
--- a/apps/www/_blog/2021-09-10-supabase-beta-august-2021.mdx
+++ b/apps/www/_blog/2021-09-10-supabase-beta-august-2021.mdx
@@ -145,7 +145,7 @@ If you want to keep up to date, make sure you [subscribe to our YouTube channel]
- Allow a function with single unnamed parameter to be called with POST
[https://github.com/PostgREST/postgrest/issues/1735](https://github.com/PostgREST/postgrest/issues/1735)
-### pg_net (Function Hooks)
+### pg_net (Database Webhooks)
- Better handling of URL errors
[https://github.com/supabase/pg_net/issues/39](https://github.com/supabase/pg_net/issues/39)
diff --git a/apps/www/_blog/2021-10-28-supabase-series-a.mdx b/apps/www/_blog/2021-10-28-supabase-series-a.mdx
index 38a83d553cc..347fed39425 100644
--- a/apps/www/_blog/2021-10-28-supabase-series-a.mdx
+++ b/apps/www/_blog/2021-10-28-supabase-series-a.mdx
@@ -227,7 +227,7 @@ existing functionality.
- **Row Level Security:** restrict user access to data and files using Postgres Policies.
- **Realtime data streams:** subscribe to database changes using the logical replication stream.
-- **Function Hooks:** trigger external systems using Postgres triggers and our [async request extension](https://github.com/supabase/pg_net/).
+- **Database Webhooks (previously called "Function Hooks"):** trigger external systems using Postgres triggers and our [async request extension](https://github.com/supabase/pg_net/).
- **RESTful APIs:** query your database [tables](/docs/reference/javascript/select) and [functions](/docs/reference/javascript/rpc) over HTTP, using [PostgREST](https://postgrest.org).
### Phase 3: Cloud-native PostgreSQL
diff --git a/apps/www/_blog/2022-02-22-supabase-beta-january-2022.mdx b/apps/www/_blog/2022-02-22-supabase-beta-january-2022.mdx
index aad8eeef5fd..e20790dd937 100644
--- a/apps/www/_blog/2022-02-22-supabase-beta-january-2022.mdx
+++ b/apps/www/_blog/2022-02-22-supabase-beta-january-2022.mdx
@@ -102,9 +102,9 @@ Check out the new [Remix Auth example](https://github.com/supabase/supabase/tree
Our React Native example has been correctly updated to be an Expo example.
[Check it out here](https://github.com/supabase/supabase/tree/master/examples/todo-list/expo-todo-list).
-## Video: API requests with Function Hooks
+## Video: API requests with Database Webhooks
-There's no stopping [Jon Meyers](https://jonmeyers.io/videos)! He’s back with an in-depth video on how to easily [automate API requests](https://www.youtube.com/watch?v=codAs9-NeHM&feature=emb_title) using our very own Function Hooks.
+There's no stopping [Jon Meyers](https://jonmeyers.io/videos)! He’s back with an in-depth video on how to easily [automate API requests](https://www.youtube.com/watch?v=codAs9-NeHM&feature=emb_title) using our very own Database Webhooks.
You'll learn how to listen to _any_ database change, then send those changes [in a payload](https://supabase.com/blog/2021/07/30/supabase-functions-updates#hook-payload) via HTTP request.
diff --git a/apps/www/next.config.js b/apps/www/next.config.js
index ecb9363a273..625e880b532 100644
--- a/apps/www/next.config.js
+++ b/apps/www/next.config.js
@@ -58,6 +58,14 @@ module.exports = withMDX({
source: '/docs/:path*',
destination: `${process.env.NEXT_PUBLIC_DOCS_URL}/:path*`,
},
+ {
+ source: '/launch-week',
+ destination: `${process.env.NEXT_PUBLIC_LAUNCHWEEKSITE_URL}`,
+ },
+ {
+ source: '/launch-week/:path*',
+ destination: `${process.env.NEXT_PUBLIC_LAUNCHWEEKSITE_URL}/:path*`,
+ },
// misc rewrites
{
source: '/humans.txt',
@@ -685,6 +693,21 @@ module.exports = withMDX({
source: '/docs/reference/javascript/supabase-client',
destination: '/docs/reference',
},
+ {
+ permanent: true,
+ source: '/join',
+ destination: 'https://supabase.com/',
+ },
+ {
+ permanent: true,
+ source: '/blog/2022/06/15/blog/2022/06/29/visualizing-supabase-data-using-metabase',
+ destination: '/blog/2022/06/29/visualizing-supabase-data-using-metabase',
+ },
+ {
+ permanent: true,
+ source: '/_app',
+ destination: 'https://app.supabase.com',
+ },
]
},
})
diff --git a/apps/www/pages/blog/tags/[tag].tsx b/apps/www/pages/blog/tags/[tag].tsx
index e8f45366661..ee5747c611e 100644
--- a/apps/www/pages/blog/tags/[tag].tsx
+++ b/apps/www/pages/blog/tags/[tag].tsx
@@ -36,7 +36,7 @@ function TagBlogsPage(props: Props) {
-
+
Blog
diff --git a/apps/www/pages/partners/integrations/index.tsx b/apps/www/pages/partners/integrations/index.tsx
index 8e30744a075..bffed18862c 100644
--- a/apps/www/pages/partners/integrations/index.tsx
+++ b/apps/www/pages/partners/integrations/index.tsx
@@ -24,7 +24,7 @@ export async function getStaticProps() {
props: {
partners,
},
- // TODO: consider using Next.js' On-demand Revalidation with Supabase function hooks instead
+ // TODO: consider using Next.js' On-demand Revalidation with Supabase Database Webhooks instead
revalidate: 18000, // In seconds - refresh every 5 hours
}
}
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index c9c17cf7fc3..d2f89a20357 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -40,7 +40,7 @@ services:
auth:
container_name: supabase-auth
- image: supabase/gotrue:v2.7.1
+ image: supabase/gotrue:v2.10.0
depends_on:
- db # Disable this if you are using an external Postgres database
restart: unless-stopped
diff --git a/examples/slack-clone/nextjs-slack-clone/README.md b/examples/slack-clone/nextjs-slack-clone/README.md
index accc6749869..34d93ead559 100644
--- a/examples/slack-clone/nextjs-slack-clone/README.md
+++ b/examples/slack-clone/nextjs-slack-clone/README.md
@@ -39,7 +39,7 @@ The `anon` key is your client-side API key. It allows "anonymous access" to your
### 4. Deploy the Next.js client
-[](https://vercel.com/new/git/external?repository-url=https%3A%2F%2Fgithub.com%2Fsupabase%2Fsupabase%2Ftree%2Fmaster%2Fexamples%2slack-clone%2Fnextjs-slack-clone&env=NEXT_PUBLIC_SUPABASE_URL,NEXT_PUBLIC_SUPABASE_KEY&envDescription=Find%20the%20Supabase%20URL%20and%20key%20in%20the%20your%20auto-generated%20docs%20at%20app.supabase.com&project-name=supabase-slack-clone&repo-name=supabase-slack-clone)
+[](https://vercel.com/new/git/external?repository-url=https%3A%2F%2Fgithub.com%2Fsupabase%2Fsupabase%2Ftree%2Fmaster%2Fexamples%2Fslack-clone%2Fnextjs-slack-clone&env=NEXT_PUBLIC_SUPABASE_URL,NEXT_PUBLIC_SUPABASE_KEY&envDescription=Find%20the%20Supabase%20URL%20and%20key%20in%20the%20your%20auto-generated%20docs%20at%20app.supabase.com&project-name=supabase-slack-clone&repo-name=supabase-slack-clone)
Here, we recommend forking this repo so you can deploy through Vercel by clicking the button above. When you click the button, replace the repo URL with your fork's URL.
diff --git a/studio/components/grid/components/footer/pagination/Pagination.tsx b/studio/components/grid/components/footer/pagination/Pagination.tsx
index 8bc26536eed..31609a32fd0 100644
--- a/studio/components/grid/components/footer/pagination/Pagination.tsx
+++ b/studio/components/grid/components/footer/pagination/Pagination.tsx
@@ -28,10 +28,6 @@ const Pagination: FC = () => {
const maxPages = Math.ceil(state.totalRows / state.rowsPerPage)
const totalPages = state.totalRows > 0 ? maxPages : 1
- useEffect(() => {
- if (state.page != page) setPage(state.page)
- }, [state.page, page])
-
// [Joshen] Oddly without this, state.selectedRows will be stale
useEffect(() => {}, [state.selectedRows])
@@ -93,7 +89,7 @@ const Pagination: FC = () => {
function onPageChange(event: React.ChangeEvent) {
const value = event.target.value
- const pageNum = Number(value)
+ const pageNum = Number(value) > maxPages ? maxPages : Number(value)
setPage(pageNum)
updatePageDebounced(pageNum, dispatch)
}
@@ -120,7 +116,6 @@ const Pagination: FC = () => {
<>