mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 09:25:06 +03:00
Add a guide that compares classic and scoped personal access tokens, explains how account roles constrain token permissions, and walks through creating and testing a project-scoped token. Include generated tables mapping permissions to Management API endpoints and MCP tools, and link the guide from docs navigation and Studio token sheets. Move the scoped-token permission catalog from Studio into shared-data. Studio and docs generation now share permission names, categories, descriptions, risk metadata, modes, scopes, and display order. Generate the tables from the shared catalog, OpenAPI x-fga-permissions, and the downloaded MCP permission map. Exclude Workers permissions until the feature is live. Run regeneration through the docs Makefile, verify checked-in output in CI, and refresh it in the weekly Management API workflow. Add Dashboard and Docs ownership plus contributor guidance so permission changes stay synchronized.
3700 lines
110 KiB
TypeScript
3700 lines
110 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: 'Monitoring and Debugging',
|
|
icon: 'telemetry',
|
|
href: '/guides/monitoring-and-debugging' as `/${string}`,
|
|
level: 'telemetry',
|
|
},
|
|
{
|
|
label: 'Troubleshooting',
|
|
icon: 'troubleshooting',
|
|
href: '/guides/troubleshooting' as `/${string}`,
|
|
level: 'troubleshooting',
|
|
},
|
|
],
|
|
],
|
|
},
|
|
],
|
|
[
|
|
{
|
|
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: '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,
|
|
},
|
|
],
|
|
],
|
|
},
|
|
],
|
|
]
|
|
|
|
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: 'Next.js',
|
|
url: '/guides/getting-started/quickstarts/nextjs',
|
|
},
|
|
{
|
|
name: 'React',
|
|
url: '/guides/getting-started/quickstarts/reactjs',
|
|
},
|
|
{
|
|
name: 'Astro',
|
|
url: '/guides/getting-started/quickstarts/astrojs',
|
|
},
|
|
{
|
|
name: 'Nuxt',
|
|
url: '/guides/getting-started/quickstarts/nuxtjs',
|
|
},
|
|
{
|
|
name: 'Vue',
|
|
url: '/guides/getting-started/quickstarts/vue',
|
|
},
|
|
{
|
|
name: 'Hono',
|
|
url: '/guides/getting-started/quickstarts/hono',
|
|
},
|
|
{
|
|
name: 'Expo React Native',
|
|
url: '/guides/getting-started/quickstarts/expo-react-native',
|
|
},
|
|
{
|
|
name: 'Flutter',
|
|
url: '/guides/getting-started/quickstarts/flutter',
|
|
},
|
|
{
|
|
name: 'iOS SwiftUI',
|
|
url: '/guides/getting-started/quickstarts/ios-swiftui',
|
|
},
|
|
{
|
|
name: 'Android Kotlin',
|
|
url: '/guides/getting-started/quickstarts/kotlin' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'SvelteKit',
|
|
url: '/guides/getting-started/quickstarts/sveltekit' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Flask (Python)',
|
|
url: '/guides/getting-started/quickstarts/flask' as `/${string}`,
|
|
enabled: !jsOnly,
|
|
},
|
|
{
|
|
name: 'TanStack Start',
|
|
url: '/guides/getting-started/quickstarts/tanstack' as `/${string}`,
|
|
},
|
|
{
|
|
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: '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: '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}`,
|
|
},
|
|
{ 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, views, and data',
|
|
url: '/guides/database/tables' 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/database/database-advisors' as `/${string}`,
|
|
},
|
|
{ name: 'Testing your database', url: '/guides/database/testing' },
|
|
{
|
|
name: 'Customizing Postgres config',
|
|
url: '/guides/database/custom-postgres-config' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Debugging',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Timeouts',
|
|
url: '/guides/database/postgres/timeouts' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Debugging and monitoring',
|
|
url: '/guides/database/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/bigquery' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'ClickHouse',
|
|
url: '/guides/database/replication/clickhouse' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'DuckLake',
|
|
url: '/guides/database/replication/ducklake' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Snowflake',
|
|
url: '/guides/database/replication/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, views, and data',
|
|
url: '/guides/database/tables' 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: '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: 'Monitoring and Debugging',
|
|
url: '/guides/monitoring-and-debugging',
|
|
items: [
|
|
{ name: 'Overview', url: '/guides/monitoring-and-debugging' },
|
|
{
|
|
name: 'Debugging',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Debugging guide',
|
|
url: '/guides/monitoring-and-debugging/debugging' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Logging',
|
|
url: '/guides/monitoring-and-debugging/logs' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Advanced log filtering',
|
|
url: '/guides/monitoring-and-debugging/advanced-log-filtering' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Logs field reference',
|
|
url: '/guides/monitoring-and-debugging/log-field-reference' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Monitoring',
|
|
url: undefined,
|
|
items: [
|
|
{
|
|
name: 'Log drains',
|
|
url: '/guides/monitoring-and-debugging/log-drains' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Reports',
|
|
url: '/guides/monitoring-and-debugging/reports' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Metrics',
|
|
url: '/guides/monitoring-and-debugging/metrics' as `/${string}`,
|
|
items: [
|
|
{
|
|
name: 'Overview',
|
|
url: '/guides/monitoring-and-debugging/metrics' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Grafana Cloud',
|
|
url: '/guides/monitoring-and-debugging/metrics/grafana-cloud' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Grafana self-hosted',
|
|
url: '/guides/monitoring-and-debugging/metrics/grafana-self-hosted' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Datadog',
|
|
url: 'https://docs.datadoghq.com/integrations/supabase/' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Elastic',
|
|
url: 'https://www.elastic.co/docs/reference/integrations/supabase' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Vendor-agnostic setup',
|
|
url: '/guides/monitoring-and-debugging/metrics/vendor-agnostic' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
name: 'Sentry integration',
|
|
url: '/guides/monitoring-and-debugging/sentry-monitoring' as `/${string}`,
|
|
},
|
|
{
|
|
name: 'Tracing with the client SDKs',
|
|
url: '/guides/monitoring-and-debugging/client-side-tracing' as `/${string}`,
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
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: 'Update your deployment', url: '/guides/self-hosting/updating' },
|
|
{
|
|
name: 'How-to Guides',
|
|
items: [
|
|
{ name: 'Upgrade to Postgres 17', url: '/guides/self-hosting/postgres-upgrade-17' },
|
|
{ name: 'Remove superuser access', url: '/guides/self-hosting/remove-superuser-access' },
|
|
{ name: 'Run Self-Hosted Functions', url: '/guides/self-hosting/self-hosted-functions' },
|
|
{ name: 'Configure S3 Storage', url: '/guides/self-hosting/self-hosted-s3' },
|
|
{ name: 'Add Custom Email Templates', url: '/guides/self-hosting/custom-email-templates' },
|
|
{ name: 'Configure Social Login (OAuth)', url: '/guides/self-hosting/self-hosted-oauth' },
|
|
{ name: 'Configure Phone Login & MFA', url: '/guides/self-hosting/self-hosted-phone-mfa' },
|
|
{ name: 'Configure SAML 2.0 SSO', url: '/guides/self-hosting/self-hosted-saml-sso' },
|
|
{ name: 'Enable MCP server', url: '/guides/self-hosting/enable-mcp' },
|
|
{
|
|
name: 'Build Custom Extensions',
|
|
url: '/guides/self-hosting/custom-postgres-extensions',
|
|
},
|
|
{
|
|
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: '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',
|
|
},
|
|
}
|
|
|
|
// 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_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,
|
|
}
|