From 47705a89681a57e9be6c3127dee7e71db2dde7cb Mon Sep 17 00:00:00 2001 From: Charis <26616127+charislam@users.noreply.github.com> Date: Tue, 9 Sep 2025 08:54:33 -0400 Subject: [PATCH] chore: replace all supabase urls with relative urls (#38537) * fix: rewrite relative URLs when syncing to GitHub discussion Relative URLs back to supabse.com won't work in GitHub discussions, so rewrite them back to absolute URLs starting with https://supabase.com * fix: replace all supabase urls with relative urls * chore: add linting for relative urls * chore: bump linter version * Prettier --------- Co-authored-by: Chris Chinchilla --- .github/workflows/docs-lint-v2-scheduled.yml | 4 +- .github/workflows/docs-lint-v2.yml | 4 +- .../docs/content/_partials/database_setup.mdx | 6 +- .../content/_partials/migration_warnings.mdx | 2 +- apps/docs/content/_partials/project_setup.mdx | 6 +- .../content/_partials/quickstart_db_setup.mdx | 4 +- .../social_provider_settings_supabase.mdx | 4 +- .../_partials/social_provider_setup.mdx | 4 +- .../ai/examples/building-chatgpt-plugins.mdx | 2 +- .../ai/examples/headless-vector-search.mdx | 6 +- .../examples/huggingface-image-captioning.mdx | 10 +-- .../ai/examples/mixpeek-video-search.mdx | 2 +- .../ai/examples/nextjs-vector-search.mdx | 14 ++-- .../semantic-image-search-amazon-titan.mdx | 4 +- apps/docs/content/guides/ai/going-to-prod.mdx | 6 +- apps/docs/content/guides/ai/google-colab.mdx | 6 +- .../guides/ai/integrations/llamaindex.mdx | 4 +- apps/docs/content/guides/ai/langchain.mdx | 4 +- .../docs/content/guides/ai/python-clients.mdx | 2 +- .../guides/ai/quickstarts/face-similarity.mdx | 4 +- .../guides/ai/quickstarts/hello-world.mdx | 4 +- .../ai/quickstarts/text-deduplication.mdx | 4 +- .../guides/ai/rag-with-permissions.mdx | 8 +- .../docs/content/guides/ai/vector-columns.mdx | 4 +- .../docs/content/guides/ai/vector-indexes.mdx | 2 +- .../guides/ai/vector-indexes/ivf-indexes.mdx | 2 +- apps/docs/content/guides/api.mdx | 2 +- .../content/guides/api/creating-routes.mdx | 4 +- apps/docs/content/guides/api/quickstart.mdx | 6 +- .../guides/api/rest/auto-generated-docs.mdx | 4 +- .../content/guides/api/rest/client-libs.mdx | 26 +++---- .../guides/api/rest/generating-types.mdx | 2 +- .../guides/api/using-custom-schemas.mdx | 2 +- .../docs/content/guides/auth/auth-captcha.mdx | 2 +- .../guides/auth/auth-helpers/auth-ui.mdx | 2 +- .../guides/auth/auth-helpers/nextjs-pages.mdx | 4 +- .../guides/auth/auth-helpers/nextjs.mdx | 2 +- .../guides/auth/auth-helpers/remix.mdx | 6 +- .../guides/auth/auth-helpers/sveltekit.mdx | 10 +-- .../auth-hooks/before-user-created-hook.mdx | 8 +- .../auth/enterprise-sso/auth-sso-saml.mdx | 16 ++-- .../auth/native-mobile-deep-linking.mdx | 8 +- apps/docs/content/guides/auth/passwords.mdx | 2 +- .../guides/auth/quickstarts/nextjs.mdx | 10 +-- .../guides/auth/quickstarts/react-native.mdx | 6 +- .../content/guides/auth/quickstarts/react.mdx | 6 +- .../content/guides/auth/redirect-urls.mdx | 2 +- .../guides/auth/server-side/nextjs.mdx | 6 +- .../guides/auth/server-side/sveltekit.mdx | 2 +- .../guides/auth/social-login/auth-apple.mdx | 20 ++--- .../auth/social-login/auth-bitbucket.mdx | 2 +- .../guides/auth/social-login/auth-discord.mdx | 2 +- .../auth/social-login/auth-facebook.mdx | 2 +- .../guides/auth/social-login/auth-github.mdx | 2 +- .../guides/auth/social-login/auth-gitlab.mdx | 2 +- .../guides/auth/social-login/auth-google.mdx | 16 ++-- .../guides/auth/social-login/auth-kakao.mdx | 2 +- .../auth/social-login/auth-linkedin.mdx | 2 +- .../guides/auth/social-login/auth-notion.mdx | 2 +- .../guides/auth/social-login/auth-slack.mdx | 2 +- .../guides/auth/social-login/auth-spotify.mdx | 2 +- .../guides/auth/social-login/auth-twitch.mdx | 2 +- .../guides/auth/social-login/auth-twitter.mdx | 2 +- .../guides/auth/social-login/auth-zoom.mdx | 2 +- .../content/guides/auth/third-party/clerk.mdx | 2 +- apps/docs/content/guides/cron.mdx | 2 +- apps/docs/content/guides/cron/quickstart.mdx | 2 +- apps/docs/content/guides/database/arrays.mdx | 6 +- .../guides/database/beekeeper-studio.mdx | 4 +- .../database/connecting-to-postgres.mdx | 8 +- .../serverless-drivers.mdx | 2 +- .../database/custom-postgres-config.mdx | 10 +-- apps/docs/content/guides/database/dbeaver.mdx | 4 +- apps/docs/content/guides/database/drizzle.mdx | 4 +- .../content/guides/database/extensions.mdx | 4 +- .../guides/database/extensions/http.mdx | 2 +- .../guides/database/extensions/hypopg.mdx | 2 +- .../guides/database/extensions/pg_graphql.mdx | 2 +- .../guides/database/extensions/pg_hashids.mdx | 2 +- .../database/extensions/pg_jsonschema.mdx | 2 +- .../guides/database/extensions/pg_net.mdx | 18 ++--- .../guides/database/extensions/pg_repack.mdx | 2 +- .../extensions/pg_stat_statements.mdx | 2 +- .../guides/database/extensions/pgaudit.mdx | 30 ++++---- .../guides/database/extensions/pgjwt.mdx | 2 +- .../guides/database/extensions/pgroonga.mdx | 2 +- .../guides/database/extensions/pgrouting.mdx | 2 +- .../guides/database/extensions/pgsodium.mdx | 2 +- .../guides/database/extensions/pgtap.mdx | 2 +- .../guides/database/extensions/pgvector.mdx | 10 +-- .../database/extensions/plpgsql_check.mdx | 2 +- .../guides/database/extensions/plv8.mdx | 2 +- .../guides/database/extensions/postgis.mdx | 8 +- .../guides/database/extensions/rum.mdx | 2 +- .../database/extensions/timescaledb.mdx | 2 +- .../guides/database/extensions/uuid-ossp.mdx | 4 +- .../database/extensions/wrappers/overview.mdx | 4 +- .../content/guides/database/functions.mdx | 2 +- apps/docs/content/guides/database/inspect.mdx | 4 +- apps/docs/content/guides/database/json.mdx | 4 +- .../docs/content/guides/database/metabase.mdx | 4 +- .../docs/content/guides/database/orioledb.mdx | 2 +- .../docs/content/guides/database/overview.mdx | 2 +- apps/docs/content/guides/database/pgadmin.mdx | 2 +- .../content/guides/database/postgres-js.mdx | 2 +- .../postgres/column-level-security.mdx | 6 +- .../dropping-all-tables-in-schema.mdx | 2 +- .../database/postgres/first-row-in-group.mdx | 2 +- .../guides/database/postgres/indexes.mdx | 2 +- .../guides/database/postgres/roles.mdx | 2 +- .../database/postgres/row-level-security.mdx | 2 +- .../postgres/setup-replication-external.mdx | 2 +- .../postgres/which-version-of-postgres.mdx | 2 +- apps/docs/content/guides/database/prisma.mdx | 8 +- .../prisma/prisma-troubleshooting.mdx | 16 ++-- apps/docs/content/guides/database/psql.mdx | 2 +- .../guides/database/replication/faq.mdx | 2 +- .../content/guides/database/supavisor.mdx | 2 +- apps/docs/content/guides/database/tables.mdx | 2 +- apps/docs/content/guides/database/vault.mdx | 2 +- .../docs/content/guides/database/webhooks.mdx | 2 +- .../branching/github-integration.mdx | 2 +- .../deployment/branching/troubleshooting.mdx | 2 +- .../guides/deployment/database-migrations.mdx | 4 +- .../guides/deployment/going-into-prod.mdx | 26 +++---- .../shared-responsibility-model.mdx | 6 +- .../guides/functions/connect-to-postgres.mdx | 4 +- apps/docs/content/guides/functions/deploy.mdx | 2 +- .../functions/development-environment.mdx | 4 +- .../guides/functions/ephemeral-storage.mdx | 2 +- ...uth-send-email-hook-react-email-resend.mdx | 2 +- .../elevenlabs-generate-speech-stream.mdx | 6 +- .../examples/elevenlabs-transcribe-speech.mdx | 10 +-- .../functions/examples/image-manipulation.mdx | 6 +- .../functions/examples/push-notifications.mdx | 8 +- .../functions/examples/semantic-search.mdx | 2 +- .../guides/functions/examples/send-emails.mdx | 4 +- .../functions/examples/sentry-monitoring.mdx | 2 +- .../functions/function-configuration.mdx | 2 +- .../guides/functions/kysely-postgres.mdx | 2 +- .../docs/content/guides/functions/logging.mdx | 2 +- .../guides/functions/quickstart-dashboard.mdx | 2 +- .../docs/content/guides/functions/secrets.mdx | 2 +- .../guides/functions/troubleshooting.mdx | 2 +- apps/docs/content/guides/functions/wasm.mdx | 2 +- .../guides/getting-started/architecture.mdx | 2 +- .../guides/getting-started/features.mdx | 6 +- .../content/guides/getting-started/mcp.mdx | 2 +- .../getting-started/quickstarts/hono.mdx | 2 +- .../getting-started/quickstarts/laravel.mdx | 4 +- .../getting-started/quickstarts/nextjs.mdx | 2 +- .../getting-started/quickstarts/redwoodjs.mdx | 6 +- .../quickstarts/ruby-on-rails.mdx | 4 +- .../tutorials/with-flutter.mdx | 6 +- .../tutorials/with-ionic-angular.mdx | 2 +- .../build-a-supabase-integration.mdx | 4 +- .../integrations/supabase-marketplace.mdx | 6 +- .../integrations/vercel-marketplace.mdx | 4 +- .../cli/testing-and-linting.mdx | 4 +- .../guides/local-development/overview.mdx | 6 +- .../local-development/testing/overview.mdx | 6 +- apps/docs/content/guides/platform.mdx | 2 +- .../guides/platform/access-control.mdx | 4 +- apps/docs/content/guides/platform/backups.mdx | 16 ++-- .../content/guides/platform/billing-faq.mdx | 44 +++++------ .../guides/platform/billing-on-supabase.mdx | 2 +- .../content/guides/platform/clone-project.mdx | 2 +- .../guides/platform/compute-and-disk.mdx | 40 +++++----- .../content/guides/platform/cost-control.mdx | 8 +- apps/docs/content/guides/platform/credits.mdx | 8 +- .../guides/platform/custom-domains.mdx | 4 +- .../content/guides/platform/database-size.mdx | 18 ++--- .../platform/get-set-up-for-billing.mdx | 2 +- .../guides/platform/hipaa-projects.mdx | 6 +- .../content/guides/platform/ipv4-address.mdx | 2 +- .../platform/manage-your-subscription.mdx | 12 +-- .../platform/manage-your-usage/branching.mdx | 2 +- .../platform/manage-your-usage/compute.mdx | 34 ++++----- .../manage-your-usage/custom-domains.mdx | 2 +- .../platform/manage-your-usage/disk-size.mdx | 2 +- .../edge-function-invocations.mdx | 2 +- .../platform/manage-your-usage/egress.mdx | 10 +-- .../platform/manage-your-usage/ipv4.mdx | 2 +- .../platform/manage-your-usage/log-drains.mdx | 4 +- .../monthly-active-users-sso.mdx | 2 +- .../monthly-active-users-third-party.mdx | 2 +- .../monthly-active-users.mdx | 2 +- .../point-in-time-recovery.mdx | 2 +- .../manage-your-usage/realtime-messages.mdx | 2 +- .../realtime-peak-connections.mdx | 2 +- .../storage-image-transformations.mdx | 2 +- .../manage-your-usage/storage-size.mdx | 2 +- .../platform/mfa/org-mfa-enforcement.mdx | 2 +- .../migrating-to-supabase/amazon-rds.mdx | 6 +- .../platform/migrating-to-supabase/auth0.mdx | 2 +- .../migrating-to-supabase/firebase-auth.mdx | 4 +- .../firebase-storage.mdx | 6 +- .../migrating-to-supabase/firestore-data.mdx | 4 +- .../platform/migrating-to-supabase/heroku.mdx | 8 +- .../platform/migrating-to-supabase/mssql.mdx | 8 +- .../platform/migrating-to-supabase/mysql.mdx | 8 +- .../platform/migrating-to-supabase/neon.mdx | 6 +- .../migrating-to-supabase/postgres.mdx | 6 +- .../platform/migrating-to-supabase/render.mdx | 6 +- .../migrating-to-supabase/vercel-postgres.mdx | 6 +- .../backup-restore.mdx | 2 +- .../dashboard-restore.mdx | 4 +- .../guides/platform/network-restrictions.mdx | 8 +- .../content/guides/platform/performance.mdx | 2 +- .../content/guides/platform/privatelink.mdx | 6 +- .../guides/platform/project-transfer.mdx | 4 +- .../content/guides/platform/read-replicas.mdx | 2 +- .../guides/platform/ssl-enforcement.mdx | 4 +- apps/docs/content/guides/platform/sso.mdx | 4 +- .../content/guides/platform/sso/azure.mdx | 6 +- .../content/guides/platform/sso/gsuite.mdx | 6 +- .../docs/content/guides/platform/sso/okta.mdx | 6 +- .../content/guides/platform/upgrading.mdx | 8 +- .../guides/platform/your-monthly-invoice.mdx | 4 +- .../content/guides/realtime/authorization.mdx | 2 +- .../content/guides/realtime/benchmarks.mdx | 2 +- .../content/guides/realtime/broadcast.mdx | 2 +- .../docs/content/guides/realtime/concepts.mdx | 2 +- .../guides/realtime/postgres-changes.mdx | 4 +- .../docs/content/guides/realtime/presence.mdx | 2 +- .../docs/content/guides/realtime/protocol.mdx | 2 +- apps/docs/content/guides/realtime/quotas.mdx | 6 +- apps/docs/content/guides/security.mdx | 2 +- .../guides/security/platform-security.mdx | 4 +- .../guides/security/security-testing.mdx | 6 +- .../guides/security/soc-2-compliance.mdx | 4 +- apps/docs/content/guides/self-hosting.mdx | 2 +- .../content/guides/self-hosting/docker.mdx | 2 +- .../connecting-to-analytics-bucket.mdx | 4 +- .../storage/buckets/creating-buckets.mdx | 2 +- .../guides/storage/cdn/fundamentals.mdx | 2 +- .../content/guides/storage/cdn/metrics.mdx | 4 +- .../content/guides/storage/cdn/smart-cdn.mdx | 2 +- .../guides/storage/debugging/error-codes.mdx | 74 +++++++++---------- .../content/guides/storage/quickstart.mdx | 8 +- .../storage/security/access-control.mdx | 2 +- .../storage/serving/image-transformations.mdx | 2 +- .../guides/storage/uploads/file-limits.mdx | 2 +- .../content/guides/telemetry/log-drains.mdx | 10 +-- apps/docs/content/guides/telemetry/logs.mdx | 22 +++--- .../docs/content/guides/telemetry/metrics.mdx | 4 +- .../docs/content/guides/telemetry/reports.mdx | 48 ++++++------ ...nied-for-table-httprequestqueue-KnozmQ.mdx | 2 +- .../all-about-supabase-egress-a_Sg_e.mdx | 4 +- ...server-error-when-querying-auth-RI4Vl-.mdx | 4 +- ...ailable-in-self-hosted-supabase-THPcqw.mdx | 4 +- ...imeouts-in-long-running-queries-6nmbdN.mdx | 10 +-- ...tement-due-to-statement-timeout-581wFv.mdx | 2 +- ...ctly-using-the-client-libraries-8JaphH.mdx | 4 +- ...ge-for-monthly-active-users-mau-MwZaBs.mdx | 2 +- .../customizing-emails-by-language-KZ_38Q.mdx | 8 +- ...oard-errors-when-managing-users-N1ls4A.mdx | 6 +- .../database-api-42501-errors.mdx | 8 +- ...rpreting-api-errors-in-the-logs-7xREI9.mdx | 6 +- .../download-logical-backups.mdx | 4 +- ...n-wall-clock-time-limit-reached-Nk38bW.mdx | 2 +- ...to-connect-to-supabase-database-hwG0Dr.mdx | 2 +- ...tgres-database-postgres-ssl-off-GOt5Ja.mdx | 2 +- .../troubleshooting/exhaust-disk-io.mdx | 4 +- .../content/troubleshooting/exhaust-ram.mdx | 18 ++--- .../content/troubleshooting/exhaust-swap.mdx | 14 ++-- ...errors-in-the-database-rest-api-Ur5-B2.mdx | 6 +- ...den-resource-error-from-the-cli-L6rm6l.mdx | 10 +-- .../grafana-not-displaying-data-sXJrMj.mdx | 2 +- .../troubleshooting/high-cpu-usage.mdx | 14 ++-- ...t-my-supabase-database-password-oTs5sB.mdx | 2 +- ...n-pool-settings-in-my-dashboard-wAxTJ_.mdx | 6 +- ...t-nextjs---supabase-auth-issues-riMCZV.mdx | 2 +- ...change-max-database-connections-_BQ8P5.mdx | 6 +- ...ow-to-delete-a-role-in-postgres-8-AvxY.mdx | 2 +- ...o-delete-vercel-linked-projects-9d08aa.mdx | 8 +- ...t-and-explore-the-postgres-logs-OuCIOj.mdx | 20 ++--- ...ase-auth-helpers-to-ssr-package-5NRunM.mdx | 2 +- .../how-to-view-database-metrics-uqf2z_.mdx | 4 +- .../troubleshooting/http-api-issues.mdx | 16 ++-- ...peeds-by-applying-an-hsnw-index-ohLHUM.mdx | 14 ++-- ...iolates-unique-constraint-error-pi6DnC.mdx | 2 +- ...-function-environment-variables-wg5qOQ.mdx | 2 +- ...when-accessing-pgstatstatements-e5M_EQ.mdx | 2 +- ...ing-supabase-grafana-cpu-charts-9JSlkC.mdx | 8 +- ...ting-supabase-grafana-io-charts-MUynDR.mdx | 12 +-- ...ost-accessforgot-the-mfa-device-nAPT-7.mdx | 6 +- .../migrating-auth-users-between-projects.mdx | 4 +- ...mails-from-the-supabase-project-OFSNzw.mdx | 4 +- .../pausing-pro-projects-vNL-2a.mdx | 8 +- .../pgcron-debugging-guide-n1KTaz.mdx | 26 +++---- .../prisma-error-management-Cm5P_o.mdx | 16 ++-- ...1-relation-does-not-exist-error-W4_9-V.mdx | 4 +- ...00-status-authentication-errors-7bU5U8.mdx | 8 +- ...me-and-managing-your-ip-address-pVlwE0.mdx | 4 +- ...ng-anon-service-and-jwt-secrets-1Jq6yd.mdx | 2 +- .../security-of-anonymous-sign-ins-iOrGCL.mdx | 4 +- ...table-when-changing-column-type-qmZRpZ.mdx | 2 +- ...-query-performance-with-indexes-q8PoC9.mdx | 10 +-- ...ork-ipv4-and-ipv6-compatibility-cHe3BP.mdx | 8 +- .../troubleshooting/supavisor-faq-YyP5tI.mdx | 12 +-- ...nding-postgresql-explain-output-Un9dqX.mdx | 4 +- ...nd-how-they-impact-your-project-KXiJRm.mdx | 6 +- ...-usage-summary-on-the-dashboard-D7Gnle.mdx | 4 +- .../upload-file-size-restrictions-Y4wQLT.mdx | 10 +-- .../using-sqlalchemy-with-supabase-FUqebT.mdx | 6 +- .../webhook-debugging-guide-M8sk47.mdx | 16 ++-- .../features/docs/Troubleshooting.script.mjs | 39 +++++++++- apps/docs/package.json | 2 +- pnpm-lock.yaml | 74 +++++++++---------- supa-mdx-lint.config.toml | 3 + 311 files changed, 952 insertions(+), 912 deletions(-) diff --git a/.github/workflows/docs-lint-v2-scheduled.yml b/.github/workflows/docs-lint-v2-scheduled.yml index 50b05c702c..af9e695594 100644 --- a/.github/workflows/docs-lint-v2-scheduled.yml +++ b/.github/workflows/docs-lint-v2-scheduled.yml @@ -31,10 +31,10 @@ jobs: ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ - key: 3186b58a532c98d7f470f2b887c2b74a086d5f2e + key: 301e0d4b35f8f0c8553b4e93917b8b2685ef2627 - name: install linter if: steps.cache-cargo.outputs.cache-hit != 'true' - run: cargo install --locked --git https://github.com/supabase-community/supa-mdx-lint --rev 3186b58a532c98d7f470f2b887c2b74a086d5f2e + run: cargo install --locked --git https://github.com/supabase-community/supa-mdx-lint --rev 301e0d4b35f8f0c8553b4e93917b8b2685ef2627 - name: run linter env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/docs-lint-v2.yml b/.github/workflows/docs-lint-v2.yml index 2592f49886..89f42c2862 100644 --- a/.github/workflows/docs-lint-v2.yml +++ b/.github/workflows/docs-lint-v2.yml @@ -53,10 +53,10 @@ jobs: ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ - key: 3186b58a532c98d7f470f2b887c2b74a086d5f2e + key: 301e0d4b35f8f0c8553b4e93917b8b2685ef2627 - name: install linter if: steps.filter.outputs.docs == 'true' && steps.cache-cargo.outputs.cache-hit != 'true' - run: cargo install --locked --git https://github.com/supabase-community/supa-mdx-lint --rev 3186b58a532c98d7f470f2b887c2b74a086d5f2e + run: cargo install --locked --git https://github.com/supabase-community/supa-mdx-lint --rev 301e0d4b35f8f0c8553b4e93917b8b2685ef2627 - name: install reviewdog if: steps.filter.outputs.docs == 'true' uses: reviewdog/action-setup@3f401fe1d58fe77e10d665ab713057375e39b887 # v1.3.0 diff --git a/apps/docs/content/_partials/database_setup.mdx b/apps/docs/content/_partials/database_setup.mdx index 5f7dd771a9..dc8ccb952b 100644 --- a/apps/docs/content/_partials/database_setup.mdx +++ b/apps/docs/content/_partials/database_setup.mdx @@ -11,6 +11,6 @@ Your database will be available in less than a minute. You can find your project credentials on the dashboard: -- [Database connection strings](https://supabase.com/dashboard/project/_/settings/api?showConnect=true): Direct and Pooler connection details including the connection string and parameters. -- [Database password](https://supabase.com/dashboard/project/_/database/settings): Reset database password here if you do not have it. -- [API credentials](https://supabase.com/dashboard/project/_/settings/api): your serverless API URL and `anon` / `service_role` keys. +- [Database connection strings](/dashboard/project/_/settings/api?showConnect=true): Direct and Pooler connection details including the connection string and parameters. +- [Database password](/dashboard/project/_/database/settings): Reset database password here if you do not have it. +- [API credentials](/dashboard/project/_/settings/api): your serverless API URL and `anon` / `service_role` keys. diff --git a/apps/docs/content/_partials/migration_warnings.mdx b/apps/docs/content/_partials/migration_warnings.mdx index c875713b09..c221ef2f1d 100644 --- a/apps/docs/content/_partials/migration_warnings.mdx +++ b/apps/docs/content/_partials/migration_warnings.mdx @@ -2,6 +2,6 @@ - If you're planning to migrate a database larger than 6 GB, we recommend [upgrading to at least a Large compute add-on](/docs/guides/platform/compute-add-ons). This will ensure you have the necessary resources to handle the migration efficiently. -- We strongly advise you to pre-provision the disk space you will need for your migration. On paid projects, you can do this by navigating to the [Compute and Disk Settings](https://supabase.com/dashboard/project/_/settings/compute-and-disk) page. For more information on disk scaling and disk limits, check out our [disk settings](https://supabase.com/docs/guides/platform/compute-and-disk#disk) documentation. +- We strongly advise you to pre-provision the disk space you will need for your migration. On paid projects, you can do this by navigating to the [Compute and Disk Settings](/dashboard/project/_/settings/compute-and-disk) page. For more information on disk scaling and disk limits, check out our [disk settings](/docs/guides/platform/compute-and-disk#disk) documentation. diff --git a/apps/docs/content/_partials/project_setup.mdx b/apps/docs/content/_partials/project_setup.mdx index 23519c82bf..fe3596ea12 100644 --- a/apps/docs/content/_partials/project_setup.mdx +++ b/apps/docs/content/_partials/project_setup.mdx @@ -4,7 +4,7 @@ Before you start building you need to set up the Database and API. You can do th ### Create a project -1. [Create a new project](https://supabase.com/dashboard) in the Supabase Dashboard. +1. [Create a new project](/dashboard) in the Supabase Dashboard. 2. Enter your project details. 3. Wait for the new database to launch. @@ -21,7 +21,7 @@ Now set up the database schema. You can use the "User Management Starter" quicks > -1. Go to the [SQL Editor](https://supabase.com/dashboard/project/_/sql) page in the Dashboard. +1. Go to the [SQL Editor](/dashboard/project/_/sql) page in the Dashboard. 2. Click **User Management Starter** under the **Community > Quickstarts** tab. 3. Click **Run**. @@ -61,5 +61,5 @@ Now that you've created some database tables, you are ready to insert data using To do this, you need to get the Project URL and `anon` key from the API settings. -1. Go to the [API Settings](https://supabase.com/dashboard/project/_/settings/api) page in the Dashboard. +1. Go to the [API Settings](/dashboard/project/_/settings/api) page in the Dashboard. 2. Find your Project `URL`, `anon`, and `service_role` keys on this page. diff --git a/apps/docs/content/_partials/quickstart_db_setup.mdx b/apps/docs/content/_partials/quickstart_db_setup.mdx index b8193923ef..76d441a365 100644 --- a/apps/docs/content/_partials/quickstart_db_setup.mdx +++ b/apps/docs/content/_partials/quickstart_db_setup.mdx @@ -24,9 +24,9 @@ curl -X POST https://api.supabase.com/v1/projects \ }' ``` -When your project is up and running, go to the [Table Editor](https://supabase.com/dashboard/project/_/editor), create a new table and insert some data. +When your project is up and running, go to the [Table Editor](/dashboard/project/_/editor), create a new table and insert some data. -Alternatively, you can run the following snippet in your project's [SQL Editor](https://supabase.com/dashboard/project/_/sql/new). This will create a `instruments` table with some sample data. +Alternatively, you can run the following snippet in your project's [SQL Editor](/dashboard/project/_/sql/new). This will create a `instruments` table with some sample data. diff --git a/apps/docs/content/_partials/social_provider_settings_supabase.mdx b/apps/docs/content/_partials/social_provider_settings_supabase.mdx index 199589d207..7587ff9386 100644 --- a/apps/docs/content/_partials/social_provider_settings_supabase.mdx +++ b/apps/docs/content/_partials/social_provider_settings_supabase.mdx @@ -1,6 +1,6 @@ -- Go to your [Supabase Project Dashboard](https://supabase.com/dashboard) +- Go to your [Supabase Project Dashboard](/dashboard) - In the left sidebar, click the `Authentication` icon (near the top) -- Click on [`Providers`](https://supabase.com/dashboard/project/_/auth/providers) under the Configuration section +- Click on [`Providers`](/dashboard/project/_/auth/providers) under the Configuration section - Click on **{{ .provider }}** from the accordion list to expand and turn **{{ .provider }} Enabled** to ON - Enter your **{{ .provider }} Client ID** and **{{ .provider }} Client Secret** saved in the previous step - Click `Save` diff --git a/apps/docs/content/_partials/social_provider_setup.mdx b/apps/docs/content/_partials/social_provider_setup.mdx index ec446552dc..5af559543a 100644 --- a/apps/docs/content/_partials/social_provider_setup.mdx +++ b/apps/docs/content/_partials/social_provider_setup.mdx @@ -1,8 +1,8 @@ The next step requires a callback URL, which looks like this: `https://.supabase.co/auth/v1/callback` -- Go to your [Supabase Project Dashboard](https://supabase.com/dashboard) +- Go to your [Supabase Project Dashboard](/dashboard) - Click on the `Authentication` icon in the left sidebar -- Click on [`Providers`](https://supabase.com/dashboard/project/_/auth/providers) under the Configuration section +- Click on [`Providers`](/dashboard/project/_/auth/providers) under the Configuration section - Click on **{{ .provider }}** from the accordion list to expand and you'll find your **Callback URL**, you can click `Copy` to copy it to the clipboard diff --git a/apps/docs/content/guides/ai/examples/building-chatgpt-plugins.mdx b/apps/docs/content/guides/ai/examples/building-chatgpt-plugins.mdx index f50a79761f..468df1a8d5 100644 --- a/apps/docs/content/guides/ai/examples/building-chatgpt-plugins.mdx +++ b/apps/docs/content/guides/ai/examples/building-chatgpt-plugins.mdx @@ -54,7 +54,7 @@ poetry install ### Step 3: Create a Supabase project -Create a [Supabase project](https://supabase.com/dashboard) and database by following the instructions [here](https://supabase.com/docs/guides/platform). Export the environment variables required for the retrieval plugin to work: +Create a [Supabase project](/dashboard) and database by following the instructions [here](/docs/guides/platform). Export the environment variables required for the retrieval plugin to work: ```bash export OPENAI_API_KEY= diff --git a/apps/docs/content/guides/ai/examples/headless-vector-search.mdx b/apps/docs/content/guides/ai/examples/headless-vector-search.mdx index 993b92c178..7bbf9afc8b 100644 --- a/apps/docs/content/guides/ai/examples/headless-vector-search.mdx +++ b/apps/docs/content/guides/ai/examples/headless-vector-search.mdx @@ -33,7 +33,7 @@ There are 3 steps to build similarity search inside your documentation: ### Prepare your database -To prepare, create a [new Supabase project](https://database.new) and store the database and API credentials, which you can find in the project [settings](https://supabase.com/dashboard/project/_/settings). +To prepare, create a [new Supabase project](https://database.new) and store the database and API credentials, which you can find in the project [settings](/dashboard/project/_/settings). Now we can use the [Headless Vector Search](https://github.com/supabase/headless-vector-search#set-up) instructions to set up the database: @@ -42,7 +42,7 @@ Now we can use the [Headless Vector Search](https://github.com/supabase/headless 3. Apply the database migrations: `supabase db push` 4. Set your OpenAI key as a secret: `supabase secrets set OPENAI_API_KEY=sk-xxx` 5. Deploy the Edge Functions: `supabase functions deploy --no-verify-jwt` -6. Expose `docs` schema via API in Supabase Dashboard [settings](https://supabase.com/dashboard/project/_/settings/api) > `API Settings` > `Exposed schemas` +6. Expose `docs` schema via API in Supabase Dashboard [settings](/dashboard/project/_/settings/api) > `API Settings` > `Exposed schemas` ### Ingest your documentation @@ -112,6 +112,6 @@ const onSubmit = (e: Event) => { ## Resources -- Read about how we built [ChatGPT for the Supabase Docs](https://supabase.com/blog/chatgpt-supabase-docs). +- Read about how we built [ChatGPT for the Supabase Docs](/blog/chatgpt-supabase-docs). - Read the pgvector Docs for [Embeddings and vector similarity](/docs/guides/database/extensions/pgvector) - See how to build something like this from scratch [using Next.js](/docs/guides/ai/examples/nextjs-vector-search). diff --git a/apps/docs/content/guides/ai/examples/huggingface-image-captioning.mdx b/apps/docs/content/guides/ai/examples/huggingface-image-captioning.mdx index 90a34c421f..6ded63808f 100644 --- a/apps/docs/content/guides/ai/examples/huggingface-image-captioning.mdx +++ b/apps/docs/content/guides/ai/examples/huggingface-image-captioning.mdx @@ -6,25 +6,25 @@ video: 'https://www.youtube.com/v/OgnYxRkxEUw' tocVideo: 'OgnYxRkxEUw' --- -We can combine Hugging Face with [Supabase Storage](https://supabase.com/storage) and [Database Webhooks](https://supabase.com/docs/guides/database/webhooks) to automatically caption for any image we upload to a storage bucket. +We can combine Hugging Face with [Supabase Storage](/storage) and [Database Webhooks](/docs/guides/database/webhooks) to automatically caption for any image we upload to a storage bucket. ## About Hugging Face [Hugging Face](https://huggingface.co/) is the collaboration platform for the machine learning community. -[Huggingface.js](https://huggingface.co/docs/huggingface.js/index) provides a convenient way to make calls to 100,000+ Machine Learning models, making it easy to incorporate AI functionality into your [Supabase Edge Functions](https://supabase.com/edge-functions). +[Huggingface.js](https://huggingface.co/docs/huggingface.js/index) provides a convenient way to make calls to 100,000+ Machine Learning models, making it easy to incorporate AI functionality into your [Supabase Edge Functions](/edge-functions). ## Setup -- Open your Supabase project dashboard or [create a new project](https://supabase.com/dashboard/projects). -- [Create a new bucket](https://supabase.com/dashboard/project/_/storage/buckets) called `images`. +- Open your Supabase project dashboard or [create a new project](/dashboard/projects). +- [Create a new bucket](/dashboard/project/_/storage/buckets) called `images`. - Generate TypeScript types from remote Database. - Create a new Database table called `image_caption`. - Create `id` column of type `uuid` which references `storage.objects.id`. - Create a `caption` column of type `text`. - Regenerate TypeScript types to include new `image_caption` table. - Deploy the function to Supabase: `supabase functions deploy huggingface-image-captioning`. -- Create the Database Webhook in the [Supabase Dashboard](https://supabase.com/dashboard/project/_/database/hooks) to trigger the `huggingface-image-captioning` function anytime a record is added to the `storage.objects` table. +- Create the Database Webhook in the [Supabase Dashboard](/dashboard/project/_/database/hooks) to trigger the `huggingface-image-captioning` function anytime a record is added to the `storage.objects` table. ## Generate TypeScript types diff --git a/apps/docs/content/guides/ai/examples/mixpeek-video-search.mdx b/apps/docs/content/guides/ai/examples/mixpeek-video-search.mdx index 1e9b8ad140..ff8b7bafdb 100644 --- a/apps/docs/content/guides/ai/examples/mixpeek-video-search.mdx +++ b/apps/docs/content/guides/ai/examples/mixpeek-video-search.mdx @@ -30,7 +30,7 @@ poetry new video-search ## Setup Supabase project -If you haven't already, [install the Supabase CLI](https://supabase.com/docs/guides/cli), then initialize Supabase in the root of your newly created poetry project: +If you haven't already, [install the Supabase CLI](/docs/guides/cli), then initialize Supabase in the root of your newly created poetry project: ```shell supabase init diff --git a/apps/docs/content/guides/ai/examples/nextjs-vector-search.mdx b/apps/docs/content/guides/ai/examples/nextjs-vector-search.mdx index dc0d3b8fc7..741680e583 100644 --- a/apps/docs/content/guides/ai/examples/nextjs-vector-search.mdx +++ b/apps/docs/content/guides/ai/examples/nextjs-vector-search.mdx @@ -12,19 +12,19 @@ While our [Headless Vector search](/docs/guides/ai/examples/headless-vector-sear 2. Store you embeddings in Postgres using pgvector. 3. Deploy a function for answering your users' questions. -You can read our [Supabase Clippy](https://supabase.com/blog/chatgpt-supabase-docs) blog post for a full example. +You can read our [Supabase Clippy](/blog/chatgpt-supabase-docs) blog post for a full example. We assume that you have a Next.js project with a collection of `.mdx` files nested inside your `pages` directory. We will start developing locally with the Supabase CLI and then push our local database changes to our hosted Supabase project. You can find the [full Next.js example on GitHub](https://github.com/supabase-community/nextjs-openai-doc-search). ## Create a project -1. [Create a new project](https://supabase.com/dashboard) in the Supabase Dashboard. +1. [Create a new project](/dashboard) in the Supabase Dashboard. 1. Enter your project details. 1. Wait for the new database to launch. ## Prepare the database -Let's prepare the database schema. We can use the "OpenAI Vector Search" quickstart in the [SQL Editor](https://supabase.com/dashboard/project/_/sql), or you can copy/paste the SQL below and run it yourself. +Let's prepare the database schema. We can use the "OpenAI Vector Search" quickstart in the [SQL Editor](/dashboard/project/_/sql), or you can copy/paste the SQL below and run it yourself. -1. Go to the [SQL Editor](https://supabase.com/dashboard/project/_/sql) page in the Dashboard. +1. Go to the [SQL Editor](/dashboard/project/_/sql) page in the Dashboard. 2. Click **OpenAI Vector Search**. 3. Click **Run**. @@ -147,7 +147,7 @@ Let's prepare the database schema. We can use the "OpenAI Vector Search" quickst Anytime the user sends a query, we want to find the content that's relevant to their questions. We can do this using pgvector's similarity search. - These are quite complex SQL operations, so let's wrap them in database functions that we can call from our frontend using [RPC](https://supabase.com/docs/reference/javascript/rpc). + These are quite complex SQL operations, so let's wrap them in database functions that we can call from our frontend using [RPC](/docs/reference/javascript/rpc). @@ -527,8 +527,8 @@ const handleConfirm = React.useCallback( Want to learn more about the awesome tech that is powering this? -- Read about how we built [ChatGPT for the Supabase Docs](https://supabase.com/blog/chatgpt-supabase-docs). -- Read the pgvector Docs for [Embeddings and vector similarity](https://supabase.com/docs/guides/database/extensions/pgvector) +- Read about how we built [ChatGPT for the Supabase Docs](/blog/chatgpt-supabase-docs). +- Read the pgvector Docs for [Embeddings and vector similarity](/docs/guides/database/extensions/pgvector) - Watch Greg's video for a full breakdown:
diff --git a/apps/docs/content/guides/ai/examples/semantic-image-search-amazon-titan.mdx b/apps/docs/content/guides/ai/examples/semantic-image-search-amazon-titan.mdx index 134831fd32..0110be7196 100644 --- a/apps/docs/content/guides/ai/examples/semantic-image-search-amazon-titan.mdx +++ b/apps/docs/content/guides/ai/examples/semantic-image-search-amazon-titan.mdx @@ -34,7 +34,7 @@ If you haven't already, head over to [database.new](https://database.new) and cr When creating your project, make sure to note down your database password as you will need it to construct the `DB_URL` in the next step. -You can find your database connection string on your project dashboard, click [Connect](https://supabase.com/dashboard/project/_?showConnect=true). Use the Session pooler connection string which looks like this: +You can find your database connection string on your project dashboard, click [Connect](/dashboard/project/_?showConnect=true). Use the Session pooler connection string which looks like this: ```txt postgresql://postgres.[PROJECT-REF]:[YOUR-PASSWORD]@aws-0-[REGION].pooler.supabase.com:5432/postgres @@ -188,7 +188,7 @@ seed = "image_search.main:seed" search = "image_search.main:search" ``` -After activating the virtual environment with `poetry shell` you can now run your seed script via `poetry run seed`. You can inspect the generated embeddings in your Supabase Dashboard by visiting the [Table Editor](https://supabase.com/dashboard/project/_/editor), selecting the `vecs` schema, and the `image_vectors` table. +After activating the virtual environment with `poetry shell` you can now run your seed script via `poetry run seed`. You can inspect the generated embeddings in your Supabase Dashboard by visiting the [Table Editor](/dashboard/project/_/editor), selecting the `vecs` schema, and the `image_vectors` table. ## Perform an image search from a text query diff --git a/apps/docs/content/guides/ai/going-to-prod.mdx b/apps/docs/content/guides/ai/going-to-prod.mdx index 5d43a161a6..388f714dd0 100644 --- a/apps/docs/content/guides/ai/going-to-prod.mdx +++ b/apps/docs/content/guides/ai/going-to-prod.mdx @@ -26,7 +26,7 @@ On the other hand, if you need to scale your application, you will need to [crea ## HNSW vs IVFFlat indexes -`pgvector` supports two types of indexes: HNSW and IVFFlat. We recommend using [HNSW](/docs/guides/ai/vector-indexes/hnsw-indexes) because of its [performance](https://supabase.com/blog/increase-performance-pgvector-hnsw#hnsw-performance-1536-dimensions) and [robustness against changing data](/docs/guides/ai/vector-indexes/hnsw-indexes#when-should-you-create-hnsw-indexes). +`pgvector` supports two types of indexes: HNSW and IVFFlat. We recommend using [HNSW](/docs/guides/ai/vector-indexes/hnsw-indexes) because of its [performance](/blog/increase-performance-pgvector-hnsw#hnsw-performance-1536-dimensions) and [robustness against changing data](/docs/guides/ai/vector-indexes/hnsw-indexes#when-should-you-create-hnsw-indexes). dbpedia embeddings comparing ivfflat and hnsw queries-per-second using the 4XL compute add-on @@ -60,7 +60,7 @@ You must use the "connection pooling" string (domain ending in `*.pooler.supabas Now all that's left is to step through the notebook. You can do this by clicking the "execute" button (`ctrl+enter`) at the top left of each code cell. The notebook guides you through the process of creating a collection, adding data to it, and querying it. -You can view the inserted items in the [Table Editor](https://supabase.com/dashboard/project/_/editor/), by selecting the `vecs` schema from the schema dropdown. +You can view the inserted items in the [Table Editor](/dashboard/project/_/editor/), by selecting the `vecs` schema from the schema dropdown. ![Colab documents](/docs/img/ai/google-colab/colab-documents.png) diff --git a/apps/docs/content/guides/ai/langchain.mdx b/apps/docs/content/guides/ai/langchain.mdx index f0874ca37a..4315c88a0f 100644 --- a/apps/docs/content/guides/ai/langchain.mdx +++ b/apps/docs/content/guides/ai/langchain.mdx @@ -20,7 +20,7 @@ Prepare you database with the relevant tables: > -1. Go to the [SQL Editor](https://supabase.com/dashboard/project/_/sql) page in the Dashboard. +1. Go to the [SQL Editor](/dashboard/project/_/sql) page in the Dashboard. 2. Click **LangChain** in the Quick start section. 3. Click **Run**. @@ -147,7 +147,7 @@ export const run = async () => { ### Advanced metadata filtering -You can also use query builder-style filtering ([similar to how the Supabase JavaScript library works](https://supabase.com/docs/reference/javascript/using-filters)) instead of passing an object. Note that since the filter properties will be in the metadata column, you need to use arrow operators (`->` for integer or `->>` for text) as defined in [PostgREST API documentation](https://postgrest.org/en/stable/references/api/tables_views.html?highlight=operators#json-columns) and specify the data type of the property (e.g. the column should look something like `metadata->some_int_value::int`). +You can also use query builder-style filtering ([similar to how the Supabase JavaScript library works](/docs/reference/javascript/using-filters)) instead of passing an object. Note that since the filter properties will be in the metadata column, you need to use arrow operators (`->` for integer or `->>` for text) as defined in [PostgREST API documentation](https://postgrest.org/en/stable/references/api/tables_views.html?highlight=operators#json-columns) and specify the data type of the property (e.g. the column should look something like `metadata->some_int_value::int`). ```js import { SupabaseFilterRPCCall, SupabaseVectorStore } from 'langchain/vectorstores/supabase' diff --git a/apps/docs/content/guides/ai/python-clients.mdx b/apps/docs/content/guides/ai/python-clients.mdx index 7bbff8aa1a..a617f0e11c 100644 --- a/apps/docs/content/guides/ai/python-clients.mdx +++ b/apps/docs/content/guides/ai/python-clients.mdx @@ -11,7 +11,7 @@ For data science or ephemeral workloads, the [Supabase Vecs](https://supabase.gi -Click [**Connect**](https://supabase.com/dashboard/project/_/?showConnect=true) at the top of any project page to get your connection string. +Click [**Connect**](/dashboard/project/_/?showConnect=true) at the top of any project page to get your connection string. Copy the URI from the **Shared pooler** option. diff --git a/apps/docs/content/guides/ai/quickstarts/face-similarity.mdx b/apps/docs/content/guides/ai/quickstarts/face-similarity.mdx index 1f4894d586..6955ffa691 100644 --- a/apps/docs/content/guides/ai/quickstarts/face-similarity.mdx +++ b/apps/docs/content/guides/ai/quickstarts/face-similarity.mdx @@ -40,7 +40,7 @@ DB_CONNECTION = "postgresql://:@:/" vx = vecs.create_client(DB_CONNECTION) ``` -Replace the `DB_CONNECTION` with your own connection string. You can find the connection string on your project dashboard by clicking [Connect](https://supabase.com/dashboard/project/_?showConnect=true). +Replace the `DB_CONNECTION` with your own connection string. You can find the connection string on your project dashboard by clicking [Connect](/dashboard/project/_?showConnect=true). @@ -58,7 +58,7 @@ You must use the "connection pooling" string (domain ending in `*.pooler.supabas Now all that's left is to step through the notebook. You can do this by clicking the "execute" button (`ctrl+enter`) at the top left of each code cell. The notebook guides you through the process of creating a collection, adding data to it, and querying it. -You can view the inserted items in the [Table Editor](https://supabase.com/dashboard/project/_/editor/), by selecting the `vecs` schema from the schema dropdown. +You can view the inserted items in the [Table Editor](/dashboard/project/_/editor/), by selecting the `vecs` schema from the schema dropdown. ![Colab documents](/docs/img/ai/google-colab/colab-documents.png) diff --git a/apps/docs/content/guides/ai/quickstarts/hello-world.mdx b/apps/docs/content/guides/ai/quickstarts/hello-world.mdx index cbea52b2c5..5a711d43dc 100644 --- a/apps/docs/content/guides/ai/quickstarts/hello-world.mdx +++ b/apps/docs/content/guides/ai/quickstarts/hello-world.mdx @@ -41,7 +41,7 @@ DB_CONNECTION = "postgresql://:@:/" vx = vecs.create_client(DB_CONNECTION) ``` -Replace the `DB_CONNECTION` with your Session pooler connection string. You can find the connection string on your project dashboard by clicking [Connect](https://supabase.com/dashboard/project/_?showConnect=true). +Replace the `DB_CONNECTION` with your Session pooler connection string. You can find the connection string on your project dashboard by clicking [Connect](/dashboard/project/_?showConnect=true). @@ -59,7 +59,7 @@ You must use the Session pooler connection string with Google Colab since Colab Now all that's left is to step through the notebook. You can do this by clicking the "execute" button (`ctrl+enter`) at the top left of each code cell. The notebook guides you through the process of creating a collection, adding data to it, and querying it. -You can view the inserted items in the [Table Editor](https://supabase.com/dashboard/project/_/editor/), by selecting the `vecs` schema from the schema dropdown. +You can view the inserted items in the [Table Editor](/dashboard/project/_/editor/), by selecting the `vecs` schema from the schema dropdown. ![Colab documents](/docs/img/ai/google-colab/colab-documents.png) diff --git a/apps/docs/content/guides/ai/quickstarts/text-deduplication.mdx b/apps/docs/content/guides/ai/quickstarts/text-deduplication.mdx index 34c183f08b..9bb07c30b3 100644 --- a/apps/docs/content/guides/ai/quickstarts/text-deduplication.mdx +++ b/apps/docs/content/guides/ai/quickstarts/text-deduplication.mdx @@ -41,7 +41,7 @@ DB_CONNECTION = "postgresql://:@:/" vx = vecs.create_client(DB_CONNECTION) ``` -Replace the `DB_CONNECTION` with your own connection string. You can find the connection string on your project dashboard by clicking [Connect](https://supabase.com/dashboard/project/_?showConnect=true). +Replace the `DB_CONNECTION` with your own connection string. You can find the connection string on your project dashboard by clicking [Connect](/dashboard/project/_?showConnect=true). @@ -59,7 +59,7 @@ You must use the "connection pooling" string (domain ending in `*.pooler.supabas Now all that's left is to step through the notebook. You can do this by clicking the "execute" button (`ctrl+enter`) at the top left of each code cell. The notebook guides you through the process of creating a collection, adding data to it, and querying it. -You can view the inserted items in the [Table Editor](https://supabase.com/dashboard/project/_/editor/), by selecting the `vecs` schema from the schema dropdown. +You can view the inserted items in the [Table Editor](/dashboard/project/_/editor/), by selecting the `vecs` schema from the schema dropdown. ![Colab documents](/docs/img/ai/google-colab/colab-documents.png) diff --git a/apps/docs/content/guides/ai/rag-with-permissions.mdx b/apps/docs/content/guides/ai/rag-with-permissions.mdx index edd7a45031..20156f36c2 100644 --- a/apps/docs/content/guides/ai/rag-with-permissions.mdx +++ b/apps/docs/content/guides/ai/rag-with-permissions.mdx @@ -113,13 +113,13 @@ You may have an existing system that stores users, documents, and their permissi -RLS is latency-sensitive, so extra caution should be taken before implementing this method. Use the [query plan analyzer](https://supabase.com/docs/guides/platform/performance#optimizing-poor-performing-queries) to measure execution times for your queries to ensure they are within expected ranges. For enterprise applications, contact enterprise@supabase.io. +RLS is latency-sensitive, so extra caution should be taken before implementing this method. Use the [query plan analyzer](/docs/guides/platform/performance#optimizing-poor-performing-queries) to measure execution times for your queries to ensure they are within expected ranges. For enterprise applications, contact enterprise@supabase.io. -For data sources other than Postgres, see [Foreign Data Wrappers](/docs/guides/database/extensions/wrappers/overview) for a list of external sources supported today. If your data lives in a source not provided in the list, contact [support](https://supabase.com/dashboard/support/new) and we'll be happy to discuss your use case. +For data sources other than Postgres, see [Foreign Data Wrappers](/docs/guides/database/extensions/wrappers/overview) for a list of external sources supported today. If your data lives in a source not provided in the list, contact [support](/dashboard/support/new) and we'll be happy to discuss your use case. @@ -189,7 +189,7 @@ Since we're managing users and authentication outside of Supabase, we have two o #### Direct Postgres connection -You can directly connect to your Supabase Postgres DB using the [connection info](https://supabase.com/dashboard/project/_/?showConnect=true) on a project page. To use RLS with this method, we use a custom session variable that contains the current user's ID: +You can directly connect to your Supabase Postgres DB using the [connection info](/dashboard/project/_/?showConnect=true) on a project page. To use RLS with this method, we use a custom session variable that contains the current user's ID: ```sql -- enable row level security @@ -271,4 +271,4 @@ order by document_sections.embedding <#> embedding; There are endless approaches to this problem based on the complexities of each system. Luckily Postgres comes with all the primitives needed to provide access control in the way that works best for your project. -If the examples above didn't fit your use case or you need to adjust them slightly to better fit your existing system, feel free to reach out to [support](https://supabase.com/dashboard/support/new) and we'll be happy to assist you. +If the examples above didn't fit your use case or you need to adjust them slightly to better fit your existing system, feel free to reach out to [support](/dashboard/support/new) and we'll be happy to assist you. diff --git a/apps/docs/content/guides/ai/vector-columns.mdx b/apps/docs/content/guides/ai/vector-columns.mdx index 3cc7990589..9767dfcc07 100644 --- a/apps/docs/content/guides/ai/vector-columns.mdx +++ b/apps/docs/content/guides/ai/vector-columns.mdx @@ -22,7 +22,7 @@ Vectors in Supabase are enabled via [pgvector](https://github.com/pgvector/pgvec > -1. Go to the [Database](https://supabase.com/dashboard/project/_/database/tables) page in the Dashboard. +1. Go to the [Database](/dashboard/project/_/database/tables) page in the Dashboard. 2. Click on **Extensions** in the sidebar. 3. Search for "vector" and enable the extension. @@ -63,7 +63,7 @@ In the above SQL snippet, we create a `documents` table with a column called `em -In general, embeddings with fewer dimensions perform best. See our [analysis on fewer dimensions in pgvector](https://supabase.com/blog/fewer-dimensions-are-better-pgvector). +In general, embeddings with fewer dimensions perform best. See our [analysis on fewer dimensions in pgvector](/blog/fewer-dimensions-are-better-pgvector). diff --git a/apps/docs/content/guides/ai/vector-indexes.mdx b/apps/docs/content/guides/ai/vector-indexes.mdx index 03883a0b5c..93b4d303e7 100644 --- a/apps/docs/content/guides/ai/vector-indexes.mdx +++ b/apps/docs/content/guides/ai/vector-indexes.mdx @@ -14,7 +14,7 @@ Today `pgvector` supports two types of indexes: - [HNSW](/docs/guides/ai/vector-indexes/hnsw-indexes) - [IVFFlat](/docs/guides/ai/vector-indexes/ivf-indexes) -In general we recommend using [HNSW](/docs/guides/ai/vector-indexes/hnsw-indexes) because of its [performance](https://supabase.com/blog/increase-performance-pgvector-hnsw#hnsw-performance-1536-dimensions) and [robustness against changing data](/docs/guides/ai/vector-indexes/hnsw-indexes#when-should-you-create-hnsw-indexes). +In general we recommend using [HNSW](/docs/guides/ai/vector-indexes/hnsw-indexes) because of its [performance](/blog/increase-performance-pgvector-hnsw#hnsw-performance-1536-dimensions) and [robustness against changing data](/docs/guides/ai/vector-indexes/hnsw-indexes#when-should-you-create-hnsw-indexes). ## Distance operators diff --git a/apps/docs/content/guides/ai/vector-indexes/ivf-indexes.mdx b/apps/docs/content/guides/ai/vector-indexes/ivf-indexes.mdx index 3262a6c584..61b9ae38f2 100644 --- a/apps/docs/content/guides/ai/vector-indexes/ivf-indexes.mdx +++ b/apps/docs/content/guides/ai/vector-indexes/ivf-indexes.mdx @@ -14,7 +14,7 @@ Today `pgvector` supports two types of indexes: - [HNSW](/docs/guides/ai/vector-indexes/hnsw-indexes) - [IVFFlat](/docs/guides/ai/vector-indexes/ivf-indexes) -In general we recommend using [HNSW](/docs/guides/ai/vector-indexes/hnsw-indexes) because of its [performance](https://supabase.com/blog/increase-performance-pgvector-hnsw#hnsw-performance-1536-dimensions) and [robustness against changing data](/docs/guides/ai/vector-indexes/hnsw-indexes#when-should-you-create-hnsw-indexes). If you have a special use case that requires IVFFlat instead, keep reading. +In general we recommend using [HNSW](/docs/guides/ai/vector-indexes/hnsw-indexes) because of its [performance](/blog/increase-performance-pgvector-hnsw#hnsw-performance-1536-dimensions) and [robustness against changing data](/docs/guides/ai/vector-indexes/hnsw-indexes#when-should-you-create-hnsw-indexes). If you have a special use case that requires IVFFlat instead, keep reading. ## Usage diff --git a/apps/docs/content/guides/api.mdx b/apps/docs/content/guides/api.mdx index 250ec91050..0f4c62d574 100644 --- a/apps/docs/content/guides/api.mdx +++ b/apps/docs/content/guides/api.mdx @@ -43,4 +43,4 @@ Reference: ## API URL and keys -You can find the API URL and Keys in the [Dashboard](https://supabase.com/dashboard/project/_/settings/api-keys). +You can find the API URL and Keys in the [Dashboard](/dashboard/project/_/settings/api-keys). diff --git a/apps/docs/content/guides/api/creating-routes.mdx b/apps/docs/content/guides/api/creating-routes.mdx index 6ef1b30c0d..2e987ce107 100644 --- a/apps/docs/content/guides/api/creating-routes.mdx +++ b/apps/docs/content/guides/api/creating-routes.mdx @@ -20,7 +20,7 @@ This creates a corresponding route `todos` which can accept `GET`, `POST`, `PATC > -1. Go to the [Table editor](https://supabase.com/dashboard/project/_/editor) page in the Dashboard. +1. Go to the [Table editor](/dashboard/project/_/editor) page in the Dashboard. 1. Click **New Table** and create a table with the name `todos`. 1. Click **Save**. 1. Click **New Column** and create a column with the name `task` and type `text`. @@ -52,7 +52,7 @@ create table Every Supabase project has a unique API URL. Your API is secured behind an API gateway which requires an API Key for every request. -1. Go to the [Settings](https://supabase.com/dashboard/project/_/settings/general) page in the Dashboard. +1. Go to the [Settings](/dashboard/project/_/settings/general) page in the Dashboard. 2. Click **API** in the sidebar. 3. Find your API `URL`, `anon`, and `service_role` keys on this page. diff --git a/apps/docs/content/guides/api/quickstart.mdx b/apps/docs/content/guides/api/quickstart.mdx index 432838a2aa..8155833590 100644 --- a/apps/docs/content/guides/api/quickstart.mdx +++ b/apps/docs/content/guides/api/quickstart.mdx @@ -14,9 +14,9 @@ We'll create a database table called `todos` for storing tasks. This creates a c - [Create a new project](https://supabase.com/dashboard) in the Supabase Dashboard. + [Create a new project](/dashboard) in the Supabase Dashboard. - After your project is ready, create a table in your Supabase database. You can do this with either the Table interface or the [SQL Editor](https://supabase.com/dashboard/project/_/sql). + After your project is ready, create a table in your Supabase database. You can do this with either the Table interface or the [SQL Editor](/dashboard/project/_/sql). @@ -109,7 +109,7 @@ We'll create a database table called `todos` for storing tasks. This creates a c - Find your API URL and Keys in your Dashboard [API Settings](https://supabase.com/dashboard/project/_/settings/api). You can now query your "todos" table by appending `/rest/v1/todos` to the API URL. + Find your API URL and Keys in your Dashboard [API Settings](/dashboard/project/_/settings/api). You can now query your "todos" table by appending `/rest/v1/todos` to the API URL. Copy this block of code, substitute `` and ``, then run it from a terminal. diff --git a/apps/docs/content/guides/api/rest/auto-generated-docs.mdx b/apps/docs/content/guides/api/rest/auto-generated-docs.mdx index 7a26b6856b..7357392b58 100644 --- a/apps/docs/content/guides/api/rest/auto-generated-docs.mdx +++ b/apps/docs/content/guides/api/rest/auto-generated-docs.mdx @@ -4,9 +4,9 @@ title: 'Auto-generated documentation' description: 'Supabase provides documentation that updates automatically.' --- -Supabase generates documentation in the [Dashboard](https://supabase.com/dashboard) which updates as you make database changes. +Supabase generates documentation in the [Dashboard](/dashboard) which updates as you make database changes. -1. Go to the [API](https://supabase.com/dashboard/project/_/api) page in the Dashboard. +1. Go to the [API](/dashboard/project/_/api) page in the Dashboard. 2. Select any table under **Tables and Views** in the sidebar. 3. Switch between the JavaScript and the cURL docs using the tabs. diff --git a/apps/docs/content/guides/api/rest/client-libs.mdx b/apps/docs/content/guides/api/rest/client-libs.mdx index 7a19ded8c0..a40cc247fb 100644 --- a/apps/docs/content/guides/api/rest/client-libs.mdx +++ b/apps/docs/content/guides/api/rest/client-libs.mdx @@ -9,19 +9,19 @@ Supabase provides client libraries for the REST and Realtime APIs. Some librarie ## Official libraries -| `Language` | `Source Code` | `Documentation` | -| --------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | -| Javascript/Typescript | [supabase-js](https://github.com/supabase/supabase-js) | [Docs](https://supabase.com/docs/reference/javascript/introduction) | -| Dart/Flutter | [supabase-flutter](https://github.com/supabase/supabase-flutter/tree/main/packages/supabase_flutter) | [Docs](https://supabase.com/docs/reference/dart/introduction) | -| Swift | [supabase-swift](https://github.com/supabase/supabase-swift) | [Docs](https://supabase.com/docs/reference/swift/introduction) | -| Python | [supabase-py](https://github.com/supabase/supabase-py) | [Docs](https://supabase.com/docs/reference/python/initializing) | +| `Language` | `Source Code` | `Documentation` | +| --------------------- | ---------------------------------------------------------------------------------------------------- | ----------------------------------------------- | +| Javascript/Typescript | [supabase-js](https://github.com/supabase/supabase-js) | [Docs](/docs/reference/javascript/introduction) | +| Dart/Flutter | [supabase-flutter](https://github.com/supabase/supabase-flutter/tree/main/packages/supabase_flutter) | [Docs](/docs/reference/dart/introduction) | +| Swift | [supabase-swift](https://github.com/supabase/supabase-swift) | [Docs](/docs/reference/swift/introduction) | +| Python | [supabase-py](https://github.com/supabase/supabase-py) | [Docs](/docs/reference/python/initializing) | ## Community libraries -| `Language` | `Source Code` | `Documentation` | -| ----------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------------- | -| C# | [supabase-csharp](https://github.com/supabase-community/supabase-csharp) | [Docs](https://supabase.com/docs/reference/csharp/introduction) | -| Go | [supabase-go](https://github.com/supabase-community/supabase-go) | | -| Kotlin | [supabase-kt](https://github.com/supabase-community/supabase-kt) | [Docs](https://supabase.com/docs/reference/kotlin/introduction) | -| Ruby | [supabase-rb](https://github.com/supabase-community/supabase-rb) | | -| Godot Engine (GDScript) | [supabase-gdscript](https://github.com/supabase-community/godot-engine.supabase) | | +| `Language` | `Source Code` | `Documentation` | +| ----------------------- | -------------------------------------------------------------------------------- | ------------------------------------------- | +| C# | [supabase-csharp](https://github.com/supabase-community/supabase-csharp) | [Docs](/docs/reference/csharp/introduction) | +| Go | [supabase-go](https://github.com/supabase-community/supabase-go) | | +| Kotlin | [supabase-kt](https://github.com/supabase-community/supabase-kt) | [Docs](/docs/reference/kotlin/introduction) | +| Ruby | [supabase-rb](https://github.com/supabase-community/supabase-rb) | | +| Godot Engine (GDScript) | [supabase-gdscript](https://github.com/supabase-community/godot-engine.supabase) | | diff --git a/apps/docs/content/guides/api/rest/generating-types.mdx b/apps/docs/content/guides/api/rest/generating-types.mdx index d74f2ce603..3f10c9dee3 100644 --- a/apps/docs/content/guides/api/rest/generating-types.mdx +++ b/apps/docs/content/guides/api/rest/generating-types.mdx @@ -10,7 +10,7 @@ Supabase APIs are generated from your database, which means that we can use data ## Generating types from project dashboard -Supabase allows you to generate and download TypeScript types directly from the [project dashboard](https://supabase.com/dashboard/project/_/api?page=tables-intro). +Supabase allows you to generate and download TypeScript types directly from the [project dashboard](/dashboard/project/_/api?page=tables-intro). ## Generating types using Supabase CLI diff --git a/apps/docs/content/guides/api/using-custom-schemas.mdx b/apps/docs/content/guides/api/using-custom-schemas.mdx index 55af9da01d..ed14471b84 100644 --- a/apps/docs/content/guides/api/using-custom-schemas.mdx +++ b/apps/docs/content/guides/api/using-custom-schemas.mdx @@ -18,7 +18,7 @@ CREATE SCHEMA myschema; You can expose custom database schemas - to do so you need to follow these steps: -1. Go to [API settings](https://supabase.com/dashboard/project/_/settings/api) and add your custom schema to "Exposed schemas". +1. Go to [API settings](/dashboard/project/_/settings/api) and add your custom schema to "Exposed schemas". 2. Run the following SQL, substituting `myschema` with your schema name: ```sql diff --git a/apps/docs/content/guides/auth/auth-captcha.mdx b/apps/docs/content/guides/auth/auth-captcha.mdx index 9d5e8c99da..d28f7df4a6 100644 --- a/apps/docs/content/guides/auth/auth-captcha.mdx +++ b/apps/docs/content/guides/auth/auth-captcha.mdx @@ -41,7 +41,7 @@ In the Settings page, look for the **Sitekey** section and copy the key. ## Enable CAPTCHA protection for your Supabase project -Navigate to the **[Auth](https://supabase.com/dashboard/project/_/settings/auth)** section of your Project Settings in the Supabase Dashboard and find the **Enable CAPTCHA protection** toggle under Settings > Authentication > Bot and Abuse Protection > Enable CAPTCHA protection. +Navigate to the **[Auth](/dashboard/project/_/settings/auth)** section of your Project Settings in the Supabase Dashboard and find the **Enable CAPTCHA protection** toggle under Settings > Authentication > Bot and Abuse Protection > Enable CAPTCHA protection. Select your CAPTCHA provider from the dropdown, enter your CAPTCHA **Secret key**, and click **Save**. diff --git a/apps/docs/content/guides/auth/auth-helpers/auth-ui.mdx b/apps/docs/content/guides/auth/auth-helpers/auth-ui.mdx index bda36fa1ae..810e447bb2 100644 --- a/apps/docs/content/guides/auth/auth-helpers/auth-ui.mdx +++ b/apps/docs/content/guides/auth/auth-helpers/auth-ui.mdx @@ -9,7 +9,7 @@ sitemapPriority: 0.5 As of 7th Feb 2024, [this repository](https://github.com/supabase-community/auth-ui) is no longer maintained by the Supabase Team. At the moment, the team does not have capacity to give the expected level of care to this repository. We may revisit Auth UI in the future but regrettably have to leave it on hold for now as we focus on other priorities such as improving the Server-Side Rendering (SSR) package and advanced Auth primitives. -As an alternative you can use the [Supabase UI Library](https://supabase.com/ui) which has auth ready blocks to use in your projects. +As an alternative you can use the [Supabase UI Library](/ui) which has auth ready blocks to use in your projects. diff --git a/apps/docs/content/guides/auth/auth-helpers/nextjs-pages.mdx b/apps/docs/content/guides/auth/auth-helpers/nextjs-pages.mdx index 7e276930bb..cae3db4e57 100644 --- a/apps/docs/content/guides/auth/auth-helpers/nextjs-pages.mdx +++ b/apps/docs/content/guides/auth/auth-helpers/nextjs-pages.mdx @@ -53,7 +53,7 @@ npm install @supabase/auth-helpers-react ## Set up environment variables -Retrieve your project URL and anon key in your project's [API settings](https://supabase.com/dashboard/project/_/settings/api) in the Dashboard to set up the following environment variables. For local development you can set them in a `.env.local` file. See an [example](https://github.com/supabase/auth-helpers/blob/main/examples/nextjs/.env.local.example). +Retrieve your project URL and anon key in your project's [API settings](/dashboard/project/_/settings/api) in the Dashboard to set up the following environment variables. For local development you can set them in a `.env.local` file. See an [example](https://github.com/supabase/auth-helpers/blob/main/examples/nextjs/.env.local.example). ```bash .env.local NEXT_PUBLIC_SUPABASE_URL=your-supabase-url @@ -132,7 +132,7 @@ You can now determine if a user is authenticated by checking that the `user` obj ### Code Exchange API route -The `Code Exchange` API route is required for the [server-side auth flow](https://supabase.com/docs/guides/auth/server-side-rendering) implemented by the Next.js Auth Helpers. It exchanges an auth `code` for the user's `session`, which is set as a cookie for future requests made to Supabase. +The `Code Exchange` API route is required for the [server-side auth flow](/docs/guides/auth/server-side-rendering) implemented by the Next.js Auth Helpers. It exchanges an auth `code` for the user's `session`, which is set as a cookie for future requests made to Supabase. -Ensure you have [enabled replication](https://supabase.com/dashboard/project/_/database/publications) on the table you are subscribing to. +Ensure you have [enabled replication](/dashboard/project/_/database/publications) on the table you are subscribing to. diff --git a/apps/docs/content/guides/auth/auth-helpers/sveltekit.mdx b/apps/docs/content/guides/auth/auth-helpers/sveltekit.mdx index c518caeba9..5b96f99bcc 100644 --- a/apps/docs/content/guides/auth/auth-helpers/sveltekit.mdx +++ b/apps/docs/content/guides/auth/auth-helpers/sveltekit.mdx @@ -40,7 +40,7 @@ npm install @supabase/auth-helpers-sveltekit @supabase/supabase-js ### Declare environment variables -Retrieve your project's URL and anon key from your [API settings](https://supabase.com/dashboard/project/_/settings/api), and create a `.env.local` file with the following environment variables: +Retrieve your project's URL and anon key from your [API settings](/dashboard/project/_/settings/api), and create a `.env.local` file with the following environment variables: ```bash .env.local # Find these in your Supabase project settings https://supabase.com/dashboard/project/_/settings/api @@ -161,7 +161,7 @@ Note that we are specifying `filterSerializedResponseHeaders` here. We need to t ### Code Exchange route -The `Code Exchange` route is required for the [server-side auth flow](https://supabase.com/docs/guides/auth/server-side-rendering) implemented by the SvelteKit Auth Helpers. It exchanges an auth `code` for the user's `session`, which is set as a cookie for future requests made to Supabase. +The `Code Exchange` route is required for the [server-side auth flow](/docs/guides/auth/server-side-rendering) implemented by the SvelteKit Auth Helpers. It exchanges an auth `code` for the user's `session`, which is set as a cookie for future requests made to Supabase. { ### Generate types from your database -In order to get the most out of TypeScript and its IntelliSense, you should import the generated Database types into the `app.d.ts` type definition file that comes with your SvelteKit project, where `import('./DatabaseDefinitions')` points to the generated types file outlined in [v2 docs here](https://supabase.com/docs/reference/javascript/release-notes#typescript-support) after you have logged in, linked, and generated types through the Supabase CLI. +In order to get the most out of TypeScript and its IntelliSense, you should import the generated Database types into the `app.d.ts` type definition file that comes with your SvelteKit project, where `import('./DatabaseDefinitions')` points to the generated types file outlined in [v2 docs here](/docs/reference/javascript/release-notes#typescript-support) after you have logged in, linked, and generated types through the Supabase CLI. ```ts src/app.d.ts // src/app.d.ts @@ -368,7 +368,7 @@ export const load = async ({ fetch, data, depends }) => { -TypeScript types can be [generated with the Supabase CLI](https://supabase.com/docs/reference/javascript/typescript-support) and passed to `createSupabaseLoadClient` to add type support to the Supabase client. +TypeScript types can be [generated with the Supabase CLI](/docs/reference/javascript/typescript-support) and passed to `createSupabaseLoadClient` to add type support to the Supabase client. @@ -785,7 +785,7 @@ export const handle: Handle = sequence(supabase, authorization) ### Client-side data fetching with RLS -For [row level security](https://supabase.com/docs/guides/database/postgres/row-level-security) to work properly when fetching data client-side, you need to use `supabaseClient` from `PageData` and only run your query once the session is defined client-side: +For [row level security](/docs/guides/database/postgres/row-level-security) to work properly when fetching data client-side, you need to use `supabaseClient` from `PageData` and only run your query once the session is defined client-side: ```svelte src/routes/+page.svelte