mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 17:35:10 +03:00
## Problem Pipeline destination guides live beside the Pipelines overview, so their sidebar hierarchy and URLs do not reflect that they belong to Pipelines. ## Solution Moves the BigQuery, ClickHouse, DuckLake, and Snowflake guides under `/database/replication/pipelines/`, redirects the old URLs in both docs preview (`apps/docs/next.config.mjs`) and production (`apps/www/lib/redirects.js`), and updates internal documentation links. The matching Studio changes, including destination-aware links from the creation sheet, will follow in a separate PR. ## To test - [Pipelines overview](https://docs-git-dnywh-docsnest-pipeline-destinations-supabase.vercel.app/docs/guides/database/replication/pipelines) - Destination guides: [BigQuery](https://docs-git-dnywh-docsnest-pipeline-destinations-supabase.vercel.app/docs/guides/database/replication/pipelines/bigquery), [ClickHouse](https://docs-git-dnywh-docsnest-pipeline-destinations-supabase.vercel.app/docs/guides/database/replication/pipelines/clickhouse), [DuckLake](https://docs-git-dnywh-docsnest-pipeline-destinations-supabase.vercel.app/docs/guides/database/replication/pipelines/ducklake), [Snowflake](https://docs-git-dnywh-docsnest-pipeline-destinations-supabase.vercel.app/docs/guides/database/replication/pipelines/snowflake) - [Old Snowflake URL](https://docs-git-dnywh-docsnest-pipeline-destinations-supabase.vercel.app/docs/guides/database/replication/snowflake) ## Review instructions 1. Open the Pipelines overview and confirm the four destination guides appear beneath Pipelines in the sidebar. 2. Open each destination guide and confirm its nested URL and content load correctly. 3. Open the old Snowflake URL and confirm it redirects to its new location. ## Checklist - [x] I have read [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) - [x] If I wrote a new docs topic or edited an existing topic, I used the `/write-the-docs` or `/edit-the-docs` skill, which references [WORD_LIST](https://github.com/supabase/supabase/blob/master/apps/docs/WORD_LIST.md) and the docs [CONTRIBUTING](https://github.com/supabase/supabase/blob/master/apps/docs/CONTRIBUTING.md) guide <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Moved BigQuery, ClickHouse, DuckLake, and Snowflake replication guides to a dedicated pipelines section and updated related navigation and links. * **Bug Fixes** * Added permanent redirects so existing links to the four destination guides continue to work. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
3751 lines
112 KiB
TypeScript
3751 lines
112 KiB
TypeScript
// End of third-party imports
|
|
|
|
import { isFeatureEnabled } from 'common/enabled-features'
|
|
|
|
import type { GlobalMenuItems, NavMenuConstant, NavMenuSection } from '../Navigation.types'
|
|
|
|
const {
|
|
authenticationShowProviders: allAuthProvidersEnabled,
|
|
billingAll: billingEnabled,
|
|
docsAuthArchitecture: authArchitectureEnabled,
|
|
docsAuthConfiguration: authConfigurationEnabled,
|
|
docsAuthFlows: authFlowsEnabled,
|
|
docsAuthFullSecurity: authFullSecurityEnabled,
|
|
docsAuthTroubleshooting: authTroubleshootingEnabled,
|
|
docsCompliance: complianceEnabled,
|
|
docsContribution: contributionEnabled,
|
|
docsFdw: fdwEnabled,
|
|
docsFrameworkQuickstarts: frameworkQuickstartsEnabled,
|
|
docsFullPlatform: fullPlatformEnabled,
|
|
docsLocalDevelopment: localDevelopmentEnabled,
|
|
docsMobileTutorials: mobileTutorialsEnabled,
|
|
docsPgtap: pgTapEnabled,
|
|
docsProductionChecklist: productionChecklistEnabled,
|
|
'docsSelf-hosting': selfHostingEnabled,
|
|
docsWebApps: webAppsEnabled,
|
|
integrationsPartners: integrationsEnabled,
|
|
sdkCsharp: sdkCsharpEnabled,
|
|
sdkDart: sdkDartEnabled,
|
|
sdkKotlin: sdkKotlinEnabled,
|
|
sdkPython: sdkPythonEnabled,
|
|
sdkSwift: sdkSwiftEnabled,
|
|
docsAgentPlugin: agentPluginEnabled,
|
|
docsAgentSkills: agentSkillsEnabled,
|
|
docsPrompts: promptsEnabled,
|
|
} = isFeatureEnabled([
|
|
'authentication:show_providers',
|
|
'billing:all',
|
|
'docs:auth_architecture',
|
|
'docs:auth_configuration',
|
|
'docs:auth_flows',
|
|
'docs:auth_full_security',
|
|
'docs:auth_troubleshooting',
|
|
'docs:compliance',
|
|
'docs:contribution',
|
|
'docs:fdw',
|
|
'docs:framework_quickstarts',
|
|
'docs:full_platform',
|
|
'docs:local_development',
|
|
'docs:mobile_tutorials',
|
|
'docs:pgtap',
|
|
'docs:production_checklist',
|
|
'docs:self-hosting',
|
|
'docs:web_apps',
|
|
'integrations:partners',
|
|
'sdk:csharp',
|
|
'sdk:dart',
|
|
'sdk:kotlin',
|
|
'sdk:python',
|
|
'sdk:swift',
|
|
'docs:agent_plugin',
|
|
'docs:agent_skills',
|
|
'docs:prompts',
|
|
])
|
|
|
|
const aiToolsEnabled = true
|
|
|
|
const jsOnly =
|
|
!sdkCsharpEnabled && !sdkDartEnabled && !sdkKotlinEnabled && !sdkPythonEnabled && !sdkSwiftEnabled
|
|
|
|
export const GLOBAL_MENU_ITEMS: GlobalMenuItems = [
|
|
[
|
|
{
|
|
label: 'Start',
|
|
icon: 'getting-started',
|
|
href: '/guides/getting-started',
|
|
level: 'gettingstarted',
|
|
enabled: frameworkQuickstartsEnabled,
|
|
},
|
|
],
|
|
[
|
|
{
|
|
label: 'Products',
|
|
menuItems: [
|
|
[
|
|
{
|
|
label: 'Database',
|
|
icon: 'database',
|
|
href: '/guides/database/overview' as `/${string}`,
|
|
level: 'database',
|
|
},
|
|
{
|
|
label: 'Auth',
|
|
icon: 'auth',
|
|
href: '/guides/auth' as `/${string}`,
|
|
level: 'auth',
|
|
},
|
|
{
|
|
label: 'Storage',
|
|
icon: 'storage',
|
|
href: '/guides/storage' as `/${string}`,
|
|
level: 'storage',
|
|
},
|
|
{
|
|
label: 'Edge Functions',
|
|
icon: 'edge-functions',
|
|
href: '/guides/functions' as `/${string}`,
|
|
level: 'functions',
|
|
},
|
|
{
|
|
label: 'Realtime',
|
|
icon: 'realtime',
|
|
href: '/guides/realtime' as `/${string}`,
|
|
level: 'realtime',
|
|
},
|
|
],
|
|
[
|
|
{ label: 'Modules' },
|
|
{
|
|
label: 'Data API (REST)',
|
|
icon: 'rest',
|
|
href: '/guides/api' as `/${string}`,
|
|
level: 'api',
|
|
},
|
|
{
|
|
label: 'AI & Vectors',
|
|
icon: 'ai',
|
|
href: '/guides/ai' as `/${string}`,
|
|
level: 'ai',
|
|
},
|
|
{
|
|
label: 'Cron',
|
|
icon: 'cron',
|
|
href: '/guides/cron' as `/${string}`,
|
|
level: 'cron',
|
|
},
|
|
{
|
|
label: 'Queues',
|
|
icon: 'queues',
|
|
href: '/guides/queues' as `/${string}`,
|
|
level: 'queues',
|
|
},
|
|
{
|
|
label: 'GraphQL API',
|
|
icon: 'graphql',
|
|
href: '/guides/graphql' as `/${string}`,
|
|
level: 'graphql',
|
|
},
|
|
],
|
|
],
|
|
},
|
|
],
|
|
[
|
|
{
|
|
label: 'Build',
|
|
menuItems: [
|
|
[
|
|
{
|
|
label: 'AI Tools',
|
|
icon: 'ai-tools',
|
|
href: '/guides/ai-tools' as `/${string}`,
|
|
level: 'ai_tools',
|
|
enabled: aiToolsEnabled,
|
|
},
|
|
{
|
|
label: 'Local Development & CLI',
|
|
icon: 'dev-cli',
|
|
href: '/guides/local-development' as `/${string}`,
|
|
level: 'local_development',
|
|
},
|
|
{
|
|
label: 'Deployment & Branching',
|
|
icon: 'git-branch',
|
|
href: '/guides/deployment' as `/${string}`,
|
|
level: 'deployment',
|
|
},
|
|
{
|
|
label: 'Self-Hosting',
|
|
icon: 'self-hosting',
|
|
href: '/guides/self-hosting' as `/${string}`,
|
|
level: 'self_hosting',
|
|
enabled: selfHostingEnabled,
|
|
},
|
|
{
|
|
label: 'Integrations',
|
|
icon: 'integrations',
|
|
hasLightIcon: true,
|
|
href: '/guides/integrations' as `/${string}`,
|
|
level: 'integrations',
|
|
enabled: integrationsEnabled,
|
|
},
|
|
],
|
|
],
|
|
},
|
|
],
|
|
[
|
|
{
|
|
label: 'Manage',
|
|
menuItems: [
|
|
[
|
|
{
|
|
label: 'Platform Management',
|
|
icon: 'platform',
|
|
href: '/guides/platform' as `/${string}`,
|
|
level: 'platform',
|
|
},
|
|
{
|
|
label: 'Security & Compliance',
|
|
icon: 'security',
|
|
href: '/guides/security' as `/${string}`,
|
|
level: 'security',
|
|
},
|
|
{
|
|
label: 'Observability',
|
|
icon: 'telemetry',
|
|
href: '/guides/observability' as `/${string}`,
|
|
level: 'telemetry',
|
|
},
|
|
],
|
|
],
|
|
},
|
|
],
|
|
[
|
|
{
|
|
label: 'Reference',
|
|
menuItems: [
|
|
[
|
|
{
|
|
label: 'Client Library Reference',
|
|
},
|
|
{
|
|
label: 'JavaScript',
|
|
icon: 'reference-javascript',
|
|
href: '/reference/javascript' as `/${string}`,
|
|
level: 'reference_javascript',
|
|
},
|
|
{
|
|
label: 'Flutter',
|
|
icon: 'reference-dart',
|
|
href: '/reference/dart' as `/${string}`,
|
|
level: 'reference_dart',
|
|
enabled: sdkDartEnabled,
|
|
},
|
|
{
|
|
label: 'Swift',
|
|
icon: 'reference-swift',
|
|
href: '/reference/swift' as `/${string}`,
|
|
level: 'reference_swift',
|
|
enabled: sdkSwiftEnabled,
|
|
},
|
|
{
|
|
label: 'Python',
|
|
icon: 'reference-python',
|
|
href: '/reference/python' as `/${string}`,
|
|
level: 'reference_python',
|
|
enabled: sdkPythonEnabled,
|
|
},
|
|
{
|
|
label: 'C#',
|
|
icon: 'reference-csharp',
|
|
href: '/reference/csharp' as `/${string}`,
|
|
level: 'reference_csharp',
|
|
community: true,
|
|
enabled: sdkCsharpEnabled,
|
|
},
|
|
{
|
|
label: 'Kotlin',
|
|
icon: 'reference-kotlin',
|
|
href: '/reference/kotlin' as `/${string}`,
|
|
level: 'reference_kotlin',
|
|
community: true,
|
|
enabled: sdkKotlinEnabled,
|
|
},
|
|
],
|
|
[
|
|
{
|
|
label: 'Server SDK',
|
|
icon: 'reference-javascript',
|
|
href: '/reference/server' as `/${string}`,
|
|
level: 'reference_server',
|
|
new: true,
|
|
},
|
|
{
|
|
label: 'Middleware SDK',
|
|
icon: 'reference-javascript',
|
|
href: '/reference/middleware' as `/${string}`,
|
|
level: 'reference_middleware',
|
|
new: true,
|
|
},
|
|
{
|
|
label: 'CLI Commands',
|
|
icon: 'reference-cli',
|
|
href: '/reference/cli/introduction' as `/${string}`,
|
|
level: 'reference_javascript',
|
|
},
|
|
{
|
|
label: 'Management API',
|
|
icon: 'reference-api',
|
|
href: '/reference/api/introduction' as `/${string}`,
|
|
level: 'reference_javascript',
|
|
},
|
|
{
|
|
label: 'Library',
|
|
icon: 'ui',
|
|
href: 'https://supabase.com/library' as `/${string}`,
|
|
level: 'ui',
|
|
},
|
|
],
|
|
],
|
|
},
|
|
],
|
|
[
|
|
{
|
|
label: 'Resources',
|
|
menuItems: [
|
|
[
|
|
{
|
|
label: 'Glossary',
|
|
icon: 'resources',
|
|
href: '/guides/resources/glossary' as `/${string}`,
|
|
level: 'resources',
|
|
},
|
|
{
|
|
label: 'Changelog',
|
|
icon: 'changelog',
|
|
hasLightIcon: true,
|
|
href: 'https://supabase.com/changelog' as `/${string}`,
|
|
level: 'changelog',
|
|
},
|
|
{
|
|
label: 'Status',
|
|
icon: 'status',
|
|
href: 'https://status.supabase.com/',
|
|
},
|
|
{
|
|
label: 'Contributing',
|
|
icon: 'contributing',
|
|
href: '/contributing' as `/${string}`,
|
|
enabled: contributionEnabled,
|
|
},
|
|
{
|
|
label: 'Troubleshooting',
|
|
icon: 'troubleshooting',
|
|
href: '/guides/troubleshooting' as `/${string}`,
|
|
level: 'troubleshooting',
|
|
},
|
|
],
|
|
],
|
|
},
|
|
],
|
|
]
|
|
|
|
export const gettingstarted: NavMenuConstant = {
|
|
icon: 'getting-started',
|
|
title: 'Start with Supabase',
|
|
url: '/guides/getting-started',
|
|
items: [
|
|
{ name: 'Build with AI tools', url: '/guides/ai-tools' },
|
|
{ name: 'API Keys', url: '/guides/getting-started/api-keys' },
|
|
{ name: 'Local Development', url: '/guides/local-development/cli/getting-started' },
|
|
{ name: 'Architecture', url: '/guides/getting-started/architecture' },
|
|
{
|
|
name: 'Migrating to new API keys',
|
|
url: '/guides/getting-started/migrating-to-new-api-keys',
|
|
},
|
|
{
|
|
name: 'Framework Quickstarts',
|
|
enabled: frameworkQuickstartsEnabled,
|
|
items: [
|
|
{
|
|
name: 'React',
|
|
url: '/guides/getting-started/quickstarts/reactjs',
|
|
},
|
|
{
|
|
name: 'Next.js',
|
|
url: '/guides/getting-started/quickstarts/nextjs',
|
|
},
|
|
{
|
|
name: 'TanStack Start',
|
|
url: '/guides/getting-started/quickstarts/tanstack' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Astro',
|
|
url: '/guides/getting-started/quickstarts/astrojs',
|
|
},
|
|
{
|
|
name: 'Vue',
|
|
url: '/guides/getting-started/quickstarts/vue',
|
|
},
|
|
{
|
|
name: 'Nuxt',
|
|
url: '/guides/getting-started/quickstarts/nuxtjs',
|
|
},
|
|
{
|
|
name: 'SvelteKit',
|
|
url: '/guides/getting-started/quickstarts/sveltekit' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'SolidJS',
|
|
url: '/guides/getting-started/quickstarts/solidjs',
|
|
},
|
|
{
|
|
name: 'RedwoodJS',
|
|
url: '/guides/getting-started/quickstarts/redwoodjs' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Refine',
|
|
url: '/guides/getting-started/quickstarts/refine',
|
|
},
|
|
{
|
|
name: 'Hono',
|
|
url: '/guides/getting-started/quickstarts/hono',
|
|
},
|
|
{
|
|
name: 'iOS SwiftUI',
|
|
url: '/guides/getting-started/quickstarts/ios-swiftui',
|
|
},
|
|
{
|
|
name: 'Android Kotlin',
|
|
url: '/guides/getting-started/quickstarts/kotlin' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Expo React Native',
|
|
url: '/guides/getting-started/quickstarts/expo-react-native',
|
|
},
|
|
{
|
|
name: 'Flutter',
|
|
url: '/guides/getting-started/quickstarts/flutter',
|
|
},
|
|
{
|
|
name: 'Flask (Python)',
|
|
url: '/guides/getting-started/quickstarts/flask' as `/${string}`,
|
|
enabled: !jsOnly,
|
|
},
|
|
{
|
|
name: 'Reflex (Python)',
|
|
url: '/guides/getting-started/quickstarts/reflex' as `/${string}`,
|
|
enabled: !jsOnly,
|
|
},
|
|
{
|
|
name: 'Laravel PHP',
|
|
url: '/guides/getting-started/quickstarts/laravel' as `/${string}`,
|
|
enabled: !jsOnly,
|
|
},
|
|
{
|
|
name: 'Ruby on Rails',
|
|
url: '/guides/getting-started/quickstarts/ruby-on-rails' as `/${string}`,
|
|
enabled: !jsOnly,
|
|
},
|
|
{
|
|
name: 'Spring Boot',
|
|
url: '/guides/getting-started/quickstarts/spring-boot' as `/${string}`,
|
|
enabled: !jsOnly,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Web app demos',
|
|
enabled: webAppsEnabled,
|
|
items: [
|
|
{
|
|
name: 'Next.js',
|
|
url: '/guides/getting-started/tutorials/with-nextjs' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'React',
|
|
url: '/guides/getting-started/tutorials/with-react' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Vue 3',
|
|
url: '/guides/getting-started/tutorials/with-vue-3' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Nuxt 3',
|
|
url: '/guides/getting-started/tutorials/with-nuxt-3' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Angular',
|
|
url: '/guides/getting-started/tutorials/with-angular' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'RedwoodJS',
|
|
url: '/guides/getting-started/tutorials/with-redwoodjs' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'SolidJS',
|
|
url: '/guides/getting-started/tutorials/with-solidjs' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Svelte',
|
|
url: '/guides/getting-started/tutorials/with-svelte' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'SvelteKit',
|
|
url: '/guides/getting-started/tutorials/with-sveltekit' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Refine',
|
|
url: '/guides/getting-started/tutorials/with-refine' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Mobile tutorials',
|
|
enabled: mobileTutorialsEnabled,
|
|
items: [
|
|
{
|
|
name: 'Flutter',
|
|
url: '/guides/getting-started/tutorials/with-flutter' as `/${string}`,
|
|
enabled: sdkDartEnabled,
|
|
},
|
|
|
|
{
|
|
name: 'Expo React Native',
|
|
url: '/guides/getting-started/tutorials/with-expo-react-native' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Android Kotlin',
|
|
url: '/guides/getting-started/tutorials/with-kotlin' as `/${string}`,
|
|
enabled: sdkKotlinEnabled,
|
|
},
|
|
|
|
{
|
|
name: 'Ionic React',
|
|
url: '/guides/getting-started/tutorials/with-ionic-react' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Ionic Vue',
|
|
url: '/guides/getting-started/tutorials/with-ionic-vue' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Ionic Angular',
|
|
url: '/guides/getting-started/tutorials/with-ionic-angular' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Swift',
|
|
url: '/guides/getting-started/tutorials/with-swift' as `/${string}`,
|
|
enabled: sdkSwiftEnabled,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const cli = {
|
|
title: 'CLI',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/cli' },
|
|
{ name: 'Managing Environments', url: '/guides/cli/managing-environments' },
|
|
{
|
|
name: 'Using environment variables in config.toml',
|
|
url: '/guides/cli/using-environment-variables-in-config',
|
|
},
|
|
],
|
|
}
|
|
|
|
export const NativeMobileLoginItems = [
|
|
{
|
|
name: 'Apple',
|
|
icon: '/docs/img/icons/apple-icon',
|
|
url: '/guides/auth/social-login/auth-apple?platform=react-native',
|
|
},
|
|
{
|
|
name: 'Google',
|
|
icon: '/docs/img/icons/google-icon',
|
|
url: '/guides/auth/social-login/auth-google?platform=react-native',
|
|
},
|
|
]
|
|
|
|
export const SocialLoginItems: Array<Partial<NavMenuSection>> = [
|
|
{
|
|
name: 'Google',
|
|
icon: '/docs/img/icons/google-icon',
|
|
url: '/guides/auth/social-login/auth-google',
|
|
},
|
|
{
|
|
name: 'Facebook',
|
|
icon: '/docs/img/icons/facebook-icon',
|
|
url: '/guides/auth/social-login/auth-facebook',
|
|
},
|
|
{
|
|
name: 'Apple',
|
|
icon: '/docs/img/icons/apple-icon',
|
|
url: '/guides/auth/social-login/auth-apple',
|
|
},
|
|
{
|
|
name: 'Azure (Microsoft)',
|
|
icon: '/docs/img/icons/microsoft-icon',
|
|
url: '/guides/auth/social-login/auth-azure',
|
|
},
|
|
{
|
|
name: 'Twitter',
|
|
icon: '/docs/img/icons/twitter-icon',
|
|
url: '/guides/auth/social-login/auth-twitter',
|
|
hasLightIcon: true,
|
|
},
|
|
{
|
|
name: 'GitHub',
|
|
icon: '/docs/img/icons/github-icon',
|
|
url: '/guides/auth/social-login/auth-github',
|
|
isDarkMode: true,
|
|
hasLightIcon: true,
|
|
},
|
|
{
|
|
name: 'Gitlab',
|
|
icon: '/docs/img/icons/gitlab-icon',
|
|
url: '/guides/auth/social-login/auth-gitlab',
|
|
},
|
|
{
|
|
name: 'Bitbucket',
|
|
icon: '/docs/img/icons/bitbucket-icon',
|
|
url: '/guides/auth/social-login/auth-bitbucket',
|
|
},
|
|
{
|
|
name: 'Discord',
|
|
icon: '/docs/img/icons/discord-icon',
|
|
url: '/guides/auth/social-login/auth-discord',
|
|
},
|
|
{
|
|
name: 'Figma',
|
|
icon: '/docs/img/icons/figma-icon',
|
|
url: '/guides/auth/social-login/auth-figma',
|
|
},
|
|
{
|
|
name: 'Kakao',
|
|
icon: '/docs/img/icons/kakao-icon',
|
|
url: '/guides/auth/social-login/auth-kakao',
|
|
},
|
|
{
|
|
name: 'Keycloak',
|
|
icon: '/docs/img/icons/keycloak-icon',
|
|
url: '/guides/auth/social-login/auth-keycloak',
|
|
},
|
|
{
|
|
name: 'LinkedIn',
|
|
icon: '/docs/img/icons/linkedin-icon',
|
|
url: '/guides/auth/social-login/auth-linkedin',
|
|
},
|
|
{
|
|
name: 'Notion',
|
|
icon: '/docs/img/icons/notion-icon',
|
|
url: '/guides/auth/social-login/auth-notion',
|
|
},
|
|
{
|
|
name: 'Slack',
|
|
icon: '/docs/img/icons/slack-icon',
|
|
url: '/guides/auth/social-login/auth-slack',
|
|
},
|
|
{
|
|
name: 'Spotify',
|
|
icon: '/docs/img/icons/spotify-icon',
|
|
url: '/guides/auth/social-login/auth-spotify',
|
|
},
|
|
{
|
|
name: 'Twitch',
|
|
icon: '/docs/img/icons/twitch-icon',
|
|
url: '/guides/auth/social-login/auth-twitch',
|
|
},
|
|
{
|
|
name: 'WorkOS',
|
|
icon: '/docs/img/icons/workos-icon',
|
|
url: '/guides/auth/social-login/auth-workos',
|
|
},
|
|
{
|
|
name: 'Zoom',
|
|
icon: '/docs/img/icons/zoom-icon',
|
|
url: '/guides/auth/social-login/auth-zoom',
|
|
},
|
|
]
|
|
|
|
export const PhoneLoginsItems = [
|
|
{
|
|
name: 'MessageBird',
|
|
icon: '/docs/img/icons/messagebird-icon',
|
|
linkDescription: 'Communication between businesses and their customers — across any channel.',
|
|
url: '/guides/auth/phone-login/messagebird',
|
|
},
|
|
{
|
|
name: 'Twilio',
|
|
icon: '/docs/img/icons/twilio-icon',
|
|
url: '/guides/auth/phone-login/twilio',
|
|
linkDescription: 'Customer engagement platform used by hundreds of thousands of businesses.',
|
|
},
|
|
{
|
|
name: 'Vonage',
|
|
icon: '/docs/img/icons/vonage-icon',
|
|
url: '/guides/auth/phone-login/vonage',
|
|
linkDescription:
|
|
'Vonage is a communication platform as a service (CPaaS) provider for consumers and businesses.',
|
|
isDarkMode: true,
|
|
hasLightIcon: true,
|
|
},
|
|
{
|
|
name: 'Textlocal (Community Supported)',
|
|
icon: '/docs/img/icons/textlocal-icon',
|
|
url: '/guides/auth/phone-login/textlocal',
|
|
linkDescription: 'Textlocal is a cloud-based SMS platform offering bulk messaging services.',
|
|
},
|
|
]
|
|
|
|
export const auth: NavMenuConstant = {
|
|
icon: 'auth',
|
|
title: 'Auth',
|
|
url: '/guides/auth',
|
|
items: [
|
|
{
|
|
name: 'Overview',
|
|
url: '/guides/auth',
|
|
},
|
|
{
|
|
name: 'Architecture',
|
|
url: '/guides/auth/architecture',
|
|
enabled: authArchitectureEnabled,
|
|
},
|
|
{
|
|
name: 'Getting Started',
|
|
enabled: frameworkQuickstartsEnabled,
|
|
items: [
|
|
{
|
|
name: 'Next.js',
|
|
url: '/guides/auth/quickstarts/nextjs' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Astro',
|
|
url: '/guides/auth/quickstarts/astrojs',
|
|
},
|
|
{ name: 'React', url: '/guides/auth/quickstarts/react', items: [] },
|
|
{
|
|
name: 'React Native',
|
|
url: '/guides/auth/quickstarts/react-native' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'React Native with Expo & Social Auth',
|
|
url: '/guides/auth/quickstarts/with-expo-react-native-social-auth',
|
|
},
|
|
],
|
|
},
|
|
|
|
{
|
|
name: 'Concepts',
|
|
items: [
|
|
{ name: 'Users', url: '/guides/auth/users' },
|
|
{ name: 'Identities', url: '/guides/auth/identities' },
|
|
{
|
|
name: 'Sessions',
|
|
url: '/guides/auth/sessions',
|
|
items: [
|
|
{ name: 'User sessions', url: '/guides/auth/sessions' },
|
|
{ name: 'Implicit flow', url: '/guides/auth/sessions/implicit-flow' },
|
|
{ name: 'PKCE flow', url: '/guides/auth/sessions/pkce-flow' },
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Flows (How-tos)',
|
|
enabled: authFlowsEnabled,
|
|
items: [
|
|
{
|
|
name: 'Which package to use',
|
|
url: '/guides/auth/choosing-a-server-package',
|
|
},
|
|
{
|
|
name: 'Server-Side Rendering',
|
|
url: '/guides/auth/server-side',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/auth/server-side' },
|
|
{ name: 'Creating a client', url: '/guides/auth/server-side/creating-a-client' },
|
|
{
|
|
name: 'Migrating from Auth Helpers',
|
|
url: '/guides/auth/server-side/migrating-to-ssr-from-auth-helpers' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Advanced guide',
|
|
url: '/guides/auth/server-side/advanced-guide' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Password-based',
|
|
url: '/guides/auth/passwords',
|
|
enabled: allAuthProvidersEnabled,
|
|
},
|
|
{
|
|
name: 'Email (Magic link or OTP)',
|
|
url: '/guides/auth/auth-email-passwordless',
|
|
enabled: allAuthProvidersEnabled,
|
|
},
|
|
{
|
|
name: 'Phone Login',
|
|
url: '/guides/auth/phone-login' as `/${string}`,
|
|
enabled: allAuthProvidersEnabled,
|
|
},
|
|
|
|
{
|
|
name: 'Passkey',
|
|
url: '/guides/auth/passkeys',
|
|
enabled: allAuthProvidersEnabled,
|
|
},
|
|
|
|
{
|
|
name: 'Social Login (OAuth)',
|
|
url: '/guides/auth/social-login',
|
|
items: [{ name: 'Overview', url: '/guides/auth/social-login' }, ...SocialLoginItems],
|
|
enabled: allAuthProvidersEnabled,
|
|
},
|
|
|
|
{
|
|
name: 'Enterprise SSO',
|
|
url: '/guides/auth/enterprise-sso',
|
|
enabled: allAuthProvidersEnabled,
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/auth/enterprise-sso' },
|
|
{
|
|
name: 'SAML 2.0',
|
|
url: '/guides/auth/enterprise-sso/auth-sso-saml' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
|
|
{
|
|
name: 'Custom OAuth/OIDC Providers',
|
|
url: '/guides/auth/custom-oauth-providers',
|
|
enabled: allAuthProvidersEnabled,
|
|
},
|
|
|
|
{
|
|
name: 'Anonymous Sign-Ins',
|
|
url: '/guides/auth/auth-anonymous',
|
|
enabled: allAuthProvidersEnabled,
|
|
},
|
|
{
|
|
name: 'Web3 (Ethereum or Solana)',
|
|
url: '/guides/auth/auth-web3',
|
|
enabled: allAuthProvidersEnabled,
|
|
},
|
|
{ name: 'Mobile Deep Linking', url: '/guides/auth/native-mobile-deep-linking' },
|
|
{
|
|
name: 'Identity Linking',
|
|
url: '/guides/auth/auth-identity-linking' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Multi-Factor Authentication',
|
|
url: '/guides/auth/auth-mfa',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/auth/auth-mfa' },
|
|
{ name: 'App Authenticator (TOTP)', url: '/guides/auth/auth-mfa/totp' },
|
|
{ name: 'Phone', url: '/guides/auth/auth-mfa/phone' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Signout',
|
|
url: '/guides/auth/signout' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Debugging',
|
|
items: [
|
|
{ name: 'Error Codes', url: '/guides/auth/debugging/error-codes' },
|
|
{
|
|
name: 'Troubleshooting',
|
|
url: '/guides/auth/troubleshooting',
|
|
enabled: authTroubleshootingEnabled,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'OAuth 2.1 Server',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/auth/oauth-server' },
|
|
{ name: 'Getting Started', url: '/guides/auth/oauth-server/getting-started' },
|
|
{ name: 'OAuth Flows', url: '/guides/auth/oauth-server/oauth-flows' },
|
|
{ name: 'MCP Authentication', url: '/guides/auth/oauth-server/mcp-authentication' },
|
|
{ name: 'Token Security & RLS', url: '/guides/auth/oauth-server/token-security' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Third-party auth',
|
|
enabled: allAuthProvidersEnabled,
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/auth/third-party/overview' },
|
|
{ name: 'Clerk', url: '/guides/auth/third-party/clerk' },
|
|
{ name: 'Firebase Auth', url: '/guides/auth/third-party/firebase-auth' },
|
|
{ name: 'Auth0', url: '/guides/auth/third-party/auth0' },
|
|
{ name: 'AWS Cognito (Amplify)', url: '/guides/auth/third-party/aws-cognito' },
|
|
{ name: 'WorkOS', url: '/guides/auth/third-party/workos' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Configuration',
|
|
enabled: authConfigurationEnabled,
|
|
items: [
|
|
{
|
|
name: 'General Configuration',
|
|
url: '/guides/auth/general-configuration' as `/${string}`,
|
|
},
|
|
{ name: 'Email Templates', url: '/guides/auth/auth-email-templates' },
|
|
{
|
|
name: 'Redirect URLs',
|
|
url: '/guides/auth/redirect-urls' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Auth Hooks',
|
|
url: '/guides/auth/auth-hooks',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/auth/auth-hooks' },
|
|
{
|
|
name: 'Custom access token hook',
|
|
url: '/guides/auth/auth-hooks/custom-access-token-hook' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Send SMS hook',
|
|
url: '/guides/auth/auth-hooks/send-sms-hook' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Send email hook',
|
|
url: '/guides/auth/auth-hooks/send-email-hook' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'MFA verification hook',
|
|
url: '/guides/auth/auth-hooks/mfa-verification-hook' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Password verification hook',
|
|
url: '/guides/auth/auth-hooks/password-verification-hook' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Before User Created hook',
|
|
url: '/guides/auth/auth-hooks/before-user-created-hook' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{ name: 'Custom SMTP', url: '/guides/auth/auth-smtp' },
|
|
{ name: 'User Management', url: '/guides/auth/managing-user-data' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Security',
|
|
items: [
|
|
{
|
|
name: 'Password Security',
|
|
url: '/guides/auth/password-security',
|
|
enabled: authFullSecurityEnabled,
|
|
},
|
|
{ name: 'Rate Limits', url: '/guides/auth/rate-limits', enabled: authFullSecurityEnabled },
|
|
{
|
|
name: 'Bot Detection (CAPTCHA)',
|
|
url: '/guides/auth/auth-captcha',
|
|
enabled: authFullSecurityEnabled,
|
|
},
|
|
{ name: 'Audit Logs', url: '/guides/auth/audit-logs', enabled: authFullSecurityEnabled },
|
|
{
|
|
name: 'JSON Web Tokens (JWT)',
|
|
url: '/guides/auth/jwts',
|
|
enabled: authFullSecurityEnabled,
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/auth/jwts' },
|
|
{ name: 'Claims Reference', url: '/guides/auth/jwt-fields' },
|
|
],
|
|
},
|
|
{
|
|
name: 'JWT Signing Keys',
|
|
url: '/guides/auth/signing-keys',
|
|
enabled: authFullSecurityEnabled,
|
|
},
|
|
{ name: 'Row Level Security', url: '/guides/database/postgres/row-level-security' },
|
|
{
|
|
name: 'Column Level Security',
|
|
url: '/guides/database/postgres/column-level-security' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
const ormQuickstarts: NavMenuSection = {
|
|
name: 'ORM Quickstarts',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Prisma',
|
|
url: '/guides/database/prisma',
|
|
items: [
|
|
{ name: 'Connecting with Prisma', url: '/guides/database/prisma' as `/${string}` },
|
|
{
|
|
name: 'Prisma troubleshooting',
|
|
url: '/guides/database/prisma/prisma-troubleshooting' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Drizzle',
|
|
url: '/guides/database/drizzle',
|
|
},
|
|
{
|
|
name: 'Postgres.js',
|
|
url: '/guides/database/postgres-js',
|
|
},
|
|
],
|
|
}
|
|
|
|
const guiQuickstarts: NavMenuSection = {
|
|
name: 'GUI quickstarts',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'pgAdmin',
|
|
url: '/guides/database/pgadmin',
|
|
},
|
|
{
|
|
name: 'PSQL',
|
|
url: '/guides/database/psql',
|
|
},
|
|
{
|
|
name: 'DBeaver',
|
|
url: '/guides/database/dbeaver',
|
|
},
|
|
{
|
|
name: 'Metabase',
|
|
url: '/guides/database/metabase',
|
|
},
|
|
{
|
|
name: 'Beekeeper Studio',
|
|
url: '/guides/database/beekeeper-studio',
|
|
},
|
|
],
|
|
}
|
|
|
|
export const database: NavMenuConstant = {
|
|
icon: 'database',
|
|
title: 'Database',
|
|
url: '/guides/database/overview',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/database/overview' },
|
|
{
|
|
name: 'Fundamentals',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Connecting to your database',
|
|
url: '/guides/database/connecting-to-postgres' as `/${string}`,
|
|
items: [
|
|
{
|
|
name: 'Connecting to your database',
|
|
url: '/guides/database/connecting-to-postgres' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Connection pooling and limits',
|
|
url: '/guides/database/connecting-to-postgres/pooling-and-limits' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Serverless drivers',
|
|
url: '/guides/database/connecting-to-postgres/serverless-drivers' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{ name: 'Importing data', url: '/guides/database/import-data' },
|
|
{ name: 'Securing your data', url: '/guides/database/secure-data' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Working with your database (basics)',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Managing tables and data',
|
|
url: '/guides/database/tables' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Views',
|
|
url: '/guides/database/views' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Working with arrays',
|
|
url: '/guides/database/arrays' as `/${string}`,
|
|
},
|
|
{ name: 'Managing indexes', url: '/guides/database/postgres/indexes' },
|
|
{
|
|
name: 'Querying joins and nested tables',
|
|
url: '/guides/database/joins-and-nesting' as `/${string}`,
|
|
},
|
|
{ name: 'JSON and unstructured data', url: '/guides/database/json' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Working with your database (intermediate)',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Implementing cascade deletes',
|
|
url: '/guides/database/postgres/cascade-deletes' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Deleting data and dropping objects safely',
|
|
url: '/guides/database/postgres/data-deletion' as `/${string}`,
|
|
},
|
|
{ name: 'Managing enums', url: '/guides/database/postgres/enums' },
|
|
{
|
|
name: 'Managing database functions',
|
|
url: '/guides/database/functions' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Managing database triggers',
|
|
url: '/guides/database/postgres/triggers' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Managing database webhooks',
|
|
url: '/guides/database/webhooks' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Using Full Text Search',
|
|
url: '/guides/database/full-text-search' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Partitioning your tables',
|
|
url: '/guides/database/partitions' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Migrating to pg_partman',
|
|
url: '/guides/database/migrating-to-pg-partman' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Managing connections',
|
|
url: '/guides/database/connection-management' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Managing event triggers',
|
|
url: '/guides/database/postgres/event-triggers' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'OrioleDB',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Overview',
|
|
url: '/guides/database/orioledb' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Access and security',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Row Level Security',
|
|
url: '/guides/database/postgres/row-level-security' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Row Level Security Performance',
|
|
url: '/guides/database/postgres/row-level-security-performance' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Column Level Security',
|
|
url: '/guides/database/postgres/column-level-security' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Managing Postgres Roles',
|
|
url: '/guides/database/postgres/roles' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Using Custom Postgres Roles',
|
|
url: '/guides/storage/schema/custom-roles' as `/${string}`,
|
|
},
|
|
{ name: 'Managing secrets with Vault', url: '/guides/database/vault' },
|
|
{
|
|
name: 'Superuser Access and Unsupported Operations',
|
|
url: '/guides/database/postgres/roles-superuser' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Configuration, optimization, and testing',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Database configuration',
|
|
url: '/guides/database/postgres/configuration' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Query optimization',
|
|
url: '/guides/database/query-optimization' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Database Advisors',
|
|
url: '/guides/observability/advisors' as `/${string}`,
|
|
},
|
|
{ name: 'Testing your database', url: '/guides/database/testing' },
|
|
{
|
|
name: 'Customizing Postgres config',
|
|
url: '/guides/database/custom-postgres-config' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Postgres log configuration',
|
|
url: '/guides/database/postgres/postgres-log-config' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Debugging',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Timeouts',
|
|
url: '/guides/database/postgres/timeouts' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Inspect the database',
|
|
url: '/guides/observability/inspect' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Debugging performance issues',
|
|
url: '/guides/database/debugging-performance' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Supavisor',
|
|
url: '/guides/database/supavisor' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Troubleshooting',
|
|
url: '/guides/database/troubleshooting' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
ormQuickstarts,
|
|
guiQuickstarts,
|
|
{
|
|
name: 'Database replication',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/database/replication' },
|
|
{
|
|
name: 'Pipelines',
|
|
url: '/guides/database/replication/pipelines' as `/${string}`,
|
|
items: [
|
|
{
|
|
name: 'Setting up',
|
|
url: '/guides/database/replication/pipelines' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'BigQuery',
|
|
url: '/guides/database/replication/pipelines/bigquery' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'ClickHouse',
|
|
url: '/guides/database/replication/pipelines/clickhouse' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'DuckLake',
|
|
url: '/guides/database/replication/pipelines/ducklake' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Snowflake',
|
|
url: '/guides/database/replication/pipelines/snowflake' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Monitoring',
|
|
url: '/guides/database/replication/pipelines-monitoring' as `/${string}`,
|
|
},
|
|
{ name: 'FAQ', url: '/guides/database/replication/pipelines-faq' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Manual replication',
|
|
url: '/guides/database/replication/manual-replication-setup' as `/${string}`,
|
|
items: [
|
|
{
|
|
name: 'Setting up',
|
|
url: '/guides/database/replication/manual-replication-setup' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Monitoring',
|
|
url: '/guides/database/replication/manual-replication-monitoring' as `/${string}`,
|
|
},
|
|
{ name: 'FAQ', url: '/guides/database/replication/manual-replication-faq' },
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Extensions',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/database/extensions' },
|
|
{
|
|
name: 'HypoPG: Hypothetical indexes',
|
|
url: '/guides/database/extensions/hypopg' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'plv8 (deprecated)',
|
|
url: '/guides/database/extensions/plv8' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'http: RESTful Client',
|
|
url: '/guides/database/extensions/http' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'index_advisor: Query optimization',
|
|
url: '/guides/database/extensions/index_advisor' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'PGAudit: Postgres Auditing',
|
|
url: '/guides/database/extensions/pgaudit' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'pgjwt (deprecated)',
|
|
url: '/guides/database/extensions/pgjwt' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'PGroonga: Multilingual Full Text Search',
|
|
url: '/guides/database/extensions/pgroonga' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'pgRouting: Geospatial Routing',
|
|
url: '/guides/database/extensions/pgrouting' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'pg_cron: Schedule Recurring Jobs',
|
|
url: '/guides/database/extensions/pg_cron' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'pg_graphql: GraphQL Support',
|
|
url: '/guides/database/extensions/pg_graphql' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'pg_hashids: Short UIDs',
|
|
url: '/guides/database/extensions/pg_hashids' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'pg_jsonschema: JSON Schema Validation',
|
|
url: '/guides/database/extensions/pg_jsonschema' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'pg_net: Async Networking',
|
|
url: '/guides/database/extensions/pg_net' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'pg_partman: Partition management',
|
|
url: '/guides/database/extensions/pg_partman' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'pg_plan_filter: Restrict Total Cost',
|
|
url: '/guides/database/extensions/pg_plan_filter' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'postgres_fdw: query data from an external Postgres server',
|
|
url: '/guides/database/extensions/postgres_fdw' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'pgvector: Embeddings and vector similarity',
|
|
url: '/guides/database/extensions/pgvector' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'pg_stat_statements: SQL Planning and Execution Statistics',
|
|
url: '/guides/database/extensions/pg_stat_statements' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'pg_repack: Storage Optimization',
|
|
url: '/guides/database/extensions/pg_repack' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'PostGIS: Geo queries',
|
|
url: '/guides/database/extensions/postgis' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'pgmq: Queues',
|
|
url: '/guides/database/extensions/pgmq' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'pgsodium (pending deprecation): Encryption Features',
|
|
url: '/guides/database/extensions/pgsodium' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'pgTAP: Unit Testing',
|
|
url: '/guides/database/extensions/pgtap' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'plpgsql_check: PL/pgSQL Linter',
|
|
url: '/guides/database/extensions/plpgsql_check' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'timescaledb (deprecated)',
|
|
url: '/guides/database/extensions/timescaledb' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'uuid-ossp: Unique Identifiers',
|
|
url: '/guides/database/extensions/uuid-ossp' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'RUM: inverted index for full-text search',
|
|
url: '/guides/database/extensions/rum' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Foreign Data Wrappers',
|
|
url: undefined,
|
|
enabled: fdwEnabled,
|
|
items: [
|
|
{
|
|
name: 'Overview',
|
|
url: '/guides/database/extensions/wrappers/overview' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Sources',
|
|
url: '/guides/database/extensions/wrappers/overview' as `/${string}`,
|
|
items: [
|
|
{
|
|
name: 'Airtable',
|
|
url: '/guides/database/extensions/wrappers/airtable' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Auth0',
|
|
url: '/guides/database/extensions/wrappers/auth0' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'AWS Cognito',
|
|
url: '/guides/database/extensions/wrappers/cognito' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'AWS DynamoDB',
|
|
url: '/guides/database/extensions/wrappers/dynamodb' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'AWS S3',
|
|
url: '/guides/database/extensions/wrappers/s3' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'AWS S3 Vectors',
|
|
url: '/guides/database/extensions/wrappers/s3_vectors' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'BigQuery',
|
|
url: '/guides/database/extensions/wrappers/bigquery' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Cal.com',
|
|
url: '/guides/database/extensions/wrappers/cal' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Calendly',
|
|
url: '/guides/database/extensions/wrappers/calendly' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Clerk',
|
|
url: '/guides/database/extensions/wrappers/clerk' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'ClickHouse',
|
|
url: '/guides/database/extensions/wrappers/clickhouse' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Cloudflare D1',
|
|
url: '/guides/database/extensions/wrappers/cloudflare-d1' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'DuckDB',
|
|
url: '/guides/database/extensions/wrappers/duckdb' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Firebase',
|
|
url: '/guides/database/extensions/wrappers/firebase' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Gravatar',
|
|
url: '/guides/database/extensions/wrappers/gravatar' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'HubSpot',
|
|
url: '/guides/database/extensions/wrappers/hubspot' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Iceberg',
|
|
url: '/guides/database/extensions/wrappers/iceberg' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Infura',
|
|
url: '/guides/database/extensions/wrappers/infura' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Logflare',
|
|
url: '/guides/database/extensions/wrappers/logflare' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'MongoDB',
|
|
url: '/guides/database/extensions/wrappers/mongodb' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'MSSQL',
|
|
url: '/guides/database/extensions/wrappers/mssql' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'MySQL',
|
|
url: '/guides/database/extensions/wrappers/mysql' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Notion',
|
|
url: '/guides/database/extensions/wrappers/notion' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'OpenAPI',
|
|
url: '/guides/database/extensions/wrappers/openapi' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Orb',
|
|
url: '/guides/database/extensions/wrappers/orb' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Paddle',
|
|
url: '/guides/database/extensions/wrappers/paddle' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Redis',
|
|
url: '/guides/database/extensions/wrappers/redis' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Shopify',
|
|
url: '/guides/database/extensions/wrappers/shopify' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Slack',
|
|
url: '/guides/database/extensions/wrappers/slack' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Snowflake',
|
|
url: '/guides/database/extensions/wrappers/snowflake' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Stripe',
|
|
url: '/guides/database/extensions/wrappers/stripe' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Examples',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Drop All Tables in Schema',
|
|
url: '/guides/database/postgres/dropping-all-tables-in-schema' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Select First Row per Group',
|
|
url: '/guides/database/postgres/first-row-in-group' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Print Postgres Version',
|
|
url: '/guides/database/postgres/which-version-of-postgres' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Replicating from Supabase to External Postgres',
|
|
url: '/guides/database/postgres/setup-replication-external' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const cron: NavMenuConstant = {
|
|
icon: 'cron',
|
|
title: 'Cron',
|
|
url: '/guides/cron',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/cron' },
|
|
{
|
|
name: 'Getting Started',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Install', url: '/guides/cron/install' },
|
|
{ name: 'Quickstart', url: '/guides/cron/quickstart' },
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const queues: NavMenuConstant = {
|
|
icon: 'queues',
|
|
title: 'Queues',
|
|
url: '/guides/queues',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/queues' },
|
|
{
|
|
name: 'Getting Started',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Quickstart', url: '/guides/queues/quickstart' },
|
|
{
|
|
name: 'Consuming Messages with Edge Functions',
|
|
url: '/guides/queues/consuming-messages-with-edge-functions',
|
|
},
|
|
{
|
|
name: 'Expose Queues for local and self-hosted Supabase',
|
|
url: '/guides/queues/expose-self-hosted-queues',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'References',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'API', url: '/guides/queues/api' },
|
|
{ name: 'PGMQ Extension', url: '/guides/queues/pgmq' },
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const api: NavMenuConstant = {
|
|
icon: 'rest',
|
|
title: 'Data REST API',
|
|
url: '/guides/api',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/api', items: [] },
|
|
{ name: 'Quickstart', url: '/guides/api/quickstart', items: [] },
|
|
{
|
|
name: 'Client Libraries',
|
|
url: '/guides/api/rest/client-libs',
|
|
items: [],
|
|
},
|
|
{
|
|
name: 'Security',
|
|
url: '/guides/api',
|
|
items: [
|
|
{ name: 'Securing your API', url: '/guides/api/securing-your-api' },
|
|
{
|
|
name: 'Custom Claims & RBAC',
|
|
url: '/guides/api/custom-claims-and-role-based-access-control-rbac',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Tools',
|
|
url: '/guides/api',
|
|
items: [
|
|
{ name: 'Auto-generated Docs', url: '/guides/api/rest/auto-generated-docs' },
|
|
{ name: 'SQL to REST API Translator', url: '/guides/api/sql-to-rest' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Guides',
|
|
url: '/guides/api',
|
|
items: [
|
|
{ name: 'Creating API routes', url: '/guides/api/creating-routes' },
|
|
{ name: 'Generating TypeScript Types', url: '/guides/api/rest/generating-types' },
|
|
{ name: 'Generating Python Types', url: '/guides/api/rest/generating-python-types' },
|
|
{ name: 'Error Codes', url: '/guides/api/rest/postgrest-error-codes' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Using the Data APIs',
|
|
url: '/guides/api/data-apis',
|
|
items: [
|
|
{
|
|
name: 'Managing tables and data',
|
|
url: '/guides/database/tables' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Views',
|
|
url: '/guides/database/views' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Querying joins and nested tables',
|
|
url: '/guides/database/joins-and-nesting' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'JSON and unstructured data',
|
|
url: '/guides/database/json' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Managing database functions',
|
|
url: '/guides/database/functions' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Using full-text search',
|
|
url: '/guides/database/full-text-search' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Debugging performance issues',
|
|
url: '/guides/database/debugging-performance' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Using custom schemas',
|
|
url: '/guides/api/using-custom-schemas' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Converting from SQL to JavaScript API',
|
|
url: '/guides/api/sql-to-api' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Debugging',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Handling Errors in supabase-js',
|
|
url: '/guides/api/handling-errors-in-supabase-js',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const graphql: NavMenuConstant = {
|
|
icon: 'graphql',
|
|
title: 'GraphQL',
|
|
url: '/guides/graphql',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/graphql', items: [] },
|
|
{ name: 'API', url: '/guides/graphql/api', items: [] },
|
|
{ name: 'Views', url: '/guides/graphql/views', items: [] },
|
|
{ name: 'Functions', url: '/guides/graphql/functions', items: [] },
|
|
{
|
|
name: 'Computed Fields',
|
|
url: '/guides/graphql/computed-fields',
|
|
items: [],
|
|
},
|
|
{
|
|
name: 'Configuration & Customization',
|
|
url: '/guides/graphql/configuration',
|
|
items: [],
|
|
},
|
|
{ name: 'Security', url: '/guides/graphql/security', items: [] },
|
|
{
|
|
name: 'Integrations',
|
|
items: [
|
|
{ name: 'With Apollo', url: '/guides/graphql/with-apollo' },
|
|
{ name: 'With Relay', url: '/guides/graphql/with-relay' },
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const functions: NavMenuConstant = {
|
|
icon: 'edge-functions',
|
|
title: 'Edge Functions',
|
|
url: '/guides/functions',
|
|
items: [
|
|
{
|
|
name: 'Overview',
|
|
url: '/guides/functions',
|
|
},
|
|
{
|
|
name: 'Getting started',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Quickstart (Dashboard)',
|
|
url: '/guides/functions/quickstart-dashboard' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Quickstart (CLI)',
|
|
url: '/guides/functions/quickstart' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Development Environment',
|
|
url: '/guides/functions/development-environment' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Architecture',
|
|
url: '/guides/functions/architecture',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Configuration',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Environment variables', url: '/guides/functions/secrets' },
|
|
{ name: 'Managing Dependencies', url: '/guides/functions/dependencies' },
|
|
{ name: 'Function Configuration', url: '/guides/functions/function-configuration' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Development',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Error Handling', url: '/guides/functions/error-handling' },
|
|
{ name: 'Routing', url: '/guides/functions/routing' },
|
|
{
|
|
name: 'Deploy to Production',
|
|
url: '/guides/functions/deploy' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Debugging',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Local Debugging with DevTools',
|
|
url: '/guides/functions/debugging-tools' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Testing your Functions',
|
|
url: '/guides/functions/unit-test' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Logging',
|
|
url: '/guides/functions/logging' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Error codes',
|
|
url: '/guides/functions/error-codes' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Troubleshooting',
|
|
url: '/guides/functions/troubleshooting' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Platform',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Regional invocations',
|
|
url: '/guides/functions/regional-invocation' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Status codes',
|
|
url: '/guides/functions/status-codes' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Recursive/Nested function calls',
|
|
url: '/guides/functions/recursive-functions' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Limits',
|
|
url: '/guides/functions/limits' as `/${string}`,
|
|
enabled: billingEnabled,
|
|
},
|
|
{
|
|
name: 'Pricing',
|
|
url: '/guides/functions/pricing' as `/${string}`,
|
|
enabled: billingEnabled,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Integrations',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Supabase Auth',
|
|
url: '/guides/functions/auth',
|
|
items: [
|
|
{ name: 'Securing your functions', url: '/guides/functions/auth' },
|
|
{ name: 'Authorization headers', url: '/guides/functions/auth-headers' },
|
|
{ name: 'Legacy JWT secret', url: '/guides/functions/auth-legacy-jwt' },
|
|
],
|
|
},
|
|
{ name: 'Supabase Database (Postgres)', url: '/guides/functions/connect-to-postgres' },
|
|
{ name: 'Supabase Storage', url: '/guides/functions/storage-caching' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Advanced Features',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Background Tasks', url: '/guides/functions/background-tasks' },
|
|
{ name: 'File Storage', url: '/guides/functions/ephemeral-storage' },
|
|
{ name: 'WebSockets', url: '/guides/functions/websockets' },
|
|
{ name: 'Custom Routing', url: '/guides/functions/routing' },
|
|
{ name: 'Wasm Modules', url: '/guides/functions/wasm' },
|
|
{ name: 'AI Models', url: '/guides/functions/ai-models' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Examples',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Auth Send Email Hook',
|
|
url: '/guides/functions/examples/auth-send-email-hook-react-email-resend' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Building an MCP Server with mcp-lite',
|
|
url: '/guides/functions/examples/mcp-server-mcp-lite' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'CORS support for invoking from the browser',
|
|
url: '/guides/functions/cors' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Scheduling Functions',
|
|
url: '/guides/functions/schedule-functions' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Sending Push Notifications',
|
|
url: '/guides/functions/examples/push-notifications' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Generating AI images',
|
|
url: '/guides/functions/examples/amazon-bedrock-image-generator' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Generating OG images ',
|
|
url: '/guides/functions/examples/og-image' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Semantic AI Search',
|
|
url: '/guides/functions/examples/semantic-search' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'CAPTCHA support with Cloudflare Turnstile',
|
|
url: '/guides/functions/examples/cloudflare-turnstile' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Building a Discord Bot',
|
|
url: '/guides/functions/examples/discord-bot' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Building a Telegram Bot',
|
|
url: '/guides/functions/examples/telegram-bot' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Handling Stripe Webhooks ',
|
|
url: '/guides/functions/examples/stripe-webhooks' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Rate-limiting with Redis',
|
|
url: '/guides/functions/examples/rate-limiting' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Taking Screenshots with Puppeteer',
|
|
url: '/guides/functions/examples/screenshots' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Slack Bot responding to mentions',
|
|
url: '/guides/functions/examples/slack-bot-mention' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Image Transformation & Optimization',
|
|
url: '/guides/functions/examples/image-manipulation' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Resumable WebSockets with replay',
|
|
url: '/guides/functions/examples/resumable-websockets' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Third-Party Tools',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Dart Edge on Supabase', url: '/guides/functions/dart-edge' },
|
|
{
|
|
name: 'mcp-lite (Model Context Protocol)',
|
|
url: '/guides/functions/examples/mcp-server-mcp-lite' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Browserless.io',
|
|
url: '/guides/functions/examples/screenshots' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Hugging Face',
|
|
url: '/guides/ai/examples/huggingface-image-captioning' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Monitoring with Sentry',
|
|
url: '/guides/functions/examples/sentry-monitoring' as `/${string}`,
|
|
},
|
|
{ name: 'OpenAI API', url: '/guides/ai/examples/openai' },
|
|
{
|
|
name: 'React Email',
|
|
url: '/guides/functions/examples/auth-send-email-hook-react-email-resend' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Sending Emails with Resend',
|
|
url: '/guides/functions/examples/send-emails' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Upstash Redis',
|
|
url: '/guides/functions/examples/upstash-redis' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Type-Safe SQL with Kysely',
|
|
url: '/guides/functions/kysely-postgres' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Text To Speech with ElevenLabs',
|
|
url: '/guides/functions/examples/elevenlabs-generate-speech-stream' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Speech Transcription with ElevenLabs',
|
|
url: '/guides/functions/examples/elevenlabs-transcribe-speech' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const realtime: NavMenuConstant = {
|
|
icon: 'realtime',
|
|
title: 'Realtime',
|
|
url: '/guides/realtime',
|
|
items: [
|
|
{
|
|
name: 'Overview',
|
|
url: '/guides/realtime',
|
|
},
|
|
{
|
|
name: 'Getting Started',
|
|
url: '/guides/realtime/getting_started',
|
|
},
|
|
{
|
|
name: 'Usage',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Broadcast', url: '/guides/realtime/broadcast' },
|
|
{ name: 'Presence', url: '/guides/realtime/presence' },
|
|
{
|
|
name: 'Postgres Changes',
|
|
url: '/guides/realtime/postgres-changes' as `/${string}`,
|
|
},
|
|
{ name: 'Settings', url: '/guides/realtime/settings' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Security',
|
|
url: undefined,
|
|
items: [{ name: 'Authorization', url: '/guides/realtime/authorization' }],
|
|
},
|
|
{
|
|
name: 'Guides',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Realtime Reports',
|
|
url: '/guides/realtime/reports' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Subscribing to Database Changes',
|
|
url: '/guides/realtime/subscribing-to-database-changes' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Using Realtime with Next.js',
|
|
url: '/guides/realtime/realtime-with-nextjs' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Using Realtime Presence with Flutter',
|
|
url: '/guides/realtime/realtime-user-presence' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Listening to Postgres Changes with Flutter',
|
|
url: '/guides/realtime/realtime-listening-flutter' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Deep dive',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Limits', url: '/guides/realtime/limits', enabled: billingEnabled },
|
|
{
|
|
name: 'Pricing',
|
|
url: '/guides/realtime/pricing' as `/${string}`,
|
|
enabled: billingEnabled,
|
|
},
|
|
{ name: 'Architecture', url: '/guides/realtime/architecture' },
|
|
{ name: 'Concepts', url: '/guides/realtime/concepts' },
|
|
{ name: 'Protocol', url: '/guides/realtime/protocol', items: [] },
|
|
{ name: 'Benchmarks', url: '/guides/realtime/benchmarks' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Debugging',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Operational Error Codes', url: '/guides/realtime/error_codes', items: [] },
|
|
{ name: 'Troubleshooting', url: '/guides/realtime/troubleshooting' },
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const storage: NavMenuConstant = {
|
|
icon: 'storage',
|
|
title: 'Storage',
|
|
url: '/guides/storage',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/storage' },
|
|
{
|
|
name: 'File Buckets',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Quickstart', url: '/guides/storage/quickstart' },
|
|
{ name: 'Fundamentals', url: '/guides/storage/buckets/fundamentals' },
|
|
{
|
|
name: 'Creating Buckets',
|
|
url: '/guides/storage/buckets/creating-buckets' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Security',
|
|
url: '/guides/storage/security',
|
|
items: [
|
|
{
|
|
name: 'Ownership',
|
|
url: '/guides/storage/security/ownership' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Access Control',
|
|
url: '/guides/storage/security/access-control' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Uploads',
|
|
url: '/guides/storage/uploads',
|
|
items: [
|
|
{
|
|
name: 'Standard Uploads',
|
|
url: '/guides/storage/uploads/standard-uploads' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Resumable Uploads',
|
|
url: '/guides/storage/uploads/resumable-uploads' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'S3 Uploads',
|
|
url: '/guides/storage/uploads/s3-uploads' as `/${string}`,
|
|
},
|
|
{ name: 'Limits', url: '/guides/storage/uploads/file-limits', enabled: billingEnabled },
|
|
],
|
|
},
|
|
{
|
|
name: 'Serving',
|
|
url: '/guides/storage/serving',
|
|
items: [
|
|
{ name: 'Serving assets', url: '/guides/storage/serving/downloads' },
|
|
{
|
|
name: 'Image Transformations',
|
|
url: '/guides/storage/serving/image-transformations' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Bandwidth & Storage Egress',
|
|
url: '/guides/storage/serving/bandwidth' as `/${string}`,
|
|
enabled: billingEnabled,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Management',
|
|
url: '/guides/storage/management',
|
|
items: [
|
|
{ name: 'Copy / Move Objects', url: '/guides/storage/management/copy-move-objects' },
|
|
{ name: 'Delete Objects', url: '/guides/storage/management/delete-objects' },
|
|
{ name: 'Download Objects', url: '/guides/storage/management/download-objects' },
|
|
],
|
|
},
|
|
{
|
|
name: 'S3',
|
|
url: '/guides/storage/s3',
|
|
items: [
|
|
{ name: 'Authentication', url: '/guides/storage/s3/authentication' },
|
|
{ name: 'API Compatibility', url: '/guides/storage/s3/compatibility' },
|
|
],
|
|
},
|
|
{
|
|
name: 'CDN',
|
|
url: '/guides/storage/cdn',
|
|
items: [
|
|
{ name: 'Fundamentals', url: '/guides/storage/cdn/fundamentals' },
|
|
{ name: 'Smart CDN', url: '/guides/storage/cdn/smart-cdn' },
|
|
{ name: 'Purging Cache', url: '/guides/storage/cdn/purge-cdn-cache' },
|
|
{ name: 'Metrics', url: '/guides/storage/cdn/metrics' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Debugging',
|
|
url: '/guides/storage/debugging',
|
|
items: [
|
|
{ name: 'Logs', url: '/guides/storage/debugging/logs' },
|
|
{ name: 'Error Codes', url: '/guides/storage/debugging/error-codes' },
|
|
{ name: 'Troubleshooting', url: '/guides/storage/troubleshooting' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Schema',
|
|
url: '/guides/storage/schema',
|
|
items: [
|
|
{ name: 'Database Design', url: '/guides/storage/schema/design' },
|
|
{
|
|
name: 'Helper Functions',
|
|
url: '/guides/storage/schema/helper-functions' as `/${string}`,
|
|
},
|
|
{ name: 'Custom Roles', url: '/guides/storage/schema/custom-roles' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Going to production',
|
|
url: '/guides/storage/production',
|
|
items: [{ name: 'Scaling', url: '/guides/storage/production/scaling' }],
|
|
},
|
|
{
|
|
name: 'Pricing',
|
|
url: '/guides/storage/pricing' as `/${string}`,
|
|
enabled: billingEnabled,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Analytics Buckets',
|
|
items: [
|
|
{ name: 'Introduction', url: '/guides/storage/analytics/introduction' },
|
|
{
|
|
name: 'Creating Buckets',
|
|
url: '/guides/storage/analytics/creating-analytics-buckets' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Iceberg Catalog',
|
|
url: '/guides/storage/analytics/connecting-to-analytics-bucket' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Query with Postgres',
|
|
url: '/guides/storage/analytics/query-with-postgres' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Examples',
|
|
url: '/guides/storage/analytics/examples' as `/${string}`,
|
|
items: [
|
|
{
|
|
name: 'Using DuckDB',
|
|
url: '/guides/storage/analytics/examples/duckdb',
|
|
},
|
|
{
|
|
name: 'Using PyIceberg',
|
|
url: '/guides/storage/analytics/examples/pyiceberg',
|
|
},
|
|
{
|
|
name: 'Using Apache Spark',
|
|
url: '/guides/storage/analytics/examples/apache-spark',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Limits',
|
|
url: '/guides/storage/analytics/limits' as `/${string}`,
|
|
enabled: billingEnabled,
|
|
},
|
|
{
|
|
name: 'Pricing',
|
|
url: '/guides/storage/analytics/pricing' as `/${string}`,
|
|
enabled: billingEnabled,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Vector Buckets',
|
|
url: '/guides/storage/vector',
|
|
items: [
|
|
{ name: 'Introduction', url: '/guides/storage/vector/introduction' },
|
|
{
|
|
name: 'Creating Buckets',
|
|
url: '/guides/storage/vector/creating-vector-buckets' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Working with Indexes',
|
|
url: '/guides/storage/vector/working-with-indexes' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Storing Vectors',
|
|
url: '/guides/storage/vector/storing-vectors' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Querying Vectors',
|
|
url: '/guides/storage/vector/querying-vectors' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Local Development',
|
|
url: '/guides/storage/vector/local-development' as `/${string}`,
|
|
enabled: billingEnabled,
|
|
},
|
|
{
|
|
name: 'Limits',
|
|
url: '/guides/storage/vector/limits' as `/${string}`,
|
|
enabled: billingEnabled,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const vectorIndexItems: Array<Partial<NavMenuSection>> = [
|
|
{
|
|
name: 'HNSW indexes',
|
|
url: '/guides/ai/vector-indexes/hnsw-indexes',
|
|
},
|
|
{
|
|
name: 'IVFFlat indexes',
|
|
url: '/guides/ai/vector-indexes/ivf-indexes',
|
|
},
|
|
]
|
|
|
|
export const ai: NavMenuConstant = {
|
|
icon: 'ai',
|
|
title: 'AI & Vectors',
|
|
url: '/guides/ai',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/ai' },
|
|
{ name: 'Concepts', url: '/guides/ai/concepts' },
|
|
{
|
|
name: 'Structured & unstructured',
|
|
url: '/guides/ai/structured-unstructured',
|
|
},
|
|
{
|
|
name: 'Learn',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Vector columns', url: '/guides/ai/vector-columns' },
|
|
{
|
|
name: 'Vector indexes',
|
|
url: '/guides/ai/vector-indexes',
|
|
items: [
|
|
{
|
|
name: 'Overview',
|
|
url: '/guides/ai/vector-indexes',
|
|
},
|
|
...vectorIndexItems,
|
|
],
|
|
},
|
|
{
|
|
name: 'Automatic embeddings',
|
|
url: '/guides/ai/automatic-embeddings' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Engineering for scale',
|
|
url: '/guides/ai/engineering-for-scale' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Choosing Compute Add-on',
|
|
url: '/guides/ai/choosing-compute-addon' as `/${string}`,
|
|
},
|
|
{ name: 'Going to Production', url: '/guides/ai/going-to-prod' },
|
|
{
|
|
name: 'RAG with Permissions',
|
|
url: '/guides/ai/rag-with-permissions' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Search',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Semantic search', url: '/guides/ai/semantic-search' },
|
|
{ name: 'Keyword search', url: '/guides/ai/keyword-search' },
|
|
{ name: 'Hybrid search', url: '/guides/ai/hybrid-search' },
|
|
],
|
|
},
|
|
{
|
|
name: 'JavaScript Examples',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'OpenAI completions using Edge Functions',
|
|
url: '/guides/ai/examples/openai' as `/${string}`,
|
|
},
|
|
|
|
{
|
|
name: 'Generate image captions using Hugging Face',
|
|
url: '/guides/ai/examples/huggingface-image-captioning' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Generate Embeddings',
|
|
url: '/guides/ai/quickstarts/generate-text-embeddings' as `/${string}`,
|
|
},
|
|
|
|
{
|
|
name: 'Adding generative Q&A to your documentation',
|
|
url: '/guides/ai/examples/headless-vector-search' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Adding generative Q&A to your Next.js site',
|
|
url: '/guides/ai/examples/nextjs-vector-search' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Python Client',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Choosing a Client', url: '/guides/ai/python-clients' },
|
|
{ name: 'API', url: '/guides/ai/python/api' },
|
|
{ name: 'Collections', url: '/guides/ai/python/collections' },
|
|
{ name: 'Indexes', url: '/guides/ai/python/indexes' },
|
|
{ name: 'Metadata', url: '/guides/ai/python/metadata' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Python Examples',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Developing locally with Vecs',
|
|
url: '/guides/ai/vecs-python-client' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Creating and managing collections',
|
|
url: '/guides/ai/quickstarts/hello-world' as `/${string}`,
|
|
},
|
|
|
|
{
|
|
name: 'Text Deduplication',
|
|
url: '/guides/ai/quickstarts/text-deduplication' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Face similarity search',
|
|
url: '/guides/ai/quickstarts/face-similarity' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Image search with OpenAI CLIP',
|
|
url: '/guides/ai/examples/image-search-openai-clip' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Semantic search with Amazon Titan',
|
|
url: '/guides/ai/examples/semantic-image-search-amazon-titan' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Building ChatGPT Plugins',
|
|
url: '/guides/ai/examples/building-chatgpt-plugins' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Third-Party Tools',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'LangChain',
|
|
url: '/guides/ai/langchain' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Hugging Face',
|
|
url: '/guides/ai/hugging-face' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Google Colab',
|
|
url: '/guides/ai/google-colab' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'LlamaIndex',
|
|
url: '/guides/ai/integrations/llamaindex' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Roboflow',
|
|
url: '/guides/ai/integrations/roboflow' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Amazon Bedrock',
|
|
url: '/guides/ai/integrations/amazon-bedrock' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Mixpeek',
|
|
url: '/guides/ai/examples/mixpeek-video-search' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const ai_tools: NavMenuConstant = {
|
|
icon: 'ai-tools',
|
|
title: 'AI Tools',
|
|
url: '/guides/ai-tools',
|
|
enabled: aiToolsEnabled,
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/ai-tools' },
|
|
{
|
|
name: 'Agent Plugin',
|
|
url: '/guides/ai-tools/plugins' as `/${string}`,
|
|
enabled: agentPluginEnabled,
|
|
},
|
|
{
|
|
name: 'MCP server',
|
|
url: '/guides/ai-tools/mcp' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Agent Skills',
|
|
url: '/guides/ai-tools/ai-skills' as `/${string}`,
|
|
enabled: agentSkillsEnabled,
|
|
},
|
|
{
|
|
name: 'Prompts',
|
|
url: '/guides/ai-tools/ai-prompts' as `/${string}`,
|
|
enabled: promptsEnabled,
|
|
},
|
|
|
|
{
|
|
name: 'Build AI features',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Deploy MCP servers',
|
|
url: '/guides/ai-tools/byo-mcp' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Vectors / Embeddings ',
|
|
url: '/guides/ai' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const local_development: NavMenuConstant = {
|
|
icon: 'dev-cli',
|
|
title: 'Local Dev / CLI',
|
|
url: '/guides/local-development',
|
|
items: [
|
|
{ name: 'Overview & quickstart', url: '/guides/local-development' },
|
|
{ name: 'Install and run the CLI', url: '/guides/local-development/cli/getting-started' },
|
|
{ name: 'Local development workflow', url: '/guides/local-development/cli-workflows' },
|
|
{
|
|
name: 'Guides',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Database migrations', url: '/guides/local-development/database-migrations' },
|
|
{
|
|
name: 'Declarative database schemas',
|
|
url: '/guides/local-development/declarative-database-schemas' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Diff engines',
|
|
url: '/guides/local-development/diff-engines' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Seeding your database',
|
|
url: '/guides/local-development/seeding-your-database' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Managing config and secrets',
|
|
url: '/guides/local-development/managing-config' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Restoring downloaded backup',
|
|
url: '/guides/local-development/restoring-downloaded-backup' as `/${string}`,
|
|
enabled: localDevelopmentEnabled,
|
|
},
|
|
{
|
|
name: 'Customizing email templates',
|
|
url: '/guides/local-development/customizing-email-templates' as `/${string}`,
|
|
enabled: localDevelopmentEnabled,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Reference',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'CLI configuration',
|
|
url: '/guides/local-development/cli/config',
|
|
enabled: localDevelopmentEnabled,
|
|
},
|
|
{ name: 'CLI commands', url: '/reference/cli' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Testing',
|
|
url: undefined,
|
|
enabled: localDevelopmentEnabled,
|
|
items: [
|
|
{ name: 'Getting started', url: '/guides/local-development/testing/overview' },
|
|
{
|
|
name: 'pgTAP advanced guide',
|
|
url: '/guides/local-development/testing/pgtap-extended' as `/${string}`,
|
|
enabled: pgTapEnabled,
|
|
},
|
|
{ name: 'Database testing', url: '/guides/database/testing' },
|
|
{
|
|
name: 'RLS policies testing',
|
|
url: '/guides/database/extensions/pgtap#testing-rls-policies' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const contributing: NavMenuConstant = {
|
|
icon: 'contributing',
|
|
title: 'Contributing',
|
|
url: '/contributing',
|
|
enabled: contributionEnabled,
|
|
items: [{ name: 'Overview', url: '/contributing' }],
|
|
}
|
|
|
|
export const MIGRATION_PAGES: Partial<
|
|
NavMenuSection & { icon?: string; hasLightIcon?: boolean }
|
|
>[] = [
|
|
{
|
|
name: 'Auth0',
|
|
icon: '/docs/img/icons/auth0-icon',
|
|
url: '/guides/platform/migrating-to-supabase/auth0',
|
|
hasLightIcon: true,
|
|
},
|
|
{
|
|
name: 'Firebase Auth',
|
|
icon: '/docs/img/icons/firebase-icon',
|
|
url: '/guides/platform/migrating-to-supabase/firebase-auth',
|
|
},
|
|
{
|
|
name: 'Firestore Data',
|
|
icon: '/docs/img/icons/firebase-icon',
|
|
url: '/guides/platform/migrating-to-supabase/firestore-data',
|
|
},
|
|
{
|
|
name: 'Firebase Storage',
|
|
icon: '/docs/img/icons/firebase-icon',
|
|
url: '/guides/platform/migrating-to-supabase/firebase-storage',
|
|
},
|
|
{
|
|
name: 'Heroku',
|
|
icon: '/docs/img/icons/heroku-icon',
|
|
url: '/guides/platform/migrating-to-supabase/heroku',
|
|
},
|
|
{
|
|
name: 'Render',
|
|
icon: '/docs/img/icons/render-icon',
|
|
url: '/guides/platform/migrating-to-supabase/render',
|
|
},
|
|
{
|
|
name: 'Amazon RDS',
|
|
icon: '/docs/img/icons/aws-rds-icon',
|
|
url: '/guides/platform/migrating-to-supabase/amazon-rds',
|
|
},
|
|
{
|
|
name: 'Postgres',
|
|
icon: '/docs/img/icons/postgres-icon',
|
|
url: '/guides/platform/migrating-to-supabase/postgres',
|
|
},
|
|
{
|
|
name: 'Vercel Postgres',
|
|
icon: '/docs/img/icons/vercel-icon',
|
|
url: '/guides/platform/migrating-to-supabase/vercel-postgres',
|
|
hasLightIcon: true,
|
|
},
|
|
{
|
|
name: 'Neon',
|
|
icon: '/docs/img/icons/neon-icon',
|
|
url: '/guides/platform/migrating-to-supabase/neon',
|
|
hasLightIcon: true,
|
|
},
|
|
{
|
|
name: 'MySQL',
|
|
icon: '/docs/img/icons/mysql-icon',
|
|
url: '/guides/platform/migrating-to-supabase/mysql',
|
|
},
|
|
{
|
|
name: 'MSSQL',
|
|
icon: '/docs/img/icons/mssql-icon',
|
|
url: '/guides/platform/migrating-to-supabase/mssql',
|
|
},
|
|
]
|
|
|
|
export const security: NavMenuConstant = {
|
|
icon: 'security',
|
|
title: 'Security',
|
|
url: '/guides/security',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/security' },
|
|
{
|
|
name: 'Product security',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Platform configuration', url: '/guides/security/platform-security' },
|
|
{ name: 'Product configuration', url: '/guides/security/product-security' },
|
|
{ name: 'Security testing', url: '/guides/security/security-testing' },
|
|
{ name: 'Platform Audit Logs', url: '/guides/security/platform-audit-logs' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Compliance',
|
|
url: undefined,
|
|
enabled: complianceEnabled,
|
|
items: [
|
|
{ name: 'SOC 2', url: '/guides/security/soc-2-compliance' },
|
|
{ name: 'HIPAA', url: '/guides/security/hipaa-compliance' },
|
|
{ name: 'GDPR', url: '/guides/security/gdpr-compliance' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Guides',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Production Checklist',
|
|
url: '/guides/deployment/going-into-prod',
|
|
enabled: productionChecklistEnabled,
|
|
},
|
|
{
|
|
name: 'Shared Responsibility Model',
|
|
url: '/guides/deployment/shared-responsibility-model' as `/${string}`,
|
|
},
|
|
{ name: 'Row Level Security', url: '/guides/database/postgres/row-level-security' },
|
|
{ name: 'Securing your API', url: '/guides/api/securing-your-api' },
|
|
{ name: 'Securing your npm installs', url: '/guides/security/npm-security' },
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const platform: NavMenuConstant = {
|
|
icon: 'platform',
|
|
title: 'Platform',
|
|
url: '/guides/platform',
|
|
items: [
|
|
{
|
|
name: 'Add-ons',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Custom Domains', url: '/guides/platform/custom-domains' },
|
|
{ name: 'Database Backups', url: '/guides/platform/backups' },
|
|
{ name: 'IPv4 Address', url: '/guides/platform/ipv4-address' },
|
|
{
|
|
name: 'Read Replicas',
|
|
url: '/guides/platform/read-replicas',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/platform/read-replicas' as `/${string}` },
|
|
{
|
|
name: 'Getting started',
|
|
url: '/guides/platform/read-replicas/getting-started' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Upgrades & Migrations',
|
|
url: undefined,
|
|
enabled: fullPlatformEnabled,
|
|
items: [
|
|
{ name: 'Upgrading', url: '/guides/platform/upgrading' },
|
|
{
|
|
name: 'Migrating within Supabase',
|
|
url: '/guides/platform/migrating-within-supabase',
|
|
items: [
|
|
{
|
|
name: 'Overview',
|
|
url: '/guides/platform/migrating-within-supabase' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Restore Dashboard backup',
|
|
url: '/guides/platform/migrating-within-supabase/dashboard-restore' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Backup and restore using CLI',
|
|
url: '/guides/platform/migrating-within-supabase/backup-restore' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Migrating to Supabase',
|
|
url: '/guides/platform/migrating-to-supabase',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/platform/migrating-to-supabase' as `/${string}` },
|
|
...MIGRATION_PAGES,
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Project & Account Management',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Access Control',
|
|
url: '/guides/platform/access-control' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Personal Access Tokens',
|
|
url: '/guides/platform/personal-access-tokens' as `/${string}`,
|
|
enabled: fullPlatformEnabled,
|
|
},
|
|
{
|
|
name: 'Multi-factor Authentication',
|
|
url: '/guides/platform/multi-factor-authentication',
|
|
enabled: fullPlatformEnabled,
|
|
items: [
|
|
{
|
|
name: 'Overview',
|
|
url: '/guides/platform/multi-factor-authentication' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Enforce MFA on organization',
|
|
url: '/guides/platform/mfa/org-mfa-enforcement' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Transfer Project',
|
|
url: '/guides/platform/project-transfer' as `/${string}`,
|
|
enabled: fullPlatformEnabled,
|
|
},
|
|
{
|
|
name: 'Restore to a new project',
|
|
url: '/guides/platform/clone-project',
|
|
},
|
|
{
|
|
name: 'Project Pausing',
|
|
url: '/guides/platform/free-project-pausing' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Delete Project',
|
|
url: '/guides/platform/delete-project',
|
|
},
|
|
{
|
|
name: 'Single Sign-On',
|
|
url: '/guides/platform/sso',
|
|
enabled: fullPlatformEnabled,
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/platform/sso' as `/${string}` },
|
|
{
|
|
name: 'Understanding Login Flows',
|
|
url: '/guides/platform/sso/login-flows' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Choosing a Login Flow',
|
|
url: '/guides/platform/sso/choosing-login-flow' as `/${string}`,
|
|
},
|
|
{ name: 'SSO with Azure AD', url: '/guides/platform/sso/azure' },
|
|
{
|
|
name: 'SSO with Google Workspace',
|
|
url: '/guides/platform/sso/gsuite' as `/${string}`,
|
|
},
|
|
{ name: 'SSO with Okta', url: '/guides/platform/sso/okta' },
|
|
{
|
|
name: 'Multiple SSO Providers',
|
|
url: '/guides/platform/sso/multiple-providers' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Testing and Best Practices',
|
|
url: '/guides/platform/sso/testing-best-practices' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Enterprise-Managed Authentication for MCP',
|
|
url: '/guides/platform/sso/enterprise-mcp-authentication' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Platform Configuration',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Regions', url: '/guides/platform/regions' as `/${string}` },
|
|
{
|
|
name: 'Compute and Disk',
|
|
url: '/guides/platform/compute-and-disk' as `/${string}`,
|
|
enabled: fullPlatformEnabled,
|
|
},
|
|
{
|
|
name: 'Database Size',
|
|
url: '/guides/platform/database-size' as `/${string}`,
|
|
enabled: fullPlatformEnabled,
|
|
},
|
|
{ name: 'HIPAA Projects', url: '/guides/platform/hipaa-projects' as `/${string}` },
|
|
{
|
|
name: 'Network Restrictions',
|
|
url: '/guides/platform/network-restrictions' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Temporary Access',
|
|
url: '/guides/platform/temporary-access' as `/${string}`,
|
|
},
|
|
{ name: 'Performance Tuning', url: '/guides/platform/performance' as `/${string}` },
|
|
{ name: 'SSL Enforcement', url: '/guides/platform/ssl-enforcement' as `/${string}` },
|
|
{
|
|
name: 'Postgres Connection Logging',
|
|
url: '/guides/platform/postgres-connection-logging' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Default Platform Permissions',
|
|
url: '/guides/platform/permissions' as `/${string}`,
|
|
},
|
|
{ name: 'PrivateLink', url: '/guides/platform/privatelink' as `/${string}` },
|
|
],
|
|
},
|
|
{
|
|
name: 'Billing',
|
|
url: undefined,
|
|
enabled: billingEnabled,
|
|
items: [
|
|
{
|
|
name: 'About billing on Supabase',
|
|
url: '/guides/platform/billing-on-supabase' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Get set up for billing',
|
|
url: '/guides/platform/get-set-up-for-billing' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Manage your subscription',
|
|
url: '/guides/platform/manage-your-subscription' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Manage your usage',
|
|
url: '/guides/platform/manage-your-usage',
|
|
items: [
|
|
{
|
|
name: 'Overview',
|
|
url: '/guides/platform/manage-your-usage' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Compute',
|
|
url: '/guides/platform/manage-your-usage/compute' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Egress',
|
|
url: '/guides/platform/manage-your-usage/egress' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Disk Size',
|
|
url: '/guides/platform/manage-your-usage/disk-size' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Disk Throughput',
|
|
url: '/guides/platform/manage-your-usage/disk-throughput' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Disk IOPS',
|
|
url: '/guides/platform/manage-your-usage/disk-iops' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Monthly Active Users',
|
|
url: '/guides/platform/manage-your-usage/monthly-active-users' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Monthly Active Third-Party Users',
|
|
url: '/guides/platform/manage-your-usage/monthly-active-users-third-party' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Monthly Active SSO Users',
|
|
url: '/guides/platform/manage-your-usage/monthly-active-users-sso' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Storage Size',
|
|
url: '/guides/platform/manage-your-usage/storage-size' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Storage Image Transformations',
|
|
url: '/guides/platform/manage-your-usage/storage-image-transformations' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Edge Function Invocations',
|
|
url: '/guides/platform/manage-your-usage/edge-function-invocations' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Realtime Messages',
|
|
url: '/guides/platform/manage-your-usage/realtime-messages' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Realtime Peak Connections',
|
|
url: '/guides/platform/manage-your-usage/realtime-peak-connections' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Custom Domains',
|
|
url: '/guides/platform/manage-your-usage/custom-domains' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Point-in-Time Recovery',
|
|
url: '/guides/platform/manage-your-usage/point-in-time-recovery' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'IPv4',
|
|
url: '/guides/platform/manage-your-usage/ipv4' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'MFA Phone',
|
|
url: '/guides/platform/manage-your-usage/advanced-mfa-phone' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Read Replicas',
|
|
url: '/guides/platform/manage-your-usage/read-replicas' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Branching',
|
|
url: '/guides/platform/manage-your-usage/branching' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Logs',
|
|
url: '/guides/platform/manage-your-usage/logs' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Logs Ingest',
|
|
url: '/guides/platform/manage-your-usage/logs-ingest' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Logs Query',
|
|
url: '/guides/platform/manage-your-usage/logs-query' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Log Drains',
|
|
url: '/guides/platform/manage-your-usage/log-drains' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Pipelines',
|
|
url: '/guides/platform/manage-your-usage/pipelines' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Your monthly invoice',
|
|
url: '/guides/platform/your-monthly-invoice' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Control your costs',
|
|
url: '/guides/platform/cost-control' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Credits',
|
|
url: '/guides/platform/credits' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'AWS Marketplace',
|
|
url: '/guides/platform/aws-marketplace',
|
|
items: [
|
|
{
|
|
name: 'Overview',
|
|
url: '/guides/platform/aws-marketplace' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Getting Started',
|
|
url: '/guides/platform/aws-marketplace/getting-started',
|
|
},
|
|
{
|
|
name: 'Account Setup',
|
|
url: '/guides/platform/aws-marketplace/account-setup',
|
|
},
|
|
{
|
|
name: 'Manage your subscription',
|
|
url: '/guides/platform/aws-marketplace/manage-your-subscription',
|
|
},
|
|
{
|
|
name: 'Invoices',
|
|
url: '/guides/platform/aws-marketplace/invoices',
|
|
},
|
|
{
|
|
name: 'FAQ',
|
|
url: '/guides/platform/aws-marketplace/faq',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Billing FAQ',
|
|
url: '/guides/platform/billing-faq' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const telemetry: NavMenuConstant = {
|
|
icon: 'telemetry',
|
|
title: 'Observability',
|
|
url: '/guides/observability',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/observability' },
|
|
{
|
|
name: 'Read project data',
|
|
items: [
|
|
{ name: 'Query logs with SQL', url: '/guides/observability/advanced-log-filtering' },
|
|
{ name: 'Logs in Studio', url: '/guides/observability/logs' },
|
|
{ name: 'Log sources and fields', url: '/guides/observability/log-field-reference' },
|
|
{ name: 'Inspect the database', url: '/guides/observability/inspect' },
|
|
{ name: 'Advisors', url: '/guides/observability/advisors' },
|
|
{ name: 'Reports', url: '/guides/observability/reports' },
|
|
{
|
|
name: 'Metrics API',
|
|
url: '/guides/observability/metrics',
|
|
items: [
|
|
{ name: 'Grafana Cloud', url: '/guides/observability/metrics/grafana-cloud' },
|
|
{
|
|
name: 'Grafana self-hosted',
|
|
url: '/guides/observability/metrics/grafana-self-hosted',
|
|
},
|
|
{ name: 'Datadog', url: 'https://docs.datadoghq.com/integrations/supabase/' },
|
|
{ name: 'Elastic', url: 'https://www.elastic.co/docs/reference/integrations/supabase' },
|
|
{ name: 'Vendor-agnostic setup', url: '/guides/observability/metrics/vendor-agnostic' },
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Detect and diagnose',
|
|
items: [
|
|
{ name: 'Detection checks', url: '/guides/observability/detecting' },
|
|
{ name: 'Troubleshooting', url: '/guides/troubleshooting' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Hire an agent',
|
|
items: [
|
|
{ name: 'Set up an agent', url: '/guides/observability/automate-with-agents' },
|
|
{ name: 'Generalist', url: '/guides/observability/automate-with-agents/all' },
|
|
{ name: 'Health monitor', url: '/guides/observability/automate-with-agents/health' },
|
|
{ name: 'Security monitor', url: '/guides/observability/automate-with-agents/security' },
|
|
{
|
|
name: 'Performance monitor',
|
|
url: '/guides/observability/automate-with-agents/performance',
|
|
},
|
|
{ name: 'Capacity monitor', url: '/guides/observability/automate-with-agents/usage' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Configure and export',
|
|
items: [
|
|
{ name: 'Configure logging', url: '/guides/observability/configure-logging' },
|
|
{ name: 'Log drains', url: '/guides/observability/log-drains' },
|
|
{ name: 'Client-side tracing', url: '/guides/observability/client-side-tracing' },
|
|
{ name: 'Sentry integration', url: '/guides/observability/sentry-monitoring' },
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const resources: NavMenuConstant = {
|
|
icon: 'resources',
|
|
title: 'Resources',
|
|
url: '/guides/resources',
|
|
items: [{ name: 'Glossary', url: '/guides/resources/glossary' }],
|
|
}
|
|
|
|
export const self_hosting: NavMenuConstant = {
|
|
title: 'Self-Hosting',
|
|
icon: 'self-hosting',
|
|
url: '/guides/self-hosting',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/self-hosting' },
|
|
{ name: 'Deploy with Docker', url: '/guides/self-hosting/docker' },
|
|
{ name: 'Accessing Postgres', url: '/guides/self-hosting/accessing-postgres' },
|
|
{ name: 'Configure new API keys', url: '/guides/self-hosting/self-hosted-auth-keys' },
|
|
{ name: 'Learn about API Gateway', url: '/guides/self-hosting/self-hosted-envoy' },
|
|
{
|
|
name: 'Add Reverse Proxy with HTTPS',
|
|
url: '/guides/self-hosting/self-hosted-proxy-https',
|
|
},
|
|
{ name: 'Upgrade to Postgres 17', url: '/guides/self-hosting/postgres-upgrade-17' },
|
|
{ name: 'Remove superuser access', url: '/guides/self-hosting/remove-superuser-access' },
|
|
{ name: 'Update your deployment', url: '/guides/self-hosting/updating' },
|
|
{
|
|
name: 'How-to Guides',
|
|
items: [
|
|
{ name: 'Run Self-Hosted Functions', url: '/guides/self-hosting/self-hosted-functions' },
|
|
{ name: 'Configure S3 Storage', url: '/guides/self-hosting/self-hosted-s3' },
|
|
{ name: 'Enable MCP server', url: '/guides/self-hosting/enable-mcp' },
|
|
{ name: 'Configure Social Login (OAuth)', url: '/guides/self-hosting/self-hosted-oauth' },
|
|
{
|
|
name: 'Configure Custom OAuth/OIDC',
|
|
url: '/guides/self-hosting/self-hosted-custom-oauth-providers',
|
|
},
|
|
{ name: 'Configure Phone Login & MFA', url: '/guides/self-hosting/self-hosted-phone-mfa' },
|
|
{ name: 'Add Custom Email Templates', url: '/guides/self-hosting/custom-email-templates' },
|
|
{ name: 'Configure Auth Hooks', url: '/guides/self-hosting/self-hosted-auth-hooks' },
|
|
{ name: 'Configure Passkeys', url: '/guides/self-hosting/self-hosted-passkeys' },
|
|
{ name: 'Configure SAML 2.0 SSO', url: '/guides/self-hosting/self-hosted-saml-sso' },
|
|
{
|
|
name: 'Restore Project from Platform',
|
|
url: '/guides/self-hosting/restore-from-platform',
|
|
},
|
|
{ name: 'Copy Storage from Platform', url: '/guides/self-hosting/copy-from-platform-s3' },
|
|
{
|
|
name: 'Build Custom Extensions',
|
|
url: '/guides/self-hosting/custom-postgres-extensions',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Auth Server',
|
|
items: [
|
|
{ name: 'Reference', url: '/reference/self-hosting-auth/introduction' },
|
|
{ name: 'Configuration', url: '/guides/self-hosting/auth/config' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Storage Server',
|
|
items: [
|
|
{
|
|
name: 'Reference',
|
|
url: '/reference/self-hosting-storage/introduction' as `/${string}`,
|
|
},
|
|
{ name: 'Configuration', url: '/guides/self-hosting/storage/config' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Realtime Server',
|
|
items: [
|
|
{
|
|
name: 'Reference',
|
|
url: '/reference/self-hosting-realtime/introduction' as `/${string}`,
|
|
},
|
|
{ name: 'Configuration', url: '/guides/self-hosting/realtime/config' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Analytics Server',
|
|
items: [
|
|
{
|
|
name: 'Reference',
|
|
url: '/reference/self-hosting-analytics/introduction',
|
|
items: [],
|
|
},
|
|
{
|
|
name: 'Configuration',
|
|
url: '/guides/self-hosting/analytics/config',
|
|
items: [],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Functions Server',
|
|
items: [
|
|
{
|
|
name: 'Reference',
|
|
url: '/reference/self-hosting-functions/introduction',
|
|
items: [],
|
|
},
|
|
{
|
|
name: 'Guide',
|
|
url: '/guides/self-hosting/self-hosted-functions',
|
|
items: [],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const deployment: NavMenuConstant = {
|
|
title: 'Deployment & Branching',
|
|
url: '/guides/deployment',
|
|
icon: 'git-branch',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/deployment' },
|
|
{
|
|
name: 'Environments',
|
|
items: [
|
|
{ name: 'Managing environments', url: '/guides/deployment/managing-environments' },
|
|
{ name: 'Database migrations', url: '/guides/deployment/database-migrations' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Branching',
|
|
url: undefined,
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/deployment/branching' },
|
|
{ name: 'Branching via GitHub', url: '/guides/deployment/branching/github-integration' },
|
|
{
|
|
name: 'Branching via dashboard',
|
|
url: '/guides/deployment/branching/dashboard' as `/${string}`,
|
|
},
|
|
|
|
{
|
|
name: 'Working with branches',
|
|
url: '/guides/deployment/branching/working-with-branches' as `/${string}`,
|
|
},
|
|
{ name: 'Configuration', url: '/guides/deployment/branching/configuration' },
|
|
{ name: 'Integrations', url: '/guides/deployment/branching/integrations' },
|
|
{ name: 'Troubleshooting', url: '/guides/deployment/branching/troubleshooting' },
|
|
{ name: 'Billing', url: '/guides/platform/manage-your-usage/branching' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Terraform',
|
|
items: [
|
|
{ name: 'Terraform provider', url: '/guides/deployment/terraform' },
|
|
{ name: 'Terraform tutorial', url: '/guides/deployment/terraform/tutorial' },
|
|
{ name: 'Terraform reference', url: '/guides/deployment/terraform/reference' },
|
|
],
|
|
},
|
|
{
|
|
name: 'Production readiness',
|
|
items: [
|
|
{
|
|
name: 'Shared responsibility model',
|
|
url: '/guides/deployment/shared-responsibility-model' as `/${string}`,
|
|
},
|
|
{ name: 'Maturity model', url: '/guides/deployment/maturity-model' },
|
|
{
|
|
name: 'Production checklist',
|
|
url: '/guides/deployment/going-into-prod',
|
|
enabled: productionChecklistEnabled,
|
|
},
|
|
{ name: 'SOC 2 compliance', url: '/guides/security/soc-2-compliance' },
|
|
],
|
|
},
|
|
{
|
|
name: 'CI/CD',
|
|
items: [
|
|
{
|
|
name: 'Generate types from your database',
|
|
url: '/guides/deployment/ci/generating-types' as `/${string}`,
|
|
},
|
|
{ name: 'Automated testing', url: '/guides/deployment/ci/testing' },
|
|
{ name: 'Back up your database', url: '/guides/deployment/ci/backups' },
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const integrations: NavMenuConstant = {
|
|
title: 'Integrations',
|
|
icon: 'integrations',
|
|
url: '/guides/integrations',
|
|
enabled: integrationsEnabled,
|
|
items: [
|
|
{
|
|
name: 'Overview',
|
|
url: '/guides/integrations',
|
|
},
|
|
{
|
|
name: 'Dashboard Integrations',
|
|
url: '/guides/integrations#dashboard-integrations',
|
|
},
|
|
{
|
|
name: 'Partner Catalog',
|
|
url: '/guides/integrations/partner-catalog',
|
|
},
|
|
{
|
|
name: 'Vercel Marketplace',
|
|
url: '/guides/integrations/vercel-marketplace',
|
|
},
|
|
{
|
|
name: 'Stripe Projects',
|
|
url: '/guides/integrations/stripe-projects',
|
|
},
|
|
{
|
|
name: 'Build Your Own',
|
|
items: [
|
|
{
|
|
name: 'Supabase OAuth Integration',
|
|
url: '/guides/integrations/build-a-supabase-oauth-integration',
|
|
items: [
|
|
{
|
|
name: 'Overview',
|
|
url: '/guides/integrations/build-a-supabase-oauth-integration',
|
|
},
|
|
{
|
|
name: 'OAuth scopes',
|
|
url: '/guides/integrations/build-a-supabase-oauth-integration/oauth-scopes',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Supabase for Platforms',
|
|
url: '/guides/integrations/supabase-for-platforms',
|
|
},
|
|
{
|
|
name: 'Supabase partner integration guide',
|
|
url: '/guides/integrations/partner-integration-guide',
|
|
},
|
|
],
|
|
},
|
|
{ name: 'Integrations', url: undefined, items: [] },
|
|
],
|
|
}
|
|
|
|
export const reference = {
|
|
title: 'API Reference',
|
|
icon: 'reference',
|
|
items: [
|
|
{
|
|
name: 'Client libraries',
|
|
items: [
|
|
{
|
|
name: 'supabase-js',
|
|
url: '/reference/javascript/start',
|
|
level: 'reference_javascript',
|
|
icon: '/img/icons/menu/reference-javascript' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'supabase-dart',
|
|
url: '/reference/dart/start',
|
|
level: 'reference_dart',
|
|
icon: '/img/icons/menu/reference-dart' as `/${string}`,
|
|
enabled: sdkDartEnabled,
|
|
},
|
|
{
|
|
name: 'supabase-csharp',
|
|
url: '/reference/csharp/start',
|
|
level: 'reference_csharp',
|
|
icon: '/img/icons/menu/reference-csharp' as `/${string}`,
|
|
enabled: sdkCsharpEnabled,
|
|
},
|
|
{
|
|
name: 'supbase-python',
|
|
url: '/reference/python/start',
|
|
level: 'reference_python',
|
|
icon: '/img/icons/menu/reference-python' as `/${string}`,
|
|
enabled: sdkPythonEnabled,
|
|
},
|
|
{
|
|
name: 'supbase-swift',
|
|
url: '/reference/swift/start',
|
|
level: 'reference_swift',
|
|
items: [],
|
|
icon: '/img/icons/menu/reference-swift' as `/${string}`,
|
|
enabled: sdkSwiftEnabled,
|
|
},
|
|
{
|
|
name: 'supabase-kt',
|
|
url: '/reference/kotlin/start',
|
|
level: 'reference_kotlin',
|
|
items: [],
|
|
icon: '/img/icons/menu/reference-kotlin' as `/${string}`,
|
|
enabled: sdkKotlinEnabled,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Other tools',
|
|
items: [
|
|
{
|
|
name: 'Supabase CLI',
|
|
url: '/reference/cli/start',
|
|
icon: '/img/icons/menu/reference-cli' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Management API',
|
|
url: '/reference/api/introduction',
|
|
icon: '/img/icons/menu/reference-api' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
export const reference_javascript_v1 = {
|
|
icon: 'reference-javascript',
|
|
title: 'JavaScript',
|
|
url: '/guides/reference/javascript',
|
|
parent: '/reference',
|
|
pkg: {
|
|
name: '@supabase/supabase-js',
|
|
repo: 'https://github.com/supabase/supabase-js',
|
|
},
|
|
}
|
|
|
|
export const reference_javascript_v2 = {
|
|
icon: 'reference-javascript',
|
|
title: 'JavaScript',
|
|
url: '/guides/reference/javascript',
|
|
parent: '/reference',
|
|
pkg: {
|
|
name: '@supabase/supabase-js',
|
|
repo: 'https://github.com/supabase/supabase-js',
|
|
},
|
|
}
|
|
|
|
export const reference_server_v1 = {
|
|
icon: 'reference-javascript',
|
|
title: 'Server',
|
|
url: '/reference/server',
|
|
parent: '/reference',
|
|
pkg: {
|
|
name: '@supabase/server',
|
|
repo: 'https://github.com/supabase/server',
|
|
},
|
|
}
|
|
|
|
export const reference_middleware_v1 = {
|
|
icon: 'reference-javascript',
|
|
title: 'Middleware',
|
|
url: '/reference/middleware',
|
|
parent: '/reference',
|
|
pkg: {
|
|
name: '@supabase/middleware',
|
|
repo: 'https://github.com/supabase/middleware',
|
|
},
|
|
}
|
|
|
|
// TODO: How to?
|
|
export const reference_dart_v1 = {
|
|
icon: 'reference-dart',
|
|
title: 'Flutter',
|
|
url: '/guides/reference/dart',
|
|
parent: '/reference',
|
|
pkg: {
|
|
name: 'supabase_flutter',
|
|
repo: 'https://github.com/supabase/supabase-flutter',
|
|
},
|
|
}
|
|
|
|
export const reference_dart_v2 = {
|
|
icon: 'reference-dart',
|
|
title: 'Flutter',
|
|
url: '/guides/reference/dart',
|
|
parent: '/reference',
|
|
pkg: {
|
|
name: 'supabase_flutter',
|
|
repo: 'https://github.com/supabase/supabase-flutter',
|
|
},
|
|
}
|
|
|
|
export const reference_csharp_v0 = {
|
|
icon: 'reference-csharp',
|
|
title: 'C#',
|
|
url: 'guides/reference/csharp',
|
|
parent: '/reference',
|
|
pkg: {
|
|
name: 'supabase',
|
|
repo: 'https://github.com/supabase-community/supabase-csharp',
|
|
},
|
|
}
|
|
|
|
export const reference_csharp_v1 = {
|
|
icon: 'reference-csharp',
|
|
title: 'C#',
|
|
url: 'guides/reference/csharp',
|
|
parent: '/reference',
|
|
pkg: {
|
|
name: 'supabase',
|
|
repo: 'https://github.com/supabase-community/supabase-csharp',
|
|
},
|
|
}
|
|
|
|
export const reference_csharp_v8 = {
|
|
icon: 'reference-csharp',
|
|
title: 'C#',
|
|
url: 'guides/reference/csharp',
|
|
parent: '/reference',
|
|
pkg: {
|
|
name: 'supabase',
|
|
repo: 'https://github.com/supabase-community/supabase-csharp',
|
|
},
|
|
}
|
|
|
|
export const reference_python_v2 = {
|
|
icon: 'reference-python',
|
|
title: 'Python',
|
|
url: '/guides/reference/python',
|
|
parent: '/reference',
|
|
pkg: {
|
|
name: 'supabase-py',
|
|
repo: 'https://github.com/supabase/supabase-py',
|
|
},
|
|
}
|
|
|
|
export const reference_swift_v1 = {
|
|
icon: 'reference-swift',
|
|
title: 'swift',
|
|
url: 'guides/reference/swift',
|
|
parent: '/reference',
|
|
pkg: {
|
|
name: 'supabase-swift',
|
|
repo: 'https://github.com/supabase/supabase-swift',
|
|
},
|
|
}
|
|
|
|
export const reference_swift_v2 = {
|
|
icon: 'reference-swift',
|
|
title: 'swift',
|
|
url: 'guides/reference/swift',
|
|
parent: '/reference',
|
|
pkg: {
|
|
name: 'supabase-swift',
|
|
repo: 'https://github.com/supabase/supabase-swift',
|
|
},
|
|
}
|
|
|
|
export const reference_kotlin_v1 = {
|
|
icon: 'reference-kotlin',
|
|
title: 'kotlin',
|
|
url: 'guides/reference/kotlin',
|
|
parent: '/reference',
|
|
pkg: {
|
|
name: '@supabase-community/supabase-kt',
|
|
repo: 'https://github.com/supabase-community/supabase-kt',
|
|
},
|
|
}
|
|
|
|
export const reference_kotlin_v2 = {
|
|
icon: 'reference-kotlin',
|
|
title: 'kotlin',
|
|
url: 'guides/reference/kotlin',
|
|
parent: '/reference',
|
|
pkg: {
|
|
name: '@supabase-community/supabase-kt',
|
|
repo: 'https://github.com/supabase-community/supabase-kt',
|
|
},
|
|
}
|
|
|
|
export const reference_kotlin_v3 = {
|
|
icon: 'reference-kotlin',
|
|
title: 'kotlin',
|
|
url: 'guides/reference/kotlin',
|
|
parent: '/reference',
|
|
pkg: {
|
|
name: '@supabase-community/supabase-kt',
|
|
repo: 'https://github.com/supabase-community/supabase-kt',
|
|
},
|
|
}
|
|
|
|
export const reference_cli = {
|
|
icon: 'reference-cli',
|
|
title: 'Supabase CLI',
|
|
url: '/guides/reference/cli',
|
|
parent: '/',
|
|
pkg: {
|
|
name: 'supabase',
|
|
repo: 'https://github.com/supabase/cli',
|
|
},
|
|
}
|
|
export const reference_api = {
|
|
icon: 'reference-api',
|
|
title: 'Management API',
|
|
url: '/guides/reference/api',
|
|
parent: '/reference',
|
|
}
|
|
|
|
export const reference_self_hosting_auth = {
|
|
icon: 'self-hosting',
|
|
title: 'Self-Hosting Auth',
|
|
url: '/guides/reference/self-hosting/auth',
|
|
parent: '/reference',
|
|
}
|
|
|
|
export const reference_self_hosting_storage = {
|
|
icon: 'self-hosting',
|
|
title: 'Self-Hosting Storage',
|
|
url: '/guides/reference/self-hosting/storage',
|
|
parent: '/reference',
|
|
}
|
|
|
|
export const reference_self_hosting_realtime = {
|
|
icon: 'self-hosting',
|
|
title: 'Self-Hosting Realtime',
|
|
url: '/guides/reference/self-hosting/realtime',
|
|
parent: '/reference',
|
|
}
|
|
|
|
export const reference_self_hosting_analytics = {
|
|
icon: 'reference-analytics',
|
|
title: 'Self-Hosting Analytics',
|
|
url: '/guides/reference/self-hosting/analytics',
|
|
parent: '/reference',
|
|
}
|
|
|
|
export const reference_self_hosting_functions = {
|
|
icon: 'reference-functions',
|
|
title: 'Self-Hosting Functions',
|
|
url: '/guides/reference/self-hosting/functions',
|
|
parent: '/reference',
|
|
}
|
|
|
|
export const references = [
|
|
{
|
|
label: 'Client libraries',
|
|
items: [
|
|
{
|
|
label: 'supabase-js',
|
|
versions: ['v2', 'v1'],
|
|
description: 'something about the reference',
|
|
icon: '/docs/img/icons/javascript-icon.svg',
|
|
url: '/reference/javascript/start',
|
|
},
|
|
{
|
|
label: 'supabase-py',
|
|
description: 'something about the reference',
|
|
icon: '/docs/img/icons/python-icon.svg',
|
|
url: '/reference/python/start',
|
|
enabled: sdkPythonEnabled,
|
|
},
|
|
{
|
|
label: 'supabase-dart',
|
|
versions: ['v1', 'v0'],
|
|
description: 'something about the reference',
|
|
icon: '/docs/img/icons/dart-icon.svg',
|
|
url: '/reference/dart/start',
|
|
enabled: sdkDartEnabled,
|
|
},
|
|
{
|
|
label: 'supabase-csharp',
|
|
versions: ['v0'],
|
|
description: 'something about the reference',
|
|
icon: '/docs/img/icons/c-sharp-icon.svg',
|
|
url: '/reference/csharp/start',
|
|
enabled: sdkCsharpEnabled,
|
|
},
|
|
{
|
|
label: 'supabase-swift',
|
|
versions: ['v2', 'v1'],
|
|
description: 'something about the reference',
|
|
icon: '/docs/img/icons/swift-icon.svg',
|
|
url: '/reference/swift/start',
|
|
enabled: sdkSwiftEnabled,
|
|
},
|
|
{
|
|
label: 'supabase-kt',
|
|
versions: ['v3', 'v2', 'v1'],
|
|
description: 'something about the reference',
|
|
icon: '/docs/img/icons/kotlin-icon.svg',
|
|
url: '/reference/kotlin/start',
|
|
enabled: sdkKotlinEnabled,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: 'Platform Tools',
|
|
items: [
|
|
{
|
|
label: 'CLI',
|
|
description: 'something about the reference',
|
|
icon: '/docs/img/icons/cli-icon.svg',
|
|
url: '/reference/cli/start',
|
|
},
|
|
{
|
|
label: 'Management API',
|
|
description: 'something about the reference',
|
|
icon: '/docs/img/icons/api-icon.svg',
|
|
url: '/reference/api/introduction',
|
|
},
|
|
],
|
|
},
|
|
{
|
|
label: 'Self-Hosting',
|
|
items: [
|
|
{
|
|
label: 'Auth server',
|
|
description: 'something about the reference',
|
|
icon: '/docs/img/icons/menu/auth.svg',
|
|
url: '/reference/auth/start',
|
|
},
|
|
{
|
|
label: 'Storage server',
|
|
description: 'something about the reference',
|
|
icon: '/docs/img/icons/menu/storage.svg',
|
|
url: '/reference/storage/start',
|
|
},
|
|
{
|
|
label: 'Realtime server',
|
|
description: 'something about the reference',
|
|
icon: '/docs/img/icons/menu/realtime.svg',
|
|
url: '/reference/realtime/start',
|
|
},
|
|
],
|
|
},
|
|
]
|
|
|
|
export const navDataForMdx = {
|
|
migrationPages: MIGRATION_PAGES,
|
|
nativeMobileLoginItems: NativeMobileLoginItems,
|
|
phoneLoginsItems: PhoneLoginsItems,
|
|
socialLoginItems: SocialLoginItems,
|
|
ormQuickstarts,
|
|
guiQuickstarts,
|
|
}
|