From 0da2d96ecf044f3a2d9c4eac5ec6895c6b40fecb Mon Sep 17 00:00:00 2001 From: Devin Stein Date: Mon, 28 Nov 2022 17:27:03 -0800 Subject: [PATCH 01/48] feat: add picket to auth integration navigation --- apps/docs/components/Navigation/Navigation.constants.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/docs/components/Navigation/Navigation.constants.ts b/apps/docs/components/Navigation/Navigation.constants.ts index 47c2bee3335..e473d753af3 100644 --- a/apps/docs/components/Navigation/Navigation.constants.ts +++ b/apps/docs/components/Navigation/Navigation.constants.ts @@ -296,6 +296,7 @@ export const menuItems: NavMenu = { { name: 'keyri', url: '/guides/integrations/keyri', items: [] }, { name: 'Stytch', url: '/guides/integrations/stytch', items: [] }, { name: 'SuperTokens', url: '/guides/integrations/supertokens', items: [] }, + { name: 'Picket', url: '/guides/integrations/picket', items: [] }, ], }, { From 014a058b78a555519b729056b66645657e8ac98d Mon Sep 17 00:00:00 2001 From: Devin Stein Date: Tue, 29 Nov 2022 10:35:03 -0800 Subject: [PATCH 02/48] feat: add picket + supabase auth integration guide --- .../docs/pages/guides/integrations/picket.mdx | 580 ++++++++++++++++++ 1 file changed, 580 insertions(+) create mode 100644 apps/docs/pages/guides/integrations/picket.mdx diff --git a/apps/docs/pages/guides/integrations/picket.mdx b/apps/docs/pages/guides/integrations/picket.mdx new file mode 100644 index 00000000000..bd88166833f --- /dev/null +++ b/apps/docs/pages/guides/integrations/picket.mdx @@ -0,0 +1,580 @@ +import Layout from '~/layouts/DefaultGuideLayout' + +export const meta = { + id: 'picket', + title: 'Picket', + description: + "Get the best of web2 and web3. Picket allows your users to log in with their wallet without sacrificing Supabase's awesome data management and security features.", +} + +[Picket](https://picketapi.com) is a developer-first, multi-chain web3 auth platform. With Picket, you can easily authenticate users via their wallets and token gate anything. + +This guide steps through building a simple todo list Next.js application with Picket and Supabase. We use Picket to allow users to login into our app with their wallets and leverage Supabase's Row Level Security (RLS) to securely store user information off-chain. + +> Checkout a [live demo](https://picket-supabase-auth-example-v36z.vercel.app/) of a Picket + Supabase integration + +The code for this guide is based of [this example repo](https://github.com/picketapi/picket-supabase-auth-example). + +## Requirements + +- You have [Supabase](https://supabase.com) account. If you don't, sign up at https://supabase.com/ +- You have a [Picket](https://picketapi.com) account. If you don't, sign up at https://picketapi.com/ +- You've read the [Picket Setup Guide](https://docs.picketapi.com/picket-docs/quick-start-guides/quick-start-guides/start-here-setup) +- Familiarity with [React](https://reactjs.org/) and [Next.js](https://nextjs.org/) + +## Step 1: Create a Picket Project + +First, we'll create a new project in our [Picket dashboard](https://picketapi.com/dashboard). + +Click the `Create New Project` button at the top of the Projects section on your [Picket dashboard](https://picketapi.com/dashboard). Edit the project to give it a memorable name. + +![Picket project settings](/docs/img/guides/integrations/picket/picket_project.png) + +We're done for now! We'll revisit this project when we are setting up environment variables in our app. + +## Step 2: Create a Supabase Project + +From your [Supabase dashboard](https://app.supabase.com/), click `New project`. + +Enter a `Name` for your Supabase project. + +Enter a secure `Database Password`. + +Select the any `Region`. + +Click `Create new project`. + +![Supabase project settings](/docs/img/guides/integrations/picket/supabase_project.png) + +## Step 3: Create new New Table with RLS in Supabase + +### Create a `todos` Table + +From the sidebar menu in the [Supabase dashboard](https://app.supabase.com/), click `Table editor`, then `New table`. + +Enter `todos` as the `Name` field. + +Select `Enable Row Level Security (RLS)`. + +Create four columns: +- `name` as `text` +- `wallet_address` as `text` +- `completed` as `bool` with the default value `false` +- `created_at` as timestamptz with a default value of `now()` + +Click `Save` to create the new table. + +![todos table](/docs/img/guides/integrations/picket/new_table.png) + +### Setup Row Level Security (RLS) + +Now we want to make sure that only the `todos` owner, the user's `wallet_address`, can access their todos. The key component of the this RLS policy is the expression + +```sql +((jwt() ->> 'walletAddress'::text) = wallet_address) +``` +This expression checks that the wallet address in the requesting JWT access token is the same as the `wallet_address` in the `todos` table. + +![RLS policy](/docs/img/guides/integrations/picket/rls_policy.png) + +## Step 4: Create a Next.js app + +Now, let's start building! + +Create a [new Typescript Next.js app](https://nextjs.org/docs/getting-started) + +```bash +npx create-next-app@latest --typescript +``` + +Create a `.env.local` file and enter the following values +- `NEXT_PUBLIC_PICKET_PUBLISHABLE_KEY` => Copy the publishable key from the Picket project you created in step 1 +- `PICKET_PROJECT_SECRET_KEY` => Copy the secret key from the Picket project you created in the step 1 +- `NEXT_PUBLIC_SUPABASE_URL` => You can find this URL under "Settings > API" in your Supabase project +- `NEXT_PUBLIC_SUPABASE_ANON_KEY` => You can find this project API key under "Settings > API" in your Supabase project +- `SUAPBASE_JWT_SECRET`=> You can find this secret under "Settings > API" in your Supabase project + +```txt +NEXT_PUBLIC_PICKET_PUBLISHABLE_KEY="YOUR_PICKET_PUBLISHABLE_KEY" +PICKET_PROJECT_SECRET_KEY="YOUR_PICKET_PROJECT_SECRET_KEY" +NEXT_PUBLIC_SUPABASE_URL="YOUR_SUPABASE_URL" +NEXT_PUBLIC_SUPABASE_ANON_KEY="YOUR_SUPABASE_ANON_KEY" +SUPABASE_JWT_SECRET="YOUR_SUPABASE_JWT_SECRET" +``` + +## Step 5: Setup Picket for Wallet Login + +> For more information on how to setup [Picket](https://picketapi.com) in your Next.js app, checkout the [Picket getting started guide](https://docs.picketapi.com/picket-docs/quick-start-guides/quick-start-guides/wallet-login) +After initializing our app, we can setup Picket. + +Install the Picket [React](/picket-docs/reference/libraries-and-sdks/react-sdk-picket-react) and [Node](/picket-docs/reference/libraries-and-sdks/node.js-library-picket-node) libraries + +```bash +npm i @picketapi/picket-react @picketapi/picket-node +``` + +Update `pages/_app.tsx` to setup the `PicketProvider` + +```tsx +import "../styles/globals.css"; +import type { AppProps } from "next/app"; + +import { PicketProvider } from "@picketapi/picket-react"; + +export default function App({ Component, pageProps }: AppProps) { + return ( + + + + ); +} +``` + +Update `pages/index.tsx` to let users log in and out with their wallet + +```tsx +import { GetServerSideProps } from "next"; +import { useRouter } from "next/router"; +import { useCallback } from "react"; + +import styles from "../styles/Home.module.css"; + +import { usePicket } from "@picketapi/picket-react"; +import { cookieName } from "../utils/supabase"; + +type Props = { + loggedIn: boolean; +}; + +export default function Home(props: Props) { + const { loggedIn } = props; + const { login, logout, authState } = usePicket(); + const router = useRouter(); + + const handleLogin = useCallback(async () => { + let auth = authState; + // no need to re-login if they've already connected with Picket + if (!auth) { + // login with Picket + auth = await login(); + } + + // login failed + if (!auth) return; + + // create a corresponding supabase access token + await fetch("/api/login", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + accessToken: auth.accessToken, + }), + }); + // redirect to their todos page + router.push("/todos"); + }, [authState, login, router]); + + const handleLogout = useCallback(async () => { + // clear both picket and supabase session + await logout(); + await fetch("/api/logout", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + }); + // refresh the page + router.push("/"); + }, [logout, router]); + + return ( +
+
+ {loggedIn ? ( + + ) : ( + + )} +
+
+ ); +} + +export const getServerSideProps: GetServerSideProps = async ({ + req, +}) => { + // get supabase token server-side + const accessToken = req.cookies[cookieName]; + + if (!accessToken) { + return { + props: { + loggedIn: false, + }, + }; + } + + return { + props: { + loggedIn: true, + }, + }; +}; +``` + +## Step 6: Issue a Supabase JWT on Wallet Login + +Great, now we have setup a typical Picket Next.js app. Next, we need to implement the log in/out API routes to allow users to securely query our Supabase project. + +First, install dependencies + +```bash +npm install @supabase/supabase-js jsonwebtoken cookie js-cookie +``` + +Create a utility function to create a Supabase client with a custom access token in `utils/supabase.ts` + +```ts +import { createClient, SupabaseClientOptions } from "@supabase/supabase-js"; + +export const cookieName = "sb-access-token"; + +const getSupabase = (accessToken: string) => { + const options: SupabaseClientOptions<"public"> = {}; + + if (accessToken) { + options.global = { + headers: { + // This gives Supabase information about the user (wallet) making the request + Authorization: `Bearer ${accessToken}`, + }, + }; + } + + const supabase = createClient( + process.env.NEXT_PUBLIC_SUPABASE_URL!, + process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, + options + ); + + return supabase; +}; + +export { getSupabase }; +``` + +Create new api route `pages/api/login.ts`. This route validates the Picket access token then issues another equivalent Supabase access token for us to use with the Supabase client. + +```ts +import type { NextApiRequest, NextApiResponse } from "next"; +import jwt from "jsonwebtoken"; +import cookie from "cookie"; +import Picket from "@picketapi/picket-node"; + +import { cookieName } from "../../utils/supabase"; + +// create picket node client with your picket secret api key +const picket = new Picket(process.env.PICKET_PROJECT_SECRET_KEY!); + +const expToExpiresIn = (exp: number) => exp - Math.floor(Date.now() / 1000); + +export default async function handler( + req: NextApiRequest, + res: NextApiResponse +) { + const { accessToken } = req.body; + // omit expiration time,.it will conflict with jwt.sign + const { exp, ...payload } = await picket.validate(accessToken); + const expiresIn = expToExpiresIn(exp); + + const supabaseJWT = jwt.sign( + { + ...payload, + }, + process.env.SUPABASE_JWT_SECRET!, + { + expiresIn, + } + ); + + // Set a new cookie with the name + res.setHeader( + "Set-Cookie", + cookie.serialize(cookieName, supabaseJWT, { + path: "/", + secure: process.env.NODE_ENV !== "development", + // allow the cookie to be accessed client-side + httpOnly: false, + sameSite: "strict", + maxAge: expiresIn, + }) + ); + res.status(200).json({}); +} +``` + +And now create an equivalent logout api route `/pages/api/logout.ts` to delete the Supabase access token cookie. + +```ts +import type { NextApiRequest, NextApiResponse } from "next"; +import cookie from "cookie"; + +import { cookieName } from "../../utils/supabase"; + +export default async function handler( + _req: NextApiRequest, + res: NextApiResponse +) { + // Clear the supabase cookie + res.setHeader( + "Set-Cookie", + cookie.serialize(cookieName, "", { + path: "/", + maxAge: -1, + }) + ); + + res.status(200).json({}); +} +``` +We can now login and logout to the app with our wallet! + +## Step 7: Interacting with Data in Supabase + +Now that we can login to the app, it's time to start interacting with Supabase. Let's make a todo list page for authenticated users. + +Create a new file `pages/todos.tsx` + +```tsx +import { GetServerSideProps } from "next"; +import Head from "next/head"; +import Link from "next/link"; +import { useState, useMemo } from "react"; +import jwt from "jsonwebtoken"; +import Cookies from "js-cookie"; + +import styles from "../styles/Home.module.css"; + +import { getSupabase, cookieName } from "../utils/supabase"; + +type Todo = { + name: string; + completed: boolean; +}; + +type Props = { + walletAddress: string; + todos: Todo[]; +}; + +const displayWalletAddress = (walletAddress: string) => + `${walletAddress.slice(0, 6)}...${walletAddress.slice(-4)}`; + +export default function Todos(props: Props) { + const { walletAddress } = props; + const [todos, setTodos] = useState(props.todos); + + // avoid re-creating supabase client every render + const supabase = useMemo(() => { + const accessToken = Cookies.get(cookieName); + return getSupabase(accessToken || ""); + }, []); + + return ( +
+ + Picket 💜 Supabase + + +
+

Your Personal Todo List

+
+

Welcome {displayWalletAddress(walletAddress)},

+

+ Your todo list is stored in Supabase and are only accessible to you + and your wallet address. Picket + Supabase makes it easy to build + scalable, hybrid web2 and web3 apps. Use Supabase to store + non-critical or private data off-chain like user app preferences or + todo lists. +

+
+
+

Todo List

+ {todos.map((todo) => ( +
+ { + await supabase.from("todos").upsert({ + wallet_address: walletAddress, + name: todo.name, + completed: !todo.completed, + }); + setTodos((todos) => + todos.map((t) => + t.name === todo.name + ? { ...t, completed: !t.completed } + : t + ) + ); + }} + /> + + {todo.name} + +
+ ))} +
+ + Go back home → + +
+
+
+
+ ); +} + +export const getServerSideProps: GetServerSideProps = async ({ + req, +}) => { + // example of fetching data server-side + const accessToken = req.cookies[cookieName]; + + // require authentication + if (!accessToken) { + return { + redirect: { + destination: "/", + }, + props: { + walletAddress: "", + todos: [], + }, + }; + } + + // check if logged in user has completed the tutorial + const supabase = getSupabase(accessToken); + const { walletAddress } = jwt.decode(accessToken) as { + walletAddress: string; + }; + + // get todos for the users + // if none exist, create the default todos + let { data } = await supabase.from("todos").select("*"); + + if (!data || data.length === 0) { + let error = null; + ({ data, error } = await supabase + .from("todos") + .insert([ + { + wallet_address: walletAddress, + name: "Complete the Picket + Supabase Tutorial", + completed: true, + }, + { + wallet_address: walletAddress, + name: "Create a Picket Account (https://picketapi.com/)", + completed: false, + }, + { + wallet_address: walletAddress, + name: "Read the Picket Docs (https://docs.picketapi.com/)", + completed: false, + }, + { + wallet_address: walletAddress, + name: "Build an Awesome Web3 Experience", + completed: false, + }, + ]) + .select("*")); + + if (error) { + // log error and redirect home + console.error(error); + return { + redirect: { + destination: "/", + }, + props: { + walletAddress: "", + todos: [], + }, + }; + } + } + + return { + props: { + walletAddress, + todos: data as Todo[], + }, + }; +}; +``` + +This is a long file, but don't be intimidated. The page is actually straightforward. It +- 1. + Verifies server-side that the user is authenticated and if they are not redirects them to the homepage +- 2. + Checks to see if they already have `todos` . If so, it returns them. If not, it initializes them for the users +- 3. + We render the `todos` and when the user selects or deselects a todo, we update the data in the database + +## Step 8: Try it Out! + +And that's it. If you haven't already, run your app to test it out yourself + +```bash +# start the app +npm run dev +# open http://localhost:3000 +``` + +### What's Next? + +- Explore the [Picket documentation](https://docs.picketapi.com/picket-docs/) +- Play with the live [Picket + Supabase demo](https://picket-supabase-auth-example-v36z.vercel.app/) +- Checkout Picket's [example Github repositories](https://github.com/picketapi) + +### Common Use-Case for Picket + Supabase +- Account linking. Allow users to associate their wallet address(es) with their existing web2 account in your app +- Leverage Supabase's awesome libraries and ecosystem while still enabling wallet login +- Store app-specific data, like user preferences, about your user's wallet adress off-chain +- Cache on-chain data to improve your DApp's performance From de03d0acdb372b6f728a4cd71170d873841f9322 Mon Sep 17 00:00:00 2001 From: Devin Stein Date: Tue, 29 Nov 2022 10:40:06 -0800 Subject: [PATCH 03/48] feat: add imgs for integration guide --- .../guides/integrations/picket/new_table.png | Bin 0 -> 224424 bytes .../integrations/picket/picket_project.png | Bin 0 -> 222611 bytes .../guides/integrations/picket/rls_policy.png | Bin 0 -> 233319 bytes .../integrations/picket/supabase_project.png | Bin 0 -> 169870 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/docs/public/img/guides/integrations/picket/new_table.png create mode 100644 apps/docs/public/img/guides/integrations/picket/picket_project.png create mode 100644 apps/docs/public/img/guides/integrations/picket/rls_policy.png create mode 100644 apps/docs/public/img/guides/integrations/picket/supabase_project.png diff --git a/apps/docs/public/img/guides/integrations/picket/new_table.png b/apps/docs/public/img/guides/integrations/picket/new_table.png new file mode 100644 index 0000000000000000000000000000000000000000..72aa9b21ea2ccbf8292fadf728a11acbbfecb7a0 GIT binary patch literal 224424 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%0DC?)hW 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 literal 0 HcmV?d00001 diff --git a/apps/docs/public/img/guides/integrations/picket/picket_project.png b/apps/docs/public/img/guides/integrations/picket/picket_project.png new file mode 100644 index 0000000000000000000000000000000000000000..6d359e9af8397a8e27c885cd954a0b4615200d11 GIT binary patch literal 222611 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 R-39){Z%B)LxUT;6e*h0^CwKq= literal 0 HcmV?d00001 diff --git a/apps/docs/public/img/guides/integrations/picket/rls_policy.png b/apps/docs/public/img/guides/integrations/picket/rls_policy.png new file mode 100644 index 0000000000000000000000000000000000000000..347038ebe904a84696d9098bb0b4fec2abb5182e GIT binary patch literal 233319 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⤅eV1b=2Y{WOhh* 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%0AWOJKNICx%Sy$?aYm)vWwP-#)A|>4 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�g(+A zwrbXB8*q}pd(o>HXoBHNEwOj3n)vzoe+T#pGNuvx{01k~e_@qvy70Mjyj}W9(?_gv z#ZRl%yba-xfgD1_Q1F$FKF<*A$5xQ5EpjVG=f3%SxSpyXw;!B}5IWT(KPZF`ZGI~= zioZry+ND^6d_o8tHqOO*biMac??0$iAx6($(GfF}y&7sFIiu4b>)31yPwbX~Lg4Q`u1`7F4I!?C7%b&P{BT`iIoBSt8Mdu0 zAxlZuKxF(}&xoY8W9A8S)9#lq&JV%j>o&r2sGOhv^(($4v!n0ER(izv(|;$tI~s$&k`=>l=po4* zCG{xP)T6w%qOi@=8CNHuOQ&hOdG`F}%bLVT^Iv2Ff42gwuaXFJy5<42IZXfxbdY4gV`#@<+r|zq}DtsO~}6+CS1Ce!5Nqa2w2hh#7+V0$*u=g65bwt zmBNdlF&O0mZr7jIihE^-H^s0OlNIHf!4qHIBTyT-E#(^%IYfzWK7g?p7W{2b^5M2s87{Ko}ZZ7-NRWYxmi$KLh) ztTr%|_>klC=PW0^1^w6;r3t5M=n4auGxz+r=6;L;xMGrt{}r2^Ptzr#)G~ zwn1N1BBLP8&hoqP(J(Oord~e|^k&~KA%xvY#BoSZ^Jih@U08Yq4Idi|=8Vkx;?gw< zw`a=vhKVEZcaNS)RP|5O#GcB9+-CcVUq^ewvQ0KL-+E@%M&3Yp`Fo#E5vtBS@U+s! zkPn}82ocG}zSV#s-s_GR`$Jr3Zi^?s&lO9S6sm2;4%NsiZ=Njcia$oxybD6`OKFeTC@ znn+ed-&xxOW;>N&n>xC~q0!fzJPpplv>|42C?u_zsfsTS#iFO$Y);pQ`&~h?F#`iK zP;yODBk$pPsS{)_JG234>JNk7&Zc5&BkKkd zi8XJ@2z`NA*xI`hM4v2~cb|J@?xJ?+mt&1gK67|}^dWyhWIhZ%!b4f!dH5+$b8(

V4gANc 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 Lwo2~h8$tgMVBF9L literal 0 HcmV?d00001 diff --git a/apps/docs/public/img/guides/integrations/picket/supabase_project.png b/apps/docs/public/img/guides/integrations/picket/supabase_project.png new file mode 100644 index 0000000000000000000000000000000000000000..97c441b6ef83beca191d2bb163536628d92386f3 GIT binary patch literal 169870 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�Vd`%KA;q(4qCx|ut~EH(F4^y#dDz(9vv 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 Fe*k?&BpUz# literal 0 HcmV?d00001 From 690f91aecb2bc0c7af9b45fc30864b1543bd9ddb Mon Sep 17 00:00:00 2001 From: Devin Stein Date: Tue, 29 Nov 2022 10:47:42 -0800 Subject: [PATCH 04/48] fix: formatting of numeric list --- apps/docs/pages/guides/integrations/picket.mdx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/apps/docs/pages/guides/integrations/picket.mdx b/apps/docs/pages/guides/integrations/picket.mdx index bd88166833f..3f583b8a873 100644 --- a/apps/docs/pages/guides/integrations/picket.mdx +++ b/apps/docs/pages/guides/integrations/picket.mdx @@ -550,12 +550,9 @@ export const getServerSideProps: GetServerSideProps = async ({ ``` This is a long file, but don't be intimidated. The page is actually straightforward. It -- 1. - Verifies server-side that the user is authenticated and if they are not redirects them to the homepage -- 2. - Checks to see if they already have `todos` . If so, it returns them. If not, it initializes them for the users -- 3. - We render the `todos` and when the user selects or deselects a todo, we update the data in the database + 1. Verifies server-side that the user is authenticated and if they are not redirects them to the homepage + 2. Checks to see if they already have `todos` . If so, it returns them. If not, it initializes them for the users + 3. We render the `todos` and when the user selects or deselects a todo, we update the data in the database ## Step 8: Try it Out! From acc4707959b7127c54744a22fba9abb122986042 Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Thu, 5 Jan 2023 15:46:22 +0700 Subject: [PATCH 05/48] Split FDW creation into 2 separate steps to allow creation of multiple instances of a wrapper type --- .../Database/Wrappers/CreateWrapper.tsx | 333 ++++++++++++++++++ .../Database/Wrappers/Wrappers.constants.ts | 7 + .../interfaces/Database/Wrappers/Wrappers.tsx | 237 +++---------- .../Wrappers/WrappersDisabledState.tsx | 156 ++++++++ .../Database/Wrappers/WrappersDropdown.tsx | 59 ++++ .../components/interfaces/Database/index.ts | 2 + .../{wrappers.tsx => wrappers/index.tsx} | 0 .../project/[ref]/database/wrappers/new.tsx | 26 ++ 8 files changed, 629 insertions(+), 191 deletions(-) create mode 100644 studio/components/interfaces/Database/Wrappers/CreateWrapper.tsx create mode 100644 studio/components/interfaces/Database/Wrappers/WrappersDisabledState.tsx create mode 100644 studio/components/interfaces/Database/Wrappers/WrappersDropdown.tsx rename studio/pages/project/[ref]/database/{wrappers.tsx => wrappers/index.tsx} (100%) create mode 100644 studio/pages/project/[ref]/database/wrappers/new.tsx diff --git a/studio/components/interfaces/Database/Wrappers/CreateWrapper.tsx b/studio/components/interfaces/Database/Wrappers/CreateWrapper.tsx new file mode 100644 index 00000000000..cd456fd9e07 --- /dev/null +++ b/studio/components/interfaces/Database/Wrappers/CreateWrapper.tsx @@ -0,0 +1,333 @@ +import Link from 'next/link' +import { isEmpty } from 'lodash' +import { FC, useState } from 'react' +import { useRouter } from 'next/router' +import { observer } from 'mobx-react-lite' +import { + Button, + Form, + Input, + IconArrowLeft, + IconExternalLink, + IconHelpCircle, + IconEdit, + IconEye, + IconEyeOff, + IconTrash, +} from 'ui' +import { PermissionAction } from '@supabase/shared-types/out/constants' + +import { ServerOption } from './Wrappers.types' +import { checkPermissions, useParams, useStore } from 'hooks' +import { + FormPanel, + FormActions, + FormSection, + FormSectionLabel, + FormSectionContent, +} from 'components/ui/Forms' +import { useFDWCreateMutation } from 'data/fdw/fdw-create-mutation' + +import { WRAPPERS } from './Wrappers.constants' +import WrapperRow from './WrapperRow' +import WrapperTableEditor from './WrapperTableEditor' +import { makeValidateRequired } from './Wrappers.utils' +import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext' + +const InputField: FC<{ option: ServerOption; error: any }> = ({ option, error }) => { + const [showHidden, setShowHidden] = useState(!option.hidden) + if (option.isTextArea) { + return ( +

+ } + defaultValue={option.defaultValue ?? ''} + required={option.required ?? false} + error={error} + className="input-mono" + rows={6} + /> + + ) + } else { + return ( + +

{option.label}

+ {option.urlHelper !== undefined && ( + + + + + + )} + + } + defaultValue={option.defaultValue ?? ''} + error={error} + className={`${option.name === 'name' ? '' : 'input-mono'}`} + type={!option.hidden ? 'text' : showHidden ? 'text' : 'password'} + actions={ + option.hidden ? ( +
+
+ ) : null + } + /> + ) + } +} + +const CreateWrapper = () => { + const formId = 'test-form' + const router = useRouter() + const { ui } = useStore() + const { ref, type } = useParams() + const { project } = useProjectContext() + const { mutateAsync: createFDW } = useFDWCreateMutation() + + const [newTables, setNewTables] = useState([]) + const [isEditingTable, setIsEditingTable] = useState(false) + const [selectedTableToEdit, setSelectedTableToEdit] = useState() + const [formErrors, setFormErrors] = useState<{ [k: string]: string }>({}) + + const canCreateWrapper = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'extensions') + + const wrapperMeta = WRAPPERS.find((wrapper) => wrapper.name === type) + const initialValues = + wrapperMeta !== undefined + ? Object.fromEntries( + wrapperMeta.server.options.map((option) => [option.name, option.defaultValue ?? '']) + ) + : {} + + if (wrapperMeta === undefined) { + return
Lol what?
+ } + + const onUpdateTable = (values: any) => { + setNewTables((prev) => { + // if the new values have tableIndex, we are editing an existing table + if (values.tableIndex !== undefined) { + const tableIndex = values.tableIndex + const newTables = [...prev] + delete values.tableIndex + newTables[tableIndex] = values + return newTables + } + return [...prev, values] + }) + setIsEditingTable(false) + setSelectedTableToEdit(undefined) + } + + const onSubmit = async (values: any, { setSubmitting }: any) => { + const validate = makeValidateRequired(wrapperMeta.server.options) + + const errors: any = validate(values) + if (newTables.length === 0) errors.tables = 'Please add at least one table' + if (!isEmpty(errors)) return setFormErrors(errors) + + setSubmitting(true) + try { + await createFDW({ + projectRef: project?.ref, + connectionString: project?.connectionString, + wrapper: wrapperMeta, + formState: values, + newTables, + }) + ui.setNotification({ + category: 'success', + message: `Successfully created ${wrapperMeta.label} foreign data wrapper`, + }) + setNewTables([]) + router.push(`/project/${ref}/database/wrappers`) + } catch (error: any) { + ui.setNotification({ + error, + category: 'error', + message: `Failed to create ${wrapperMeta.label} foreign data wrapper: ${error.message}`, + }) + } finally { + setSubmitting(false) + } + } + + return ( + <> +
+
+ +

Create a {wrapperMeta?.label} Wrapper

+ +
+ +
+ {({ isSubmitting, handleReset, values, initialValues }: any) => { + const hasChanges = JSON.stringify(values) !== JSON.stringify(initialValues) + return ( + + +
+ } + > + Server Configuration}> + + {wrapperMeta.server.options.map((option) => ( + + ))} + + + +

Foreign Tables

+

+ You can query your data from these foreign tables after the wrapper is + created +

+ + } + > + + {newTables.length === 0 ? ( +
+ +
+ ) : ( + <> + {newTables.map((table, i) => ( +
+
+

+ {table.schema_name}.{table.table_name} +

+

+ {wrapperMeta.tables[table.index].label}: {table.columns.join(', ')} +

+
+
+
+
+ ))} + + )} + {newTables.length > 0 && ( +
+ +
+ )} + {newTables.length === 0 && formErrors.tables && ( +

{formErrors.tables}

+ )} +
+
+ + ) + }} + + + + { + setSelectedTableToEdit(undefined) + setIsEditingTable(false) + }} + onSave={onUpdateTable} + initialData={selectedTableToEdit} + /> + + ) +} + +export default observer(CreateWrapper) diff --git a/studio/components/interfaces/Database/Wrappers/Wrappers.constants.ts b/studio/components/interfaces/Database/Wrappers/Wrappers.constants.ts index a987a4533af..3d61062903f 100644 --- a/studio/components/interfaces/Database/Wrappers/Wrappers.constants.ts +++ b/studio/components/interfaces/Database/Wrappers/Wrappers.constants.ts @@ -12,6 +12,13 @@ export const WRAPPERS: Wrapper[] = [ server: { name: 'stripe_server', options: [ + { + name: 'name', + label: 'Wrapper Name', + required: true, + encrypted: false, + hidden: false, + }, { name: 'api_key_id', label: 'Stripe Secret Key', diff --git a/studio/components/interfaces/Database/Wrappers/Wrappers.tsx b/studio/components/interfaces/Database/Wrappers/Wrappers.tsx index bc6abe43bab..15a0236dc8f 100644 --- a/studio/components/interfaces/Database/Wrappers/Wrappers.tsx +++ b/studio/components/interfaces/Database/Wrappers/Wrappers.tsx @@ -2,34 +2,31 @@ import Link from 'next/link' import { useState } from 'react' import { Button, IconExternalLink } from 'ui' import { observer } from 'mobx-react-lite' -import * as Tooltip from '@radix-ui/react-tooltip' -import { PermissionAction } from '@supabase/shared-types/out/constants' -import { checkPermissions, useParams, useStore } from 'hooks' +import { useStore } from 'hooks' import { useFDWsQuery } from 'data/fdw/fdws-query' import { WRAPPERS } from './Wrappers.constants' import WrapperRow from './WrapperRow' import ShimmeringLoader from 'components/ui/ShimmeringLoader' +import WrappersDropdown from './WrappersDropdown' +import WrappersDisabledState from './WrappersDisabledState' import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext' const Wrappers = () => { - const { ref } = useParams() - const { ui, meta } = useStore() + const { meta } = useStore() const { project } = useProjectContext() const { data, isLoading } = useFDWsQuery({ projectRef: project?.ref, connectionString: project?.connectionString, }) const wrappers = data?.result ?? [] - const enabledWrapperNamesSet = new Set(data?.result.map((fdw) => fdw.name)) + const enabledWrapperNamesSet = new Set(wrappers.map((fdw) => fdw.name)) const [open, setOpen] = useState('') - const [isEnabling, setIsEnabling] = useState(false) const wrappersExtension = meta.extensions.byId('wrappers') const vaultExtension = meta.extensions.byId('supabase_vault') const isLoadingExtensions = meta.extensions.isLoading - const isNotAvailable = wrappersExtension === undefined || vaultExtension === undefined const isWrappersEnabled = wrappersExtension !== undefined && @@ -37,48 +34,6 @@ const Wrappers = () => { vaultExtension !== undefined && vaultExtension?.installed_version !== null - const canToggleWrappers = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'extensions') - - const onEnableWrappers = async () => { - if (wrappersExtension === undefined || vaultExtension === undefined) return - setIsEnabling(true) - - const requiredExtensions = await Promise.all([ - await meta.extensions.create({ - schema: wrappersExtension.schema ?? 'extensions', - name: wrappersExtension.name, - version: wrappersExtension.default_version, - cascade: true, - }), - await meta.extensions.create({ - schema: vaultExtension.schema ?? 'vault', - name: vaultExtension.name, - version: vaultExtension.default_version, - cascade: true, - }), - ]) - const errors = requiredExtensions.filter( - (res) => res.error && !res.error.message.includes('already exists') - ) - - if (errors.length > 0) { - ui.setNotification({ - error: errors, - category: 'error', - message: `Failed to enable Wrappers for your project: ${errors - .map((x) => x.message) - .join(', ')}`, - }) - } else { - ui.setNotification({ - category: 'success', - message: 'Wrappers is now enabled for your project!', - }) - } - - setIsEnabling(false) - } - return (
@@ -88,39 +43,16 @@ const Wrappers = () => { Query your data warehouse directly from your database, or third-party APIs using SQL.
- {/* [Joshen TODO] For when we support multiple instances per wrapper */} - {/*
- - {WRAPPERS.map((wrapper, idx) => ( - <> - - } - onClick={() => {}} - > - {wrapper.label} - - {idx !== WRAPPERS.length - 1 && } - - ))} - - } - > - - -
*/} + {isLoadingExtensions ? ( @@ -131,116 +63,39 @@ const Wrappers = () => { ) : isWrappersEnabled ? (
- {WRAPPERS.map((wrapper, i) => { - return ( - w.name === wrapper.server.name)?.tables ?? []} - isLoading={isLoading} - isEnabled={enabledWrapperNamesSet.has(wrapper.server.name)} - isOpen={open === wrapper.name} - onOpen={(wrapperName) => { - if (open !== wrapperName) setOpen(wrapperName) - else setOpen('') - }} - /> - ) - })} + {wrappers.length === 0 ? ( +
+

No wrappers created yet

+ +
+ ) : ( + <> + {WRAPPERS.map((wrapper, i) => { + return ( + w.name === wrapper.server.name)?.tables ?? []} + isLoading={isLoading} + isEnabled={enabledWrapperNamesSet.has(wrapper.server.name)} + isOpen={open === wrapper.name} + onOpen={(wrapperName) => { + if (open !== wrapperName) setOpen(wrapperName) + else setOpen('') + }} + /> + ) + })} + + )}
) : ( -
-
-
-
-

Supabase Wrappers

-

- Supabase Wrappers is a framework for building Postgres Foreign Data Wrappers (FDW) - which connect Postgres to external systems. Query your data warehouse or - third-party APIs directly from your database. -

-
- {isNotAvailable ? ( -
-
-
-

- Wrappers is not available for this project yet. -

-

- Do reach out to us if you're interested! -

-
- -
- -
- ) : ( -
- - - - - - - - - - {!canToggleWrappers && ( - - -
- - You need additional permissions to enable Wrappers for this project - -
-
- )} -
-
- )} -
-
-
+ )} ) diff --git a/studio/components/interfaces/Database/Wrappers/WrappersDisabledState.tsx b/studio/components/interfaces/Database/Wrappers/WrappersDisabledState.tsx new file mode 100644 index 00000000000..54e4fa6a8b1 --- /dev/null +++ b/studio/components/interfaces/Database/Wrappers/WrappersDisabledState.tsx @@ -0,0 +1,156 @@ +import Link from 'next/link' +import { useState } from 'react' +import { Button, IconExternalLink } from 'ui' +import { observer } from 'mobx-react-lite' +import * as Tooltip from '@radix-ui/react-tooltip' +import { PermissionAction } from '@supabase/shared-types/out/constants' + +import { checkPermissions, useParams, useStore } from 'hooks' + +const WrappersDisabledState = () => { + const { ui, meta } = useStore() + const { ref } = useParams() + const wrappersExtension = meta.extensions.byId('wrappers') + const vaultExtension = meta.extensions.byId('supabase_vault') + const isNotAvailable = wrappersExtension === undefined || vaultExtension === undefined + + const [isEnabling, setIsEnabling] = useState(false) + const canToggleWrappers = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'extensions') + + const onEnableWrappers = async () => { + if (wrappersExtension === undefined || vaultExtension === undefined) return + setIsEnabling(true) + + const requiredExtensions = await Promise.all([ + await meta.extensions.create({ + schema: wrappersExtension.schema ?? 'extensions', + name: wrappersExtension.name, + version: wrappersExtension.default_version, + cascade: true, + }), + await meta.extensions.create({ + schema: vaultExtension.schema ?? 'vault', + name: vaultExtension.name, + version: vaultExtension.default_version, + cascade: true, + }), + ]) + const errors = requiredExtensions.filter( + (res) => res.error && !res.error.message.includes('already exists') + ) + + if (errors.length > 0) { + ui.setNotification({ + error: errors, + category: 'error', + message: `Failed to enable Wrappers for your project: ${errors + .map((x) => x.message) + .join(', ')}`, + }) + } else { + ui.setNotification({ + category: 'success', + message: 'Wrappers is now enabled for your project!', + }) + } + + setIsEnabling(false) + } + + return ( +
+
+
+
+

Supabase Wrappers

+

+ Supabase Wrappers is a framework for building Postgres Foreign Data Wrappers (FDW) + which connect Postgres to external systems. Query your data warehouse or third-party + APIs directly from your database. +

+
+ {isNotAvailable ? ( +
+
+
+

+ Wrappers is not available for this project yet. +

+

+ Do reach out to us if you're interested! +

+
+ +
+ +
+ ) : ( +
+ + + + + + + + + + {!canToggleWrappers && ( + + +
+ + You need additional permissions to enable Wrappers for this project + +
+
+ )} +
+
+ )} +
+
+
+ ) +} + +export default observer(WrappersDisabledState) diff --git a/studio/components/interfaces/Database/Wrappers/WrappersDropdown.tsx b/studio/components/interfaces/Database/Wrappers/WrappersDropdown.tsx new file mode 100644 index 00000000000..88f6fd36404 --- /dev/null +++ b/studio/components/interfaces/Database/Wrappers/WrappersDropdown.tsx @@ -0,0 +1,59 @@ +import Link from 'next/link' +import Image from 'next/image' +import { FC } from 'react' +import { observer } from 'mobx-react-lite' +import { Button, Dropdown, IconPlus } from 'ui' + +import { useParams } from 'hooks' +import { WRAPPERS } from './Wrappers.constants' + +interface Props { + buttonText?: string + align?: 'center' | 'end' +} + +const WrapperDropdown: FC = ({ buttonText = 'Add wrapper', align = 'end' }) => { + const { ref } = useParams() + + return ( + + {WRAPPERS.map((wrapper, idx) => ( + <> + + + + } + > + {wrapper.label} + + + + {idx !== WRAPPERS.length - 1 && } + + ))} + + } + > + + + ) +} + +export default observer(WrapperDropdown) diff --git a/studio/components/interfaces/Database/index.ts b/studio/components/interfaces/Database/index.ts index b294434c18e..d8e78540e78 100644 --- a/studio/components/interfaces/Database/index.ts +++ b/studio/components/interfaces/Database/index.ts @@ -7,6 +7,7 @@ import RolesSettings from './Roles/RolesSettings' import Extensions from './Extensions/Extensions' import Wrappers from './Wrappers/Wrappers' +import CreateWrapper from './Wrappers/CreateWrapper' import PublicationsList from './Publications/PublicationsList' import PublicationsTables from './Publications/PublicationsTables' @@ -28,6 +29,7 @@ export { RolesSettings, Extensions, Wrappers, + CreateWrapper, PublicationsList, PublicationsTables, BackupsList, diff --git a/studio/pages/project/[ref]/database/wrappers.tsx b/studio/pages/project/[ref]/database/wrappers/index.tsx similarity index 100% rename from studio/pages/project/[ref]/database/wrappers.tsx rename to studio/pages/project/[ref]/database/wrappers/index.tsx diff --git a/studio/pages/project/[ref]/database/wrappers/new.tsx b/studio/pages/project/[ref]/database/wrappers/new.tsx new file mode 100644 index 00000000000..7d5987fef99 --- /dev/null +++ b/studio/pages/project/[ref]/database/wrappers/new.tsx @@ -0,0 +1,26 @@ +import { observer } from 'mobx-react-lite' +import { PermissionAction } from '@supabase/shared-types/out/constants' + +import { NextPageWithLayout } from 'types' +import { checkPermissions } from 'hooks' +import { DatabaseLayout } from 'components/layouts' +import NoPermission from 'components/ui/NoPermission' +import { FormsContainer } from 'components/ui/Forms' +import { CreateWrapper } from 'components/interfaces/Database' + +const DatabaseWrappersNew: NextPageWithLayout = () => { + const canReadWrappers = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_READ, 'wrappers') + if (!canReadWrappers) { + return + } + + return +} + +DatabaseWrappersNew.getLayout = (page) => ( + + {page} + +) + +export default observer(DatabaseWrappersNew) From 36a38106a1d610ed6a7bf6b7a9e9f2bd8a7e593c Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Fri, 6 Jan 2023 10:21:46 -0330 Subject: [PATCH 06/48] Add a readme describing how docs work, misc required cleanup --- apps/docs/DEVELOPERS.md | 89 ++++ .../NavigationMenuRefListItems.tsx | 26 +- apps/docs/components/Options.tsx | 4 +- apps/docs/components/Params.tsx | 4 +- apps/docs/components/index.tsx | 5 +- apps/docs/pages/guides/functions.mdx | 2 - spec/common-client-libs-sections.json | 338 +++++------- spec/common-client-libs.yml | 485 ------------------ 8 files changed, 227 insertions(+), 726 deletions(-) create mode 100644 apps/docs/DEVELOPERS.md delete mode 100644 spec/common-client-libs.yml diff --git a/apps/docs/DEVELOPERS.md b/apps/docs/DEVELOPERS.md new file mode 100644 index 00000000000..bd54993a356 --- /dev/null +++ b/apps/docs/DEVELOPERS.md @@ -0,0 +1,89 @@ +# Developing Supabase Docs + +## Getting started + +Thanks for your interest in [Supabase docs](https://supabase.com/docs) and for wanting to contribute! Before you begin, read the +[code of conduct](https://github.com/supabase/.github/blob/main/CODE_OF_CONDUCT.md) and check out the +[existing issues](https://github.com/supabase/supabase/issues). +This document describes how to set up your development environment to contribute to [Supabase docs](https://supabase.com/docs). + +For a complete run-down on how all of our tools work together, see the main DEVELOPERS.md. That readme describes how to get setup locally in lots of detail, including details minimum requirements, our Turborepo setup, installing packages, sharing components across projects and more. This readme deals specifically with the docs site. + +## Local setup + +[supabase.com/docs](https://supabase.com/docs) is a Next.JS site. You can get setup by following the same steps for all of our other Next.JS projects: + +1. Follow the steps outlined in the Local Development section of the main [DEVELOPERS.md](https://github.com/supabase/supabase/blob/master/DEVELOPERS.md) +2. Start the local docs site by navigating to `/apps/docs` and running `npm run dev` +3. Visit http://localhost:3001/docs in your browser - don't forget to append the `/docs` to the end +4. Your local site should look exactly like [https://supabase.com/docs](https://supabase.com/docs) + +## Types of documentation + +[https://supabase.com/docs](https://supabase.com/docs) has several different kinds of documentation, all coming from different sources. + +### Guides + +The primary, instructional type of content. Basically anything that lives on the `https://supabase.com/docs/guides` route. This includes Guides for Auth, Database, Storage, Realtime as well as general resources, self-hosting instructions and integrations. These are all [`.mdx`](https://mdxjs.com/) files — a combination of Markdown and Javascript. + +#### Things to know + +Here's a simple [example](https://supabase.com/docs/guides/functions) `.mdx` Guide, and here is [the source on Github](https://raw.githubusercontent.com/supabase/supabase/master/apps/docs/pages/guides/functions.mdx). + +Some things to note: + +1. The files need to import a Layout at the top +2. The files need to export a `Page` at the bottom with the `` component +3. The files frontmatter is stored in `const meta = {}`. You should always include `id`, `title` and `description`. +4. You can write Markdown as you normally would, but you can also write regular Javascript and JSX. Note the `examples` array that we iterate over. +5. Any Javascript variables you use in these files need to be exported in order to be used. IE: `export const examples = []` + +##### Using components + +You can use any standard React components in these `.mdx` files without having to explicitly import them in each file. All components get imported in a [common components](https://github.com/supabase/supabase/blob/master/apps/docs/components/index.tsx) file and can be used in any `.mdx` file. Components can also be "intercepted" and modified via this file. Note how we're intercepting the `h2`, `h3` and `code` tags and modifying them before converting the `mdx` to `html`. + +### Reference docs for client libraries + +We maintain client libraries for [Javascript](https://supabase.com/docs/reference/javascript) and [Flutter/Dart](https://supabase.com/docs/reference/dart) (with more to come). These reference docs document every object and method available for developers to use. The are assembled from different sources and work much differently than the `.mdx` Guides we just looked at. + +The client libraries are essentially wrappers around the clients for the various tools we use — GoTrue, PostgREST, Storage, Functions and Realtime. The easiest way to describe how the things fit together is to look at an example and trace where the various pieces of information are coming from. + +#### Example + +Let's look at the `updateUser()` function in the `supabase-js` library. + +#### Common file + +Several pieces of information for this function come from a [common file](https://github.com/supabase/supabase/blob/master/spec/common-client-libs-sections.json#L548) where we store information shared by all libraries. + +1. id — used to identify this function +2. title - the human-readable title +3. slug — the url slug +4. product - the supabase tool or product that "owns" this function. Since `updateUser()` is an auth function, it's product is `auth` +5. type — `updateUser()` is a function and marked as such, but we can also have sections of markdown interspersed with these function definitions. + +#### Function Parameters + +The `updateUser()` function takes one parameter: `attributes`. The details for this parameter live in the GoTrue client library, referenced via a `$ref` property in the `supabase-js` [spec file](https://github.com/supabase/supabase/blob/master/spec/supabase_js_v2.yml#L357). Here, the `$ref` property is pointing to the [actual function definition](https://github.com/supabase/gotrue-js/blob/master/src/GoTrueClient.ts#L590) in the `gotrue-js` library. The accepted values for the `attributes` parameter come from the [type definition](https://github.com/supabase/gotrue-js/blob/16d3deb822097e8640a3a15b94a5690b3beaf11b/src/lib/types.ts#L233). + +These individual library spec files are fetched via this [Makefile](https://github.com/supabase/supabase/blob/master/spec/Makefile), and get [transformed](https://github.com/supabase/supabase/blob/master/spec/enrichments/tsdoc_v2/supabase_dereferenced.json) to combine the information we need (params, types, etc). If you're working on docs, you likely won't need to touch this part of the setup, but we've included this detail here to point you in the right direction in case you do. + +#### Function Examples + +The `updateUser()` function has three examples listed with it. The examples are stored along with the `$ref` property in the [supabase_js_v2 spec file](https://github.com/supabase/supabase/blob/master/spec/supabase_js_v2.yml). + +#### Rendering in Next.JS + +These reference docs are rendered by Next.JS via a dynamic route using a [`[...slug.tsx]`](https://github.com/supabase/supabase/blob/master/apps/docs/pages/reference/javascript/%5B...slug%5D.tsx). Here, we use the library [spec file](https://github.com/supabase/supabase/blob/master/apps/docs/pages/reference/javascript/%5B...slug%5D.tsx#L4) and the [common file](https://github.com/supabase/supabase/blob/master/apps/docs/pages/reference/javascript/%5B...slug%5D.tsx#L1) to output the info you see on the page. + +### Other reference docs + +The reference docs for the [Supabase Management API](https://supabase.com/docs/reference/api) and the [Supabase CLI](https://supabase.com/docs/reference/cli) are a little more straightforward than the client libraries. Both files also have a [common file](https://github.com/supabase/supabase/blob/master/spec/common-cli-sections.json) which handles things like `title`, `id` and `slug`. Both also have a spec file detailing things like parameters, descriptions and responses ([Management API](https://github.com/supabase/supabase/blob/master/spec/api_v0_openapi.json) / [CLI](https://github.com/supabase/supabase/blob/master/spec/cli_v1_commands.yaml)) + +On the Next.JS side of things, these work almost exactly the same as the client libaries with a dynamic [`[...slug.tsx]`](https://github.com/supabase/supabase/blob/master/apps/docs/pages/reference/cli/%5B...slug%5D.tsx). + +### Misc + +#### Search + +Search is handled through Algolia. When the site is built, a [script](https://github.com/supabase/supabase/blob/master/apps/docs/scripts/build-search.ts) runs through all of the types of content, generating search objects that are sent to Algolia to index. diff --git a/apps/docs/components/Navigation/NavigationMenu/NavigationMenuRefListItems.tsx b/apps/docs/components/Navigation/NavigationMenu/NavigationMenuRefListItems.tsx index 1611cd51992..123a34e27ad 100644 --- a/apps/docs/components/Navigation/NavigationMenu/NavigationMenuRefListItems.tsx +++ b/apps/docs/components/Navigation/NavigationMenu/NavigationMenuRefListItems.tsx @@ -257,20 +257,18 @@ const Content: React.FC = ({ id, lib, commonSections, sp {fn.items && - fn.items - //.filter((item) => item.libs.includes(lib)) - .map((item) => ( - - ))} + fn.items.map((item) => ( + + ))} ) : ( diff --git a/apps/docs/components/Options.tsx b/apps/docs/components/Options.tsx index c2783edeaa4..e349cdd97bb 100644 --- a/apps/docs/components/Options.tsx +++ b/apps/docs/components/Options.tsx @@ -70,7 +70,9 @@ const Option: FC = (props) => { {props.type ?? 'no type'} -

{props.description ?? 'nodescription'}

+ + {props.description &&

{props.description}

} + {props.children} ) diff --git a/apps/docs/components/Params.tsx b/apps/docs/components/Params.tsx index ede7f8bcac7..10994966198 100644 --- a/apps/docs/components/Params.tsx +++ b/apps/docs/components/Params.tsx @@ -20,7 +20,9 @@ const Param: FC = (paramItem) => { {paramItem.type ?? 'no type'} -

{paramItem.description ?? 'nodescription'}

+ {paramItem.description && ( +

{paramItem.description}

+ )} {paramItem.children} ) diff --git a/apps/docs/components/index.tsx b/apps/docs/components/index.tsx index 9ee8c4060d5..587a5cfee32 100644 --- a/apps/docs/components/index.tsx +++ b/apps/docs/components/index.tsx @@ -1,4 +1,5 @@ -import { Button, Tabs, Alert } from 'ui' +import { Button, Tabs, Alert, GlassPanel } from 'ui' +import Link from 'next/link' // Common components import Admonition from './Admonition' @@ -38,6 +39,8 @@ const components = { Button, ButtonCard, CodeBlock, + GlassPanel, + Link, Frameworks, AuthProviders, FunctionsExamples, diff --git a/apps/docs/pages/guides/functions.mdx b/apps/docs/pages/guides/functions.mdx index 9c970cb6bfe..a382f7ccde1 100644 --- a/apps/docs/pages/guides/functions.mdx +++ b/apps/docs/pages/guides/functions.mdx @@ -1,6 +1,4 @@ import Layout from '~/layouts/DefaultGuideLayout' -import { Button, GlassPanel } from 'ui' -import Link from 'next/link' export const meta = { id: 'functions', diff --git a/spec/common-client-libs-sections.json b/spec/common-client-libs-sections.json index 14606af13be..c290fb91859 100644 --- a/spec/common-client-libs-sections.json +++ b/spec/common-client-libs-sections.json @@ -3,15 +3,13 @@ "title": "Introduction", "id": "introduction", "slug": "introduction", - "type": "markdown", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "markdown" }, { "title": "Installing", "id": "installing", "slug": "installing", - "type": "markdown", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "markdown" }, { "title": "Initializing", @@ -23,67 +21,59 @@ "title": "Typescript Support", "id": "typescript-support", "slug": "typescript-support", - "type": "markdown", - "libs": ["js", "js_v1"] + "type": "markdown" }, { "title": "Upgrade guide", "id": "upgrade-guide", "slug": "upgrade-guide", - "type": "markdown", - "libs": ["js"] + "type": "markdown" }, { "title": "Database", - "libs": ["js", "js_v1", "dart", "dart_v0"], + "items": [ { "id": "select", "title": "Fetch data", "slug": "select", "product": "database", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "insert", "title": "Insert data", "slug": "insert", "product": "database", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "update", "title": "Update data", "slug": "update", "product": "database", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "upsert", "title": "Upsert data", "slug": "upsert", "product": "database", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "delete", "title": "Delete data", "slug": "delete", "product": "database", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "rpc", "title": "Call a Postgres function", "slug": "rpc", "product": "database", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "using-filters", @@ -92,7 +82,7 @@ "slug": "using-filters", "product": "database", "type": "function", - "libs": ["js", "dart", "dart_v0"], + "items": [ { "id": "eq", @@ -100,8 +90,7 @@ "slug": "eq", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "neq", @@ -109,8 +98,7 @@ "slug": "neq", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "gt", @@ -118,8 +106,7 @@ "slug": "gt", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "gte", @@ -127,8 +114,7 @@ "slug": "gte", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "lt", @@ -136,8 +122,7 @@ "slug": "lt", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "lte", @@ -145,8 +130,7 @@ "slug": "lte", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "like", @@ -154,8 +138,7 @@ "slug": "like", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "ilike", @@ -163,8 +146,7 @@ "slug": "ilike", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "is", @@ -172,8 +154,7 @@ "slug": "is", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "in", @@ -181,8 +162,7 @@ "slug": "in", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "contains", @@ -190,8 +170,7 @@ "slug": "contains", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "contained-by", @@ -199,8 +178,7 @@ "slug": "containedby", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "range-gt", @@ -208,8 +186,7 @@ "slug": "rangegt", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "range-gte", @@ -217,8 +194,7 @@ "slug": "rangegte", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "range-lt", @@ -226,8 +202,7 @@ "slug": "rangelt", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "range-lte", @@ -235,8 +210,7 @@ "slug": "rangelte", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "range-adjacent", @@ -244,8 +218,7 @@ "slug": "rangeadjacent", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "overlaps", @@ -253,8 +226,7 @@ "slug": "overlaps", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "text-search", @@ -262,8 +234,7 @@ "slug": "textsearch", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "match", @@ -271,8 +242,7 @@ "slug": "match", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "not", @@ -280,8 +250,7 @@ "slug": "not", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "or", @@ -289,8 +258,7 @@ "slug": "or", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "filter", @@ -298,8 +266,7 @@ "slug": "filter", "product": "database", "parent": "filters", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" } ] }, @@ -311,7 +278,7 @@ "product": "database", "parent": "modifiers", "type": "function", - "libs": ["js", "dart", "dart_v0"], + "items": [ { "id": "db-modifiers-select", @@ -319,8 +286,7 @@ "slug": "db-modifiers-select", "product": "database", "parent": "modifiers", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "order", @@ -328,8 +294,7 @@ "slug": "order", "product": "database", "parent": "modifiers", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "limit", @@ -337,8 +302,7 @@ "slug": "limit", "product": "database", "parent": "modifiers", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "range", @@ -346,8 +310,7 @@ "slug": "range", "product": "database", "parent": "modifiers", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "abort-signal", @@ -355,8 +318,7 @@ "slug": "db-abortsignal", "product": "database", "parent": "modifiers", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "single", @@ -364,8 +326,7 @@ "slug": "single", "product": "database", "parent": "modifiers", - "type": "function", - "libs": ["js", "dart", "dart_v0"] + "type": "function" }, { "id": "maybe-single", @@ -373,8 +334,7 @@ "slug": "maybesingle", "product": "database", "parent": "modifiers", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "csv", @@ -382,8 +342,7 @@ "slug": "db-csv", "product": "database", "parent": "modifiers", - "type": "function", - "libs": ["js"] + "type": "function" } ] } @@ -391,13 +350,13 @@ }, { "title": "Auth", - "libs": ["js", "js_v1", "dart", "dart_v0"], + "items": [ { "id": "auth-api", "title": "Overview", "slug": "auth-api", - "libs": ["js"], + "type": "function" }, { @@ -405,230 +364,202 @@ "title": "Create a new user", "slug": "auth-signup", "product": "auth", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "sign-in", "title": "Sign in a user", "slug": "auth-signin", "product": "auth", - "type": "function", - "libs": ["js_v1", "dart_v0"] + "type": "function" }, { "id": "sign-in-with-provider", "title": "Sign in a user through OAuth", "slug": "auth-signinwithprovider", "product": "auth", - "type": "function", - "libs": ["dart_v0"] + "type": "function" }, { "id": "sign-in-with-password", "title": "Sign in a user", "slug": "auth-signinwithpassword", "product": "auth", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "sign-in-with-otp", "title": "Sign in a user through OTP", "slug": "auth-signinwithotp", "product": "auth", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "sign-in-with-oauth", "title": "Sign in a user through OAuth", "slug": "auth-signinwithoauth", "product": "auth", - "type": "function", - "libs": ["js", "dart"] + "type": "function" }, { "id": "sign-out", "title": "Sign out a user", "slug": "auth-signout", "product": "auth", - "type": "function", - "libs": ["js", "js_v1", "dart"] + "type": "function" }, { "id": "session", "title": "Retrieve a session", "slug": "auth-session", "product": "auth", - "type": "function", - "libs": ["js_v1"] + "type": "function" }, { "id": "auth-update", "title": "Update a user", "slug": "auth-update", "product": "auth", - "type": "function", - "libs": ["js_v1"] + "type": "function" }, { "id": "set-auth", "title": "Update the access token", "slug": "auth-setauth", "product": "auth", - "type": "function", - "libs": ["js_v1"] + "type": "function" }, { "id": "user", "title": "Retrieve a user", "slug": "auth-user", "product": "auth", - "type": "function", - "libs": ["js_v1"] + "type": "function" }, { "id": "session", "title": "Retrieve a session", "slug": "auth-session", "product": "auth", - "type": "function", - "libs": ["js_v1"] + "type": "function" }, { "id": "verify-otp", "title": "Verify and log in through OTP", "slug": "auth-verifyotp", "product": "auth", - "type": "function", - "libs": ["js", "dart"] + "type": "function" }, { "id": "current-session", "title": "Retrieve a session", "slug": "auth-currentsession", "product": "auth", - "type": "function", - "libs": ["dart"] + "type": "function" }, { "id": "current-user", "title": "Retrieve a user", "slug": "auth-currentuser", "product": "auth", - "type": "function", - "libs": ["dart"] + "type": "function" }, { "id": "get-session", "title": "Retrieve a session", "slug": "auth-getsession", "product": "auth", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "refresh-session", "title": "Retrieve a new session", "slug": "auth-refreshsession", "product": "auth", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "get-user", "title": "Retrieve a user", "slug": "auth-getuser", "product": "auth", - "type": "function", - "libs": ["js", "js_v1"] + "type": "function" }, { "id": "update-user", "title": "Update a user", "slug": "auth-updateuser", "product": "auth", - "type": "function", - "libs": ["js", "dart"] + "type": "function" }, { "id": "set-session", "title": "Set the session data", "slug": "auth-setsession", "product": "auth", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "on-auth-state-change", "title": "Listen to auth events", "slug": "auth-onauthstatechange", "product": "auth", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "reset-password-for-email", "title": "Send a password reset request", "slug": "auth-resetpasswordforemail", "product": "auth", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "mfa-enroll", "title": "Enroll a factor", "slug": "auth-mfa-enroll", "product": "auth", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "mfa-challenge", "title": "Create a challenge", "slug": "auth-mfa-challenge", "product": "auth", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "mfa-verify", "title": "Verify a challenge", "slug": "auth-mfa-verify", "product": "auth", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "mfa-challenge-and-verify", "title": "Create and verify a challenge", "slug": "auth-mfa-challengeandverify", "product": "auth", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "mfa-unenroll", "title": "Unenroll a factor", "slug": "auth-mfa-unenroll", "product": "auth", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "mfa-get-authenticator-assurance-level", "title": "Get Authenticator Assurance Level", "slug": "auth-mfa-getauthenticatorassurancelevel", "product": "auth", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "admin-api", "title": "Auth Admin", "slug": "admin-api", - "libs": ["js", "js_v1"], + "type": "function", "items": [ { @@ -636,88 +567,77 @@ "title": "Retrieve a user", "slug": "auth-admin-getuserbyid", "product": "auth-admin", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "list-users", "title": "List all users", "slug": "auth-admin-listusers", "product": "auth-admin", - "type": "function", - "libs": ["js", "js_v1"] + "type": "function" }, { "id": "create-user", "title": "Create a user", "slug": "auth-admin-createuser", "product": "auth-admin", - "type": "function", - "libs": ["js", "js_v1"] + "type": "function" }, { "id": "delete-user", "title": "Delete a user", "slug": "auth-admin-deleteuser", "product": "auth-admin", - "type": "function", - "libs": ["js", "js_v1"] + "type": "function" }, { "id": "invite-user-by-email", "title": "Send an email invite link", "slug": "auth-admin-inviteuserbyemail", "product": "auth-admin", - "type": "function", - "libs": ["js", "js_v1"] + "type": "function" }, { "id": "reset-password-for-email", "title": "Send a password reset request", "slug": "auth-admin-resetpasswordforemail", "product": "auth-admin", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "generate-link", "title": "Generate an email link", "slug": "auth-admin-generatelink", "product": "auth-admin", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "send-mobile-otp", "title": "Send a one-time passcode", "slug": "auth-api-sendmobileotp", "product": "auth-server", - "type": "function", - "libs": ["js_v1"] + "type": "function" }, { "id": "update-user-by-id", "title": "Update a user", "slug": "auth-admin-updateuserbyid", "product": "auth-admin", - "type": "function", - "libs": ["js", "js_v1"] + "type": "function" }, { "id": "mfa-list-factors", "title": "List all factors for a user", "slug": "auth-admin-mfa-listfactors", "product": "auth-admin", - "type": "function", - "libs": ["js"] + "type": "function" }, { "id": "mfa-delete-factor", "title": "Delete a factor for a user", "slug": "auth-admin-mfa-deletefactor", "product": "auth-admin", - "type": "function", - "libs": ["js"] + "type": "function" } ] } @@ -725,61 +645,55 @@ }, { "title": "Functions", - "libs": ["js", "js_v1", "dart", "dart_v0"], + "items": [ { "id": "invoke", "title": "Invoke a function", "slug": "auth-admin-invoke", "product": "functions", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" } ] }, { "title": "Realtime", - "libs": ["js", "js_v1", "dart", "dart_v0"], + "items": [ { "id": "stream", "title": "Listen to database changes", "slug": "stream", "product": "realtime", - "type": "function", - "libs": ["dart", "dart_v0"] + "type": "function" }, { "id": "subscribe", "title": "Subscribe to database changes", "slug": "subscribe", "product": "realtime", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "remove-subscription", "title": "Remove a subscription", "slug": "removesubscription", "product": "realtime", - "type": "function", - "libs": ["dart_v0", "js_v1"] + "type": "function" }, { "id": "remove-all-subscriptions", "title": "Remove all subscriptions", "slug": "removeallsubscriptions", "product": "realtime", - "type": "function", - "libs": ["js_v1"] + "type": "function" }, { "id": "get-subscriptions", "title": "Retrieve subscriptions", "slug": "getsubscriptions", "product": "realtime", - "type": "function", - "libs": ["js_v1"] + "type": "function" }, { @@ -787,172 +701,152 @@ "title": "Unsubscribe from a channel", "slug": "removechannel", "product": "realtime", - "type": "function", - "libs": ["js", "dart"] + "type": "function" }, { "id": "remove-all-channels", "title": "Unsubscribe from all channels", "slug": "removeallchannels", "product": "realtime", - "type": "function", - "libs": ["js", "dart"] + "type": "function" }, { "id": "get-channels", "title": "Retrieve all channels", "slug": "getchannels", "product": "realtime", - "type": "function", - "libs": ["js", "dart"] + "type": "function" } ] }, { "title": "Storage", - "libs": ["js", "js_v1", "dart", "dart_v0"], + "items": [ { "id": "create-bucket", "title": "Create a bucket", "slug": "storage-createbucket", "product": "storage", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "get-bucket", "title": "Retrieve a bucket", "slug": "storage-getbucket", "product": "storage", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "list-buckets", "title": "List all buckets", "slug": "storage-listbuckets", "product": "storage", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "update-bucket", "title": "Update a bucket", "slug": "storage-updatebucket", "product": "storage", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "delete-bucket", "title": "Delete a bucket", "slug": "storage-deletebucket", "product": "storage", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "empty-bucket", "title": "Empty a bucket", "slug": "storage-emptybucket", "product": "storage", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "from-upload", "title": "Upload a file", "slug": "storage-from-upload", "product": "storage", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "from-download", "title": "Download a file", "slug": "storage-from-download", "product": "storage", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "from-list", "title": "List all files in a bucket", "slug": "storage-from-list", "product": "storage", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "from-update", "title": "Replace an existing file", "slug": "storage-from-update", "product": "storage", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "from-move", "title": "Move an existing file", "slug": "storage-from-move", "product": "storage", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "from-copy", "title": "Copy an existing file", "slug": "storage-from-copy", "product": "storage", - "type": "function", - "libs": ["js", "js_v1"] + "type": "function" }, { "id": "from-remove", "title": "Delete files in a bucket", "slug": "storage-from-remove", "product": "storage", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "from-create-signed-url", "title": "Create a signed URL", "slug": "storage-from-createsignedurl", "product": "storage", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" }, { "id": "from-create-signed-urls", "title": "Create signed URLs", "slug": "storage-from-createsignedurls", "product": "storage", - "type": "function", - "libs": ["js", "js_v1"] + "type": "function" }, { "id": "from-get-public-url", "title": "Retrieve public URL", "slug": "storage-from-getpublicurl", "product": "storage", - "type": "function", - "libs": ["js", "js_v1", "dart", "dart_v0"] + "type": "function" } ] }, { "title": "Misc", - "libs": ["js", "js_v1"], + "items": [ { "title": "Release Notes", "id": "release-notes", "slug": "release-notes", "isFunc": false, - "type": "markdown", - "libs": ["js", "js_v1"] + "type": "markdown" } ] } diff --git a/spec/common-client-libs.yml b/spec/common-client-libs.yml deleted file mode 100644 index 1d2a2b713c6..00000000000 --- a/spec/common-client-libs.yml +++ /dev/null @@ -1,485 +0,0 @@ -openref: 0.1 - -info: - id: reference/common-library-file - title: Supabase Client libs common - description: | - - This file shares info common between the JS and Dart libraries. - -functions: - - id: initializing - title: initializing - slug: initializing - - - id: select - title: 'Fetching data' - slug: select - product: database - - - id: insert - title: 'Insert data' - slug: insert - product: 'database' - - - id: update - title: 'Update data' - slug: update - product: 'database' - - - id: upsert - title: 'Upsert data' - slug: upsert - product: 'database' - - - id: delete - title: 'Delete data' - slug: delete - product: 'database' - - - id: rpc - title: 'Postgres functions' - slug: rpc - product: 'database' - - - id: using-filters - title: 'Using filters' - slug: using-filters - product: 'database' - - - id: eq - title: eq() - slug: eq - product: 'database' - parent: 'Filters' - - - id: neq - title: neq() - slug: neq - product: 'database' - parent: 'Filters' - - - id: gt - title: gt() - slug: gt - product: 'database' - parent: 'Filters' - - - id: gte - title: gte() - slug: gte - product: 'database' - parent: 'Filters' - - - id: lt - title: lt() - slug: lt - product: 'database' - parent: 'Filters' - - - id: lte - title: lte() - slug: lte - product: 'database' - parent: 'Filters' - - - id: like - title: like() - slug: like - product: 'database' - parent: 'Filters' - - - id: ilike - title: ilike() - slug: ilike - product: 'database' - parent: 'Filters' - - - id: is - title: is() - slug: is - product: 'database' - parent: 'Filters' - - - id: in - title: in() - slug: in - product: 'database' - parent: 'Filters' - - - id: contains - title: contains() - slug: contains - product: 'database' - parent: 'Filters' - - - id: contained-by - title: containedBy() - slug: containedby - product: 'database' - parent: 'Filters' - - - id: range-gt - title: rangeGt() - slug: rangegt - product: 'database' - parent: 'Filters' - - - id: range-gte - title: rangeGte() - slug: rangegte - product: 'database' - parent: 'Filters' - - - id: range-lt - title: rangeLt() - slug: rangelt - product: 'database' - parent: 'Filters' - - - id: range-lte - title: rangeLte() - slug: rangelte - product: 'database' - parent: 'Filters' - - - id: range-adjacent - title: rangeAdjacent() - slug: rangeadjacent - product: 'database' - parent: 'Filters' - - - id: overlaps - title: overlaps() - slug: overlaps - product: 'database' - parent: 'Filters' - - - id: text-search - title: textSearch() - slug: textsearch - product: 'database' - parent: 'Filters' - - - id: match - title: match() - slug: match - product: 'database' - parent: 'Filters' - - - id: not - title: not() - slug: not - product: 'database' - parent: 'Filters' - - - id: or - title: or() - slug: or - product: 'database' - parent: 'Filters' - - - id: filter - title: filter() - slug: filter - product: 'database' - parent: 'Filters' - - - id: using-modifiers - title: Using Modifiers - slug: using-modifiers - product: 'database' - parent: 'Modifiers' - - - id: db-modifiers-select - title: select() - slug: db-modifiers-select - product: 'database' - parent: 'Modifiers' - - - id: order - title: order() - slug: order - product: 'database' - parent: 'Modifiers' - - - id: limit - title: limit() - slug: limit - product: 'database' - parent: 'Modifiers' - - - id: range - title: range() - slug: range - product: 'database' - parent: 'Modifiers' - - - id: abort-signal - title: abortSignal() - slug: db-abortsignal - product: 'database' - parent: 'Modifiers' - - - id: single - title: single() - slug: single - product: 'database' - parent: 'Modifiers' - - - id: maybe-single - title: maybeSingle() - slug: maybesingle - product: 'database' - parent: 'Modifiers' - - - id: csv - title: csv() - slug: db-csv - product: 'database' - parent: 'Modifiers' - - - id: sign-up - title: Sign up - slug: auth-signup - product: 'auth' - - - id: sign-in - title: Sign in - slug: auth-signin - product: 'auth' - - - id: set-auth - title: setAuth() - slug: auth-setauth - product: 'auth' - - - id: send-mobile-otp - title: sendMobileOTP() - slug: auth-api-sendmobileotp - product: 'auth' - - - id: sign-in-with-password - title: Sign in with password - slug: auth-signinwithpassword - product: 'auth' - - - id: sign-in-with-otp - title: Sign in with OTP - slug: auth-signinwithotp - product: 'auth' - - - id: sign-in-with-oauth - title: Sign in with 0auth - slug: auth-signinwithoauth - product: 'auth' - - - id: sign-out - title: signOut() - slug: auth-signout - product: 'auth' - - - id: verify-otp - title: verifyOtp() - slug: auth-verifyotp - product: 'auth' - - - id: get-session - title: getSession() - slug: auth-getsession - product: 'auth' - - - id: get-user - title: getUser() - slug: auth-getuser - product: 'auth' - - - id: update-user - title: updateUser() - slug: auth-updateuser - product: 'auth' - - - id: set-session - title: setSession() - slug: auth-setsession - product: 'auth' - - - id: refresh-session - title: refreshSession() - slug: auth-refreshsession - product: 'auth' - - - id: on-auth-state-change - title: onAuthStateChange() - slug: auth-onauthstatechange - product: 'auth' - - - id: admin-api - title: Overview - slug: supabase-auth-admin-api - product: 'auth-admin' - - - id: get-user-by-id - title: getUserById() - slug: auth-admin-getuserbyid - product: 'auth-admin' - - - id: list-users - title: listUsers() - slug: auth-admin-listusers - product: 'auth-admin' - - - id: create-user - title: createUser() - slug: auth-admin-createuser - product: 'auth-admin' - - - id: delete-user - title: deleteUser() - slug: auth-admin-deleteuser - product: 'auth-admin' - - - id: invite-user-by-email - title: inviteUserByEmail() - slug: auth-admin-inviteuserbyemail - product: 'auth-admin' - - - id: reset-password-for-email - title: resetPasswordForEmail() - slug: auth-admin-resetpasswordforemail - product: 'auth-admin' - - - id: generate-link - title: generateLink() - slug: auth-admin-generatelink - product: 'auth-admin' - - - id: update-user-by-id - title: updateUserById() - slug: auth-admin-updateuserbyid - product: 'auth-admin' - - - id: invoke - title: invoke() - slug: auth-admin-invoke - product: 'functions' - - - id: stream - title: stream() - slug: stream - product: 'realtime' - - - id: subscribe - title: on().subscribe() - slug: subscribe - product: 'realtime' - - - id: remove-subscription - title: removeSubscription() - slug: removesubscription - product: 'realtime' - - - id: remove-all-subscriptions - title: removeallsubscriptions() - slug: removeallsubscriptions - product: 'realtime' - - - id: get-subscriptions - title: getSubscriptions() - slug: getsubscriptions - product: 'realtime' - - - id: get-channels - title: getChannels() - slug: getchannels - product: 'realtime' - - - id: remove-channel - title: removeChannel() - slug: removechannel - product: 'realtime' - - - id: remove-all-channels - title: removeAllChannels() - slug: removeallchannels - product: 'realtime' - - - id: list-buckets - title: listBuckets() - slug: storage-listbuckets - product: 'storage' - - - id: get-bucket - title: getBucket() - slug: storage-getbucket - product: 'storage' - - - id: create-bucket - title: createBucket() - slug: storage-createbucket - product: 'storage' - - - id: empty-bucket - title: emptyBucket() - slug: storage-emptybucket - product: 'storage' - - - id: update-bucket - title: updateBucket() - slug: storage-updatebucket - product: 'storage' - - - id: delete-bucket - title: deleteBucket() - slug: storage-deletebucket - product: 'storage' - - - id: from-upload - title: from.upload() - slug: storage-from-upload - product: 'storage' - - - id: from-update - title: from.update() - slug: storage-from-update - product: 'storage' - - - id: from-move - title: from.move() - slug: storage-from-move - product: 'storage' - - - id: from-copy - title: from.copy() - slug: storage-from-copy - product: 'storage' - - - id: from-create-signed-url - title: from.createSignedUrl() - slug: storage-from-createsignedurl - product: 'storage' - - - id: from-create-signed-urls - title: from.createSignedUrls() - slug: storage-from-createsignedurls - product: 'storage' - - - id: from-get-public-url - title: from.getPublicUrl() - slug: storage-from-getpublicurl - product: 'storage' - - - id: from-download - title: from.download() - slug: storage-from-download - product: 'storage' - - - id: from-remove - title: from.remove() - slug: storage-from-remove - product: 'storage' - - - id: from-list - title: from.list() - slug: storage-from-list - product: 'storage' From 0d93c8b5e4817af637283ece3fb4aa6aa7a57360 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Fri, 6 Jan 2023 15:29:13 -0330 Subject: [PATCH 07/48] Remove references to new_docs --- .../reference/RefSectionHandler.tsx | 4 +-- apps/docs/lib/mdx/handleRefStaticProps.tsx | 31 +++---------------- apps/docs/pages/guides/auth/overview.mdx | 10 ++---- 3 files changed, 8 insertions(+), 37 deletions(-) diff --git a/apps/docs/components/reference/RefSectionHandler.tsx b/apps/docs/components/reference/RefSectionHandler.tsx index d54e5d616bb..8f981bcbb91 100644 --- a/apps/docs/components/reference/RefSectionHandler.tsx +++ b/apps/docs/components/reference/RefSectionHandler.tsx @@ -24,12 +24,10 @@ const RefSectionHandler = (props) => { const slug = router.query.slug[0] - const isNewDocs = process.env.NEXT_PUBLIC_NEW_DOCS === 'true' - // When user lands on a url like http://supabase.com/docs/reference/javascript/sign-up // find the #sign-up element and scroll to that useEffect(() => { - if (isNewDocs && document && slug !== 'start') { + if (document && slug !== 'start') { document.querySelector(`#${slug}`) && document.querySelector(`#${slug}`).scrollIntoView() } }) diff --git a/apps/docs/lib/mdx/handleRefStaticProps.tsx b/apps/docs/lib/mdx/handleRefStaticProps.tsx index c9c47b4496d..c97245387f9 100644 --- a/apps/docs/lib/mdx/handleRefStaticProps.tsx +++ b/apps/docs/lib/mdx/handleRefStaticProps.tsx @@ -1,33 +1,12 @@ -import generateOldRefMarkdown from '~/lib/mdx/generateOldRefMarkdown' import generateRefMarkdown from '~/lib/mdx/generateRefMarkdown' -async function handleRefStaticProps(sections, params, librarypath, urlPath) { +async function handleRefStaticProps(sections, librarypath) { let markdownContent = await generateRefMarkdown(sections, librarypath) - /* - * old content generation - * this is for grabbing to old markdown files - */ - - let slug - if (params.slug.length > 1) { - slug = `docs/reference${urlPath}/${params.slug.join('/')}` - } else { - slug = `docs/reference${urlPath}/${params.slug[0]}` - } - - /* - * handle old ref pages - */ - if (process.env.NEXT_PUBLIC_NEW_DOCS === 'false') { - const oldMarkdown = await generateOldRefMarkdown(slug) - return oldMarkdown - } else { - return { - props: { - docs: markdownContent, - }, - } + return { + props: { + docs: markdownContent, + }, } } diff --git a/apps/docs/pages/guides/auth/overview.mdx b/apps/docs/pages/guides/auth/overview.mdx index 97044096e13..d46b0eb3e9d 100644 --- a/apps/docs/pages/guides/auth/overview.mdx +++ b/apps/docs/pages/guides/auth/overview.mdx @@ -1,5 +1,5 @@ import Layout from '~/layouts/DefaultGuideLayout' -import NewContent from '~/pages/new/auth.mdx' + import { useRouter } from 'next/router' export const meta = { @@ -174,12 +174,6 @@ When users sign up, Supabase assigns them a unique ID. You can reference this ID -export const Page = ({ children }) => { - const router = useRouter() - if (process.env.NEXT_PUBLIC_NEW_DOCS === 'true' && !router.asPath.includes('overview')) { - return NewContent() - } - return -} +export const Page = ({ children }) => export default Page From 21b1c5a3df0c40885a715c50e0c6a64771da86cf Mon Sep 17 00:00:00 2001 From: dng Date: Fri, 6 Jan 2023 11:08:56 -0800 Subject: [PATCH 08/48] Update readme --- apps/docs/DEVELOPERS.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/docs/DEVELOPERS.md b/apps/docs/DEVELOPERS.md index bd54993a356..6b0dadd2641 100644 --- a/apps/docs/DEVELOPERS.md +++ b/apps/docs/DEVELOPERS.md @@ -7,7 +7,7 @@ Thanks for your interest in [Supabase docs](https://supabase.com/docs) and for w [existing issues](https://github.com/supabase/supabase/issues). This document describes how to set up your development environment to contribute to [Supabase docs](https://supabase.com/docs). -For a complete run-down on how all of our tools work together, see the main DEVELOPERS.md. That readme describes how to get setup locally in lots of detail, including details minimum requirements, our Turborepo setup, installing packages, sharing components across projects and more. This readme deals specifically with the docs site. +For a complete run-down on how all of our tools work together, see the main DEVELOPERS.md. That readme describes how to get set up locally in lots of detail, including minimum requirements, our Turborepo setup, installing packages, sharing components across projects, and more. This readme deals specifically with the docs site. ## Local setup @@ -24,7 +24,7 @@ For a complete run-down on how all of our tools work together, see the main DEVE ### Guides -The primary, instructional type of content. Basically anything that lives on the `https://supabase.com/docs/guides` route. This includes Guides for Auth, Database, Storage, Realtime as well as general resources, self-hosting instructions and integrations. These are all [`.mdx`](https://mdxjs.com/) files — a combination of Markdown and Javascript. +The primary, instructional type of content. Basically anything that lives on the `https://supabase.com/docs/guides` route. This includes Guides for Auth, Database, Storage, Realtime, Edge Functions, as well as general resources, self-hosting instructions, and integrations. These are all [`.mdx`](https://mdxjs.com/) files — a combination of Markdown and Javascript. #### Things to know @@ -36,7 +36,7 @@ Some things to note: 2. The files need to export a `Page` at the bottom with the `` component 3. The files frontmatter is stored in `const meta = {}`. You should always include `id`, `title` and `description`. 4. You can write Markdown as you normally would, but you can also write regular Javascript and JSX. Note the `examples` array that we iterate over. -5. Any Javascript variables you use in these files need to be exported in order to be used. IE: `export const examples = []` +5. Any Javascript variables you use in these files need to be exported in order to be used (i.e., `export const examples = []`). ##### Using components @@ -46,7 +46,7 @@ You can use any standard React components in these `.mdx` files without having t We maintain client libraries for [Javascript](https://supabase.com/docs/reference/javascript) and [Flutter/Dart](https://supabase.com/docs/reference/dart) (with more to come). These reference docs document every object and method available for developers to use. The are assembled from different sources and work much differently than the `.mdx` Guides we just looked at. -The client libraries are essentially wrappers around the clients for the various tools we use — GoTrue, PostgREST, Storage, Functions and Realtime. The easiest way to describe how the things fit together is to look at an example and trace where the various pieces of information are coming from. +The client libraries are essentially wrappers around the clients for the various tools we use — GoTrue, PostgREST, Storage, Functions, and Realtime. The easiest way to describe how the things fit together is to look at an example and trace where the various pieces of information are coming from. #### Example @@ -54,17 +54,17 @@ Let's look at the `updateUser()` function in the `supabase-js` library. #### Common file -Several pieces of information for this function come from a [common file](https://github.com/supabase/supabase/blob/master/spec/common-client-libs-sections.json#L548) where we store information shared by all libraries. +Several pieces of information for this function come from a [common file](https://github.com/supabase/supabase/blob/3d774b3b7bcdcb410e25726d832467584ebea686/spec/common-client-libs-sections.json#L548) where we store information shared by all libraries. 1. id — used to identify this function 2. title - the human-readable title 3. slug — the url slug -4. product - the supabase tool or product that "owns" this function. Since `updateUser()` is an auth function, it's product is `auth` +4. product - the Supabase tool or product that "owns" this function. Since `updateUser()` is an auth function, its product is `auth` 5. type — `updateUser()` is a function and marked as such, but we can also have sections of markdown interspersed with these function definitions. #### Function Parameters -The `updateUser()` function takes one parameter: `attributes`. The details for this parameter live in the GoTrue client library, referenced via a `$ref` property in the `supabase-js` [spec file](https://github.com/supabase/supabase/blob/master/spec/supabase_js_v2.yml#L357). Here, the `$ref` property is pointing to the [actual function definition](https://github.com/supabase/gotrue-js/blob/master/src/GoTrueClient.ts#L590) in the `gotrue-js` library. The accepted values for the `attributes` parameter come from the [type definition](https://github.com/supabase/gotrue-js/blob/16d3deb822097e8640a3a15b94a5690b3beaf11b/src/lib/types.ts#L233). +The `updateUser()` function takes one parameter: `attributes`. The details for this parameter live in the GoTrue client library, referenced via a `$ref` property in the `supabase-js` [spec file](https://github.com/supabase/supabase/blob/cb04d85262db6a371539dda7df9b00ba5a901e87/spec/supabase_js_v2.yml#L357). Here, the `$ref` property is pointing to the [actual function definition](https://github.com/supabase/gotrue-js/blob/2d60e79073b96ae8c97a6ce18e2601ed1e2a2712/src/GoTrueClient.ts#L590) in the `gotrue-js` library. The accepted values for the `attributes` parameter come from the [type definition](https://github.com/supabase/gotrue-js/blob/16d3deb822097e8640a3a15b94a5690b3beaf11b/src/lib/types.ts#L233). These individual library spec files are fetched via this [Makefile](https://github.com/supabase/supabase/blob/master/spec/Makefile), and get [transformed](https://github.com/supabase/supabase/blob/master/spec/enrichments/tsdoc_v2/supabase_dereferenced.json) to combine the information we need (params, types, etc). If you're working on docs, you likely won't need to touch this part of the setup, but we've included this detail here to point you in the right direction in case you do. @@ -74,11 +74,11 @@ The `updateUser()` function has three examples listed with it. The examples are #### Rendering in Next.JS -These reference docs are rendered by Next.JS via a dynamic route using a [`[...slug.tsx]`](https://github.com/supabase/supabase/blob/master/apps/docs/pages/reference/javascript/%5B...slug%5D.tsx). Here, we use the library [spec file](https://github.com/supabase/supabase/blob/master/apps/docs/pages/reference/javascript/%5B...slug%5D.tsx#L4) and the [common file](https://github.com/supabase/supabase/blob/master/apps/docs/pages/reference/javascript/%5B...slug%5D.tsx#L1) to output the info you see on the page. +These reference docs are rendered by Next.JS via a dynamic route using a [`[...slug.tsx]`](https://github.com/supabase/supabase/blob/master/apps/docs/pages/reference/javascript/%5B...slug%5D.tsx). Here, we use the library [spec file](https://github.com/supabase/supabase/blob/bd0514553c627db8f1e8d0b3ae440ccb6759d228/apps/docs/pages/reference/javascript/%5B...slug%5D.tsx#L4) and the [common file](https://github.com/supabase/supabase/blob/bd0514553c627db8f1e8d0b3ae440ccb6759d228/apps/docs/pages/reference/javascript/%5B...slug%5D.tsx#L1) to output the info you see on the page. ### Other reference docs -The reference docs for the [Supabase Management API](https://supabase.com/docs/reference/api) and the [Supabase CLI](https://supabase.com/docs/reference/cli) are a little more straightforward than the client libraries. Both files also have a [common file](https://github.com/supabase/supabase/blob/master/spec/common-cli-sections.json) which handles things like `title`, `id` and `slug`. Both also have a spec file detailing things like parameters, descriptions and responses ([Management API](https://github.com/supabase/supabase/blob/master/spec/api_v0_openapi.json) / [CLI](https://github.com/supabase/supabase/blob/master/spec/cli_v1_commands.yaml)) +The reference docs for the [Supabase Management API](https://supabase.com/docs/reference/api) and the [Supabase CLI](https://supabase.com/docs/reference/cli) are a little more straightforward than the client libraries. Both files also have a [common file](https://github.com/supabase/supabase/blob/master/spec/common-cli-sections.json) which handles things like `title`, `id` and `slug`. Both also have a spec file detailing things like parameters, descriptions, and responses ([Management API](https://github.com/supabase/supabase/blob/master/spec/api_v0_openapi.json) / [CLI](https://github.com/supabase/supabase/blob/master/spec/cli_v1_commands.yaml)) On the Next.JS side of things, these work almost exactly the same as the client libaries with a dynamic [`[...slug.tsx]`](https://github.com/supabase/supabase/blob/master/apps/docs/pages/reference/cli/%5B...slug%5D.tsx). From e3da1e72bfd53e59e01f1420198483adb3a35741 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Fri, 6 Jan 2023 16:02:02 -0330 Subject: [PATCH 09/48] Cleanup getStaticProps --- apps/docs/pages/reference/api/[...slug].tsx | 4 ++-- apps/docs/pages/reference/cli/[...slug].tsx | 4 ++-- apps/docs/pages/reference/dart/[...slug].tsx | 4 ++-- apps/docs/pages/reference/dart/crawlers/[...slug].tsx | 4 ++-- apps/docs/pages/reference/dart/v0/[...slug].tsx | 4 ++-- apps/docs/pages/reference/dart/v0/crawlers/[...slug].tsx | 4 ++-- apps/docs/pages/reference/javascript/[...slug].tsx | 4 ++-- apps/docs/pages/reference/javascript/crawlers/[...slug].tsx | 4 ++-- apps/docs/pages/reference/javascript/v1/[...slug].tsx | 4 ++-- .../docs/pages/reference/javascript/v1/crawlers/[...slug].tsx | 4 ++-- apps/docs/pages/reference/self-hosting-auth/[...slug].tsx | 4 ++-- apps/docs/pages/reference/self-hosting-realtime/[...slug].tsx | 4 ++-- apps/docs/pages/reference/self-hosting-storage/[...slug].tsx | 4 ++-- 13 files changed, 26 insertions(+), 26 deletions(-) diff --git a/apps/docs/pages/reference/api/[...slug].tsx b/apps/docs/pages/reference/api/[...slug].tsx index 58d617d5cac..382c882a190 100644 --- a/apps/docs/pages/reference/api/[...slug].tsx +++ b/apps/docs/pages/reference/api/[...slug].tsx @@ -15,8 +15,8 @@ export default function Config(props) { return } -export async function getStaticProps({ params }: { params: { slug: string[] } }) { - return handleRefStaticProps(sections, params, '/api', '/api') +export async function getStaticProps() { + return handleRefStaticProps(sections, '/api') } export function getStaticPaths() { diff --git a/apps/docs/pages/reference/cli/[...slug].tsx b/apps/docs/pages/reference/cli/[...slug].tsx index 2e4a2218b3e..3555095ee72 100644 --- a/apps/docs/pages/reference/cli/[...slug].tsx +++ b/apps/docs/pages/reference/cli/[...slug].tsx @@ -14,8 +14,8 @@ export default function CliRef(props) { return } -export async function getStaticProps({ params }: { params: { slug: string[] } }) { - return handleRefStaticProps(sections, params, '/cli', '/cli') +export async function getStaticProps() { + return handleRefStaticProps(sections, '/cli') } export function getStaticPaths() { diff --git a/apps/docs/pages/reference/dart/[...slug].tsx b/apps/docs/pages/reference/dart/[...slug].tsx index 4fecc97170d..735ae57f35f 100644 --- a/apps/docs/pages/reference/dart/[...slug].tsx +++ b/apps/docs/pages/reference/dart/[...slug].tsx @@ -12,8 +12,8 @@ export default function JSReference(props) { return } -export async function getStaticProps({ params }: { params: { slug: string[] } }) { - return handleRefStaticProps(sections, params, '/dart', '/dart') +export async function getStaticProps() { + return handleRefStaticProps(sections, '/dart') } export function getStaticPaths() { diff --git a/apps/docs/pages/reference/dart/crawlers/[...slug].tsx b/apps/docs/pages/reference/dart/crawlers/[...slug].tsx index c12f3cabbf2..0b62b1ca55b 100644 --- a/apps/docs/pages/reference/dart/crawlers/[...slug].tsx +++ b/apps/docs/pages/reference/dart/crawlers/[...slug].tsx @@ -34,8 +34,8 @@ export default function JSReference(props) { ) } -export async function getStaticProps({ params }: { params: { slug: string[] } }) { - return handleRefStaticProps(sections, params, '/dart', '/dart') +export async function getStaticProps() { + return handleRefStaticProps(sections, '/dart') } export function getStaticPaths() { diff --git a/apps/docs/pages/reference/dart/v0/[...slug].tsx b/apps/docs/pages/reference/dart/v0/[...slug].tsx index f0daf4e9d6e..9a74ea2583d 100644 --- a/apps/docs/pages/reference/dart/v0/[...slug].tsx +++ b/apps/docs/pages/reference/dart/v0/[...slug].tsx @@ -12,8 +12,8 @@ export default function JSReference(props) { return } -export async function getStaticProps({ params }: { params: { slug: string[] } }) { - return handleRefStaticProps(sections, params, '/dart/v0', '/dart/v0') +export async function getStaticProps() { + return handleRefStaticProps(sections, '/dart/v0') } export function getStaticPaths() { diff --git a/apps/docs/pages/reference/dart/v0/crawlers/[...slug].tsx b/apps/docs/pages/reference/dart/v0/crawlers/[...slug].tsx index 2e67a5b5c8e..18d7c8cac37 100644 --- a/apps/docs/pages/reference/dart/v0/crawlers/[...slug].tsx +++ b/apps/docs/pages/reference/dart/v0/crawlers/[...slug].tsx @@ -33,8 +33,8 @@ export default function JSReference(props) { ) } -export async function getStaticProps({ params }: { params: { slug: string[] } }) { - return handleRefStaticProps(sections, params, '/dart/v0', '/dart/v0') +export async function getStaticProps() { + return handleRefStaticProps(sections, '/dart/v0') } export function getStaticPaths() { diff --git a/apps/docs/pages/reference/javascript/[...slug].tsx b/apps/docs/pages/reference/javascript/[...slug].tsx index cab58348221..31e44d594aa 100644 --- a/apps/docs/pages/reference/javascript/[...slug].tsx +++ b/apps/docs/pages/reference/javascript/[...slug].tsx @@ -13,8 +13,8 @@ export default function JSReference(props) { return } -export async function getStaticProps({ params }: { params: { slug: string[] } }) { - return handleRefStaticProps(sections, params, '/javascript', '/javascript') +export async function getStaticProps() { + return handleRefStaticProps(sections, '/javascript') } export function getStaticPaths() { diff --git a/apps/docs/pages/reference/javascript/crawlers/[...slug].tsx b/apps/docs/pages/reference/javascript/crawlers/[...slug].tsx index 2e6e0b271a9..feebcf6998e 100644 --- a/apps/docs/pages/reference/javascript/crawlers/[...slug].tsx +++ b/apps/docs/pages/reference/javascript/crawlers/[...slug].tsx @@ -34,8 +34,8 @@ export default function JSReference(props) { ) } -export async function getStaticProps({ params }: { params: { slug: string[] } }) { - return handleRefStaticProps(sections, params, '/javascript', '/javascript') +export async function getStaticProps() { + return handleRefStaticProps(sections, '/javascript') } export function getStaticPaths() { diff --git a/apps/docs/pages/reference/javascript/v1/[...slug].tsx b/apps/docs/pages/reference/javascript/v1/[...slug].tsx index d54c9df6d94..1eeb40044f1 100644 --- a/apps/docs/pages/reference/javascript/v1/[...slug].tsx +++ b/apps/docs/pages/reference/javascript/v1/[...slug].tsx @@ -13,8 +13,8 @@ export default function JSReference(props) { return } -export async function getStaticProps({ params }: { params: { slug: string[] } }) { - return handleRefStaticProps(sections, params, '/javascript/v1', '/javascript/v1') +export async function getStaticProps() { + return handleRefStaticProps(sections, '/javascript/v1') } export function getStaticPaths() { diff --git a/apps/docs/pages/reference/javascript/v1/crawlers/[...slug].tsx b/apps/docs/pages/reference/javascript/v1/crawlers/[...slug].tsx index bbb38f4598a..3f59baad46e 100644 --- a/apps/docs/pages/reference/javascript/v1/crawlers/[...slug].tsx +++ b/apps/docs/pages/reference/javascript/v1/crawlers/[...slug].tsx @@ -33,8 +33,8 @@ export default function JSReference(props) { ) } -export async function getStaticProps({ params }: { params: { slug: string[] } }) { - return handleRefStaticProps(sections, params, '/javascript/v1', '/javascript/v1') +export async function getStaticProps() { + return handleRefStaticProps(sections, '/javascript/v1') } export function getStaticPaths() { diff --git a/apps/docs/pages/reference/self-hosting-auth/[...slug].tsx b/apps/docs/pages/reference/self-hosting-auth/[...slug].tsx index 819fd773892..64c91fb4f5e 100644 --- a/apps/docs/pages/reference/self-hosting-auth/[...slug].tsx +++ b/apps/docs/pages/reference/self-hosting-auth/[...slug].tsx @@ -15,8 +15,8 @@ export default function JSReference(props) { return } -export async function getStaticProps({ params }: { params: { slug: string[] } }) { - return handleRefStaticProps(sections, params, '/self-hosting-auth', '/self-hosting-auth') +export async function getStaticProps() { + return handleRefStaticProps(sections, '/self-hosting-auth') } export function getStaticPaths() { diff --git a/apps/docs/pages/reference/self-hosting-realtime/[...slug].tsx b/apps/docs/pages/reference/self-hosting-realtime/[...slug].tsx index 240ea180f0c..beb4f192715 100644 --- a/apps/docs/pages/reference/self-hosting-realtime/[...slug].tsx +++ b/apps/docs/pages/reference/self-hosting-realtime/[...slug].tsx @@ -12,8 +12,8 @@ export default function JSReference(props) { return } -export async function getStaticProps({ params }: { params: { slug: string[] } }) { - return handleRefStaticProps(sections, params, '/self-hosting-realtime', '/self-hosting-realtime') +export async function getStaticProps() { + return handleRefStaticProps(sections, '/self-hosting-realtime') } export function getStaticPaths() { diff --git a/apps/docs/pages/reference/self-hosting-storage/[...slug].tsx b/apps/docs/pages/reference/self-hosting-storage/[...slug].tsx index 2d2de874622..ea76596b3f8 100644 --- a/apps/docs/pages/reference/self-hosting-storage/[...slug].tsx +++ b/apps/docs/pages/reference/self-hosting-storage/[...slug].tsx @@ -15,8 +15,8 @@ export default function JSReference(props) { return } -export async function getStaticProps({ params }: { params: { slug: string[] } }) { - return handleRefStaticProps(sections, params, '/self-hosting-storage', '/self-hosting-storage') +export async function getStaticProps() { + return handleRefStaticProps(sections, '/self-hosting-storage') } export function getStaticPaths() { From 17111c85d62e1807cd48f0dce13f8316525a40cb Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Mon, 9 Jan 2023 12:33:24 +0800 Subject: [PATCH 10/48] Update create fdw ui flow --- .../Database/Wrappers/CreateWrapper.tsx | 52 +- .../Database/Wrappers/WrapperRow.tsx | 452 ++++-------------- .../Database/Wrappers/Wrappers.constants.ts | 9 - .../interfaces/Database/Wrappers/Wrappers.tsx | 40 +- .../Database/Wrappers/Wrappers.types.ts | 1 - .../Vault/Secrets/SecretsManagement.tsx | 25 +- studio/data/fdw/fdw-create-mutation.ts | 12 +- studio/data/fdw/fdws-query.ts | 11 +- 8 files changed, 197 insertions(+), 405 deletions(-) diff --git a/studio/components/interfaces/Database/Wrappers/CreateWrapper.tsx b/studio/components/interfaces/Database/Wrappers/CreateWrapper.tsx index cd456fd9e07..1cb0eb0a55d 100644 --- a/studio/components/interfaces/Database/Wrappers/CreateWrapper.tsx +++ b/studio/components/interfaces/Database/Wrappers/CreateWrapper.tsx @@ -29,7 +29,6 @@ import { import { useFDWCreateMutation } from 'data/fdw/fdw-create-mutation' import { WRAPPERS } from './Wrappers.constants' -import WrapperRow from './WrapperRow' import WrapperTableEditor from './WrapperTableEditor' import { makeValidateRequired } from './Wrappers.utils' import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext' @@ -91,7 +90,7 @@ const InputField: FC<{ option: ServerOption; error: any }> = ({ option, error }) } defaultValue={option.defaultValue ?? ''} error={error} - className={`${option.name === 'name' ? '' : 'input-mono'}`} + className={`${option.name === 'server_name' ? '' : 'input-mono'}`} type={!option.hidden ? 'text' : showHidden ? 'text' : 'password'} actions={ option.hidden ? ( @@ -127,9 +126,13 @@ const CreateWrapper = () => { const wrapperMeta = WRAPPERS.find((wrapper) => wrapper.name === type) const initialValues = wrapperMeta !== undefined - ? Object.fromEntries( - wrapperMeta.server.options.map((option) => [option.name, option.defaultValue ?? '']) - ) + ? { + name: '', + server_name: '', + ...Object.fromEntries( + wrapperMeta.server.options.map((option) => [option.name, option.defaultValue ?? '']) + ), + } : {} if (wrapperMeta === undefined) { @@ -154,8 +157,10 @@ const CreateWrapper = () => { const onSubmit = async (values: any, { setSubmitting }: any) => { const validate = makeValidateRequired(wrapperMeta.server.options) - const errors: any = validate(values) + + const { wrapper_name } = values + if (wrapper_name.length === 0) errors.name = 'Please provide a name for your wrapper' if (newTables.length === 0) errors.tables = 'Please add at least one table' if (!isEmpty(errors)) return setFormErrors(errors) @@ -165,7 +170,7 @@ const CreateWrapper = () => { projectRef: project?.ref, connectionString: project?.connectionString, wrapper: wrapperMeta, - formState: values, + formState: { ...values, server_name: `${wrapper_name}_server` }, newTables, }) ui.setNotification({ @@ -238,10 +243,35 @@ const CreateWrapper = () => { } > - Server Configuration}> + Wrapper Configuration}> + + 0 ? ( + <> + Your wrapper's server name will be{' '} + {values.wrapper_name}_server + + ) : ( + '' + ) + } + /> + + + {wrapperMeta.label} Configuration} + > {wrapperMeta.server.options.map((option) => ( - + ))} @@ -264,7 +294,7 @@ const CreateWrapper = () => { ) : ( - <> +
{newTables.map((table, i) => (
@@ -296,7 +326,7 @@ const CreateWrapper = () => {
))} - +
)} {newTables.length > 0 && (
diff --git a/studio/components/interfaces/Database/Wrappers/WrapperRow.tsx b/studio/components/interfaces/Database/Wrappers/WrapperRow.tsx index 75368404eef..a7370a5eed4 100644 --- a/studio/components/interfaces/Database/Wrappers/WrapperRow.tsx +++ b/studio/components/interfaces/Database/Wrappers/WrapperRow.tsx @@ -1,222 +1,62 @@ import Link from 'next/link' import Image from 'next/image' -import { isEmpty } from 'lodash' import { FC, useState } from 'react' import { Collapsible, - Input, - IconCheck, IconChevronUp, Button, - IconEdit, - IconTrash, - IconEye, - IconEyeOff, - IconCheckCircle, IconExternalLink, IconLoader, - IconHelpCircle, + IconDatabase, + IconServer, + IconTrash, + IconEdit, } from 'ui' import { useParams, useStore } from 'hooks' -import { ServerOption, Wrapper } from './Wrappers.types' -import { makeValidateRequired } from './Wrappers.utils' -import { useFDWCreateMutation } from 'data/fdw/fdw-create-mutation' +import { Wrapper } from './Wrappers.types' import { useFDWDeleteMutation } from 'data/fdw/fdw-delete-mutation' import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext' -import WrapperTableEditor from './WrapperTableEditor' -import InformationBox from 'components/ui/InformationBox' import { confirmAlert } from 'components/to-be-cleaned/ModalsDeprecated/ConfirmModal' +import { partition } from 'lodash' interface Props { - wrapper: Wrapper - tables: any[] - isLoading: boolean - isEnabled: boolean + wrapperMeta: Wrapper + wrappers: any[] isOpen: boolean + isLoading: boolean onOpen: (wrapper: string) => void } -const InputField: FC<{ - option: ServerOption - value: any - error: any - onChange: (e: any) => void -}> = ({ option, value, error, onChange }) => { - const [showHidden, setShowHidden] = useState(!option.hidden) - - if (option.isTextArea) { - return ( -
- -

{option.label}

- {option.urlHelper !== undefined && ( - - - - - - )} -
- } - defaultValue={option.defaultValue ?? ''} - required={option.required ?? false} - value={value} - onChange={onChange} - error={error} - className="input-mono" - rows={6} - /> -
- ) - } else { - return ( - -

{option.label}

- {option.urlHelper !== undefined && ( - - - - - - )} - - } - defaultValue={option.defaultValue ?? ''} - required={option.required ?? false} - value={value} - onChange={onChange} - error={error} - className="input-mono" - type={!option.hidden ? 'text' : showHidden ? 'text' : 'password'} - actions={ - option.hidden ? ( -
-
- ) : null - } - /> - ) - } -} - -const WrapperRow: FC = ({ wrapper, tables, isLoading, isEnabled, isOpen, onOpen }) => { - const getInitialFormState = () => - Object.fromEntries( - wrapper.server.options.map((option) => [option.name, option.defaultValue ?? '']) - ) - +const WrapperRow: FC = ({ wrapperMeta, wrappers = [], isOpen, isLoading, onOpen }) => { const { ui } = useStore() const { ref } = useParams() const { project } = useProjectContext() - const { mutateAsync: createFDW } = useFDWCreateMutation() const { mutateAsync: deleteFDW } = useFDWDeleteMutation() - const [isSubmitting, setIsSubmitting] = useState(false) - const [isEditingTable, setIsEditingTable] = useState(false) - const [selectedTableToEdit, setSelectedTableToEdit] = useState() - const [newTables, setNewTables] = useState([]) - const [formState, setFormState] = useState(getInitialFormState) - const [formErrors, setFormErrors] = useState<{ [k: string]: string }>({}) + console.log({ wrappers }) - const noChanges = JSON.stringify(getInitialFormState()) === JSON.stringify(formState) - - const onUpdateTable = (values: any) => { - setNewTables((prev) => { - // if the new values have tableIndex, we are editing an existing table - if (values.tableIndex !== undefined) { - const tableIndex = values.tableIndex - const newTables = [...prev] - delete values.tableIndex - newTables[tableIndex] = values - return newTables - } - return [...prev, values] - }) - setIsEditingTable(false) - setSelectedTableToEdit(undefined) - } - - const onSaveWrapper = async () => { - const validate = makeValidateRequired(wrapper.server.options) - const errors: any = validate(formState) - if (newTables.length === 0) errors.tables = 'Please add at least one table' - - if (!isEmpty(errors)) { - setFormErrors(errors) - return - } - - setIsSubmitting(true) - try { - await createFDW({ - projectRef: project?.ref, - connectionString: project?.connectionString, - wrapper, - formState, - newTables, - }) - ui.setNotification({ - category: 'success', - message: `Successfully created ${wrapper.label} foreign data wrapper`, - }) - setNewTables([]) - setFormState(getInitialFormState) - } catch (error: any) { - ui.setNotification({ - error, - category: 'error', - message: `Failed to create ${wrapper.label} foreign data wrapper: ${error.message}`, - }) - } finally { - setIsSubmitting(false) - } - } - - const onDeleteWrapper = () => { + const onDeleteWrapper = (wrapper: any) => { confirmAlert({ - title: `Confirm to disable ${wrapper.label} wrapper`, - message: `Are you sure you want to disable the ${wrapper.label} wrapper? This will also remove all tables created with this wrapper.`, + title: `Confirm to disable ${wrapper.name}`, + message: `Are you sure you want to disable the ${wrapper.name} wrapper? This will also remove all tables created with this wrapper.`, onAsyncConfirm: async () => { try { await deleteFDW({ projectRef: project?.ref, connectionString: project?.connectionString, - wrapper, + wrapper: wrapperMeta, }) ui.setNotification({ category: 'success', - message: `Successfully removed ${wrapper.label} foreign data wrapper`, + message: `Successfully disabled ${wrapper.name} foreign data wrapper`, }) } catch (error: any) { ui.setNotification({ error, category: 'error', - message: `Disabling ${wrapper.name} failed: ${error.message}`, + message: `Failed to disable ${wrapper.name}: ${error.message}`, }) } }, @@ -227,7 +67,7 @@ const WrapperRow: FC = ({ wrapper, tables, isLoading, isEnabled, isOpen, <> onOpen(wrapper.name)} + onOpenChange={() => onOpen(wrapperMeta.name)} className={[ 'bg-scale-100 dark:bg-scale-300 ', 'hover:bg-scale-200 dark:hover:bg-scale-500', @@ -235,11 +75,11 @@ const WrapperRow: FC = ({ wrapper, tables, isLoading, isEnabled, isOpen, 'border-scale-300', 'dark:border-scale-500 hover:border-scale-500', 'dark:hover:border-scale-700 data-open:border-scale-700', - 'data-open:pb-px col-span-12 mx-auto', + 'col-span-12 mx-auto', '-space-y-px overflow-hidden', 'transition border shadow hover:z-50', - 'first:rounded-tl first:rounded-tr', - 'last:rounded-bl last:rounded-br', + 'first:rounded-tl first:rounded-tr first:!border-t', + 'last:rounded-bl last:rounded-br last:border-t-0', ].join(' ')} > @@ -254,209 +94,109 @@ const WrapperRow: FC = ({ wrapper, tables, isLoading, isEnabled, isOpen, width={14} /> {`${wrapper.name} - {wrapper.label} + {wrapperMeta.label}
{isLoading ? (
- ) : isEnabled ? ( -
- - - - Enabled -
) : ( -
- Disabled +
+ {wrappers.length} wrapper{wrappers.length > 1 ? 's' : ''}
)}
{!isLoading && ( - <> - {isEnabled ? ( - -
-
- - } - title={`${wrapper.label} foreign data wrapper is currently enabled`} - description="If you'd like to edit this wrapper, you'll need to disable the wrapper first and create it again with any updated configuration." - /> -
-

Foreign Tables

-
- {tables.map((table) => ( -
+
+ {wrappers.map((wrapper) => { + const serverOptions = Object.fromEntries( + wrapper.server_options.map((option: any) => option.split('=')) + ) + const [encryptedMetadata, visibleMetadata] = partition( + wrapperMeta.server.options, + 'hidden' + ) + + return ( +
+
+
+

{wrapper.name}

+
+ {visibleMetadata.map((metadata) => ( +
+

{metadata.label}:

+

{serverOptions[metadata.name]}

+
+ ))} + {encryptedMetadata.map((metadata) => ( +
+

{metadata.label}:

+ -
-

- {table.schema}.{table.name} -

-

- Columns: {table.columns.map((c: any) => c.name).join(', ')} -

-
+ + Encrypted in Vault + + + +
+ ))} +
+

+ Foreign tables: ({wrapper.tables.length}) +

+
+ {wrapper.tables.map((table: any) => ( - +
+ {table.name} +
-
- ))} + ))} +
-
-
- - - - - - -
-
-
-
- - ) : ( - -
-
- {wrapper.server.options.map((option) => ( - { - setFormState((prev) => ({ ...prev, [option.name]: e.target.value })) - setFormErrors((prev) => ({ ...prev, [option.name]: '' })) - }} +
+ -
-
-
- {newTables.length === 0 && ( -
-

- Add foreign tables to query from after the wrapper is enabled -

-
- )} - {newTables.map((table, i) => ( -
-
-

- {table.schema_name}.{table.table_name} -

-

- {wrapper.tables[table.index].label}: {table.columns.join(', ')} -

-
-
-
-
- ))} - {newTables.length === 0 && formErrors.tables && ( -

{formErrors.tables}

- )} -
-
- - - - - -
- - -
-
-
- - )} - + ) + })} +
+ )} - { - setSelectedTableToEdit(undefined) - setIsEditingTable(false) - }} - onSave={onUpdateTable} - initialData={selectedTableToEdit} - /> ) } diff --git a/studio/components/interfaces/Database/Wrappers/Wrappers.constants.ts b/studio/components/interfaces/Database/Wrappers/Wrappers.constants.ts index 3d61062903f..75c10baf29a 100644 --- a/studio/components/interfaces/Database/Wrappers/Wrappers.constants.ts +++ b/studio/components/interfaces/Database/Wrappers/Wrappers.constants.ts @@ -10,15 +10,7 @@ export const WRAPPERS: Wrapper[] = [ label: 'Stripe', docsUrl: 'https://supabase.com/docs/guides/database/wrappers/stripe', server: { - name: 'stripe_server', options: [ - { - name: 'name', - label: 'Wrapper Name', - required: true, - encrypted: false, - hidden: false, - }, { name: 'api_key_id', label: 'Stripe Secret Key', @@ -422,7 +414,6 @@ export const WRAPPERS: Wrapper[] = [ label: 'Firebase', docsUrl: 'https://supabase.com/docs/guides/database/wrappers/firebase', server: { - name: 'firebase_server', options: [ { name: 'project_id', diff --git a/studio/components/interfaces/Database/Wrappers/Wrappers.tsx b/studio/components/interfaces/Database/Wrappers/Wrappers.tsx index 15a0236dc8f..1cf7e0acca4 100644 --- a/studio/components/interfaces/Database/Wrappers/Wrappers.tsx +++ b/studio/components/interfaces/Database/Wrappers/Wrappers.tsx @@ -11,6 +11,7 @@ import ShimmeringLoader from 'components/ui/ShimmeringLoader' import WrappersDropdown from './WrappersDropdown' import WrappersDisabledState from './WrappersDisabledState' import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext' +import { groupBy } from 'lodash' const Wrappers = () => { const { meta } = useStore() @@ -19,11 +20,11 @@ const Wrappers = () => { projectRef: project?.ref, connectionString: project?.connectionString, }) - const wrappers = data?.result ?? [] - const enabledWrapperNamesSet = new Set(wrappers.map((fdw) => fdw.name)) - const [open, setOpen] = useState('') + const wrappers = data?.result ?? [] + const groupedWrappers = groupBy(wrappers, 'handler') + const wrappersExtension = meta.extensions.byId('wrappers') const vaultExtension = meta.extensions.byId('supabase_vault') const isLoadingExtensions = meta.extensions.isLoading @@ -75,21 +76,26 @@ const Wrappers = () => {
) : ( <> + {/* [Joshen] This probably needs to change anyways so dont get too stuck with this */} {WRAPPERS.map((wrapper, i) => { - return ( - w.name === wrapper.server.name)?.tables ?? []} - isLoading={isLoading} - isEnabled={enabledWrapperNamesSet.has(wrapper.server.name)} - isOpen={open === wrapper.name} - onOpen={(wrapperName) => { - if (open !== wrapperName) setOpen(wrapperName) - else setOpen('') - }} - /> - ) + const createdWrappers = groupedWrappers[wrapper.handlerName] ?? [] + if (createdWrappers.length > 0) { + return ( + { + if (open !== wrapperName) setOpen(wrapperName) + else setOpen('') + }} + /> + ) + } else { + return <> + } })} )} diff --git a/studio/components/interfaces/Database/Wrappers/Wrappers.types.ts b/studio/components/interfaces/Database/Wrappers/Wrappers.types.ts index 25ac12d203b..800e3d3cfd3 100644 --- a/studio/components/interfaces/Database/Wrappers/Wrappers.types.ts +++ b/studio/components/interfaces/Database/Wrappers/Wrappers.types.ts @@ -22,7 +22,6 @@ export type ServerOption = { } export type Server = { - name: string options: ServerOption[] } diff --git a/studio/components/interfaces/Settings/Vault/Secrets/SecretsManagement.tsx b/studio/components/interfaces/Settings/Vault/Secrets/SecretsManagement.tsx index 38d514c6c11..cbc6cbb9c11 100644 --- a/studio/components/interfaces/Settings/Vault/Secrets/SecretsManagement.tsx +++ b/studio/components/interfaces/Settings/Vault/Secrets/SecretsManagement.tsx @@ -1,25 +1,31 @@ import Link from 'next/link' import { observer } from 'mobx-react-lite' -import { FC, Fragment, useState } from 'react' -import { IconSearch, Input, Button, Listbox, IconLoader, IconExternalLink } from 'ui' +import { FC, Fragment, useState, useEffect } from 'react' +import { IconSearch, Input, Button, Listbox, IconLoader, IconExternalLink, IconX } from 'ui' +import { useStore, useParams } from 'hooks' import SecretRow from './SecretRow' import EditSecretModal from './EditSecretModal' import DeleteSecretModal from './DeleteSecretModal' import AddNewSecretModal from './AddNewSecretModal' import Divider from 'components/ui/Divider' -import { useStore } from 'hooks' interface Props {} const SecretsManagement: FC = ({}) => { const { vault } = useStore() + const { name } = useParams() + const [searchValue, setSearchValue] = useState('') const [selectedSort, setSelectedSort] = useState<'updated_at' | 'name'>('updated_at') const [showAddSecretModal, setShowAddSecretModal] = useState(false) const [selectedSecretToEdit, setSelectedSecretToEdit] = useState() const [selectedSecretToRemove, setSelectedSecretToRemove] = useState() + useEffect(() => { + if (name !== undefined) setSearchValue(name) + }, [name]) + const secrets = ( searchValue.length > 0 ? vault.listSecrets( @@ -48,6 +54,19 @@ const SecretsManagement: FC = ({}) => { value={searchValue} onChange={(event) => setSearchValue(event.target.value)} icon={} + actions={ + searchValue.length > 0 + ? [ +
- } - defaultValue={option.defaultValue ?? ''} - error={error} - className={`${option.name === 'server_name' ? '' : 'input-mono'}`} - type={!option.hidden ? 'text' : showHidden ? 'text' : 'password'} - actions={ - option.hidden ? ( -
-
- ) : null - } - /> - ) - } -} - const CreateWrapper = () => { - const formId = 'test-form' + const formId = 'create-wrapper-form' const router = useRouter() const { ui } = useStore() const { ref, type } = useParams() @@ -127,7 +41,7 @@ const CreateWrapper = () => { const initialValues = wrapperMeta !== undefined ? { - name: '', + wrapper_name: '', server_name: '', ...Object.fromEntries( wrapperMeta.server.options.map((option) => [option.name, option.defaultValue ?? '']) @@ -171,7 +85,7 @@ const CreateWrapper = () => { connectionString: project?.connectionString, wrapper: wrapperMeta, formState: { ...values, server_name: `${wrapper_name}_server` }, - newTables, + tables: newTables, }) ui.setNotification({ category: 'success', @@ -270,6 +184,7 @@ const CreateWrapper = () => { ))} diff --git a/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx b/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx new file mode 100644 index 00000000000..c5ebac4f210 --- /dev/null +++ b/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx @@ -0,0 +1,348 @@ +import Link from 'next/link' +import { isEmpty } from 'lodash' +import { useEffect, useState } from 'react' +import { useRouter } from 'next/router' +import { observer } from 'mobx-react-lite' +import { Button, Form, Input, IconArrowLeft, IconExternalLink, IconEdit, IconTrash } from 'ui' +import { PermissionAction } from '@supabase/shared-types/out/constants' + +import { VaultSecret } from 'types' +import { checkPermissions, useParams, useStore } from 'hooks' +import { useFDWsQuery } from 'data/fdw/fdws-query' +import { useFDWCreateMutation } from 'data/fdw/fdw-create-mutation' +import { useFDWDeleteMutation } from 'data/fdw/fdw-delete-mutation' + +import InputField from './InputField' +import { WRAPPERS } from './Wrappers.constants' +import WrapperTableEditor from './WrapperTableEditor' +import { + formatWrapperTables, + makeValidateRequired, + convertKVStringArrayToJson, +} from './Wrappers.utils' +import Loading from 'components/ui/Loading' +import { + FormPanel, + FormActions, + FormSection, + FormSectionLabel, + FormSectionContent, +} from 'components/ui/Forms' +import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext' + +const EditWrapper = () => { + const formId = 'edit-wrapper-form' + const router = useRouter() + const { ui, vault } = useStore() + const { ref, id } = useParams() + const { project } = useProjectContext() + + const { data, isLoading } = useFDWsQuery({ + projectRef: project?.ref, + connectionString: project?.connectionString, + }) + const wrappers = data?.result ?? [] + const wrapper = wrappers.find((w) => Number(w.id) === Number(id)) + const wrapperMeta = WRAPPERS.find((w) => w.handlerName === wrapper?.handler) + + const { mutateAsync: createFDW } = useFDWCreateMutation() + const { mutateAsync: deleteFDW } = useFDWDeleteMutation() + + const [wrapperTables, setWrapperTables] = useState([]) + const [isEditingTable, setIsEditingTable] = useState(false) + const [selectedTableToEdit, setSelectedTableToEdit] = useState() + const [formErrors, setFormErrors] = useState<{ [k: string]: string }>({}) + + const canCreateWrapper = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'extensions') + + const initialValues = + wrapperMeta !== undefined + ? { + wrapper_name: wrapper?.name, + server_name: wrapper?.server_name, + ...convertKVStringArrayToJson(wrapper?.server_options ?? []), + } + : {} + + useEffect(() => { + if (wrapper?.id) { + setWrapperTables(formatWrapperTables(wrapper?.tables ?? [])) + } + }, [wrapper?.id]) + + if (isLoading) { + return + } + + if (wrapper === undefined || wrapperMeta === undefined) { + return
Oh no
+ } + + const onUpdateTable = (values: any) => { + setWrapperTables((prev) => { + // if the new values have tableIndex, we are editing an existing table + if (values.tableIndex !== undefined) { + const tableIndex = values.tableIndex + const wrapperTables = [...prev] + delete values.tableIndex + wrapperTables[tableIndex] = values + return wrapperTables + } + return [...prev, values] + }) + setIsEditingTable(false) + setSelectedTableToEdit(undefined) + } + + const onSubmit = async (values: any, { setSubmitting }: any) => { + const validate = makeValidateRequired(wrapperMeta.server.options) + const errors: any = validate(values) + + const { wrapper_name } = values + if (wrapper_name.length === 0) errors.name = 'Please provide a name for your wrapper' + if (wrapperTables.length === 0) errors.tables = 'Please add at least one table' + if (!isEmpty(errors)) return setFormErrors(errors) + + setSubmitting(true) + try { + await deleteFDW({ + projectRef: project?.ref, + connectionString: project?.connectionString, + wrapper, + wrapperMeta, + }) + + await createFDW({ + projectRef: project?.ref, + connectionString: project?.connectionString, + wrapper: wrapperMeta, + formState: { ...values, server_name: `${wrapper_name}_server` }, + tables: wrapperTables, + }) + + ui.setNotification({ + category: 'success', + message: `Successfully updated ${wrapperMeta.label} foreign data wrapper`, + }) + setWrapperTables([]) + router.push(`/project/${ref}/database/wrappers`) + } catch (error: any) { + ui.setNotification({ + error, + category: 'error', + message: `Failed to create ${wrapperMeta.label} foreign data wrapper: ${error.message}`, + }) + } finally { + setSubmitting(false) + } + } + + return ( + <> +
+
+ +

Edit wrapper: {wrapper.name}

+ +
+ +
+ {({ isSubmitting, handleReset, values, initialValues, resetForm }: any) => { + const [loadingSecrets, setLoadingSecrets] = useState(false) + const hasChanges = JSON.stringify(values) !== JSON.stringify(initialValues) + const encryptedOptions = wrapperMeta.server.options.filter((option) => option.encrypted) + + useEffect(() => { + const fetchEncryptedValues = async () => { + setLoadingSecrets(true) + const res = await Promise.all( + encryptedOptions.map(async (option) => { + const [secret] = vault.listSecrets( + (secret: VaultSecret) => secret.name === `${wrapper.name}_${option.name}` + ) + if (secret !== undefined) { + const value = await vault.fetchSecretValue(secret.id) + return { [option.name]: value } + } else { + return { [option.name]: '' } + } + }) + ) + const secretValues = res.reduce((a: any, b: any) => { + const [key] = Object.keys(b) + return { ...a, [key]: b[key] } + }, {}) + + resetForm({ + values: { ...values, ...secretValues }, + initialValues: { ...initialValues, ...secretValues }, + }) + setLoadingSecrets(false) + } + + if (encryptedOptions.length > 0) fetchEncryptedValues() + }, []) + + return ( + + +
+ } + > + Wrapper Configuration}> + + + Your wrapper's server name will be updated to{' '} + {values.wrapper_name}_server + + ) : ( + <> + Your wrapper's server name is{' '} + {values.wrapper_name}_server + + ) + } + /> + + + {wrapperMeta.label} Configuration} + > + + {wrapperMeta.server.options.map((option) => ( + + ))} + + + +

Foreign Tables

+

+ You can query your data from these foreign tables after the wrapper is + created +

+ + } + > + + {wrapperTables.length === 0 ? ( +
+ +
+ ) : ( +
+ {wrapperTables.map((table, i) => ( +
+
+

+ {table.schema_name}.{table.table_name} +

+

+ {wrapperMeta.tables[table.index].label}: {table.columns.join(', ')} +

+
+
+
+
+ ))} +
+ )} + {wrapperTables.length > 0 && ( +
+ +
+ )} + {wrapperTables.length === 0 && formErrors.tables && ( +

{formErrors.tables}

+ )} +
+
+ + ) + }} + + + + { + setSelectedTableToEdit(undefined) + setIsEditingTable(false) + }} + onSave={onUpdateTable} + initialData={selectedTableToEdit} + /> + + ) +} + +export default observer(EditWrapper) diff --git a/studio/components/interfaces/Database/Wrappers/InputField.tsx b/studio/components/interfaces/Database/Wrappers/InputField.tsx new file mode 100644 index 00000000000..a3839cc8fad --- /dev/null +++ b/studio/components/interfaces/Database/Wrappers/InputField.tsx @@ -0,0 +1,94 @@ +import Link from 'next/link' +import { FC, useState } from 'react' +import { Button, Input, IconHelpCircle, IconEye, IconEyeOff, IconLoader } from 'ui' +import { ServerOption } from './Wrappers.types' + +interface Props { + option: ServerOption + loading: boolean + error: any +} + +const InputField: FC = ({ option, loading, error }) => { + const [showHidden, setShowHidden] = useState(!option.hidden) + if (option.isTextArea) { + return ( +
+ +

{option.label}

+ {option.urlHelper !== undefined && ( + + + + + + )} +
+ } + value={loading ? 'Fetching value from Vault...' : undefined} + defaultValue={option.defaultValue ?? ''} + required={option.required ?? false} + /> + + ) + } else { + return ( + +

{option.label}

+ {option.urlHelper !== undefined && ( + + + + + + )} + + } + defaultValue={option.defaultValue ?? ''} + error={error} + value={loading ? 'Fetching value from Vault...' : undefined} + type={!option.hidden || loading ? 'text' : showHidden ? 'text' : 'password'} + disabled={loading} + actions={ + loading ? ( +
+
+ ) : option.hidden ? ( +
+
+ ) : null + } + /> + ) + } +} + +export default InputField diff --git a/studio/components/interfaces/Database/Wrappers/WrapperRow.tsx b/studio/components/interfaces/Database/Wrappers/WrapperRow.tsx index 2df0ce425a4..0e336cdf86d 100644 --- a/studio/components/interfaces/Database/Wrappers/WrapperRow.tsx +++ b/studio/components/interfaces/Database/Wrappers/WrapperRow.tsx @@ -7,8 +7,6 @@ import { Button, IconExternalLink, IconLoader, - IconDatabase, - IconServer, IconTrash, IconEdit, } from 'ui' @@ -35,8 +33,6 @@ const WrapperRow: FC = ({ wrapperMeta, wrappers = [], isOpen, isLoading, const { mutateAsync: deleteFDW } = useFDWDeleteMutation() const [isSubmitting, setIsSubmitting] = useState(false) - console.log({ wrappers }) - const onDeleteWrapper = (wrapper: any) => { confirmAlert({ title: `Confirm to disable ${wrapper.name}`, @@ -146,7 +142,7 @@ const WrapperRow: FC = ({ wrapperMeta, wrappers = [], isOpen, isLoading,
- + + +
+ ) } const onUpdateTable = (values: any) => { @@ -105,7 +121,7 @@ const CreateWrapper = () => { } return ( - <> +
{ onSave={onUpdateTable} initialData={selectedTableToEdit} /> - + ) } diff --git a/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx b/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx index c5ebac4f210..2ba5ba6c170 100644 --- a/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx +++ b/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx @@ -3,7 +3,16 @@ import { isEmpty } from 'lodash' import { useEffect, useState } from 'react' import { useRouter } from 'next/router' import { observer } from 'mobx-react-lite' -import { Button, Form, Input, IconArrowLeft, IconExternalLink, IconEdit, IconTrash } from 'ui' +import { + Button, + Form, + Input, + IconArrowLeft, + IconExternalLink, + IconEdit, + IconTrash, + IconLoader, +} from 'ui' import { PermissionAction } from '@supabase/shared-types/out/constants' import { VaultSecret } from 'types' @@ -27,6 +36,7 @@ import { FormSection, FormSectionLabel, FormSectionContent, + FormsContainer, } from 'components/ui/Forms' import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext' @@ -50,6 +60,7 @@ const EditWrapper = () => { const [wrapperTables, setWrapperTables] = useState([]) const [isEditingTable, setIsEditingTable] = useState(false) + const [isSaving, setIsSaving] = useState(false) const [selectedTableToEdit, setSelectedTableToEdit] = useState() const [formErrors, setFormErrors] = useState<{ [k: string]: string }>({}) @@ -71,11 +82,41 @@ const EditWrapper = () => { }, [wrapper?.id]) if (isLoading) { - return + return ( +
+ +
+ ) } if (wrapper === undefined || wrapperMeta === undefined) { - return
Oh no
+ if (isSaving) { + return ( +
+
+ +

Updating wrapper

+
+
+ ) + } else { + return ( +
+
+

Unknown wrapper

+

+ The wrapper ID {id} cannot be found in your project. Head back to select another + wrapper. +

+
+ + + + + +
+ ) + } } const onUpdateTable = (values: any) => { @@ -103,6 +144,7 @@ const EditWrapper = () => { if (wrapperTables.length === 0) errors.tables = 'Please add at least one table' if (!isEmpty(errors)) return setFormErrors(errors) + setIsSaving(true) setSubmitting(true) try { await deleteFDW({ @@ -133,12 +175,13 @@ const EditWrapper = () => { message: `Failed to create ${wrapperMeta.label} foreign data wrapper: ${error.message}`, }) } finally { + setIsSaving(false) setSubmitting(false) } } return ( - <> +
{ onSave={onUpdateTable} initialData={selectedTableToEdit} /> - + ) } diff --git a/studio/pages/project/[ref]/database/wrappers/[id].tsx b/studio/pages/project/[ref]/database/wrappers/[id].tsx index 9d7cd002380..a5abeb5df61 100644 --- a/studio/pages/project/[ref]/database/wrappers/[id].tsx +++ b/studio/pages/project/[ref]/database/wrappers/[id].tsx @@ -5,7 +5,6 @@ import { NextPageWithLayout } from 'types' import { checkPermissions } from 'hooks' import { DatabaseLayout } from 'components/layouts' import NoPermission from 'components/ui/NoPermission' -import { FormsContainer } from 'components/ui/Forms' import { EditWrapper } from 'components/interfaces/Database' const DatabaseWrappersNew: NextPageWithLayout = () => { @@ -17,10 +16,6 @@ const DatabaseWrappersNew: NextPageWithLayout = () => { return } -DatabaseWrappersNew.getLayout = (page) => ( - - {page} - -) +DatabaseWrappersNew.getLayout = (page) => {page} export default observer(DatabaseWrappersNew) diff --git a/studio/pages/project/[ref]/database/wrappers/new.tsx b/studio/pages/project/[ref]/database/wrappers/new.tsx index 7d5987fef99..4db0245131f 100644 --- a/studio/pages/project/[ref]/database/wrappers/new.tsx +++ b/studio/pages/project/[ref]/database/wrappers/new.tsx @@ -5,7 +5,6 @@ import { NextPageWithLayout } from 'types' import { checkPermissions } from 'hooks' import { DatabaseLayout } from 'components/layouts' import NoPermission from 'components/ui/NoPermission' -import { FormsContainer } from 'components/ui/Forms' import { CreateWrapper } from 'components/interfaces/Database' const DatabaseWrappersNew: NextPageWithLayout = () => { @@ -17,10 +16,6 @@ const DatabaseWrappersNew: NextPageWithLayout = () => { return } -DatabaseWrappersNew.getLayout = (page) => ( - - {page} - -) +DatabaseWrappersNew.getLayout = (page) => {page} export default observer(DatabaseWrappersNew) From 689e4fc0ec5526188c673f31c847f57e4cfeea07 Mon Sep 17 00:00:00 2001 From: Riccardo Cucia Date: Mon, 9 Jan 2023 15:38:45 +0100 Subject: [PATCH 14/48] Fixed dart execute() --- .../guides/database/full-text-search.mdx | 27 +++++++------------ 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/apps/docs/pages/guides/database/full-text-search.mdx b/apps/docs/pages/guides/database/full-text-search.mdx index 51de6e5bdaa..c3fa7beaa92 100644 --- a/apps/docs/pages/guides/database/full-text-search.mdx +++ b/apps/docs/pages/guides/database/full-text-search.mdx @@ -108,8 +108,7 @@ const { data, error } = await supabase.from('books').select().eq('title', 'Harry final result = await client .from('books') .select() - .eq('title', 'Harry') - .execute(); + .eq('title', 'Harry'); ``` @@ -146,8 +145,7 @@ const { data, error } = await supabase.from('books').select().textSearch('title' final result = await client .from('books') .select() - .textSearch('title', "'Harry'") - .execute(); + .textSearch('title', "'Harry'"); ``` @@ -191,8 +189,7 @@ const { data, error } = await supabase.from('books').select().textSearch('descri final result = await client .from('books') .select() - .textSearch('description', "'big'") - .execute(); + .textSearch('description', "'big'"); ``` @@ -278,8 +275,7 @@ const { data, error } = await supabase final result = await client .from('books') .select() - .textSearch('description', "'little' & 'big'") - .execute(); + .textSearch('description', "'little' & 'big'"); ``` @@ -331,8 +327,7 @@ const { data, error } = await supabase final result = await client .from('books') .select() - .textSearch('description', "'little' | 'big'") - .execute(); + .textSearch('description', "'little' | 'big'"); ``` @@ -430,8 +425,7 @@ const { data, error } = await supabase.from('books').select().textSearch('fts', final result = await client .from('books') .select() - .textSearch('fts', "'little' & 'big'") - .execute(); + .textSearch('fts', "'little' & 'big'"); ``` @@ -488,8 +482,7 @@ const { data, error } = await supabase final result = await client .from('books') .select() - .textSearch('description', "'big' <-> 'dreams'") - .execute(); + .textSearch('description', "'big' <-> 'dreams'"); ``` @@ -531,8 +524,7 @@ const { data, error } = await supabase final result = await client .from('books') .select() - .textSearch('description', "'year' <2> 'school'") - .execute(); + .textSearch('description', "'year' <2> 'school'"); ``` @@ -577,8 +569,7 @@ const { data, error } = await supabase final result = await client .from('books') .select() - .textSearch('description', "'big' & !'little'") - .execute(); + .textSearch('description', "'big' & !'little'"); ``` From 8d4717814bdac7f7c502e0d5df911f89df9e5802 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Mon, 9 Jan 2023 12:35:59 -0330 Subject: [PATCH 15/48] You get a type, and you get a type, and you get a type --- .../reference/CLICommandSection.tsx | 2 +- .../reference/RefFunctionSection.tsx | 18 +- .../reference/RefSectionHandler.tsx | 17 +- .../components/reference/Reference.types.ts | 109 +++++++ apps/docs/lib/refGenerator/helpers.ts | 9 + apps/docs/pages/reference/api/[...slug].tsx | 1 + apps/docs/pages/reference/dart/[...slug].tsx | 2 +- .../reference/dart/crawlers/[...slug].tsx | 1 + .../pages/reference/dart/v0/[...slug].tsx | 2 +- .../reference/dart/v0/crawlers/[...slug].tsx | 1 + .../pages/reference/javascript/[...slug].tsx | 10 +- .../javascript/crawlers/[...slug].tsx | 1 + .../reference/javascript/v1/[...slug].tsx | 10 +- .../javascript/v1/crawlers/[...slug].tsx | 1 + .../reference/self-hosting-auth/[...slug].tsx | 2 +- .../self-hosting-realtime/[...slug].tsx | 2 +- .../self-hosting-storage/[...slug].tsx | 2 +- apps/docs/public/sitemap.xml | 300 ++++++++++-------- 18 files changed, 330 insertions(+), 160 deletions(-) create mode 100644 apps/docs/components/reference/Reference.types.ts diff --git a/apps/docs/components/reference/CLICommandSection.tsx b/apps/docs/components/reference/CLICommandSection.tsx index 9f685157482..f7e86190b4e 100644 --- a/apps/docs/components/reference/CLICommandSection.tsx +++ b/apps/docs/components/reference/CLICommandSection.tsx @@ -16,7 +16,7 @@ interface ICommonFunc { } interface IRefFunctionSection { - funcData: any + funcData: ICommonFunc commonFuncData: ICommonFunc spec: any } diff --git a/apps/docs/components/reference/RefFunctionSection.tsx b/apps/docs/components/reference/RefFunctionSection.tsx index 5cdacd0d458..14f74a45c44 100644 --- a/apps/docs/components/reference/RefFunctionSection.tsx +++ b/apps/docs/components/reference/RefFunctionSection.tsx @@ -10,22 +10,7 @@ import { extractTsDocNode, generateParameters } from '~/lib/refGenerator/helpers import RefDetailCollapse from '~/components/reference/RefDetailCollapse' import { Fragment } from 'react' - -interface ICommonFunc { - id: string - title: string - slug: string - product: string - libs: string - items: ICommonFunc[] -} - -interface IRefFunctionSection { - funcData: any - commonFuncData: ICommonFunc - spec: any - typeSpec?: any -} +import { IRefFunctionSection } from './Reference.types' const RefFunctionSection: React.FC = (props) => { const item = props.spec.functions.find((x: any) => x.id === props.funcData.id) @@ -204,7 +189,6 @@ const RefFunctionSection: React.FC = (props) => { )} - { +const RefSectionHandler = (props: RefSectionHandlerProps) => { + console.log('props', props) const router = useRouter() const slug = router.query.slug[0] diff --git a/apps/docs/components/reference/Reference.types.ts b/apps/docs/components/reference/Reference.types.ts new file mode 100644 index 00000000000..663f633ebd2 --- /dev/null +++ b/apps/docs/components/reference/Reference.types.ts @@ -0,0 +1,109 @@ +import { enrichedOperation } from '~/lib/refGenerator/helpers' + +export interface ISpec { + openref: any + info: { + id: string + title: string + description: string + definition: string + libraries: any + slugPrefix: string + specUrl: string + } + functions: IFunctionDefinition[] +} + +export interface IAPISpec { + info: { + title: string + description?: string + version: string + contact?: {} + } + operations: enrichedOperation[] + sections: any +} + +export interface IFunctionDefinition { + title: string + id: string + $ref: string + description: string + examples?: [] +} + +export interface ICommonFunc { + id: string + title: string + slug: string + product: string + type: string + parent?: string + items: ICommonFunc[] +} + +export interface IRefFunctionSection { + funcData: any + commonFuncData: ICommonFunc + spec: any + typeSpec?: TypeSpec +} + +export interface IRefStaticDoc { + id: string + title: string + meta: { + id: string + title: string + hideTitle: boolean + } + content: { + compiledSource: string + frontmatter: {} + scope: {} + } +} + +export type TypeSpec = { + name: string + children: TypeSpecChild[] +} + +export type TypeSpecChild = { + id: number + name: string + kind: number + kindString?: string + flags?: {} + originalName?: string + children?: TypeSpecChild[] + defaultValue?: string + default?: any + groups?: any + sources?: any + target?: any + comment?: TypeSpecChildComment + typeParameter?: any + implementedTypes?: any + extendedTypes?: any + dereferenced?: TypeSpecChildComment + extendedBy?: any + indexSignature?: any + extendsType?: any + objectType?: any + trueType?: any + falseType?: any + type?: any + signatures?: any + overwrites?: any + inheritedFrom?: any + implementationOf?: any +} + +export interface TypeSpecChildComment { + shortText?: string + text?: string | null + returns?: string | null + tags?: any +} diff --git a/apps/docs/lib/refGenerator/helpers.ts b/apps/docs/lib/refGenerator/helpers.ts index 9c14a80167f..251a101add0 100644 --- a/apps/docs/lib/refGenerator/helpers.ts +++ b/apps/docs/lib/refGenerator/helpers.ts @@ -23,6 +23,9 @@ export function extractTsDocNode(nodeToFind: string, definition: any) { } export function generateParameters(tsDefinition: any) { + if (!tsDefinition.signatures) { + console.log('tsDefinition', tsDefinition.signatures) + } let functionDeclaration = null if (tsDefinition.kindString == 'Method') { functionDeclaration = tsDefinition @@ -218,6 +221,12 @@ export type enrichedOperation = OpenAPIV3.OperationObject & { operationId: string operation: string responseList: [] + description?: string + parameters?: [] + responses?: {} + security?: [] + summary?: string + tags?: [] } export function gen_v3(spec: OpenAPIV3.Document, dest: string, { apiUrl }: { apiUrl: string }) { diff --git a/apps/docs/pages/reference/api/[...slug].tsx b/apps/docs/pages/reference/api/[...slug].tsx index 382c882a190..859c3af9e0b 100644 --- a/apps/docs/pages/reference/api/[...slug].tsx +++ b/apps/docs/pages/reference/api/[...slug].tsx @@ -12,6 +12,7 @@ const generatedSpec = gen_v3(specFile, 'wat', { apiUrl: 'apiv0' }) const sections = flattenSections(apiCommonSections) export default function Config(props) { + console.log('generatedSpec', generatedSpec) return } diff --git a/apps/docs/pages/reference/dart/[...slug].tsx b/apps/docs/pages/reference/dart/[...slug].tsx index 735ae57f35f..f35f74c6120 100644 --- a/apps/docs/pages/reference/dart/[...slug].tsx +++ b/apps/docs/pages/reference/dart/[...slug].tsx @@ -9,7 +9,7 @@ import handleRefStaticProps from '~/lib/mdx/handleRefStaticProps' const sections = flattenSections(clientLibsCommonSections) export default function JSReference(props) { - return + return } export async function getStaticProps() { diff --git a/apps/docs/pages/reference/dart/crawlers/[...slug].tsx b/apps/docs/pages/reference/dart/crawlers/[...slug].tsx index 0b62b1ca55b..036933a1682 100644 --- a/apps/docs/pages/reference/dart/crawlers/[...slug].tsx +++ b/apps/docs/pages/reference/dart/crawlers/[...slug].tsx @@ -29,6 +29,7 @@ export default function JSReference(props) { spec={spec} typeSpec={typeSpec} pageProps={props} + type="client-lib" /> ) diff --git a/apps/docs/pages/reference/dart/v0/[...slug].tsx b/apps/docs/pages/reference/dart/v0/[...slug].tsx index 9a74ea2583d..4b6a485d9c6 100644 --- a/apps/docs/pages/reference/dart/v0/[...slug].tsx +++ b/apps/docs/pages/reference/dart/v0/[...slug].tsx @@ -9,7 +9,7 @@ import handleRefStaticProps from '~/lib/mdx/handleRefStaticProps' const sections = flattenSections(clientLibsCommonSections) export default function JSReference(props) { - return + return } export async function getStaticProps() { diff --git a/apps/docs/pages/reference/dart/v0/crawlers/[...slug].tsx b/apps/docs/pages/reference/dart/v0/crawlers/[...slug].tsx index 18d7c8cac37..8539659431d 100644 --- a/apps/docs/pages/reference/dart/v0/crawlers/[...slug].tsx +++ b/apps/docs/pages/reference/dart/v0/crawlers/[...slug].tsx @@ -28,6 +28,7 @@ export default function JSReference(props) { spec={spec} typeSpec={typeSpec} pageProps={props} + type="client-lib" /> ) diff --git a/apps/docs/pages/reference/javascript/[...slug].tsx b/apps/docs/pages/reference/javascript/[...slug].tsx index 31e44d594aa..3cbbcc08694 100644 --- a/apps/docs/pages/reference/javascript/[...slug].tsx +++ b/apps/docs/pages/reference/javascript/[...slug].tsx @@ -10,7 +10,15 @@ import handleRefStaticProps from '~/lib/mdx/handleRefStaticProps' const sections = flattenSections(clientLibsCommonSections) export default function JSReference(props) { - return + return ( + + ) } export async function getStaticProps() { diff --git a/apps/docs/pages/reference/javascript/crawlers/[...slug].tsx b/apps/docs/pages/reference/javascript/crawlers/[...slug].tsx index feebcf6998e..67c72c5151c 100644 --- a/apps/docs/pages/reference/javascript/crawlers/[...slug].tsx +++ b/apps/docs/pages/reference/javascript/crawlers/[...slug].tsx @@ -29,6 +29,7 @@ export default function JSReference(props) { spec={spec} typeSpec={typeSpec} pageProps={props} + type="client-lib" /> ) diff --git a/apps/docs/pages/reference/javascript/v1/[...slug].tsx b/apps/docs/pages/reference/javascript/v1/[...slug].tsx index 1eeb40044f1..4dd32c156ca 100644 --- a/apps/docs/pages/reference/javascript/v1/[...slug].tsx +++ b/apps/docs/pages/reference/javascript/v1/[...slug].tsx @@ -10,7 +10,15 @@ import handleRefStaticProps from '~/lib/mdx/handleRefStaticProps' const sections = flattenSections(clientLibsCommonSections) export default function JSReference(props) { - return + return ( + + ) } export async function getStaticProps() { diff --git a/apps/docs/pages/reference/javascript/v1/crawlers/[...slug].tsx b/apps/docs/pages/reference/javascript/v1/crawlers/[...slug].tsx index 3f59baad46e..18c498125ef 100644 --- a/apps/docs/pages/reference/javascript/v1/crawlers/[...slug].tsx +++ b/apps/docs/pages/reference/javascript/v1/crawlers/[...slug].tsx @@ -28,6 +28,7 @@ export default function JSReference(props) { spec={spec} typeSpec={typeSpec} pageProps={props} + type="client-lib" /> ) diff --git a/apps/docs/pages/reference/self-hosting-auth/[...slug].tsx b/apps/docs/pages/reference/self-hosting-auth/[...slug].tsx index 64c91fb4f5e..c7b2382af16 100644 --- a/apps/docs/pages/reference/self-hosting-auth/[...slug].tsx +++ b/apps/docs/pages/reference/self-hosting-auth/[...slug].tsx @@ -12,7 +12,7 @@ const sections = flattenSections(selfHostingAuthCommonSections) const spec = gen_v3(authSpec, 'wat', { apiUrl: 'apiv0' }) export default function JSReference(props) { - return + return } export async function getStaticProps() { diff --git a/apps/docs/pages/reference/self-hosting-realtime/[...slug].tsx b/apps/docs/pages/reference/self-hosting-realtime/[...slug].tsx index beb4f192715..49e91894a06 100644 --- a/apps/docs/pages/reference/self-hosting-realtime/[...slug].tsx +++ b/apps/docs/pages/reference/self-hosting-realtime/[...slug].tsx @@ -9,7 +9,7 @@ import { gen_v3 } from '~/lib/refGenerator/helpers' const sections = flattenSections(selfHostingRealtimeCommonSections) export default function JSReference(props) { - return + return } export async function getStaticProps() { diff --git a/apps/docs/pages/reference/self-hosting-storage/[...slug].tsx b/apps/docs/pages/reference/self-hosting-storage/[...slug].tsx index ea76596b3f8..1b4b99fb9c8 100644 --- a/apps/docs/pages/reference/self-hosting-storage/[...slug].tsx +++ b/apps/docs/pages/reference/self-hosting-storage/[...slug].tsx @@ -12,7 +12,7 @@ const sections = flattenSections(selfHostingStorageCommonSections) const spec = gen_v3(storageSpec, 'wat', { apiUrl: 'apiv0' }) export default function JSReference(props) { - return + return } export async function getStaticProps() { diff --git a/apps/docs/public/sitemap.xml b/apps/docs/public/sitemap.xml index 38b0e06220a..2e86001d252 100644 --- a/apps/docs/public/sitemap.xml +++ b/apps/docs/public/sitemap.xml @@ -78,6 +78,12 @@ 0.5 + + https://supabase.com/docs/guides/self-hosting + weekly + 0.5 + + https://supabase.com/docs/guides/storage weekly @@ -126,6 +132,78 @@ 0.5 + + https://supabase.com/docs/guides/auth/auth-captcha + weekly + 0.5 + + + + https://supabase.com/docs/guides/auth/auth-email-templates + weekly + 0.5 + + + + https://supabase.com/docs/guides/auth/auth-email + weekly + 0.5 + + + + https://supabase.com/docs/guides/auth/auth-helpers + weekly + 0.5 + + + + https://supabase.com/docs/guides/auth/auth-magic-link + weekly + 0.5 + + + + https://supabase.com/docs/guides/auth/auth-mfa + weekly + 0.5 + + + + https://supabase.com/docs/guides/auth/managing-user-data + weekly + 0.5 + + + + https://supabase.com/docs/guides/auth/overview + weekly + 0.5 + + + + https://supabase.com/docs/guides/auth/phone-login + weekly + 0.5 + + + + https://supabase.com/docs/guides/auth/row-level-security + weekly + 0.5 + + + + https://supabase.com/docs/guides/auth/server-side-rendering + weekly + 0.5 + + + + https://supabase.com/docs/guides/auth/social-login + weekly + 0.5 + + https://supabase.com/docs/guides/database/arrays weekly @@ -216,78 +294,6 @@ 0.5 - - https://supabase.com/docs/guides/auth/auth-captcha - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-email-templates - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-email - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-helpers - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-magic-link - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/auth-mfa - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/managing-user-data - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/overview - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/phone-login - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/row-level-security - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/server-side-rendering - weekly - 0.5 - - - - https://supabase.com/docs/guides/auth/social-login - weekly - 0.5 - - https://supabase.com/docs/guides/functions/auth weekly @@ -570,12 +576,6 @@ 0.5 - - https://supabase.com/docs/guides/resources/self-hosting - weekly - 0.5 - - https://supabase.com/docs/guides/resources/supabase-cli weekly @@ -612,6 +612,12 @@ 0.5 + + https://supabase.com/docs/guides/self-hosting/docker + weekly + 0.5 + + https://supabase.com/docs/learn/auth-deep-dive/auth-deep-dive-jwts weekly @@ -642,42 +648,6 @@ 0.5 - - https://supabase.com/docs/guides/database/extensions/http - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/extensions/pgcron - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/extensions/pgnet - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/extensions/pgtap - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/extensions/plv8 - weekly - 0.5 - - - - https://supabase.com/docs/guides/database/extensions/uuid-ossp - weekly - 0.5 - - https://supabase.com/docs/guides/auth/auth-helpers/auth-ui weekly @@ -829,25 +799,43 @@ - https://supabase.com/docs/guides/functions/examples/og-image + https://supabase.com/docs/guides/database/extensions/http weekly 0.5 - https://supabase.com/docs/guides/getting-started/quickstarts/nextjs + https://supabase.com/docs/guides/database/extensions/pgcron weekly 0.5 - https://supabase.com/docs/guides/getting-started/quickstarts/nuxtjs + https://supabase.com/docs/guides/database/extensions/pgnet weekly 0.5 - https://supabase.com/docs/guides/getting-started/quickstarts/reactjs + https://supabase.com/docs/guides/database/extensions/pgtap + weekly + 0.5 + + + + https://supabase.com/docs/guides/database/extensions/plv8 + weekly + 0.5 + + + + https://supabase.com/docs/guides/database/extensions/postgis + weekly + 0.5 + + + + https://supabase.com/docs/guides/database/extensions/uuid-ossp weekly 0.5 @@ -936,6 +924,30 @@ 0.5 + + https://supabase.com/docs/guides/functions/examples/og-image + weekly + 0.5 + + + + https://supabase.com/docs/guides/getting-started/quickstarts/nextjs + weekly + 0.5 + + + + https://supabase.com/docs/guides/getting-started/quickstarts/nuxtjs + weekly + 0.5 + + + + https://supabase.com/docs/guides/getting-started/quickstarts/reactjs + weekly + 0.5 + + https://supabase.com/docs/guides/platform/sso/azure weekly @@ -954,6 +966,24 @@ 0.5 + + https://supabase.com/docs/guides/resources/supabase-cli/local-development + weekly + 0.5 + + + + https://supabase.com/docs/guides/resources/supabase-cli/managing-environments + weekly + 0.5 + + + + https://supabase.com/docs/guides/self-hosting/auth/config + weekly + 0.5 + + https://supabase.com/docs/guides/resources/migrating-to-supabase/firebase-auth weekly @@ -979,19 +1009,13 @@ - https://supabase.com/docs/guides/resources/self-hosting/docker + https://supabase.com/docs/guides/self-hosting/realtime/config weekly 0.5 - https://supabase.com/docs/guides/resources/supabase-cli/local-development - weekly - 0.5 - - - - https://supabase.com/docs/guides/resources/supabase-cli/managing-environments + https://supabase.com/docs/guides/self-hosting/storage/config weekly 0.5 @@ -3326,6 +3350,24 @@ 0.5 + + https://supabase.com/docs/reference/cli/supabase-network-bans + weekly + 0.5 + + + + https://supabase.com/docs/reference/cli/supabase-network-bans-remove + weekly + 0.5 + + + + https://supabase.com/docs/reference/cli/supabase-network-bans-get + weekly + 0.5 + + https://supabase.com/docs/reference/cli/supabase-migration weekly @@ -3488,6 +3530,12 @@ 0.5 + + https://supabase.com/docs/reference/cli/supabase-db-dump + weekly + 0.5 + + https://supabase.com/docs/reference/cli/supabase-db-diff weekly From fce82b0bdfaa00c8dcf509dd0dba6e2747e797c7 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Mon, 9 Jan 2023 12:40:40 -0330 Subject: [PATCH 16/48] Cleanup --- apps/docs/components/reference/RefSectionHandler.tsx | 1 - apps/docs/lib/refGenerator/helpers.ts | 3 --- apps/docs/pages/reference/api/[...slug].tsx | 1 - 3 files changed, 5 deletions(-) diff --git a/apps/docs/components/reference/RefSectionHandler.tsx b/apps/docs/components/reference/RefSectionHandler.tsx index 70024788999..76f1e0cc3e1 100644 --- a/apps/docs/components/reference/RefSectionHandler.tsx +++ b/apps/docs/components/reference/RefSectionHandler.tsx @@ -18,7 +18,6 @@ interface RefSectionHandlerProps { } const RefSectionHandler = (props: RefSectionHandlerProps) => { - console.log('props', props) const router = useRouter() const slug = router.query.slug[0] diff --git a/apps/docs/lib/refGenerator/helpers.ts b/apps/docs/lib/refGenerator/helpers.ts index 251a101add0..83864fa5540 100644 --- a/apps/docs/lib/refGenerator/helpers.ts +++ b/apps/docs/lib/refGenerator/helpers.ts @@ -23,9 +23,6 @@ export function extractTsDocNode(nodeToFind: string, definition: any) { } export function generateParameters(tsDefinition: any) { - if (!tsDefinition.signatures) { - console.log('tsDefinition', tsDefinition.signatures) - } let functionDeclaration = null if (tsDefinition.kindString == 'Method') { functionDeclaration = tsDefinition diff --git a/apps/docs/pages/reference/api/[...slug].tsx b/apps/docs/pages/reference/api/[...slug].tsx index 859c3af9e0b..382c882a190 100644 --- a/apps/docs/pages/reference/api/[...slug].tsx +++ b/apps/docs/pages/reference/api/[...slug].tsx @@ -12,7 +12,6 @@ const generatedSpec = gen_v3(specFile, 'wat', { apiUrl: 'apiv0' }) const sections = flattenSections(apiCommonSections) export default function Config(props) { - console.log('generatedSpec', generatedSpec) return } From a9c84cac8df8f380dbdb5897ad29384c227758da Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Mon, 9 Jan 2023 15:24:39 -0330 Subject: [PATCH 17/48] Cleanup --- apps/docs/components/reference/Reference.types.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs/components/reference/Reference.types.ts b/apps/docs/components/reference/Reference.types.ts index 663f633ebd2..04a9c04b7da 100644 --- a/apps/docs/components/reference/Reference.types.ts +++ b/apps/docs/components/reference/Reference.types.ts @@ -87,7 +87,7 @@ export type TypeSpecChild = { typeParameter?: any implementedTypes?: any extendedTypes?: any - dereferenced?: TypeSpecChildComment + dereferenced?: TypeSpecChild extendedBy?: any indexSignature?: any extendsType?: any From c58e51b866e67c4eb143b53248ca24c2da42a53d Mon Sep 17 00:00:00 2001 From: Devin Stein Date: Mon, 9 Jan 2023 13:57:58 -0800 Subject: [PATCH 18/48] Add Page export MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Thor 雷神 Schaeff <5748289+thorwebdev@users.noreply.github.com> --- apps/docs/pages/guides/integrations/picket.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/docs/pages/guides/integrations/picket.mdx b/apps/docs/pages/guides/integrations/picket.mdx index 3f583b8a873..bfa478dc731 100644 --- a/apps/docs/pages/guides/integrations/picket.mdx +++ b/apps/docs/pages/guides/integrations/picket.mdx @@ -575,3 +575,7 @@ npm run dev - Leverage Supabase's awesome libraries and ecosystem while still enabling wallet login - Store app-specific data, like user preferences, about your user's wallet adress off-chain - Cache on-chain data to improve your DApp's performance + +export const Page = ({ children }) => + +export default Page From ec95a67e9ab83bfb16c5581e23fbd0e28058e8e5 Mon Sep 17 00:00:00 2001 From: Devin Stein Date: Mon, 9 Jan 2023 13:59:00 -0800 Subject: [PATCH 19/48] fix: keep navigation alphabetized --- apps/docs/components/Navigation/Navigation.constants.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs/components/Navigation/Navigation.constants.ts b/apps/docs/components/Navigation/Navigation.constants.ts index e473d753af3..5238843e34f 100644 --- a/apps/docs/components/Navigation/Navigation.constants.ts +++ b/apps/docs/components/Navigation/Navigation.constants.ts @@ -294,9 +294,9 @@ export const menuItems: NavMenu = { { name: 'Authsignal', url: '/guides/integrations/authsignal', items: [] }, { name: 'Clerk', url: '/guides/integrations/clerk', items: [] }, { name: 'keyri', url: '/guides/integrations/keyri', items: [] }, + { name: 'Picket', url: '/guides/integrations/picket', items: [] }, { name: 'Stytch', url: '/guides/integrations/stytch', items: [] }, { name: 'SuperTokens', url: '/guides/integrations/supertokens', items: [] }, - { name: 'Picket', url: '/guides/integrations/picket', items: [] }, ], }, { From 58a18cfe950fe9a80f121a24664b995f0c42ee6d Mon Sep 17 00:00:00 2001 From: Alaister Young Date: Mon, 9 Jan 2023 23:05:49 +0000 Subject: [PATCH 20/48] adds new update fdw mutation --- .../Database/Wrappers/EditWrapper.tsx | 30 +++---- studio/data/fdw/fdw-create-mutation.ts | 9 +- studio/data/fdw/fdw-delete-mutation.ts | 7 +- studio/data/fdw/fdw-update-mutation.ts | 84 +++++++++++++++++++ studio/data/sql/utils/transaction.ts | 9 ++ 5 files changed, 109 insertions(+), 30 deletions(-) create mode 100644 studio/data/fdw/fdw-update-mutation.ts create mode 100644 studio/data/sql/utils/transaction.ts diff --git a/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx b/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx index 2ba5ba6c170..7fc186b1552 100644 --- a/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx +++ b/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx @@ -18,8 +18,7 @@ import { PermissionAction } from '@supabase/shared-types/out/constants' import { VaultSecret } from 'types' import { checkPermissions, useParams, useStore } from 'hooks' import { useFDWsQuery } from 'data/fdw/fdws-query' -import { useFDWCreateMutation } from 'data/fdw/fdw-create-mutation' -import { useFDWDeleteMutation } from 'data/fdw/fdw-delete-mutation' +import { useFDWUpdateMutation } from 'data/fdw/fdw-update-mutation' import InputField from './InputField' import { WRAPPERS } from './Wrappers.constants' @@ -55,8 +54,7 @@ const EditWrapper = () => { const wrapper = wrappers.find((w) => Number(w.id) === Number(id)) const wrapperMeta = WRAPPERS.find((w) => w.handlerName === wrapper?.handler) - const { mutateAsync: createFDW } = useFDWCreateMutation() - const { mutateAsync: deleteFDW } = useFDWDeleteMutation() + const { mutateAsync: updateFDW } = useFDWUpdateMutation() const [wrapperTables, setWrapperTables] = useState([]) const [isEditingTable, setIsEditingTable] = useState(false) @@ -83,7 +81,7 @@ const EditWrapper = () => { if (isLoading) { return ( -
+
) @@ -92,8 +90,8 @@ const EditWrapper = () => { if (wrapper === undefined || wrapperMeta === undefined) { if (isSaving) { return ( -
-
+
+

Updating wrapper

@@ -101,10 +99,10 @@ const EditWrapper = () => { ) } else { return ( -
+

Unknown wrapper

-

+

The wrapper ID {id} cannot be found in your project. Head back to select another wrapper.

@@ -147,17 +145,11 @@ const EditWrapper = () => { setIsSaving(true) setSubmitting(true) try { - await deleteFDW({ - projectRef: project?.ref, - connectionString: project?.connectionString, - wrapper, - wrapperMeta, - }) - - await createFDW({ + await updateFDW({ projectRef: project?.ref, connectionString: project?.connectionString, wrapper: wrapperMeta, + wrapperMeta, formState: { ...values, server_name: `${wrapper_name}_server` }, tables: wrapperTables, }) @@ -252,7 +244,7 @@ const EditWrapper = () => { +
{
)} {wrapperTables.length === 0 && formErrors.tables && ( -

{formErrors.tables}

+

{formErrors.tables}

)} diff --git a/studio/data/fdw/fdw-create-mutation.ts b/studio/data/fdw/fdw-create-mutation.ts index 4d56cf7d863..1cc30aaf0a1 100644 --- a/studio/data/fdw/fdw-create-mutation.ts +++ b/studio/data/fdw/fdw-create-mutation.ts @@ -2,6 +2,7 @@ import { useMutation, UseMutationOptions, useQueryClient } from '@tanstack/react import { AvailableColumn, Wrapper } from 'components/interfaces/Database/Wrappers/Wrappers.types' import { executeSql } from 'data/sql/execute-sql-query' import { sqlKeys } from 'data/sql/keys' +import { wrapWithTransaction } from 'data/sql/utils/transaction' import { useStore } from 'hooks' export type FDWCreateVariables = { @@ -14,7 +15,7 @@ export type FDWCreateVariables = { tables: any[] } -export function getFDWCreateSql({ +export function getCreateFDWSql({ wrapper, formState, tables, @@ -112,8 +113,6 @@ export function getFDWCreateSql({ .join('\n\n') const sql = /* SQL */ ` - begin; - ${newSchemasSql} ${createWrapperSql} @@ -123,8 +122,6 @@ export function getFDWCreateSql({ ${createServerSql} ${createTablesSql} - - commit; ` return sql @@ -137,7 +134,7 @@ export async function createFDW({ formState, tables, }: FDWCreateVariables) { - const sql = getFDWCreateSql({ wrapper, formState, tables }) + const sql = wrapWithTransaction(getCreateFDWSql({ wrapper, formState, tables })) const { result } = await executeSql({ projectRef, connectionString, sql }) diff --git a/studio/data/fdw/fdw-delete-mutation.ts b/studio/data/fdw/fdw-delete-mutation.ts index 4e7b98db373..c3d4940fc31 100644 --- a/studio/data/fdw/fdw-delete-mutation.ts +++ b/studio/data/fdw/fdw-delete-mutation.ts @@ -2,6 +2,7 @@ import { useMutation, UseMutationOptions, useQueryClient } from '@tanstack/react import { Wrapper } from 'components/interfaces/Database/Wrappers/Wrappers.types' import { executeSql } from 'data/sql/execute-sql-query' import { sqlKeys } from 'data/sql/keys' +import { wrapWithTransaction } from 'data/sql/utils/transaction' import { useStore } from 'hooks' export type FDWDeleteVariables = { @@ -30,13 +31,9 @@ export const getDeleteFDWSql = ({ const deleteEncryptedSecretsSql = deleteEncryptedSecretsSqlArray.join('\n') const sql = /* SQL */ ` - begin; - drop foreign data wrapper if exists ${wrapper.name} cascade; ${deleteEncryptedSecretsSql} - - commit; ` return sql @@ -52,7 +49,7 @@ export async function deleteFDW({ throw new Error('projectRef is required') } - const sql = getDeleteFDWSql({ wrapper, wrapperMeta }) + const sql = wrapWithTransaction(getDeleteFDWSql({ wrapper, wrapperMeta })) const { result } = await executeSql({ projectRef, connectionString, sql }) diff --git a/studio/data/fdw/fdw-update-mutation.ts b/studio/data/fdw/fdw-update-mutation.ts new file mode 100644 index 00000000000..d3e2fe130da --- /dev/null +++ b/studio/data/fdw/fdw-update-mutation.ts @@ -0,0 +1,84 @@ +import { useMutation, UseMutationOptions, useQueryClient } from '@tanstack/react-query' +import { Wrapper } from 'components/interfaces/Database/Wrappers/Wrappers.types' +import { executeSql } from 'data/sql/execute-sql-query' +import { sqlKeys } from 'data/sql/keys' +import { wrapWithTransaction } from 'data/sql/utils/transaction' +import { useStore } from 'hooks' +import { getCreateFDWSql } from './fdw-create-mutation' +import { getDeleteFDWSql } from './fdw-delete-mutation' + +export type FDWUpdateVariables = { + projectRef?: string + connectionString?: string + wrapper: Wrapper + wrapperMeta: Wrapper + formState: { + [k: string]: string + } + tables: any[] +} + +export const getUpdateFDWSql = ({ + wrapper, + wrapperMeta, + formState, + tables, +}: Pick) => { + const deleteWrapperSql = getDeleteFDWSql({ wrapper, wrapperMeta }) + const createWrapperSql = getCreateFDWSql({ + wrapper: wrapperMeta, + formState, + tables, + }) + + const sql = /* SQL */ ` + ${deleteWrapperSql} + + ${createWrapperSql} + ` + + return sql +} + +export async function updateFDW({ + projectRef, + connectionString, + wrapper, + wrapperMeta, + formState, + tables, +}: FDWUpdateVariables) { + if (!projectRef) { + throw new Error('projectRef is required') + } + + const sql = wrapWithTransaction(getUpdateFDWSql({ wrapper, wrapperMeta, formState, tables })) + + const { result } = await executeSql({ projectRef, connectionString, sql }) + + return result +} + +type FDWUpdateData = Awaited> + +export const useFDWUpdateMutation = ({ + onSuccess, + ...options +}: Omit, 'mutationFn'> = {}) => { + const queryClient = useQueryClient() + const { vault } = useStore() + + return useMutation((vars) => updateFDW(vars), { + async onSuccess(data, variables, context) { + const { projectRef } = variables + + await Promise.all([ + queryClient.invalidateQueries(sqlKeys.query(projectRef, ['fdws'])), + vault.load(), + ]) + + await onSuccess?.(data, variables, context) + }, + ...options, + }) +} diff --git a/studio/data/sql/utils/transaction.ts b/studio/data/sql/utils/transaction.ts new file mode 100644 index 00000000000..36fa24b2571 --- /dev/null +++ b/studio/data/sql/utils/transaction.ts @@ -0,0 +1,9 @@ +export function wrapWithTransaction(sql: string) { + return /* SQL */ ` + begin; + + ${sql} + + commit; + ` +} From 78854b06fa7c0652511c599a0d16f8eb11660604 Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Tue, 10 Jan 2023 15:11:14 +0800 Subject: [PATCH 21/48] Small fixes --- .../Database/Wrappers/CreateWrapper.tsx | 2 +- .../Database/Wrappers/EditWrapper.tsx | 14 ++++++++--- .../Database/Wrappers/WrapperRow.tsx | 16 ++++++------ .../Database/Wrappers/Wrappers.constants.ts | 4 +-- .../Database/Wrappers/Wrappers.types.ts | 2 +- studio/data/fdw/fdw-create-mutation.ts | 25 +++++++++++-------- studio/data/fdw/fdw-delete-mutation.ts | 7 +++--- studio/data/fdw/fdw-update-mutation.ts | 13 ++++------ studio/data/fdw/fdws-query.ts | 2 +- 9 files changed, 46 insertions(+), 39 deletions(-) diff --git a/studio/components/interfaces/Database/Wrappers/CreateWrapper.tsx b/studio/components/interfaces/Database/Wrappers/CreateWrapper.tsx index 4058fb2b0c2..e97ddf91e98 100644 --- a/studio/components/interfaces/Database/Wrappers/CreateWrapper.tsx +++ b/studio/components/interfaces/Database/Wrappers/CreateWrapper.tsx @@ -99,7 +99,7 @@ const CreateWrapper = () => { await createFDW({ projectRef: project?.ref, connectionString: project?.connectionString, - wrapper: wrapperMeta, + wrapperMeta, formState: { ...values, server_name: `${wrapper_name}_server` }, tables: newTables, }) diff --git a/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx b/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx index 7fc186b1552..85519c91539 100644 --- a/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx +++ b/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx @@ -148,7 +148,7 @@ const EditWrapper = () => { await updateFDW({ projectRef: project?.ref, connectionString: project?.connectionString, - wrapper: wrapperMeta, + wrapper, wrapperMeta, formState: { ...values, server_name: `${wrapper_name}_server` }, tables: wrapperTables, @@ -206,7 +206,12 @@ const EditWrapper = () => {
{({ isSubmitting, handleReset, values, initialValues, resetForm }: any) => { const [loadingSecrets, setLoadingSecrets] = useState(false) - const hasChanges = JSON.stringify(values) !== JSON.stringify(initialValues) + + const initialTables = formatWrapperTables(wrapper?.tables ?? []) + const hasFormChanges = JSON.stringify(values) !== JSON.stringify(initialValues) + const hasTableChanges = JSON.stringify(initialTables) !== JSON.stringify(wrapperTables) + const hasChanges = hasFormChanges || hasTableChanges + const encryptedOptions = wrapperMeta.server.options.filter((option) => option.encrypted) useEffect(() => { @@ -249,7 +254,10 @@ const EditWrapper = () => { form={formId} isSubmitting={isSubmitting} hasChanges={hasChanges} - handleReset={handleReset} + handleReset={() => { + handleReset() + setWrapperTables(initialTables) + }} helper={ !canCreateWrapper ? 'You need additional permissions to create a foreign data wrapper' diff --git a/studio/components/interfaces/Database/Wrappers/WrapperRow.tsx b/studio/components/interfaces/Database/Wrappers/WrapperRow.tsx index 0e336cdf86d..a79ca3d972b 100644 --- a/studio/components/interfaces/Database/Wrappers/WrapperRow.tsx +++ b/studio/components/interfaces/Database/Wrappers/WrapperRow.tsx @@ -1,6 +1,6 @@ import Link from 'next/link' import Image from 'next/image' -import { FC, useState } from 'react' +import { FC } from 'react' import { Collapsible, IconChevronUp, @@ -10,28 +10,28 @@ import { IconTrash, IconEdit, } from 'ui' +import { partition } from 'lodash' import { useParams, useStore } from 'hooks' -import { Wrapper } from './Wrappers.types' +import { WrapperMeta } from './Wrappers.types' +import { FDW } from 'data/fdw/fdws-query' import { useFDWDeleteMutation } from 'data/fdw/fdw-delete-mutation' import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext' import { confirmAlert } from 'components/to-be-cleaned/ModalsDeprecated/ConfirmModal' -import { partition } from 'lodash' interface Props { - wrapperMeta: Wrapper - wrappers: any[] + wrappers: FDW[] + wrapperMeta: WrapperMeta isOpen: boolean isLoading: boolean onOpen: (wrapper: string) => void } -const WrapperRow: FC = ({ wrapperMeta, wrappers = [], isOpen, isLoading, onOpen }) => { +const WrapperRow: FC = ({ wrappers = [], wrapperMeta, isOpen, isLoading, onOpen }) => { const { ui } = useStore() const { ref } = useParams() const { project } = useProjectContext() const { mutateAsync: deleteFDW } = useFDWDeleteMutation() - const [isSubmitting, setIsSubmitting] = useState(false) const onDeleteWrapper = (wrapper: any) => { confirmAlert({ @@ -176,7 +176,6 @@ const WrapperRow: FC = ({ wrapperMeta, wrappers = [], isOpen, isLoading, - + {isWrappersEnabled && }
{isLoadingExtensions ? ( -
+
diff --git a/studio/components/interfaces/Database/Wrappers/WrappersDropdown.tsx b/studio/components/interfaces/Database/Wrappers/WrappersDropdown.tsx index 88f6fd36404..b74c9a9fffb 100644 --- a/studio/components/interfaces/Database/Wrappers/WrappersDropdown.tsx +++ b/studio/components/interfaces/Database/Wrappers/WrappersDropdown.tsx @@ -1,6 +1,6 @@ import Link from 'next/link' import Image from 'next/image' -import { FC } from 'react' +import { FC, Fragment } from 'react' import { observer } from 'mobx-react-lite' import { Button, Dropdown, IconPlus } from 'ui' @@ -23,7 +23,7 @@ const WrapperDropdown: FC = ({ buttonText = 'Add wrapper', align = 'end' overlay={ <> {WRAPPERS.map((wrapper, idx) => ( - <> + @@ -44,7 +44,7 @@ const WrapperDropdown: FC = ({ buttonText = 'Add wrapper', align = 'end' {idx !== WRAPPERS.length - 1 && } - + ))} } From 90a68435092c31369cbef928e9114ed4e265d340 Mon Sep 17 00:00:00 2001 From: Devin Stein Date: Tue, 10 Jan 2023 07:18:54 -0800 Subject: [PATCH 31/48] style: run prettier on picket.mdx --- .../docs/pages/guides/integrations/picket.mdx | 323 +++++++++--------- 1 file changed, 157 insertions(+), 166 deletions(-) diff --git a/apps/docs/pages/guides/integrations/picket.mdx b/apps/docs/pages/guides/integrations/picket.mdx index bfa478dc731..d33fa8f7988 100644 --- a/apps/docs/pages/guides/integrations/picket.mdx +++ b/apps/docs/pages/guides/integrations/picket.mdx @@ -24,7 +24,7 @@ The code for this guide is based of [this example repo](https://github.com/picke ## Step 1: Create a Picket Project -First, we'll create a new project in our [Picket dashboard](https://picketapi.com/dashboard). +First, we'll create a new project in our [Picket dashboard](https://picketapi.com/dashboard). Click the `Create New Project` button at the top of the Projects section on your [Picket dashboard](https://picketapi.com/dashboard). Edit the project to give it a memorable name. @@ -57,6 +57,7 @@ Enter `todos` as the `Name` field. Select `Enable Row Level Security (RLS)`. Create four columns: + - `name` as `text` - `wallet_address` as `text` - `completed` as `bool` with the default value `false` @@ -73,6 +74,7 @@ Now we want to make sure that only the `todos` owner, the user's `wallet_address ```sql ((jwt() ->> 'walletAddress'::text) = wallet_address) ``` + This expression checks that the wallet address in the requesting JWT access token is the same as the `wallet_address` in the `todos` table. ![RLS policy](/docs/img/guides/integrations/picket/rls_policy.png) @@ -88,11 +90,12 @@ npx create-next-app@latest --typescript ``` Create a `.env.local` file and enter the following values -- `NEXT_PUBLIC_PICKET_PUBLISHABLE_KEY` => Copy the publishable key from the Picket project you created in step 1 -- `PICKET_PROJECT_SECRET_KEY` => Copy the secret key from the Picket project you created in the step 1 -- `NEXT_PUBLIC_SUPABASE_URL` => You can find this URL under "Settings > API" in your Supabase project -- `NEXT_PUBLIC_SUPABASE_ANON_KEY` => You can find this project API key under "Settings > API" in your Supabase project -- `SUAPBASE_JWT_SECRET`=> You can find this secret under "Settings > API" in your Supabase project + +- `NEXT_PUBLIC_PICKET_PUBLISHABLE_KEY` => Copy the publishable key from the Picket project you created in step 1 +- `PICKET_PROJECT_SECRET_KEY` => Copy the secret key from the Picket project you created in the step 1 +- `NEXT_PUBLIC_SUPABASE_URL` => You can find this URL under "Settings > API" in your Supabase project +- `NEXT_PUBLIC_SUPABASE_ANON_KEY` => You can find this project API key under "Settings > API" in your Supabase project +- `SUAPBASE_JWT_SECRET`=> You can find this secret under "Settings > API" in your Supabase project ```txt NEXT_PUBLIC_PICKET_PUBLISHABLE_KEY="YOUR_PICKET_PUBLISHABLE_KEY" @@ -105,7 +108,7 @@ SUPABASE_JWT_SECRET="YOUR_SUPABASE_JWT_SECRET" ## Step 5: Setup Picket for Wallet Login > For more information on how to setup [Picket](https://picketapi.com) in your Next.js app, checkout the [Picket getting started guide](https://docs.picketapi.com/picket-docs/quick-start-guides/quick-start-guides/wallet-login) -After initializing our app, we can setup Picket. +> After initializing our app, we can setup Picket. Install the Picket [React](/picket-docs/reference/libraries-and-sdks/react-sdk-picket-react) and [Node](/picket-docs/reference/libraries-and-sdks/node.js-library-picket-node) libraries @@ -116,76 +119,76 @@ npm i @picketapi/picket-react @picketapi/picket-node Update `pages/_app.tsx` to setup the `PicketProvider` ```tsx -import "../styles/globals.css"; -import type { AppProps } from "next/app"; +import '../styles/globals.css' +import type { AppProps } from 'next/app' -import { PicketProvider } from "@picketapi/picket-react"; +import { PicketProvider } from '@picketapi/picket-react' export default function App({ Component, pageProps }: AppProps) { return ( - ); + ) } ``` Update `pages/index.tsx` to let users log in and out with their wallet ```tsx -import { GetServerSideProps } from "next"; -import { useRouter } from "next/router"; -import { useCallback } from "react"; +import { GetServerSideProps } from 'next' +import { useRouter } from 'next/router' +import { useCallback } from 'react' -import styles from "../styles/Home.module.css"; +import styles from '../styles/Home.module.css' -import { usePicket } from "@picketapi/picket-react"; -import { cookieName } from "../utils/supabase"; +import { usePicket } from '@picketapi/picket-react' +import { cookieName } from '../utils/supabase' type Props = { - loggedIn: boolean; -}; + loggedIn: boolean +} export default function Home(props: Props) { - const { loggedIn } = props; - const { login, logout, authState } = usePicket(); - const router = useRouter(); + const { loggedIn } = props + const { login, logout, authState } = usePicket() + const router = useRouter() const handleLogin = useCallback(async () => { - let auth = authState; + let auth = authState // no need to re-login if they've already connected with Picket if (!auth) { // login with Picket - auth = await login(); + auth = await login() } // login failed - if (!auth) return; + if (!auth) return // create a corresponding supabase access token - await fetch("/api/login", { - method: "POST", - headers: { "Content-Type": "application/json" }, + await fetch('/api/login', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ accessToken: auth.accessToken, }), - }); + }) // redirect to their todos page - router.push("/todos"); - }, [authState, login, router]); + router.push('/todos') + }, [authState, login, router]) const handleLogout = useCallback(async () => { // clear both picket and supabase session - await logout(); - await fetch("/api/logout", { - method: "POST", + await logout() + await fetch('/api/logout', { + method: 'POST', headers: { - "Content-Type": "application/json", + 'Content-Type': 'application/json', }, - }); + }) // refresh the page - router.push("/"); - }, [logout, router]); + router.push('/') + }, [logout, router]) return (
@@ -197,29 +200,27 @@ export default function Home(props: Props) { )}
- ); + ) } -export const getServerSideProps: GetServerSideProps = async ({ - req, -}) => { +export const getServerSideProps: GetServerSideProps = async ({ req }) => { // get supabase token server-side - const accessToken = req.cookies[cookieName]; + const accessToken = req.cookies[cookieName] if (!accessToken) { return { props: { loggedIn: false, }, - }; + } } return { props: { loggedIn: true, }, - }; -}; + } +} ``` ## Step 6: Issue a Supabase JWT on Wallet Login @@ -235,12 +236,12 @@ npm install @supabase/supabase-js jsonwebtoken cookie js-cookie Create a utility function to create a Supabase client with a custom access token in `utils/supabase.ts` ```ts -import { createClient, SupabaseClientOptions } from "@supabase/supabase-js"; +import { createClient, SupabaseClientOptions } from '@supabase/supabase-js' -export const cookieName = "sb-access-token"; +export const cookieName = 'sb-access-token' const getSupabase = (accessToken: string) => { - const options: SupabaseClientOptions<"public"> = {}; + const options: SupabaseClientOptions<'public'> = {} if (accessToken) { options.global = { @@ -248,44 +249,41 @@ const getSupabase = (accessToken: string) => { // This gives Supabase information about the user (wallet) making the request Authorization: `Bearer ${accessToken}`, }, - }; + } } const supabase = createClient( process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, options - ); + ) - return supabase; -}; + return supabase +} -export { getSupabase }; +export { getSupabase } ``` Create new api route `pages/api/login.ts`. This route validates the Picket access token then issues another equivalent Supabase access token for us to use with the Supabase client. ```ts -import type { NextApiRequest, NextApiResponse } from "next"; -import jwt from "jsonwebtoken"; -import cookie from "cookie"; -import Picket from "@picketapi/picket-node"; +import type { NextApiRequest, NextApiResponse } from 'next' +import jwt from 'jsonwebtoken' +import cookie from 'cookie' +import Picket from '@picketapi/picket-node' -import { cookieName } from "../../utils/supabase"; +import { cookieName } from '../../utils/supabase' // create picket node client with your picket secret api key -const picket = new Picket(process.env.PICKET_PROJECT_SECRET_KEY!); +const picket = new Picket(process.env.PICKET_PROJECT_SECRET_KEY!) -const expToExpiresIn = (exp: number) => exp - Math.floor(Date.now() / 1000); +const expToExpiresIn = (exp: number) => exp - Math.floor(Date.now() / 1000) -export default async function handler( - req: NextApiRequest, - res: NextApiResponse -) { - const { accessToken } = req.body; +export default async function handler(req: NextApiRequest, res: NextApiResponse) { + const { accessToken } = req.body // omit expiration time,.it will conflict with jwt.sign - const { exp, ...payload } = await picket.validate(accessToken); - const expiresIn = expToExpiresIn(exp); + const { exp, ...payload } = await picket.validate(accessToken) + const expiresIn = expToExpiresIn(exp) const supabaseJWT = jwt.sign( { @@ -295,48 +293,46 @@ export default async function handler( { expiresIn, } - ); + ) // Set a new cookie with the name res.setHeader( - "Set-Cookie", + 'Set-Cookie', cookie.serialize(cookieName, supabaseJWT, { - path: "/", - secure: process.env.NODE_ENV !== "development", + path: '/', + secure: process.env.NODE_ENV !== 'development', // allow the cookie to be accessed client-side httpOnly: false, - sameSite: "strict", + sameSite: 'strict', maxAge: expiresIn, }) - ); - res.status(200).json({}); + ) + res.status(200).json({}) } ``` And now create an equivalent logout api route `/pages/api/logout.ts` to delete the Supabase access token cookie. ```ts -import type { NextApiRequest, NextApiResponse } from "next"; -import cookie from "cookie"; +import type { NextApiRequest, NextApiResponse } from 'next' +import cookie from 'cookie' -import { cookieName } from "../../utils/supabase"; +import { cookieName } from '../../utils/supabase' -export default async function handler( - _req: NextApiRequest, - res: NextApiResponse -) { +export default async function handler(_req: NextApiRequest, res: NextApiResponse) { // Clear the supabase cookie res.setHeader( - "Set-Cookie", - cookie.serialize(cookieName, "", { - path: "/", + 'Set-Cookie', + cookie.serialize(cookieName, '', { + path: '/', maxAge: -1, }) - ); + ) - res.status(200).json({}); + res.status(200).json({}) } ``` + We can now login and logout to the app with our wallet! ## Step 7: Interacting with Data in Supabase @@ -346,39 +342,39 @@ Now that we can login to the app, it's time to start interacting with Supabase. Create a new file `pages/todos.tsx` ```tsx -import { GetServerSideProps } from "next"; -import Head from "next/head"; -import Link from "next/link"; -import { useState, useMemo } from "react"; -import jwt from "jsonwebtoken"; -import Cookies from "js-cookie"; +import { GetServerSideProps } from 'next' +import Head from 'next/head' +import Link from 'next/link' +import { useState, useMemo } from 'react' +import jwt from 'jsonwebtoken' +import Cookies from 'js-cookie' -import styles from "../styles/Home.module.css"; +import styles from '../styles/Home.module.css' -import { getSupabase, cookieName } from "../utils/supabase"; +import { getSupabase, cookieName } from '../utils/supabase' type Todo = { - name: string; - completed: boolean; -}; + name: string + completed: boolean +} type Props = { - walletAddress: string; - todos: Todo[]; -}; + walletAddress: string + todos: Todo[] +} const displayWalletAddress = (walletAddress: string) => - `${walletAddress.slice(0, 6)}...${walletAddress.slice(-4)}`; + `${walletAddress.slice(0, 6)}...${walletAddress.slice(-4)}` export default function Todos(props: Props) { - const { walletAddress } = props; - const [todos, setTodos] = useState(props.todos); + const { walletAddress } = props + const [todos, setTodos] = useState(props.todos) // avoid re-creating supabase client every render const supabase = useMemo(() => { - const accessToken = Cookies.get(cookieName); - return getSupabase(accessToken || ""); - }, []); + const accessToken = Cookies.get(cookieName) + return getSupabase(accessToken || '') + }, []) return (
@@ -390,25 +386,24 @@ export default function Todos(props: Props) {

Your Personal Todo List

Welcome {displayWalletAddress(walletAddress)},

- Your todo list is stored in Supabase and are only accessible to you - and your wallet address. Picket + Supabase makes it easy to build - scalable, hybrid web2 and web3 apps. Use Supabase to store - non-critical or private data off-chain like user app preferences or - todo lists. + Your todo list is stored in Supabase and are only accessible to you and your wallet + address. Picket + Supabase makes it easy to build scalable, hybrid web2 and web3 apps. + Use Supabase to store non-critical or private data off-chain like user app preferences + or todo lists.

Todo List

@@ -416,32 +411,28 @@ export default function Todos(props: Props) {
{ - await supabase.from("todos").upsert({ + await supabase.from('todos').upsert({ wallet_address: walletAddress, name: todo.name, completed: !todo.completed, - }); + }) setTodos((todos) => - todos.map((t) => - t.name === todo.name - ? { ...t, completed: !t.completed } - : t - ) - ); + todos.map((t) => (t.name === todo.name ? { ...t, completed: !t.completed } : t)) + ) }} /> {todo.name} @@ -450,13 +441,13 @@ export default function Todos(props: Props) { ))}
Go back home → @@ -465,78 +456,76 @@ export default function Todos(props: Props) {
- ); + ) } -export const getServerSideProps: GetServerSideProps = async ({ - req, -}) => { +export const getServerSideProps: GetServerSideProps = async ({ req }) => { // example of fetching data server-side - const accessToken = req.cookies[cookieName]; + const accessToken = req.cookies[cookieName] // require authentication if (!accessToken) { return { redirect: { - destination: "/", + destination: '/', }, props: { - walletAddress: "", + walletAddress: '', todos: [], }, - }; + } } // check if logged in user has completed the tutorial - const supabase = getSupabase(accessToken); + const supabase = getSupabase(accessToken) const { walletAddress } = jwt.decode(accessToken) as { - walletAddress: string; - }; + walletAddress: string + } // get todos for the users // if none exist, create the default todos - let { data } = await supabase.from("todos").select("*"); + let { data } = await supabase.from('todos').select('*') if (!data || data.length === 0) { - let error = null; - ({ data, error } = await supabase - .from("todos") + let error = null + ;({ data, error } = await supabase + .from('todos') .insert([ { wallet_address: walletAddress, - name: "Complete the Picket + Supabase Tutorial", + name: 'Complete the Picket + Supabase Tutorial', completed: true, }, { wallet_address: walletAddress, - name: "Create a Picket Account (https://picketapi.com/)", + name: 'Create a Picket Account (https://picketapi.com/)', completed: false, }, { wallet_address: walletAddress, - name: "Read the Picket Docs (https://docs.picketapi.com/)", + name: 'Read the Picket Docs (https://docs.picketapi.com/)', completed: false, }, { wallet_address: walletAddress, - name: "Build an Awesome Web3 Experience", + name: 'Build an Awesome Web3 Experience', completed: false, }, ]) - .select("*")); + .select('*')) if (error) { // log error and redirect home - console.error(error); + console.error(error) return { redirect: { - destination: "/", + destination: '/', }, props: { - walletAddress: "", + walletAddress: '', todos: [], }, - }; + } } } @@ -545,14 +534,15 @@ export const getServerSideProps: GetServerSideProps = async ({ walletAddress, todos: data as Todo[], }, - }; -}; + } +} ``` This is a long file, but don't be intimidated. The page is actually straightforward. It - 1. Verifies server-side that the user is authenticated and if they are not redirects them to the homepage - 2. Checks to see if they already have `todos` . If so, it returns them. If not, it initializes them for the users - 3. We render the `todos` and when the user selects or deselects a todo, we update the data in the database + +1. Verifies server-side that the user is authenticated and if they are not redirects them to the homepage +2. Checks to see if they already have `todos` . If so, it returns them. If not, it initializes them for the users +3. We render the `todos` and when the user selects or deselects a todo, we update the data in the database ## Step 8: Try it Out! @@ -571,10 +561,11 @@ npm run dev - Checkout Picket's [example Github repositories](https://github.com/picketapi) ### Common Use-Case for Picket + Supabase -- Account linking. Allow users to associate their wallet address(es) with their existing web2 account in your app -- Leverage Supabase's awesome libraries and ecosystem while still enabling wallet login -- Store app-specific data, like user preferences, about your user's wallet adress off-chain -- Cache on-chain data to improve your DApp's performance + +- Account linking. Allow users to associate their wallet address(es) with their existing web2 account in your app +- Leverage Supabase's awesome libraries and ecosystem while still enabling wallet login +- Store app-specific data, like user preferences, about your user's wallet adress off-chain +- Cache on-chain data to improve your DApp's performance export const Page = ({ children }) => From ac3d086cd825ade40001c87fa3035bcd45fa4a2e Mon Sep 17 00:00:00 2001 From: Alaister Young Date: Tue, 10 Jan 2023 15:58:53 +0000 Subject: [PATCH 32/48] removes intermediate saving screen on updating wrappers --- .../interfaces/Database/Wrappers/EditWrapper.tsx | 13 +++++++------ .../interfaces/Database/Wrappers/Wrappers.tsx | 4 ++-- studio/hooks/index.ts | 1 + studio/hooks/misc/useImmutableValue.tsx | 14 ++++++++++++++ 4 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 studio/hooks/misc/useImmutableValue.tsx diff --git a/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx b/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx index 85519c91539..2286ec04c7f 100644 --- a/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx +++ b/studio/components/interfaces/Database/Wrappers/EditWrapper.tsx @@ -16,7 +16,7 @@ import { import { PermissionAction } from '@supabase/shared-types/out/constants' import { VaultSecret } from 'types' -import { checkPermissions, useParams, useStore } from 'hooks' +import { checkPermissions, useImmutableValue, useParams, useStore } from 'hooks' import { useFDWsQuery } from 'data/fdw/fdws-query' import { useFDWUpdateMutation } from 'data/fdw/fdw-update-mutation' @@ -50,15 +50,18 @@ const EditWrapper = () => { projectRef: project?.ref, connectionString: project?.connectionString, }) + const wrappers = data?.result ?? [] - const wrapper = wrappers.find((w) => Number(w.id) === Number(id)) + const foundWrapper = wrappers.find((w) => Number(w.id) === Number(id)) + // this call to useImmutableValue should be removed if the redirect after update is also removed + const wrapper = useImmutableValue(foundWrapper) + const wrapperMeta = WRAPPERS.find((w) => w.handlerName === wrapper?.handler) - const { mutateAsync: updateFDW } = useFDWUpdateMutation() + const { mutateAsync: updateFDW, isLoading: isSaving } = useFDWUpdateMutation() const [wrapperTables, setWrapperTables] = useState([]) const [isEditingTable, setIsEditingTable] = useState(false) - const [isSaving, setIsSaving] = useState(false) const [selectedTableToEdit, setSelectedTableToEdit] = useState() const [formErrors, setFormErrors] = useState<{ [k: string]: string }>({}) @@ -142,7 +145,6 @@ const EditWrapper = () => { if (wrapperTables.length === 0) errors.tables = 'Please add at least one table' if (!isEmpty(errors)) return setFormErrors(errors) - setIsSaving(true) setSubmitting(true) try { await updateFDW({ @@ -167,7 +169,6 @@ const EditWrapper = () => { message: `Failed to create ${wrapperMeta.label} foreign data wrapper: ${error.message}`, }) } finally { - setIsSaving(false) setSubmitting(false) } } diff --git a/studio/components/interfaces/Database/Wrappers/Wrappers.tsx b/studio/components/interfaces/Database/Wrappers/Wrappers.tsx index 06ed9c800ed..92032b53870 100644 --- a/studio/components/interfaces/Database/Wrappers/Wrappers.tsx +++ b/studio/components/interfaces/Database/Wrappers/Wrappers.tsx @@ -56,7 +56,7 @@ const Wrappers = () => {
- {isLoadingExtensions ? ( + {isLoadingExtensions || isLoading ? (
@@ -94,7 +94,7 @@ const Wrappers = () => { /> ) } else { - return <> + return null } })} diff --git a/studio/hooks/index.ts b/studio/hooks/index.ts index 53628ed64e5..587af606a57 100644 --- a/studio/hooks/index.ts +++ b/studio/hooks/index.ts @@ -1,6 +1,7 @@ export * from './misc/useStore' export * from './misc/withAuth' export * from './misc/useOptimisticSqlSnippetCreate' +export * from './misc/useImmutableValue' export * from './misc/useNotifications' export * from './misc/usePlatformStatus' export * from './misc/useParams' diff --git a/studio/hooks/misc/useImmutableValue.tsx b/studio/hooks/misc/useImmutableValue.tsx new file mode 100644 index 00000000000..433e0099fef --- /dev/null +++ b/studio/hooks/misc/useImmutableValue.tsx @@ -0,0 +1,14 @@ +import { useRef } from 'react' + +/** + * Once a non-undefined value is passed, it will never change. + */ +export function useImmutableValue(value: T | undefined): T | undefined { + const ref = useRef(value) + + if (!ref.current && value) { + ref.current = value + } + + return ref.current +} From 2be9d05327c6ead846750985984f9d2b3899d3b6 Mon Sep 17 00:00:00 2001 From: Alaister Young Date: Tue, 10 Jan 2023 16:34:18 +0000 Subject: [PATCH 33/48] refetch fdw query on create --- package-lock.json | 212 +++++++++--------- .../Database/Wrappers/CreateWrapper.tsx | 8 +- studio/data/fdw/fdw-create-mutation.ts | 2 +- studio/package.json | 4 +- 4 files changed, 113 insertions(+), 113 deletions(-) diff --git a/package-lock.json b/package-lock.json index a623b4950f1..3c3c95cece7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9706,75 +9706,6 @@ "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" } }, - "node_modules/@tanstack/match-sorter-utils": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@tanstack/match-sorter-utils/-/match-sorter-utils-8.1.1.tgz", - "integrity": "sha512-IdmEekEYxQsoLOR0XQyw3jD1GujBpRRYaGJYQUw1eOT1eUugWxdc7jomh1VQ1EKHcdwDLpLaCz/8y4KraU4T9A==", - "dependencies": { - "remove-accents": "0.4.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/kentcdodds" - } - }, - "node_modules/@tanstack/query-core": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.15.1.tgz", - "integrity": "sha512-+UfqJsNbPIVo0a9ANW0ZxtjiMfGLaaoIaL9vZeVycvmBuWywJGtSi7fgPVMCPdZQFOzMsaXaOsDtSKQD5xLRVQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - } - }, - "node_modules/@tanstack/react-query": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.16.1.tgz", - "integrity": "sha512-PDE9u49wSDykPazlCoLFevUpceLjQ0Mm8i6038HgtTEKb/aoVnUZdlUP7C392ds3Cd75+EGlHU7qpEX06R7d9Q==", - "dependencies": { - "@tanstack/query-core": "4.15.1", - "use-sync-external-store": "^1.2.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-native": "*" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/@tanstack/react-query-devtools": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-4.16.1.tgz", - "integrity": "sha512-VrDYLmG+OOcvGSZL5avG4R8jhqeMFP7pzW2sh2BWEV9UfI+aocG+CW8y8ygacxuKy48m8Tyo/xfe8H1z9BGb+g==", - "dependencies": { - "@tanstack/match-sorter-utils": "8.1.1", - "superjson": "^1.10.0", - "use-sync-external-store": "^1.2.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "@tanstack/react-query": "4.16.1", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/@testdeck/core": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/@testdeck/core/-/core-0.2.2.tgz", @@ -37583,8 +37514,8 @@ "@supabase/react-data-grid": "^7.1.0-beta.7", "@supabase/shared-types": "^0.1.29", "@supabase/supabase-js": "^2.1.1", - "@tanstack/react-query": "^4.16.1", - "@tanstack/react-query-devtools": "^4.16.1", + "@tanstack/react-query": "^4.22.0", + "@tanstack/react-query-devtools": "^4.22.0", "ajv": "^8.6.3", "analytics-node": "^3.5.0", "awesome-debounce-promise": "^2.1.0", @@ -37717,6 +37648,75 @@ "tailwindcss": ">=3.0.0 || insiders" } }, + "studio/node_modules/@tanstack/match-sorter-utils": { + "version": "8.7.6", + "resolved": "https://registry.npmjs.org/@tanstack/match-sorter-utils/-/match-sorter-utils-8.7.6.tgz", + "integrity": "sha512-2AMpRiA6QivHOUiBpQAVxjiHAA68Ei23ZUMNaRJrN6omWiSFLoYrxGcT6BXtuzp0Jw4h6HZCmGGIM/gbwebO2A==", + "dependencies": { + "remove-accents": "0.4.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kentcdodds" + } + }, + "studio/node_modules/@tanstack/query-core": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.22.0.tgz", + "integrity": "sha512-OeLyBKBQoT265f5G9biReijeP8mBxNFwY7ZUu1dKL+YzqpG5q5z7J/N1eT8aWyKuhyDTiUHuKm5l+oIVzbtrjw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "studio/node_modules/@tanstack/react-query": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.22.0.tgz", + "integrity": "sha512-P9o+HjG42uB/xHR6dMsJaPhtZydSe4v0xdG5G/cEj1oHZAXelMlm67/rYJNQGKgBamKElKogj+HYGF+NY2yHYg==", + "dependencies": { + "@tanstack/query-core": "4.22.0", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-native": "*" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + } + } + }, + "studio/node_modules/@tanstack/react-query-devtools": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-4.22.0.tgz", + "integrity": "sha512-YeYFBnfqvb+ZlA0IiJqiHNNSzepNhI1p2o9i8NlhQli9+Zrn230M47OBaBUs8qr3DD1dC2zGB1Dis50Ktz8gAA==", + "dependencies": { + "@tanstack/match-sorter-utils": "^8.7.0", + "superjson": "^1.10.0", + "use-sync-external-store": "^1.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "@tanstack/react-query": "4.22.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "studio/node_modules/@types/d3-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-2.0.2.tgz", @@ -44528,38 +44528,6 @@ "mini-svg-data-uri": "^1.2.3" } }, - "@tanstack/match-sorter-utils": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@tanstack/match-sorter-utils/-/match-sorter-utils-8.1.1.tgz", - "integrity": "sha512-IdmEekEYxQsoLOR0XQyw3jD1GujBpRRYaGJYQUw1eOT1eUugWxdc7jomh1VQ1EKHcdwDLpLaCz/8y4KraU4T9A==", - "requires": { - "remove-accents": "0.4.2" - } - }, - "@tanstack/query-core": { - "version": "4.15.1", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.15.1.tgz", - "integrity": "sha512-+UfqJsNbPIVo0a9ANW0ZxtjiMfGLaaoIaL9vZeVycvmBuWywJGtSi7fgPVMCPdZQFOzMsaXaOsDtSKQD5xLRVQ==" - }, - "@tanstack/react-query": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.16.1.tgz", - "integrity": "sha512-PDE9u49wSDykPazlCoLFevUpceLjQ0Mm8i6038HgtTEKb/aoVnUZdlUP7C392ds3Cd75+EGlHU7qpEX06R7d9Q==", - "requires": { - "@tanstack/query-core": "4.15.1", - "use-sync-external-store": "^1.2.0" - } - }, - "@tanstack/react-query-devtools": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-4.16.1.tgz", - "integrity": "sha512-VrDYLmG+OOcvGSZL5avG4R8jhqeMFP7pzW2sh2BWEV9UfI+aocG+CW8y8ygacxuKy48m8Tyo/xfe8H1z9BGb+g==", - "requires": { - "@tanstack/match-sorter-utils": "8.1.1", - "superjson": "^1.10.0", - "use-sync-external-store": "^1.2.0" - } - }, "@testdeck/core": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/@testdeck/core/-/core-0.2.2.tgz", @@ -63365,11 +63333,11 @@ "@supabase/shared-types": "^0.1.29", "@supabase/supabase-js": "^2.1.1", "@tailwindcss/typography": "^0.5.2", - "@tanstack/react-query": "^4.16.1", - "@tanstack/react-query-devtools": "^4.16.1", + "@tanstack/react-query": "^4.22.0", + "@tanstack/react-query-devtools": "^4.22.0", "@testing-library/dom": "^8.19.0", "@testing-library/react": "^12.1.5", - "@testing-library/react-hooks": "*", + "@testing-library/react-hooks": "^8.0.1", "@testing-library/user-event": "^13.5.0", "@types/blueimp-md5": "^2.18.0", "@types/file-saver": "^2.0.2", @@ -63484,6 +63452,38 @@ "postcss-selector-parser": "6.0.10" } }, + "@tanstack/match-sorter-utils": { + "version": "8.7.6", + "resolved": "https://registry.npmjs.org/@tanstack/match-sorter-utils/-/match-sorter-utils-8.7.6.tgz", + "integrity": "sha512-2AMpRiA6QivHOUiBpQAVxjiHAA68Ei23ZUMNaRJrN6omWiSFLoYrxGcT6BXtuzp0Jw4h6HZCmGGIM/gbwebO2A==", + "requires": { + "remove-accents": "0.4.2" + } + }, + "@tanstack/query-core": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.22.0.tgz", + "integrity": "sha512-OeLyBKBQoT265f5G9biReijeP8mBxNFwY7ZUu1dKL+YzqpG5q5z7J/N1eT8aWyKuhyDTiUHuKm5l+oIVzbtrjw==" + }, + "@tanstack/react-query": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-4.22.0.tgz", + "integrity": "sha512-P9o+HjG42uB/xHR6dMsJaPhtZydSe4v0xdG5G/cEj1oHZAXelMlm67/rYJNQGKgBamKElKogj+HYGF+NY2yHYg==", + "requires": { + "@tanstack/query-core": "4.22.0", + "use-sync-external-store": "^1.2.0" + } + }, + "@tanstack/react-query-devtools": { + "version": "4.22.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-4.22.0.tgz", + "integrity": "sha512-YeYFBnfqvb+ZlA0IiJqiHNNSzepNhI1p2o9i8NlhQli9+Zrn230M47OBaBUs8qr3DD1dC2zGB1Dis50Ktz8gAA==", + "requires": { + "@tanstack/match-sorter-utils": "^8.7.0", + "superjson": "^1.10.0", + "use-sync-external-store": "^1.2.0" + } + }, "@types/d3-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-2.0.2.tgz", diff --git a/studio/components/interfaces/Database/Wrappers/CreateWrapper.tsx b/studio/components/interfaces/Database/Wrappers/CreateWrapper.tsx index e97ddf91e98..dbe8fe10c83 100644 --- a/studio/components/interfaces/Database/Wrappers/CreateWrapper.tsx +++ b/studio/components/interfaces/Database/Wrappers/CreateWrapper.tsx @@ -52,10 +52,10 @@ const CreateWrapper = () => { if (wrapperMeta === undefined) { return ( -
+

Unsupported wrapper type

-

+

The wrapper type {type} not supported by the dashboard. Head back to create a different wrapper.

@@ -158,7 +158,7 @@ const CreateWrapper = () => { +
{
)} {newTables.length === 0 && formErrors.tables && ( -

{formErrors.tables}

+

{formErrors.tables}

)} diff --git a/studio/data/fdw/fdw-create-mutation.ts b/studio/data/fdw/fdw-create-mutation.ts index 3611b08d305..5ebd1fb6893 100644 --- a/studio/data/fdw/fdw-create-mutation.ts +++ b/studio/data/fdw/fdw-create-mutation.ts @@ -158,7 +158,7 @@ export const useFDWCreateMutation = ({ const { projectRef } = variables await Promise.all([ - queryClient.invalidateQueries(sqlKeys.query(projectRef, ['fdws'])), + queryClient.invalidateQueries(sqlKeys.query(projectRef, ['fdws']), { refetchType: 'all' }), vault.load(), ]) diff --git a/studio/package.json b/studio/package.json index e35239fa471..400528424c4 100644 --- a/studio/package.json +++ b/studio/package.json @@ -30,8 +30,8 @@ "@supabase/react-data-grid": "^7.1.0-beta.7", "@supabase/shared-types": "^0.1.29", "@supabase/supabase-js": "^2.1.1", - "@tanstack/react-query": "^4.16.1", - "@tanstack/react-query-devtools": "^4.16.1", + "@tanstack/react-query": "^4.22.0", + "@tanstack/react-query-devtools": "^4.22.0", "ajv": "^8.6.3", "analytics-node": "^3.5.0", "awesome-debounce-promise": "^2.1.0", From c8fd1b7949d06b4d62de7dd27f3a4b3ca530f969 Mon Sep 17 00:00:00 2001 From: Gustavo Santos <53129852+gefgu@users.noreply.github.com> Date: Tue, 10 Jan 2023 17:56:15 +0000 Subject: [PATCH 34/48] fix(docs): more concise change --- .../guides/auth/auth-helpers/nextjs-server-components.mdx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/docs/pages/guides/auth/auth-helpers/nextjs-server-components.mdx b/apps/docs/pages/guides/auth/auth-helpers/nextjs-server-components.mdx index 9c1efcd155c..4f4fca14b1f 100644 --- a/apps/docs/pages/guides/auth/auth-helpers/nextjs-server-components.mdx +++ b/apps/docs/pages/guides/auth/auth-helpers/nextjs-server-components.mdx @@ -220,13 +220,13 @@ export default function SupabaseListener({ accessToken }) { const router = useRouter() useEffect(() => { - const event = supabase.auth.onAuthStateChange((event, session) => { + const { data: subscription } = supabase.auth.onAuthStateChange((event, session) => { if (session?.access_token !== accessToken) { router.refresh() } }) - return () => event.data.subscription.unsubscribe(); + return () => subscription.unsubscribe(); }, [accessToken]) return null From 68faefb07fe2bcef9125f3b8749ab0e314a03b8c Mon Sep 17 00:00:00 2001 From: Gustavo Santos <53129852+gefgu@users.noreply.github.com> Date: Tue, 10 Jan 2023 18:01:17 +0000 Subject: [PATCH 35/48] fix: remove semicolon --- .../pages/guides/auth/auth-helpers/nextjs-server-components.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs/pages/guides/auth/auth-helpers/nextjs-server-components.mdx b/apps/docs/pages/guides/auth/auth-helpers/nextjs-server-components.mdx index 4f4fca14b1f..a49f6c3c2ca 100644 --- a/apps/docs/pages/guides/auth/auth-helpers/nextjs-server-components.mdx +++ b/apps/docs/pages/guides/auth/auth-helpers/nextjs-server-components.mdx @@ -226,7 +226,7 @@ export default function SupabaseListener({ accessToken }) { } }) - return () => subscription.unsubscribe(); + return () => subscription.unsubscribe() }, [accessToken]) return null From ff10cf167fa4835aa1229c7e6defe6b3b419a444 Mon Sep 17 00:00:00 2001 From: Wen Bo Xie Date: Tue, 10 Jan 2023 13:21:44 -0800 Subject: [PATCH 36/48] feat: version bump Realtime image to v2.1.0 --- docker/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 1f70d259a58..db91090408e 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -105,7 +105,7 @@ services: realtime: container_name: realtime-dev.supabase-realtime - image: supabase/realtime:v2.0.2 + image: supabase/realtime:v2.1.0 depends_on: db: # Disable this if you are using an external Postgres database condition: service_healthy From e22c340fb61d0e275e881b04646b086aa1fb2e47 Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Wed, 11 Jan 2023 12:27:24 +0800 Subject: [PATCH 37/48] Remove unnecessary isLoading prop --- .../Database/Wrappers/WrapperRow.tsx | 173 ++++++++---------- .../interfaces/Database/Wrappers/Wrappers.tsx | 1 - 2 files changed, 78 insertions(+), 96 deletions(-) diff --git a/studio/components/interfaces/Database/Wrappers/WrapperRow.tsx b/studio/components/interfaces/Database/Wrappers/WrapperRow.tsx index a79ca3d972b..35b7efbed34 100644 --- a/studio/components/interfaces/Database/Wrappers/WrapperRow.tsx +++ b/studio/components/interfaces/Database/Wrappers/WrapperRow.tsx @@ -1,15 +1,7 @@ import Link from 'next/link' import Image from 'next/image' import { FC } from 'react' -import { - Collapsible, - IconChevronUp, - Button, - IconExternalLink, - IconLoader, - IconTrash, - IconEdit, -} from 'ui' +import { Collapsible, IconChevronUp, Button, IconExternalLink, IconTrash, IconEdit } from 'ui' import { partition } from 'lodash' import { useParams, useStore } from 'hooks' @@ -23,11 +15,10 @@ interface Props { wrappers: FDW[] wrapperMeta: WrapperMeta isOpen: boolean - isLoading: boolean onOpen: (wrapper: string) => void } -const WrapperRow: FC = ({ wrappers = [], wrapperMeta, isOpen, isLoading, onOpen }) => { +const WrapperRow: FC = ({ wrappers = [], wrapperMeta, isOpen, onOpen }) => { const { ui } = useStore() const { ref } = useParams() const { project } = useProjectContext() @@ -99,101 +90,93 @@ const WrapperRow: FC = ({ wrappers = [], wrapperMeta, isOpen, isLoading, {wrapperMeta.label}
- {isLoading ? ( -
- -
- ) : ( -
- {wrappers.length} wrapper{wrappers.length > 1 ? 's' : ''} -
- )} +
+ {wrappers.length} wrapper{wrappers.length > 1 ? 's' : ''} +
- {!isLoading && ( - -
- {wrappers.map((wrapper) => { - const serverOptions = Object.fromEntries( - wrapper.server_options.map((option: any) => option.split('=')) - ) - const [encryptedMetadata, visibleMetadata] = partition( - wrapperMeta.server.options, - 'hidden' - ) + +
+ {wrappers.map((wrapper) => { + const serverOptions = Object.fromEntries( + wrapper.server_options.map((option: any) => option.split('=')) + ) + const [encryptedMetadata, visibleMetadata] = partition( + wrapperMeta.server.options, + 'hidden' + ) - return ( -
-
-
-

{wrapper.name}

+ return ( +
+
+
+

{wrapper.name}

+
+ {visibleMetadata.map((metadata) => ( +
+

{metadata.label}:

+

{serverOptions[metadata.name]}

- {visibleMetadata.map((metadata) => ( -
( +
+

{metadata.label}:

+ -

{metadata.label}:

-

{serverOptions[metadata.name]}

-
- ))} - {encryptedMetadata.map((metadata) => ( - + ))} +
+

+ Foreign tables: ({wrapper.tables.length}) +

+
+ {wrapper.tables.map((table: any) => ( + + +
+ {table.name} +
-
- ))} -
-

- Foreign tables: ({wrapper.tables.length}) -

-
- {wrapper.tables.map((table: any) => ( - - -
- {table.name} -
-
- - ))} -
+ ))}
-
- - -
- ) - })} -
- - )} +
+ + +
+
+ ) + })} +
+ ) diff --git a/studio/components/interfaces/Database/Wrappers/Wrappers.tsx b/studio/components/interfaces/Database/Wrappers/Wrappers.tsx index 92032b53870..d05146b786d 100644 --- a/studio/components/interfaces/Database/Wrappers/Wrappers.tsx +++ b/studio/components/interfaces/Database/Wrappers/Wrappers.tsx @@ -85,7 +85,6 @@ const Wrappers = () => { key={i} wrapperMeta={wrapper} wrappers={createdWrappers} - isLoading={isLoading} isOpen={open === wrapper.name} onOpen={(wrapperName) => { if (open !== wrapperName) setOpen(wrapperName) From c8a08e936bd644c8815b708b220258847aa910d2 Mon Sep 17 00:00:00 2001 From: Inian Date: Wed, 11 Jan 2023 14:14:11 +0800 Subject: [PATCH 38/48] update storage docs --- spec/enrichments/tsdoc_v2/combined.json | 2 +- spec/enrichments/tsdoc_v2/storage.json | 2 +- spec/enrichments/tsdoc_v2/storage_dereferenced.json | 2 +- spec/gotrue_v1_config.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/enrichments/tsdoc_v2/combined.json b/spec/enrichments/tsdoc_v2/combined.json index 0467e800000..0c72523e032 100644 --- a/spec/enrichments/tsdoc_v2/combined.json +++ b/spec/enrichments/tsdoc_v2/combined.json @@ -79271,7 +79271,7 @@ "kindString": "Call signature", "flags": {}, "comment": { - "shortText": "Downloads a file." + "shortText": "Downloads a file from a private bucket. For public buckets, make a request to the URL returned from `getPublicUrl` instead." }, "parameters": [ { diff --git a/spec/enrichments/tsdoc_v2/storage.json b/spec/enrichments/tsdoc_v2/storage.json index d94d2aadde8..475ba699fc3 100644 --- a/spec/enrichments/tsdoc_v2/storage.json +++ b/spec/enrichments/tsdoc_v2/storage.json @@ -5251,7 +5251,7 @@ "kindString": "Call signature", "flags": {}, "comment": { - "shortText": "Downloads a file." + "shortText": "Downloads a file from a private bucket. For public buckets, make a request to the URL returned from `getPublicUrl` instead." }, "parameters": [ { diff --git a/spec/enrichments/tsdoc_v2/storage_dereferenced.json b/spec/enrichments/tsdoc_v2/storage_dereferenced.json index 2074da33442..634dd23b469 100644 --- a/spec/enrichments/tsdoc_v2/storage_dereferenced.json +++ b/spec/enrichments/tsdoc_v2/storage_dereferenced.json @@ -5550,7 +5550,7 @@ "kindString": "Call signature", "flags": {}, "comment": { - "shortText": "Downloads a file." + "shortText": "Downloads a file from a private bucket. For public buckets, make a request to the URL returned from `getPublicUrl` instead." }, "parameters": [ { diff --git a/spec/gotrue_v1_config.yaml b/spec/gotrue_v1_config.yaml index fd7e88431b2..31827802154 100644 --- a/spec/gotrue_v1_config.yaml +++ b/spec/gotrue_v1_config.yaml @@ -40,7 +40,7 @@ parameters: tags: ['general'] # {string[]} These tags are useful for grouping parameters required: true description: | - The base URL of your website. Used as an allow-list for redirects and for constructing URLs used in emails. + The base URL of your website. Used as an allow-list for redirects and for constructing URLs used in emails. - id: 'GOTRUE_URI_ALLOW_LIST' # {string} A unique identifier for this param. title: 'auth.additional_redirect_urls' # {string} Any name. tags: ['general'] # {string[]} These tags are useful for grouping parameters From 35ae4f8a942a59f2da785c33d09199fea18db627 Mon Sep 17 00:00:00 2001 From: dshukertjr <18113850+dshukertjr@users.noreply.github.com> Date: Thu, 12 Jan 2023 00:00:18 +0900 Subject: [PATCH 39/48] remove execute() from dart code --- apps/docs/pages/guides/database/functions.mdx | 15 ++++++--------- apps/docs/pages/guides/database/tables.mdx | 4 ++-- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/apps/docs/pages/guides/database/functions.mdx b/apps/docs/pages/guides/database/functions.mdx index 0204ef78eac..3c547cf93fd 100644 --- a/apps/docs/pages/guides/database/functions.mdx +++ b/apps/docs/pages/guides/database/functions.mdx @@ -88,9 +88,8 @@ Reference: [rpc()](../../reference/javascript/rpc) ```dart -final res = await supabase - .rpc('hello_world') - .execute(); +final data = await supabase + .rpc('hello_world'); ``` Reference: [rpc()](../../reference/dart/rpc) @@ -199,10 +198,9 @@ const { data, error } = supabase.rpc('get_planets').eq('id', 1) ```dart -final res = await supabase +final data = await supabase .rpc('get_planets') - .eq('id', 1) - .execute(); + .eq('id', 1); ``` @@ -254,9 +252,8 @@ const { data, error } = await supabase.rpc('add_planet', { name: 'Jakku' }) ```dart -final res = await supabase - .rpc('add_planet', params: { 'name': 'Jakku' }) - .execute(); +final data = await supabase + .rpc('add_planet', params: { 'name': 'Jakku' }); ``` diff --git a/apps/docs/pages/guides/database/tables.mdx b/apps/docs/pages/guides/database/tables.mdx index 78d1b62115a..3a8caa24c19 100644 --- a/apps/docs/pages/guides/database/tables.mdx +++ b/apps/docs/pages/guides/database/tables.mdx @@ -206,7 +206,7 @@ const { data, error } = await supabase ```sql -final res = await supabase +await supabase .from('movies') .insert([{ name: 'The Empire Strikes Back', @@ -214,7 +214,7 @@ final res = await supabase }, { name: 'Return of the Jedi', description: 'After a daring mission to rescue Han Solo from Jabba the Hutt, the Rebels dispatch to Endor to destroy the second Death Star.' - }]).execute(); + }]); ``` From f7f781749e5bcff076088119fb5b2c292abae9eb Mon Sep 17 00:00:00 2001 From: Peter Ibidapo-Obe Date: Wed, 11 Jan 2023 16:10:10 +0100 Subject: [PATCH 40/48] Fix documentation descriptions --- apps/docs/pages/guides/getting-started.mdx | 16 ++++++++-------- apps/docs/pages/guides/tutorials.mdx | 18 +++++++++--------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/apps/docs/pages/guides/getting-started.mdx b/apps/docs/pages/guides/getting-started.mdx index 5cb4efb70e2..535ee897ec6 100644 --- a/apps/docs/pages/guides/getting-started.mdx +++ b/apps/docs/pages/guides/getting-started.mdx @@ -85,28 +85,28 @@ export const webapps = [ title: 'Angular', href: '/guides/getting-started/tutorials/with-angular', description: - 'Learn how to build a user management app with Nuxt 3 and Supabase Database, Auth, and Storage functionality.', + 'Learn how to build a user management app with Angular and Supabase Database, Auth, and Storage functionality.', icon: '/docs/img/icons/angular-icon', }, { title: 'RedwoodJS', href: '/guides/getting-started/tutorials/with-redwoodjs', description: - 'Learn how to build a user management app with Nuxt 3 and Supabase Database, Auth, and Storage functionality.', + 'Learn how to build a user management app with RedwoodJS and Supabase Database, Auth, and Storage functionality.', icon: '/docs/img/icons/redwood-icon', }, { title: 'Svelte', href: '/guides/getting-started/tutorials/with-svelte', description: - 'Learn how to build a user management app with Nuxt 3 and Supabase Database, Auth, and Storage functionality.', + 'Learn how to build a user management app with Svelte and Supabase Database, Auth, and Storage functionality.', icon: '/docs/img/icons/svelte-icon', }, { title: 'SvelteKit', href: '/guides/getting-started/tutorials/with-sveltekit', description: - 'Learn how to build a user management app with Nuxt 3 and Supabase Database, Auth, and Storage functionality.', + 'Learn how to build a user management app with SvelteKit and Supabase Database, Auth, and Storage functionality.', icon: '/docs/img/icons/svelte-icon', }, { @@ -120,28 +120,28 @@ export const webapps = [ title: 'Expo', href: '/guides/getting-started/tutorials/with-expo', description: - 'Learn how to build a user management app with React and Supabase Database, Auth, and Storage functionality.', + 'Learn how to build a user management app with Expo and Supabase Database, Auth, and Storage functionality.', icon: '/docs/img/icons/expo-icon', }, { title: 'Ionic React', href: '/guides/getting-started/tutorials/with-ionic-react', description: - 'Learn how to build a user management app with React and Supabase Database, Auth, and Storage functionality.', + 'Learn how to build a user management app with Ionic React and Supabase Database, Auth, and Storage functionality.', icon: '/docs/img/icons/ionic-icon', }, { title: 'Ionic Vue', href: '/guides/getting-started/tutorials/with-ionic-vue', description: - 'Learn how to build a user management app with Flutter and Supabase Database, Auth, and Storage functionality.', + 'Learn how to build a user management app with Ionic Vue and Supabase Database, Auth, and Storage functionality.', icon: '/docs/img/icons/ionic-icon', }, { title: 'Ionic Angular', href: '/guides/getting-started/tutorials/with-ionic-angular', description: - 'Learn how to build a user management app with NextJS and Supabase Database, Auth, and Storage functionality.', + 'Learn how to build a user management app with Ionic Angular and Supabase Database, Auth, and Storage functionality.', icon: '/docs/img/icons/ionic-icon', }, ] diff --git a/apps/docs/pages/guides/tutorials.mdx b/apps/docs/pages/guides/tutorials.mdx index 39f553feea8..887788bdb39 100644 --- a/apps/docs/pages/guides/tutorials.mdx +++ b/apps/docs/pages/guides/tutorials.mdx @@ -84,31 +84,31 @@ export const webapps = [ icon: '/docs/img/icons/nuxt-icon', }, { - title: 'Anglular', + title: 'Angular', href: '/guides/tutorials/with-angular', description: - 'Learn how to build a user management app with Nuxt 3 and Supabase Database, Auth, and Storage functionality.', + 'Learn how to build a user management app with Angular and Supabase Database, Auth, and Storage functionality.', icon: '/docs/img/icons/angular-icon', }, { title: 'RedwoodJS', href: '/guides/tutorials/with-redwoodjs', description: - 'Learn how to build a user management app with Nuxt 3 and Supabase Database, Auth, and Storage functionality.', + 'Learn how to build a user management app with RedwoodJS and Supabase Database, Auth, and Storage functionality.', icon: '/docs/img/icons/redwood-icon', }, { title: 'Svelte', href: '/guides/tutorials/with-svelte', description: - 'Learn how to build a user management app with Nuxt 3 and Supabase Database, Auth, and Storage functionality.', + 'Learn how to build a user management app with Svelte and Supabase Database, Auth, and Storage functionality.', icon: '/docs/img/icons/svelte-icon', }, { title: 'SvelteKit', href: '/guides/tutorials/with-sveltekit', description: - 'Learn how to build a user management app with Nuxt 3 and Supabase Database, Auth, and Storage functionality.', + 'Learn how to build a user management app with SvelteKit and Supabase Database, Auth, and Storage functionality.', icon: '/docs/img/icons/svelte-icon', }, ] @@ -125,7 +125,7 @@ export const mobile = [ title: 'Expo', href: '/guides/tutorials/with-expo', description: - 'Learn how to build a user management app with React and Supabase Database, Auth, and Storage functionality.', + 'Learn how to build a user management app with Expo and Supabase Database, Auth, and Storage functionality.', icon: '/docs/img/icons/expo-icon', }, ] @@ -135,21 +135,21 @@ export const lowCode = [ title: 'Ionic React', href: '/guides/tutorials/with-ionic-react', description: - 'Learn how to build a user management app with React and Supabase Database, Auth, and Storage functionality.', + 'Learn how to build a user management app with Ionic React and Supabase Database, Auth, and Storage functionality.', icon: '/docs/img/icons/ionic-icon', }, { title: 'Ionic Vue', href: '/guides/tutorials/with-ionic-vue', description: - 'Learn how to build a user management app with Flutter and Supabase Database, Auth, and Storage functionality.', + 'Learn how to build a user management app with Ionic Vue and Supabase Database, Auth, and Storage functionality.', icon: '/docs/img/icons/ionic-icon', }, { title: 'Ionic Angular', href: '/guides/tutorials/with-ionic-angular', description: - 'Learn how to build a user management app with NextJS and Supabase Database, Auth, and Storage functionality.', + 'Learn how to build a user management app with Ionic Angular and Supabase Database, Auth, and Storage functionality.', icon: '/docs/img/icons/ionic-icon', }, ] From 2ebd226f8487b71a191ff0aea9ba3ffdbbc94cfe Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Wed, 11 Jan 2023 14:06:27 -0330 Subject: [PATCH 41/48] Update how function info is built --- apps/docs/DEVELOPERS.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/docs/DEVELOPERS.md b/apps/docs/DEVELOPERS.md index 6b0dadd2641..e016dbb53c1 100644 --- a/apps/docs/DEVELOPERS.md +++ b/apps/docs/DEVELOPERS.md @@ -62,11 +62,20 @@ Several pieces of information for this function come from a [common file](https: 4. product - the Supabase tool or product that "owns" this function. Since `updateUser()` is an auth function, its product is `auth` 5. type — `updateUser()` is a function and marked as such, but we can also have sections of markdown interspersed with these function definitions. +When a new function is added, this info would need to be manually added to the common file. + #### Function Parameters The `updateUser()` function takes one parameter: `attributes`. The details for this parameter live in the GoTrue client library, referenced via a `$ref` property in the `supabase-js` [spec file](https://github.com/supabase/supabase/blob/cb04d85262db6a371539dda7df9b00ba5a901e87/spec/supabase_js_v2.yml#L357). Here, the `$ref` property is pointing to the [actual function definition](https://github.com/supabase/gotrue-js/blob/2d60e79073b96ae8c97a6ce18e2601ed1e2a2712/src/GoTrueClient.ts#L590) in the `gotrue-js` library. The accepted values for the `attributes` parameter come from the [type definition](https://github.com/supabase/gotrue-js/blob/16d3deb822097e8640a3a15b94a5690b3beaf11b/src/lib/types.ts#L233). -These individual library spec files are fetched via this [Makefile](https://github.com/supabase/supabase/blob/master/spec/Makefile), and get [transformed](https://github.com/supabase/supabase/blob/master/spec/enrichments/tsdoc_v2/supabase_dereferenced.json) to combine the information we need (params, types, etc). If you're working on docs, you likely won't need to touch this part of the setup, but we've included this detail here to point you in the right direction in case you do. +These individual library spec files are fetched via this [Makefile](https://github.com/supabase/supabase/blob/master/spec/Makefile), and get [transformed](https://github.com/supabase/supabase/blob/master/spec/enrichments/tsdoc_v2/supabase_dereferenced.json) to combine the information we need (params, types, etc). Unless you're a library maintainer, you shouldn't need to worry about this part of the process. + +If you are a library maintainer, the last important note about these library files is that the [Makefile](https://github.com/supabase/supabase/blob/master/spec/Makefile) pulls from the `gh-pages` branch of the client library repo. Here's an example of the [`realtime-js` spec file](https://github.com/supabase/realtime-js/blob/gh-pages/v2/spec.json). Updating something like function params or returns, the process is: + +1. Get your changes merged to `master` in your library +2. This will kick off an action that automatically updates the spec file in the library's `gh-pages` branch +3. Run `make` in `/spec` of the `supabase/supabase` repo. This will regenerate all of the `tsdoc` files that the docs site uses +4. You should now see the changes you've made in the docs site locally #### Function Examples @@ -86,4 +95,4 @@ On the Next.JS side of things, these work almost exactly the same as the client #### Search -Search is handled through Algolia. When the site is built, a [script](https://github.com/supabase/supabase/blob/master/apps/docs/scripts/build-search.ts) runs through all of the types of content, generating search objects that are sent to Algolia to index. +Search is handled through Algolia. When the site is built, a [search script](https://github.com/supabase/supabase/blob/master/apps/docs/scripts/build-search.ts) runs through all of the types of content, generating search objects that are sent to Algolia to index. From f112be97b49e257b5f69262ad7e00946768452c4 Mon Sep 17 00:00:00 2001 From: Terry Sutton Date: Wed, 11 Jan 2023 14:11:02 -0330 Subject: [PATCH 42/48] Cleanup --- apps/docs/DEVELOPERS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs/DEVELOPERS.md b/apps/docs/DEVELOPERS.md index e016dbb53c1..50ea5d9deec 100644 --- a/apps/docs/DEVELOPERS.md +++ b/apps/docs/DEVELOPERS.md @@ -34,7 +34,7 @@ Some things to note: 1. The files need to import a Layout at the top 2. The files need to export a `Page` at the bottom with the `` component -3. The files frontmatter is stored in `const meta = {}`. You should always include `id`, `title` and `description`. +3. The files frontmatter is stored in `const meta = {}`. You should always include `title` and `description`. 4. You can write Markdown as you normally would, but you can also write regular Javascript and JSX. Note the `examples` array that we iterate over. 5. Any Javascript variables you use in these files need to be exported in order to be used (i.e., `export const examples = []`). From d0196ece8b6c4696e381146b071f5d72b53e00a3 Mon Sep 17 00:00:00 2001 From: yayza <80866371+yayza@users.noreply.github.com> Date: Wed, 11 Jan 2023 17:38:39 -0800 Subject: [PATCH 43/48] Update sveltekit.mdx Tiny spelling mistake --- apps/docs/pages/guides/auth/auth-helpers/sveltekit.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/docs/pages/guides/auth/auth-helpers/sveltekit.mdx b/apps/docs/pages/guides/auth/auth-helpers/sveltekit.mdx index e6d1d141100..bcdcef28fc2 100644 --- a/apps/docs/pages/guides/auth/auth-helpers/sveltekit.mdx +++ b/apps/docs/pages/guides/auth/auth-helpers/sveltekit.mdx @@ -39,7 +39,7 @@ yarn add @supabase/auth-helpers-sveltekit ### Configuration -Set up the fillowing env vars. For local development you can set them in a `.env` file. See an [example](https://github.com/supabase/auth-helpers/blob/main/examples/sveltekit/.env.example). +Set up the following env vars. For local development you can set them in a `.env` file. See an [example](https://github.com/supabase/auth-helpers/blob/main/examples/sveltekit/.env.example). ```bash # Find these in your Supabase project settings > API From 2d2ba85af51eb2a3dafa6b4f6bf6d82face289a1 Mon Sep 17 00:00:00 2001 From: Inian Date: Thu, 12 Jan 2023 11:49:30 +0800 Subject: [PATCH 44/48] add origin image clarification for storage pricing --- apps/www/data/Pricing.json | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/www/data/Pricing.json b/apps/www/data/Pricing.json index 7d2dd4e24ae..dd2589b08f3 100644 --- a/apps/www/data/Pricing.json +++ b/apps/www/data/Pricing.json @@ -194,6 +194,7 @@ }, { "title": "Asset transformations", + "tooltip": "Origin images are only relevant for image transformations. Images in the bucket which are not transformed do not count towards this limit.", "tiers": { "free": false, "pro": "Unlimited transformations for 100 origin images, then 5$ per 1000 origin images", From caa7220bcd197f5cafe0bdc482cc49ada243a877 Mon Sep 17 00:00:00 2001 From: Kevin Brolly Date: Thu, 12 Jan 2023 07:36:57 +0000 Subject: [PATCH 45/48] Add note to local development docs for NPM users Some [users had trouble](https://www.reddit.com/r/Supabase/comments/zl8zgz/trying_to_install_supabase_cli/) when installing the Supabase CLI via NPM, this note may provide some guidance in these cases. --- .../guides/resources/supabase-cli/local-development.mdx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/docs/pages/guides/resources/supabase-cli/local-development.mdx b/apps/docs/pages/guides/resources/supabase-cli/local-development.mdx index eb4d4572a8b..b0f45364b52 100644 --- a/apps/docs/pages/guides/resources/supabase-cli/local-development.mdx +++ b/apps/docs/pages/guides/resources/supabase-cli/local-development.mdx @@ -31,6 +31,13 @@ Make sure you have these installed on your local machine: supabase login ``` + + +If you installed the Supabase CLI via NPM you may have to use `npx supabase login`. + + + + ## Initialize your project Create a new folder for your project and start a new git repository: From 8dc866897e870f76040bfcab799c56c3d4842fce Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Wed, 11 Jan 2023 15:57:21 +0800 Subject: [PATCH 46/48] Support loadBySchema in meta store and loading tables in table editor based on selected schema --- .../TableEditorLayout/TableEditorLayout.tsx | 7 +- .../TableEditorLayout/TableEditorMenu.tsx | 300 +++++++++--------- studio/stores/common/PostgresMetaInterface.ts | 28 ++ studio/stores/pgmeta/ExtensionsStore.ts | 5 + studio/stores/pgmeta/ForeignTableStore.ts | 5 + studio/stores/pgmeta/MetaStore.ts | 2 +- studio/stores/pgmeta/PublicationStore.ts | 5 + studio/stores/pgmeta/RolesStore.ts | 5 + studio/stores/pgmeta/SchemaStore.ts | 5 + 9 files changed, 215 insertions(+), 147 deletions(-) diff --git a/studio/components/layouts/TableEditorLayout/TableEditorLayout.tsx b/studio/components/layouts/TableEditorLayout/TableEditorLayout.tsx index af9ac5edeec..2f44c5c7870 100644 --- a/studio/components/layouts/TableEditorLayout/TableEditorLayout.tsx +++ b/studio/components/layouts/TableEditorLayout/TableEditorLayout.tsx @@ -41,7 +41,6 @@ const TableEditorLayout: FC = ({ useEffect(() => { if (ui.selectedProject?.ref) { meta.schemas.load() - meta.tables.load() meta.types.load() meta.policies.load() meta.publications.load() @@ -50,6 +49,12 @@ const TableEditorLayout: FC = ({ } }, [ui.selectedProject?.ref]) + useEffect(() => { + if (selectedSchema && ui.selectedProject?.ref) { + meta.tables.loadBySchema(selectedSchema) + } + }, [ui.selectedProject?.ref, selectedSchema]) + useEffect(() => { if (isEnabled) { vault.load() diff --git a/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx b/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx index 1bc51c408ae..d016fbc6816 100644 --- a/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx +++ b/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx @@ -58,6 +58,9 @@ const TableEditorMenu: FC = ({ ) // @ts-ignore + const isFetchingTables = + tables.filter((t) => t.schema === selectedSchema).length === 0 && meta.tables.isLoading + const schema = schemas.find((schema) => schema.name === selectedSchema) const canCreateTables = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'tables') @@ -79,10 +82,12 @@ const TableEditorMenu: FC = ({ }, [selectedSchema]) const refreshTables = async () => { - setIsRefreshing(true) - await meta.tables.load() - if (selectedSchema) await meta.schemas.loadViews(selectedSchema) - setIsRefreshing(false) + if (selectedSchema) { + setIsRefreshing(true) + await meta.tables.loadBySchema(selectedSchema) + await meta.schemas.loadViews(selectedSchema) + setIsRefreshing(false) + } } const filteredTables = @@ -229,147 +234,159 @@ const TableEditorMenu: FC = ({
-
- {/* List of tables belonging to selected schema */} - {filteredTables.length > 0 && ( - - -
-
-

Tables

-

- ({filteredTables.length}) -

+ {isFetchingTables ? ( +
+ +

Loading tables...

+
+ ) : searchText.length === 0 && filteredTables.length === 0 && filteredViews.length === 0 ? ( +
+

No tables available

+

This schema has no tables available yet

+
+ ) : ( +
+ {/* List of tables belonging to selected schema */} + {filteredTables.length > 0 && ( + + +
+
+

Tables

+

+ ({filteredTables.length}) +

+
+
- -
- - } - /> + + } + /> -
- {filteredTables.map((table) => { - const isActive = Number(id) === table.id +
+ {filteredTables.map((table) => { + const isActive = Number(id) === table.id + return ( + } + onClick={() => onEditTable(table)} + > + Edit Table + , + } + onClick={() => onDuplicateTable(table)} + > + Duplicate Table + , + , + } + onClick={() => onDeleteTable(table)} + > + Delete Table + , + ]} + > +
+ +
+ + ) + } + /> + ) + })} +
+
+ )} + + {/* List of views belonging to selected schema */} + {filteredViews.length > 0 && ( + + +

Views

+

({filteredViews.length})

+
+ } + /> + + {filteredViews.map((view: SchemaView) => { + const viewId = Base64.encode(JSON.stringify(view)) + const isActive = id === viewId return ( - } - onClick={() => onEditTable(table)} - > - Edit Table - , - } - onClick={() => onDuplicateTable(table)} - > - Duplicate Table - , - , - } - onClick={() => onDeleteTable(table)} - > - Delete Table - , - ]} - > -
- -
- - ) - } - /> + + + +
+

{view.name}

+
+
+
+ ) })} -
- - )} + + )} - {/* List of views belonging to selected schema */} - {filteredViews.length > 0 && ( - - -

Views

-

({filteredViews.length})

-
- } - /> + {/* List of foreign tables belonging to selected schema */} + {filteredForeignTables.length > 0 && ( + + +

Foreign Tables

+

+ ({filteredForeignTables.length}) +

+
+ } + /> - {filteredViews.map((view: SchemaView) => { - const viewId = Base64.encode(JSON.stringify(view)) - const isActive = id === viewId - return ( - - - -
-

{view.name}

-
-
-
- - ) - })} - - )} - - {/* List of foreign tables belonging to selected schema */} - {filteredForeignTables.length > 0 && ( - - -

Foreign Tables

-

- ({filteredForeignTables.length}) -

-
- } - /> - - {filteredForeignTables.map((table: Partial) => { - const isActive = Number(id) === table.id - return ( - - - -
-

{table.name}

-
-
-
- - ) - })} - - )} -
+ {filteredForeignTables.map((table: Partial) => { + const isActive = Number(id) === table.id + return ( + + + +
+

{table.name}

+
+
+
+ + ) + })} + + )} +
+ )} {searchText.length > 0 && filteredTables.length === 0 && filteredViews.length === 0 && (
@@ -379,13 +396,6 @@ const TableEditorMenu: FC = ({

)} - - {searchText.length === 0 && filteredTables.length === 0 && filteredViews.length === 0 && ( -
-

No tables available

-

This schema has no tables available yet

-
- )}
) } diff --git a/studio/stores/common/PostgresMetaInterface.ts b/studio/stores/common/PostgresMetaInterface.ts index 5345022f277..07445b75e46 100644 --- a/studio/stores/common/PostgresMetaInterface.ts +++ b/studio/stores/common/PostgresMetaInterface.ts @@ -15,6 +15,7 @@ export interface IPostgresMetaInterface { isInitialized: boolean load: () => void + loadBySchema: (schema: string) => Promise create: (payload: any) => Promise update: (id: number | string, updates: any) => Promise del: (id: number | string, cascade?: boolean) => Promise @@ -116,6 +117,33 @@ export default class PostgresMetaInterface implements IPostgresMetaInterface< } } + async loadBySchema(schema: string) { + let { LOADING, ERROR, LOADED } = this.STATES + try { + this.setError(null) + this.setState(LOADING) + + const url = this.url.includes('?') + ? `${this.url}&included_schemas=${schema}` + : `${this.url}?included_schemas=${schema}` + const response = await get(url, { headers: this.headers }) + if (response.error) throw response.error + + const data = response as T[] + const formattedData = keyBy(data, this.identifier) + + this.data = { ...this.data, ...formattedData } + this.setState(LOADED) + + return data + } catch (error: any) { + console.error('Error in loadBySchema:', error.message) + this.setError(error) + this.setState(ERROR) + return { error } + } + } + initialDataArray(value: T[]) { if (this.state === this.STATES.INITIAL) { this.data = keyBy(value, this.identifier) diff --git a/studio/stores/pgmeta/ExtensionsStore.ts b/studio/stores/pgmeta/ExtensionsStore.ts index 9df35a1ab4e..fbb26f7d5e8 100644 --- a/studio/stores/pgmeta/ExtensionsStore.ts +++ b/studio/stores/pgmeta/ExtensionsStore.ts @@ -13,4 +13,9 @@ export default class ExtensionsStore extends PostgresMetaInterface { ) { super(rootStore, dataUrl, headers, options) } + + // loadBySchema is not supported in this store + async loadBySchema(schema: string) { + return [] + } } diff --git a/studio/stores/pgmeta/RolesStore.ts b/studio/stores/pgmeta/RolesStore.ts index 5bd5d59fc1b..b4bb4d0c055 100644 --- a/studio/stores/pgmeta/RolesStore.ts +++ b/studio/stores/pgmeta/RolesStore.ts @@ -28,4 +28,9 @@ export default class RolesStore extends PostgresMetaInterface { 'pg_read_all_data', 'pg_write_all_data', ] + + // loadBySchema is not supported in this store + async loadBySchema(schema: string) { + return [] + } } diff --git a/studio/stores/pgmeta/SchemaStore.ts b/studio/stores/pgmeta/SchemaStore.ts index 1fd1ff89ac5..ffa9554e200 100644 --- a/studio/stores/pgmeta/SchemaStore.ts +++ b/studio/stores/pgmeta/SchemaStore.ts @@ -45,4 +45,9 @@ export default class SchemaStore extends PostgresMetaInterface { this.views = views return views } + + // loadBySchema is not supported in this store + async loadBySchema(schema: string) { + return [] + } } From e34989cbf2d66b0c763d7970091af08b9244de5a Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Wed, 11 Jan 2023 17:00:21 +0800 Subject: [PATCH 47/48] Add ViewStore --- .../SidePanelEditor/SidePanelEditor.tsx | 4 +-- .../TableGridEditor/TableGridEditor.tsx | 4 +-- .../TableEditorLayout/TableEditorLayout.tsx | 1 + .../TableEditorLayout.types.ts | 4 --- .../TableEditorLayout/TableEditorMenu.tsx | 31 ++++++------------- studio/pages/project/[ref]/editor/[id].tsx | 4 +-- studio/pages/project/[ref]/editor/index.tsx | 2 +- studio/stores/pgmeta/MetaStore.ts | 14 +++++++-- studio/stores/pgmeta/SchemaStore.ts | 31 +------------------ studio/stores/pgmeta/ViewStore.ts | 16 ++++++++++ studio/stores/project/VaultStore.ts | 8 ++--- studio/types/ui.ts | 6 ++++ 12 files changed, 55 insertions(+), 70 deletions(-) delete mode 100644 studio/components/layouts/TableEditorLayout/TableEditorLayout.types.ts create mode 100644 studio/stores/pgmeta/ViewStore.ts diff --git a/studio/components/interfaces/TableGridEditor/SidePanelEditor/SidePanelEditor.tsx b/studio/components/interfaces/TableGridEditor/SidePanelEditor/SidePanelEditor.tsx index 7e410f7d2ab..1c4f3fa1a55 100644 --- a/studio/components/interfaces/TableGridEditor/SidePanelEditor/SidePanelEditor.tsx +++ b/studio/components/interfaces/TableGridEditor/SidePanelEditor/SidePanelEditor.tsx @@ -144,8 +144,8 @@ const SidePanelEditor: FC = ({ closePanel() } - if (configuration.isEncrypted) { - await meta.schemas.loadViews(selectedTable?.schema ?? '') + if (configuration.isEncrypted && selectedTable?.schema) { + await meta.views.loadBySchema(selectedTable.schema) } resolve() diff --git a/studio/components/interfaces/TableGridEditor/TableGridEditor.tsx b/studio/components/interfaces/TableGridEditor/TableGridEditor.tsx index 58e2adba72d..36798d285ea 100644 --- a/studio/components/interfaces/TableGridEditor/TableGridEditor.tsx +++ b/studio/components/interfaces/TableGridEditor/TableGridEditor.tsx @@ -5,11 +5,11 @@ import { find, isUndefined } from 'lodash' import { PostgresColumn, PostgresTable } from '@supabase/postgres-meta' import { PermissionAction } from '@supabase/shared-types/out/constants' +import { SchemaView } from 'types' import { checkPermissions, useFlag, useStore } from 'hooks' import GridHeaderActions from './GridHeaderActions' import NotFoundState from './NotFoundState' import SidePanelEditor from './SidePanelEditor' -import { SchemaView } from 'components/layouts/TableEditorLayout/TableEditorLayout.types' import { Dictionary, parseSupaTable, SupabaseGrid, SupabaseGridRef } from 'components/grid' interface Props { @@ -81,7 +81,7 @@ const TableGridEditor: FC = ({ // @ts-ignore const schema = meta.schemas.list().find((schema) => schema.name === selectedSchema) - const isViewSelected = Object.keys(selectedTable).length === 2 + const isViewSelected = !Object.keys(selectedTable).includes('rls_enabled') const isForeignTableSelected = meta.foreignTables.byId(selectedTable.id) !== undefined const isLocked = meta.excludedSchemas.includes(schema?.name ?? '') const canUpdateTables = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_WRITE, 'tables') diff --git a/studio/components/layouts/TableEditorLayout/TableEditorLayout.tsx b/studio/components/layouts/TableEditorLayout/TableEditorLayout.tsx index 2f44c5c7870..9791b01dfa1 100644 --- a/studio/components/layouts/TableEditorLayout/TableEditorLayout.tsx +++ b/studio/components/layouts/TableEditorLayout/TableEditorLayout.tsx @@ -52,6 +52,7 @@ const TableEditorLayout: FC = ({ useEffect(() => { if (selectedSchema && ui.selectedProject?.ref) { meta.tables.loadBySchema(selectedSchema) + meta.views.loadBySchema(selectedSchema) } }, [ui.selectedProject?.ref, selectedSchema]) diff --git a/studio/components/layouts/TableEditorLayout/TableEditorLayout.types.ts b/studio/components/layouts/TableEditorLayout/TableEditorLayout.types.ts deleted file mode 100644 index 636a06056a8..00000000000 --- a/studio/components/layouts/TableEditorLayout/TableEditorLayout.types.ts +++ /dev/null @@ -1,4 +0,0 @@ -export interface SchemaView { - schema: string - name: string -} diff --git a/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx b/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx index d016fbc6816..a832e6643f4 100644 --- a/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx +++ b/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx @@ -1,4 +1,4 @@ -import { FC, useEffect, useState } from 'react' +import { FC, useState } from 'react' import { useRouter } from 'next/router' import Link from 'next/link' import { partition } from 'lodash' @@ -23,8 +23,8 @@ import { PermissionAction } from '@supabase/shared-types/out/constants' import { PostgresSchema, PostgresTable } from '@supabase/postgres-meta' import Base64 from 'lib/base64' +import { SchemaView } from 'types' import { checkPermissions, useStore } from 'hooks' -import { SchemaView } from './TableEditorLayout.types' import ProductMenuItem from 'components/ui/ProductMenu/ProductMenuItem' interface Props { @@ -53,12 +53,13 @@ const TableEditorMenu: FC = ({ const tables: PostgresTable[] = meta.tables.list( (table: PostgresTable) => table.schema === selectedSchema ) + const views: SchemaView[] = meta.views.list((view: SchemaView) => view.schema === selectedSchema) const foreignTables: Partial[] = meta.foreignTables.list( - (table: PostgresTable) => table.schema === selectedSchema + (table: Partial) => table.schema === selectedSchema ) - // @ts-ignore const isFetchingTables = + // @ts-ignore tables.filter((t) => t.schema === selectedSchema).length === 0 && meta.tables.isLoading const schema = schemas.find((schema) => schema.name === selectedSchema) @@ -67,25 +68,11 @@ const TableEditorMenu: FC = ({ const [searchText, setSearchText] = useState('') const [isRefreshing, setIsRefreshing] = useState(false) - // We may need to shift this to the schema store and do something like meta.schema.loadViews() - // I don't need we need a separate store for views - useEffect(() => { - let cancel = false - const fetchViews = async (selectedSchema: string) => { - await meta.schemas.loadViews(selectedSchema) - } - if (selectedSchema) fetchViews(selectedSchema) - - return () => { - cancel = true - } - }, [selectedSchema]) - const refreshTables = async () => { if (selectedSchema) { setIsRefreshing(true) await meta.tables.loadBySchema(selectedSchema) - await meta.schemas.loadViews(selectedSchema) + await meta.views.loadBySchema(selectedSchema) setIsRefreshing(false) } } @@ -98,9 +85,9 @@ const TableEditorMenu: FC = ({ const filteredViews = searchText.length === 0 - ? meta.schemas.views || [] - : (meta.schemas.views || []).filter((view) => - view.name.toLowerCase().includes(searchText.toLowerCase()) + ? views || [] + : (views || []).filter((view: Partial) => + (view?.name ?? '').toLowerCase().includes(searchText.toLowerCase()) ) const filteredForeignTables = diff --git a/studio/pages/project/[ref]/editor/[id].tsx b/studio/pages/project/[ref]/editor/[id].tsx index e273343bcd9..2b191faf79a 100644 --- a/studio/pages/project/[ref]/editor/[id].tsx +++ b/studio/pages/project/[ref]/editor/[id].tsx @@ -140,7 +140,7 @@ const TableEditorPage: NextPage = () => { }) await meta.tables.loadById(selectedColumnToDelete!.table_id) - if (selectedSchema) await meta.schemas.loadViews(selectedSchema) + if (selectedSchema) await meta.views.loadBySchema(selectedSchema) } catch (error: any) { ui.setNotification({ category: 'error', @@ -171,7 +171,7 @@ const TableEditorPage: NextPage = () => { category: 'success', message: `Successfully deleted table "${selectedTableToDelete.name}"`, }) - if (selectedSchema) await meta.schemas.loadViews(selectedSchema) + if (selectedSchema) await meta.views.loadBySchema(selectedSchema) } catch (error: any) { ui.setNotification({ error, diff --git a/studio/pages/project/[ref]/editor/index.tsx b/studio/pages/project/[ref]/editor/index.tsx index 7532dd7fc3c..ee5e4ffc1cf 100644 --- a/studio/pages/project/[ref]/editor/index.tsx +++ b/studio/pages/project/[ref]/editor/index.tsx @@ -55,7 +55,7 @@ const Editor: NextPage = () => { category: 'success', message: `Successfully deleted ${selectedTableToDelete!.name}`, }) - await meta.schemas.loadViews(selectedSchema) + await meta.views.loadBySchema(selectedSchema) } catch (error: any) { ui.setNotification({ category: 'error', diff --git a/studio/stores/pgmeta/MetaStore.ts b/studio/stores/pgmeta/MetaStore.ts index 282732007a4..dc599292ab5 100644 --- a/studio/stores/pgmeta/MetaStore.ts +++ b/studio/stores/pgmeta/MetaStore.ts @@ -8,16 +8,17 @@ import { PostgresTable, PostgresRelationship, PostgresPrimaryKey, + PostgresSchema, } from '@supabase/postgres-meta' import { IS_PLATFORM, API_URL } from 'lib/constants' import { post } from 'lib/common/fetch' import { timeout } from 'lib/helpers' -import { ResponseError } from 'types' +import { ResponseError, SchemaView } from 'types' import { IRootStore } from '../RootStore' import ColumnStore from './ColumnStore' -import SchemaStore, { ISchemaStore } from './SchemaStore' +import SchemaStore from './SchemaStore' import TableStore, { ITableStore } from './TableStore' import OpenApiStore, { IOpenApiStore } from './OpenApiStore' import { IPostgresMetaInterface } from '../common/PostgresMetaInterface' @@ -41,6 +42,7 @@ import HooksStore from './HooksStore' import ExtensionsStore from './ExtensionsStore' import TypesStore from './TypesStore' import ForeignTableStore from './ForeignTableStore' +import ViewStore from './ViewStore' const BATCH_SIZE = 1000 const CHUNK_SIZE = 1024 * 1024 * 0.1 // 0.1MB @@ -51,7 +53,8 @@ export interface IMetaStore { openApi: IOpenApiStore tables: ITableStore columns: IPostgresMetaInterface - schemas: ISchemaStore + schemas: IPostgresMetaInterface + views: IPostgresMetaInterface foreignTables: IPostgresMetaInterface> hooks: IPostgresMetaInterface @@ -132,6 +135,7 @@ export default class MetaStore implements IMetaStore { tables: TableStore columns: ColumnStore schemas: SchemaStore + views: ViewStore foreignTables: ForeignTableStore hooks: HooksStore @@ -184,6 +188,7 @@ export default class MetaStore implements IMetaStore { this.tables = new TableStore(this.rootStore, `${this.baseUrl}/tables`, this.headers) this.columns = new ColumnStore(this.rootStore, `${this.baseUrl}/columns`, this.headers) this.schemas = new SchemaStore(this.rootStore, `${this.baseUrl}/schemas`, this.headers) + this.views = new ViewStore(this.rootStore, `${this.baseUrl}/views`, this.headers) this.foreignTables = new ForeignTableStore( this.rootStore, `${this.baseUrl}/foreign-tables`, @@ -903,6 +908,9 @@ export default class MetaStore implements IMetaStore { this.schemas.setUrl(`${this.baseUrl}/schemas`) this.schemas.setHeaders(this.headers) + this.views.setUrl(`${this.baseUrl}/views`) + this.views.setHeaders(this.headers) + this.foreignTables.setUrl(`${this.baseUrl}/foreign-tables`) this.foreignTables.setHeaders(this.headers) diff --git a/studio/stores/pgmeta/SchemaStore.ts b/studio/stores/pgmeta/SchemaStore.ts index ffa9554e200..09236d13166 100644 --- a/studio/stores/pgmeta/SchemaStore.ts +++ b/studio/stores/pgmeta/SchemaStore.ts @@ -1,17 +1,8 @@ -import { observable, makeObservable } from 'mobx' import { PostgresSchema } from '@supabase/postgres-meta' - -import PostgresMetaInterface, { IPostgresMetaInterface } from '../common/PostgresMetaInterface' +import PostgresMetaInterface from '../common/PostgresMetaInterface' import { IRootStore } from '../RootStore' -import { SchemaView, ResponseError } from 'types' -export interface ISchemaStore extends IPostgresMetaInterface { - views: SchemaView[] - loadViews: (schema: string) => Promise -} export default class SchemaStore extends PostgresMetaInterface { - views: SchemaView[] = [] - constructor( rootStore: IRootStore, dataUrl: string, @@ -21,10 +12,6 @@ export default class SchemaStore extends PostgresMetaInterface { options?: { identifier: string } ) { super(rootStore, dataUrl, headers, options) - makeObservable(this, { - views: observable, - }) - this.views = [] } // Dashboard to hide schemas with pg_ prefix @@ -34,20 +21,4 @@ export default class SchemaStore extends PostgresMetaInterface { return super.list(schemasFilter) } - - async loadViews(schema: string) { - const query = ` - select schemaname as schema, viewname as name from pg_catalog.pg_views - where schemaname = '${schema}' - order by schemaname, viewname; - ` - const views = await this.rootStore.meta.query(query) - this.views = views - return views - } - - // loadBySchema is not supported in this store - async loadBySchema(schema: string) { - return [] - } } diff --git a/studio/stores/pgmeta/ViewStore.ts b/studio/stores/pgmeta/ViewStore.ts new file mode 100644 index 00000000000..63b74701e42 --- /dev/null +++ b/studio/stores/pgmeta/ViewStore.ts @@ -0,0 +1,16 @@ +import { SchemaView } from 'types' +import PostgresMetaInterface from '../common/PostgresMetaInterface' +import { IRootStore } from '../RootStore' + +export default class ViewStore extends PostgresMetaInterface { + constructor( + rootStore: IRootStore, + dataUrl: string, + headers?: { + [prop: string]: any + }, + options?: { identifier: string } + ) { + super(rootStore, dataUrl, headers, options) + } +} diff --git a/studio/stores/project/VaultStore.ts b/studio/stores/project/VaultStore.ts index a470a864470..166f59bf7fe 100644 --- a/studio/stores/project/VaultStore.ts +++ b/studio/stores/project/VaultStore.ts @@ -1,7 +1,7 @@ import { PostgresColumn } from '@supabase/postgres-meta' import { Query } from 'components/grid' import { makeAutoObservable } from 'mobx' -import { VaultSecret } from 'types' +import { SchemaView, VaultSecret } from 'types' import { IRootStore } from '../RootStore' export interface IVaultStore { @@ -211,9 +211,9 @@ export default class VaultStore implements IVaultStore { async listEncryptedColumns(schema: string, table: string) { if (!table) return [] - await this.rootStore.meta.schemas.loadViews(schema) - const decryptedView = this.rootStore.meta.schemas.views.find( - (view) => view.name === `decrypted_${table}` + await this.rootStore.meta.views.loadBySchema(schema) + const decryptedView = this.rootStore.meta.views.find( + (view: SchemaView) => view.name === `decrypted_${table}` ) if (!decryptedView) return [] diff --git a/studio/types/ui.ts b/studio/types/ui.ts index f8d5308ac25..edeb42ec9ac 100644 --- a/studio/types/ui.ts +++ b/studio/types/ui.ts @@ -1,3 +1,5 @@ +import { PostgresColumn } from '@supabase/postgres-meta' + export interface Notification { category: 'info' | 'error' | 'success' | 'loading' message: string // Readable message for users to understand @@ -33,6 +35,10 @@ export interface VaultSecret { } export interface SchemaView { + id: number name: string schema: string + is_updatable: boolean + comment?: string + columns: PostgresColumn[] } From 633f296eeeef3fe9798be9c7276d5fc6313e54b7 Mon Sep 17 00:00:00 2001 From: Joshen Lim Date: Wed, 11 Jan 2023 22:23:17 +0800 Subject: [PATCH 48/48] Fix tables not loading in table editor on [id] route after new refactor --- .../TableEditorLayout/TableEditorLayout.tsx | 25 ++++++++++++++++--- .../TableEditorLayout/TableEditorMenu.tsx | 19 +++++++------- studio/pages/project/[ref]/editor/[id].tsx | 17 +++++++------ 3 files changed, 40 insertions(+), 21 deletions(-) diff --git a/studio/components/layouts/TableEditorLayout/TableEditorLayout.tsx b/studio/components/layouts/TableEditorLayout/TableEditorLayout.tsx index 9791b01dfa1..19178db155f 100644 --- a/studio/components/layouts/TableEditorLayout/TableEditorLayout.tsx +++ b/studio/components/layouts/TableEditorLayout/TableEditorLayout.tsx @@ -4,7 +4,7 @@ import { observer } from 'mobx-react-lite' import { PostgresTable } from '@supabase/postgres-meta' import { PermissionAction } from '@supabase/shared-types/out/constants' -import { checkPermissions, useStore } from 'hooks' +import { checkPermissions, useParams, useStore } from 'hooks' import Error from 'components/ui/Error' import ProjectLayout from '../ProjectLayout/ProjectLayout' import TableEditorMenu from './TableEditorMenu' @@ -30,13 +30,14 @@ const TableEditorLayout: FC = ({ children, }) => { const { vault, meta, ui } = useStore() + const { id, type } = useParams() const { isInitialized, isLoading, error } = meta.tables const [loaded, setLoaded] = useState(isInitialized) const canReadTables = checkPermissions(PermissionAction.TENANT_SQL_ADMIN_READ, 'tables') const vaultExtension = meta.extensions.byId('supabase_vault') - const isEnabled = vaultExtension !== undefined && vaultExtension?.installed_version !== null + const isVaultEnabled = vaultExtension !== undefined && vaultExtension?.installed_version !== null useEffect(() => { if (ui.selectedProject?.ref) { @@ -45,6 +46,12 @@ const TableEditorLayout: FC = ({ meta.policies.load() meta.publications.load() meta.extensions.load() + + // [Joshen] pg-meta doesn't support loading views nor foreign tables by a specific ID yet + // Separately, Alaister and I chatted that perhaps we leverage on pg-catalog's pg-class + // table directly, so we can fetch the schema of tables/views/foreign-tables in one call + // rather than trying to discern if the ID is a view, or foreign table (refer to below) + meta.views.load() meta.foreignTables.load() } }, [ui.selectedProject?.ref]) @@ -57,10 +64,20 @@ const TableEditorLayout: FC = ({ }, [ui.selectedProject?.ref, selectedSchema]) useEffect(() => { - if (isEnabled) { + if (ui.selectedProject?.ref && id) { + // [Joshen] This is a little silly, but because fetching tables/views/foreign-tables + // are all through different endpoints, we need to discern them + if (type !== 'view' && type !== 'foreign') { + meta.tables.loadById(Number(id)) + } + } + }, [ui.selectedProject?.ref, id]) + + useEffect(() => { + if (isVaultEnabled) { vault.load() } - }, [ui.selectedProject?.ref, isEnabled]) + }, [ui.selectedProject?.ref, isVaultEnabled]) useEffect(() => { let cancel = false diff --git a/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx b/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx index a832e6643f4..be30f4d81f6 100644 --- a/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx +++ b/studio/components/layouts/TableEditorLayout/TableEditorMenu.tsx @@ -1,5 +1,4 @@ import { FC, useState } from 'react' -import { useRouter } from 'next/router' import Link from 'next/link' import { partition } from 'lodash' import { observer } from 'mobx-react-lite' @@ -22,9 +21,8 @@ import * as Tooltip from '@radix-ui/react-tooltip' import { PermissionAction } from '@supabase/shared-types/out/constants' import { PostgresSchema, PostgresTable } from '@supabase/postgres-meta' -import Base64 from 'lib/base64' import { SchemaView } from 'types' -import { checkPermissions, useStore } from 'hooks' +import { checkPermissions, useParams, useStore } from 'hooks' import ProductMenuItem from 'components/ui/ProductMenu/ProductMenuItem' interface Props { @@ -45,8 +43,7 @@ const TableEditorMenu: FC = ({ onDuplicateTable = () => {}, }) => { const { meta, ui } = useStore() - const router = useRouter() - const { id } = router.query + const { id } = useParams() const projectRef = ui.selectedProject?.ref const schemas: PostgresSchema[] = meta.schemas.list() @@ -324,12 +321,11 @@ const TableEditorMenu: FC = ({ /> {filteredViews.map((view: SchemaView) => { - const viewId = Base64.encode(JSON.stringify(view)) - const isActive = id === viewId + const isActive = Number(id) === view.id return ( - + - +

{view.name}

@@ -359,7 +355,10 @@ const TableEditorMenu: FC = ({ {filteredForeignTables.map((table: Partial) => { const isActive = Number(id) === table.id return ( - +
diff --git a/studio/pages/project/[ref]/editor/[id].tsx b/studio/pages/project/[ref]/editor/[id].tsx index 2b191faf79a..32893d76bec 100644 --- a/studio/pages/project/[ref]/editor/[id].tsx +++ b/studio/pages/project/[ref]/editor/[id].tsx @@ -7,17 +7,16 @@ import { isUndefined, isNaN } from 'lodash' import { Alert, Button, Checkbox, IconExternalLink, Modal } from 'ui' import { PostgresTable, PostgresColumn } from '@supabase/postgres-meta' -import Base64 from 'lib/base64' -import { tryParseJson } from 'lib/helpers' -import { useStore, withAuth, useUrlState } from 'hooks' +import { useStore, withAuth, useUrlState, useParams } from 'hooks' import { Dictionary } from 'components/grid' import { TableEditorLayout } from 'components/layouts' import { TableGridEditor } from 'components/interfaces' import ConfirmationModal from 'components/ui/ConfirmationModal' +import { SchemaView } from 'types' const TableEditorPage: NextPage = () => { const router = useRouter() - const { id }: any = router.query + const { id } = useParams() const [_, setParams] = useUrlState({ arrayKeys: ['filter', 'sort'] }) const { meta, ui } = useStore() @@ -37,13 +36,17 @@ const TableEditorPage: NextPage = () => { const projectRef = ui.selectedProject?.ref const tables: PostgresTable[] = meta.tables.list() + const views: SchemaView[] = meta.views.list() const foreignTables: Partial[] = meta.foreignTables.list() const selectedTable = !isNaN(Number(id)) ? // @ts-ignore - tables.concat(foreignTables).find((table) => table.id === Number(id)) - : id !== undefined - ? tryParseJson(Base64.decode(id)) + tables + // @ts-ignore + .concat(views) + // @ts-ignore + .concat(foreignTables) + .find((table) => table.id === Number(id)) : undefined useEffect(() => {