Merge branch 'supabase:master' into patch-3

This commit is contained in:
hamzah syed authored and GitHub committed 2023-05-11 22:10:34 +05:00
commit df2928ee60
10 files changed
+48 -119

No files matched your search

@@ -30,7 +30,7 @@ Setting up Slack logins for your application consists of 3 parts:
## Create a Slack OAuth app
- Go to [api.slack.com](https://api.slack.com/apps).
- Click on `Create an App`
- Click on `Create New App`
Under `Create an app...`:
@@ -43,14 +43,17 @@ Under `App Credentials`:
- Copy and save your newly-generated `Client ID`
- Copy and save your newly-generated `Client Secret`
- Click `Permissions`
Under `Redirect URLs`:
Under the sidebar, select `OAuth & Permissions` and look for `Redirect URLs`:
- Click `Add New Redirect URL`
- Paste your `Callback URL` then click `Add`
- Click `Save URLs`
Under `Scopes`:
- Add the following scopes under the `User Token Scopes`: `profile`, `email`, `openid`. These scopes are the default scopes that Supabase Auth uses to request for user information. You can add any additional scopes that you may need as well.
## Enter your Slack credentials into your Supabase Project
<SocialProviderSettingsSupabase provider="Slack" />
@@ -93,5 +93,12 @@ pgloader config.load
</TabPanel>
</Tabs>
<Admonition type="caution">
- If you plan on migrating a database larger than 6 GB, we recommend [contacting support](https://app.supabase.com/support/new) to ensure that you'll have the proper disk size pre-provisioned. You can read more about how the disk is managed on Supabase on the [Database usage](/docs/guides/platform/database-size#disk-management).
- We also recommend upgrading to at least a [Large instance](/docs/guides/platform/compute-add-ons) for the migration (you can downgrade later) to avoid running out of IO-Budget.
</Admonition>
export const Page = ({ children }) => <Layout meta={meta} children={children} />
export default Page
@@ -67,6 +67,13 @@ psql -h $SUPABASE_HOST -U postgres -f heroku_dump.sql
Run `pg_dump --help` for a full list of options.
<Admonition type="caution">
- If you plan on migrating a database larger than 6 GB, we recommend [contacting support](https://app.supabase.com/support/new) to ensure that you'll have the proper disk size pre-provisioned. You can read more about how the disk is managed on Supabase on the [Database usage](/docs/guides/platform/database-size#disk-management).
- We also recommend upgrading to at least a [Large instance](/docs/guides/platform/compute-add-ons) for the migration (you can downgrade later) to avoid running out of IO-Budget.
</Admonition>
export const Page = ({ children }) => <Layout meta={meta} children={children} />
export default Page
@@ -83,6 +83,13 @@ Run `pg_dump --help` for a full list of options.
</TabPanel>
</Tabs>
<Admonition type="caution">
- If you plan on migrating a database larger than 6 GB, we recommend [contacting support](https://app.supabase.com/support/new) to ensure that you'll have the proper disk size pre-provisioned. You can read more about how the disk is managed on Supabase on the [Database usage](/docs/guides/platform/database-size#disk-management).
- We also recommend upgrading to at least a [Large instance](/docs/guides/platform/compute-add-ons) for the migration (you can downgrade later) to avoid running out of IO-Budget.
</Admonition>
export const Page = ({ children }) => <Layout meta={meta} children={children} />
export default Page
@@ -225,6 +225,8 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
Since this is a major update that touches many of the authentication routes, we will roll it out gradually over the next few weeks. You will receive a notification in your dashboard when the feature is available for your project. Reach out to us if you want early access to this feature.
**Update**: Server-Side Auth (PKCE) is now available on all projects. Please refer to our [Server Side Auth Guide](https://supabase.com/docs/guides/auth/server-side-rendering) for further details on how to add PKCE to your project.
## Native Apple login on iOS
While PKCE support is great, that is not the only news for you mobile app developers out there.
+12 -12
View File
@@ -1,7 +1,7 @@
---
title: Mendable.ai switches from Pinecone to Supabase for PostgreSQL vector embeddings.
name: Mendable.ai
description: How Mendable.ai boosts efficiency and accuracy of chat powered search for documentation using Supabase with pg_vector.
title: Mendable switches from Pinecone to Supabase for PostgreSQL vector embeddings.
name: Mendable
description: How Mendable boosts efficiency and accuracy of chat powered search for documentation using Supabase with pgvector.
author: paul_copplestone
author_title: Supabase
author_url: https://github.com/kiwicopple
@@ -21,19 +21,19 @@ stats:
{ stat: '00,000', label: Example stat },
]
misc: [{ label: 'Backed by', text: 'Y Combinator' }]
about: Mendable.ai is Chat Powered Search for Documentation.
about: Mendable is Chat Powered Search for Documentation.
---
[Mendable.ai](http://mendable.ai/) provides a chat-powered search engine for technical documentation. Their AI-powered search tool makes it easier for developers and other technical users to find relevant information in complex documentation. Users can simply ask questions in natural language, and the tool returns the most relevant answers. Mendable.ai's search engine also provides detailed analytics, which helps teams identify knowledge gaps and areas for improvement in their documentation. Mendable has integrated with some of the largest open source projects in the space such as Langchain and LlamaIndex.
[Mendable](http://mendable.ai/) provides a chat-powered search engine for technical documentation. Their AI-powered search tool makes it easier for developers and other technical users to find relevant information in complex documentation. Users can simply ask questions in natural language, and the tool returns the most relevant answers. Mendable's search engine also provides detailed analytics, which helps teams identify knowledge gaps and areas for improvement in their documentation. Mendable has integrated with some of the largest open source projects in the space such as Langchain and LlamaIndex.
## The Challenge
Mendable.ai was experiencing tremendous success, growing Weekly Active Users nearly 300% since March. They needed a tool to store and search through large amounts of vector data to improve the efficiency and accuracy of their similarity search operations. They tried Faiss, Weviate, and Pinecone, but found them to be expensive and not very intuitive, especially when it came to storing metadata along with the vectors.
Mendable was experiencing tremendous success, growing Weekly Active Users nearly 300% since March. They needed a tool to store and search through large amounts of vector data to improve the efficiency and accuracy of their similarity search operations. They tried Faiss, Weviate, and Pinecone, but found them to be expensive and not very intuitive, especially when it came to storing metadata along with the vectors.
Why they chose Supabase:
Mendable.ai discovered that Supabase supports pgvector and found it to be a simple and cost-effective solution. They were impressed with the open source nature of Supabase, as well as its ability to store metadata alongside the vectors. They also appreciated the intuitive interface and ease of use.
Mendable discovered that Supabase supports pgvector and found it to be a simple and cost-effective solution. They were impressed with the open source nature of Supabase, as well as its ability to store metadata alongside the vectors. They also appreciated the intuitive interface and ease of use.
<Quote img="caleb-peffer.jpg" caption="Caleb Peffer - CEO, Mendable.ai">
<Quote img="caleb-peffer.jpg" caption="Caleb Peffer - CEO, Mendable">
We tried other vector databases - we tried Faiss, we tried Weviate, we tried Pinecone. We found
them to be incredibly expensive and not very intuitive. If you’re just doing vector search they’re
great, but if you need to store a bunch of metadata that becomes a huge pain.
@@ -41,17 +41,17 @@ Mendable.ai discovered that Supabase supports pgvector and found it to be a simp
## What They Built
Using Supabase and pgvector, Mendable.ai was able to build a more efficient and accurate search function for their AI chatbot. By storing vector data alongside metadata in Supabase, Mendable.ai was able to quickly and easily search through their customers documentation to find the most relevant responses to queries. They found that Supabase's solution was just as performant as dedicated vector databases, but without the high cost.
Using Supabase and pgvector, Mendable was able to build a more efficient and accurate search function for their AI chatbot. By storing vector data alongside metadata in Supabase, Mendable was able to quickly and easily search through their customers documentation to find the most relevant responses to queries. They found that Supabase's solution was just as performant as dedicated vector databases, but without the high cost.
## The Results
Thanks to Supabase and pgvector, Mendable.ai was able to significantly improve the efficiency and accuracy of their Chat Powered Search for Documentation. They were able to build faster and more cost-effectively using Supabase’s open source stack.
Thanks to Supabase and pgvector, Mendable was able to significantly improve the efficiency and accuracy of their Chat Powered Search for Documentation. They were able to build faster and more cost-effectively using Supabase’s open source stack.
## Tech stack
Mendable.ai's tech stack includes React, Next.js, Express, Vercel, and Supabase.
Mendable's tech stack includes React, Next.js, Express, Vercel, and Supabase.
<Quote img="caleb-peffer.jpg" caption="Caleb Peffer - CEO, Mendable.ai">
<Quote img="caleb-peffer.jpg" caption="Caleb Peffer - CEO, Mendable">
We looked at the alternatives and chose Supabase because it’s open source, it’s simpler, and, for
all the ways we need use it, Supabase has been just as performant - if not more performant - than
the other vector databases.
@@ -478,7 +478,7 @@ const AiCommand = () => {
<div className="absolute bottom-0 w-full bg-scale-200 py-3">
{messages.length > 0 && !hasError && <AiWarning className="mb-3 mx-3" />}
<Input
className="bg-scale-100 rounded mx-3"
className="bg-scale-100 rounded mx-3 [&_input]:pr-32 md:[&_input]:pr-40"
inputRef={inputRef}
autoFocus
placeholder={
@@ -3,7 +3,7 @@ import { SidePanel, IconBookOpen } from 'ui'
import { useStore } from 'hooks'
import { useParams } from 'common/hooks'
import { GeneralContent, ResourceContent } from '../Docs'
import { ResourceContent } from '../Docs'
import LangSelector from '../Docs/LangSelector'
import GeneratingTypes from '../Docs/GeneratingTypes'
import ActionBar from './SidePanelEditor/ActionBar'
@@ -105,14 +105,6 @@ const APIDocumentationPanel = ({ visible, onClose }: APIDocumentationPanelProps)
autoApiService={autoApiService}
/>
</div>
<GeneralContent
autoApiService={autoApiService}
selectedLang={selectedLang}
showApiKey={true}
page={page}
/>
<GeneratingTypes selectedLang={selectedLang} />
{jsonSchema?.definitions && (
<ResourceContent
@@ -126,6 +118,9 @@ const APIDocumentationPanel = ({ visible, onClose }: APIDocumentationPanelProps)
refreshDocs={async () => await refetch()}
/>
)}
<div className="mt-8">
<GeneratingTypes selectedLang={selectedLang} />
</div>
</>
) : (
<div className="p-6 mx-auto text-center sm:w-full md:w-3/4">
@@ -1,24 +1,6 @@
import Image from 'next/image'
import { AutoApiService } from 'data/config/project-api-query'
import { BASE_PATH } from 'lib/constants'
import Snippets from '../Snippets'
import CodeSnippet from '../CodeSnippet'
import { useTheme } from 'common'
const libs = [
{
name: 'Javascript',
url: 'https://supabase.com/docs/reference/javascript/introduction',
icon: 'javascript',
},
{ name: 'Flutter', url: 'https://supabase.com/docs/reference/dart/introduction', icon: 'dart' },
{
name: 'Python',
url: 'https://supabase.com/docs/reference/python/introduction',
icon: 'python',
},
{ name: 'C#', url: 'https://supabase.com/docs/reference/csharp/introduction', icon: 'csharp' },
]
interface Props {
autoApiService: AutoApiService
@@ -26,84 +8,10 @@ interface Props {
}
export default function Introduction({ autoApiService, selectedLang }: Props) {
const { isDarkMode } = useTheme()
return (
<>
<h2 className="doc-heading">Introduction</h2>
<div className="doc-section doc-section--introduction">
<article className="text ">
<p>
This API provides an easy way to integrate with your Postgres database. The API
documentation below is specifically generated for your database.
</p>
<p>
This is an <b>auto-generating</b> API, so as you make changes to your database, this
documentation will change too.
</p>
<p>
<b>Note:</b> if you make changes to a field (column) name or type, the API interface for
those fields will change correspondingly. Therefore, please make sure to update your API
implementation accordingly whenever you make changes to your Supabase schema from the
graphical interface.
</p>
<div className="not-prose mb-6">
<p>Read the reference documentation:</p>
<div className="flex items-center gap-4 mt-2">
{libs.map((lib, i) => (
<a
key={i}
href={lib.url}
target="_blank"
rel="noreferrer"
className="
flex items-center gap-1 rounded-md px-3 py-1
bg-scale-300 dark:bg-scale-500
hover:bg-scale-500 hover:dark:bg-scale-700 transition-colors
!text-scale-1100 hover:text-scale-1100
"
>
<Image
src={`${BASE_PATH}/img/icons/reference-${
isDarkMode ? lib.icon : `${lib.icon}-light`
}.svg`}
width={16}
height={16}
alt={lib.name}
/>
{lib.name}
</a>
))}
</div>
</div>
</article>
</div>
<h2 className="doc-heading">API URL</h2>
<div className="doc-section ">
<article className="text ">
<p>The API URL for your project.</p>
</article>
<article className="code">
<CodeSnippet
selectedLang={selectedLang}
snippet={Snippets.endpoint(autoApiService.endpoint)}
/>
</article>
</div>
<h2 className="doc-heading">Client Libraries</h2>
<div className="doc-section doc-section--client-libraries">
<article className="text">
<p>Your API consists of both a RESTful interface and a Realtime interface.</p>
<p>
For interacting with the Realtime streams, we provide client libraries that handle the
websockets.
</p>
</article>
<article className="code">
<CodeSnippet selectedLang={selectedLang} snippet={Snippets.install()} />
<CodeSnippet
selectedLang={selectedLang}
snippet={Snippets.init(autoApiService.endpoint)}
+2 -2
View File
@@ -255,7 +255,7 @@
}
&.Docs--table-editor .doc-section__table-name {
@apply mt-12;
@apply mt-4;
}
.text {
@@ -448,4 +448,4 @@
line {
@apply stroke-scale-1000;
}
}
}