mirror of
https://github.com/supabase/supabase.git
synced 2026-10-09 11:25:06 +03:00
9be04ceed6fd07fac0ef4015ffdd34fa7b06e299
2279
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
77e3b4382f |
feat(role): Allow eligible organizations to invite users as 'No-access' base role (#50922)
## Problem As the API has allow inviting users into `None / No-access` role for team, enterprise, and platform tier organization, we need to update the documentation and descriptions for this new role on the invitation form. ## Solution 1. Updated `apps/docs/content/guides/platform/access-control.mdx` to include the role 2. Added the role description on `apps/studio/components/interfaces/Organization/TeamSettings/Roles.constants.tsx` 3. Add the roles into the proper sorting order at `apps/studio/data/organization-members/organization-roles-query.ts` 4. Add logic to invitation components to disable the role when inviting user into project(s), as the backend does not allow it. ## Testing and verification steps The UI: https://studio-staging-aa8is1m07-supabase.vercel.app/dashboard/org Documentation: https://docs-kht98bi78-supabase.vercel.app/docs/guides/platform/access-control <!-- ## Preview links If relevant, include links to changed pages for easy review access. Copy the preview base URL from the Vercel bot comment on this PR. Use the following table as an example template. | Site | Live | Preview | Search for | | -------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------- | | WWW | [/blog/your-post](https://supabase.com/blog/your-post) | [/blog/your-post](https://zone-www-dot-com-git-branch-name-supabase.vercel.app/blog/your-post) | unique phrase from the change | | Docs | [/docs/guides/your-page](https://supabase.com/docs/guides/your-page) | [/docs/guides/your-page](https://docs-git-branch-name-supabase.vercel.app/docs/guides/your-page) | unique phrase from the change | | Studio | [/dashboard](https://supabase.com/dashboard) | [/dashboard](https://studio-git-branch-name-supabase.vercel.app/dashboard) | unique phrase from the change | | Design system | [/design-system](https://supabase.com/design-system) | [/design-system](https://design-system-git-branch-name-supabase.vercel.app/design-system) | unique phrase from the change | | UI library | [/library](https://supabase.com/library) | [/library](https://ui-library-git-branch-name-supabase.vercel.app/library) | unique phrase from the change | | Knowledge base | [/kb/guides/your-page](https://supabase.com/kb/guides/your-page) | [/kb/guides/your-page](https://kb-git-branch-name-supabase.vercel.app/kb/guides/your-page) | unique phrase from the change | --> <!-- ## Additional context Optionally add any other context or screenshots. --> ## Checklist Check all before review: - [x] I have read [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) - [x] If I wrote a new docs topic or edited an existing topic, I used the `/write-the-docs` or `/edit-the-docs` skill, which references [WORD_LIST](https://github.com/supabase/supabase/blob/master/apps/docs/WORD_LIST.md) and the docs [CONTRIBUTING](https://github.com/supabase/supabase/blob/master/apps/docs/CONTRIBUTING.md) guide <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary * **Updates** * The **None** role is labeled **No-access** and describes the lack of organization and project resource access. * **None** is included after **Read-only** in the role list. When inviting a member with project-only access, **None** is disabled with an explanation. * **Documentation** * Clarified plan coverage for **Read-Only** and **No access**, and added guidance on assigning **No access** at the organization level before granting project-specific roles. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
4ab54b9359 | ref(docs): Make ClickHouse, Snowflake and DuckLake in public alpha (#51195) | ||
|
|
b0597aa5fa |
Add health advisor doc (#51144)
Add docs with bare min information abotut he addition of the 4 new health advisors ## Problem no docs on health advisors ## Solution added docs covering health advisors <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added health advisors for persistently high error rates in the Data API, Auth, Storage, and Edge Functions. * Findings include links to relevant troubleshooting guidance and instructions for reviewing recent errors or failed invocations in Studio Logs, MCP, or the Management API. * **Documentation** * Updated the advisors guide to describe health, security, and performance checks, with examples and links to access advisors in Studio and the Management API. * Clarified that findings may be intentional and can take time to clear after a fix. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Saxon Fletcher <saxonafletcher@gmail.com> Co-authored-by: Nik Richers <nrichers@gmail.com> |
||
|
|
11488801f7 |
docs(byo-mcp): how to use with custom domains (#51085)
## Problem As part of my investigation of this [issue](https://linear.app/supabase/issue/AI-1263/test-byo-mcp-with-custom-domains) I realized that, in order for byo-mcp to work with custom domains, there's a tweak needed, and I'm documenting it here. The long term use to fix it lives [here](https://linear.app/supabase/issue/FDBKIN-20212/use-custom-domain-in-oidc-and-oauth-well-known-discovery-endpoints). With that one in place, we could remove the clarification and the experience would be much much simpler. Fixes AI-1263 ## Solution I'm documenting for now, and will follow up if something else needs a change. ## Review instructions Provide a clear numbered procedure that the PR reviewer can walk through. 1. Visit `docs/guides/ai-tools/byo-mcp` and read the added text. 2. See if it all makes sense. 3. Ask @raulb if something's not clear or confusing. ## Checklist Check all before review: - [x] I have read [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) - [x] If I wrote a new docs topic or edited an existing topic, I used the `/write-the-docs` or `/edit-the-docs` skill, which applies the docs [style guide](https://github.com/supabase/supabase/tree/master/apps/docs/style-guide) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added guidance for configuring MCP authorization metadata with a custom domain, including setting the authorization server to the Supabase Auth project issuer and checking it against the advertised metadata. * Clarified that the resource URL continues to use the domain requested by the client, and that leaving the issuer setting unset locally retains the default. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> |
||
|
|
0405b31b26 |
docs: re-publish Multigres Private Alpha docs — merge on October 2, 2026 (#50664)
## I have read the CONTRIBUTING.md file. YES ## What kind of change does this PR introduce? Re-add. Reapplies the Multigres Private Alpha docs section removed in #50662, ready to merge once Sugu gives the go-ahead. Do not merge until then. Linear: MUL-1621 (follow-up to MUL-452). ## What is the current behavior? Multigres docs section is down (per #50662): no overview/compatibility pages, no sidebar entry, no features-table row, no "What you get" cards. ## What is the new behavior? Exact reapply of #49020 (with Multigres marked Private Alpha): overview guide at `/docs/guides/database/multigres`, compatibility stub, Database sidebar entry, features-table row, "What you get" cards, and the `ContentListings` optional-`href` support they rely on. Base branch is the revert PR (#50662) so the diff here is legible now; retarget to `master` once #50662 merges. ## Additional context - `pnpm --filter docs exec vitest run lib/content-listings.test.ts` — 22 passed - Blocked on Sugu's go-ahead — `do-not-merge` label applied --------- Co-authored-by: Nik Richers <nik@validmind.ai> |
||
|
|
73260dfaba |
docs: correct the built-in retry behaviour in the supabase-js retry guide (#50749)
## Problem [The built-in retry guide](https://supabase.com/docs/guides/api/automatic-retries-in-supabase-js) describes retry behaviour that `supabase-js` doesn't have. Three claims in the "Built-in retries for PostgREST queries" section don't match the code: | The page says | The code does | | --- | --- | | "POST requests (used by PostgREST) are retried" | POST is **never** retried | | Retries cover "408, 409, 503 and 504" | Only `503` and `520` | | "exponential backoff with jitter" | No jitter — the delay is deterministic | **The POST claim is the serious one.** It tells a reader that their writes are retried when they aren't, which invites exactly the wrong conclusion about how to handle a failed insert. Someone reading this page would reasonably skip their own retry or idempotency handling on writes, on the strength of a guarantee the library doesn't make. The source of truth, from `packages/core/postgrest-js/src/types/common/common.ts` on `supabase-js` master: ```ts export const RETRYABLE_STATUS_CODES = [520, 503] as const export const RETRYABLE_METHODS = ['GET', 'HEAD', 'OPTIONS'] as const export const DEFAULT_MAX_RETRIES = 3 export const getRetryDelay = (attemptIndex: number): number => Math.min(1000 * 2 ** attemptIndex, 30000) ``` `shouldRetry` in `packages/core/postgrest-js/src/fetchWithRetry.ts` gates on both constants, so a request is retried only when the method is in `RETRYABLE_METHODS` *and* the status is in `RETRYABLE_STATUS_CODES`. `getRetryDelay` is a pure function of the attempt index, with no random component — hence no jitter. There's a fourth, subtler consequence. The intro says built-in retries apply to `.from()` and `.rpc()`, but `.rpc()` sends POST unless you pass `{ get: true }` or `{ head: true }`, so RPC calls aren't retried by default. A reader who takes the intro at face value would expect retries on exactly the calls that don't get them. ## Solution Corrected the three claims in place. No restructuring, no new sections, no change to the `fetch-retry` half of the page. - **Methods.** Replaced the sentence claiming POST is retried with the actual rule, and stated the consequence plainly — a write is never sent twice. - **Status codes.** `503 Service Unavailable` and `520 Unknown Error` in place of 408, 409, 503 and 504. - **Jitter.** Dropped the word, since the backoff has none. - **`.rpc()`.** Added one sentence noting that RPC sends POST by default, so it isn't retried unless called with `{ get: true }`. The diff is 3 changed lines and 2 added, all in one paragraph group. This is a technical correction only — I deliberately left the page's style and structure alone, so the diff stays readable as a single change of one kind. ### Note on an incoming change supabase/supabase-js#2699 proposes adding `521`, `522`, `523` and `524` to `RETRYABLE_STATUS_CODES`. It is open, not merged. This PR documents what `master` does today, and if that one lands the status sentence here needs `520-524` rather than `520`. Happy to follow up with that change once it merges, or to fold it in if you'd rather wait and land both together. ## Review instructions 1. Open `packages/core/postgrest-js/src/types/common/common.ts` in `supabase/supabase-js` on `master` and read `RETRYABLE_STATUS_CODES` and `RETRYABLE_METHODS`. 2. Compare them against the live page's second paragraph. The status list and the method list both differ. 3. Read `shouldRetry` in `packages/core/postgrest-js/src/fetchWithRetry.ts` and confirm it returns `false` for any method outside `RETRYABLE_METHODS`, POST included. 4. Read `getRetryDelay` in the same `common.ts` and confirm there is no random component, so "with jitter" doesn't hold. 5. Check `rpc()` in `packages/core/postgrest-js/src/PostgrestClient.ts` and confirm the method is POST unless `get` or `head` is passed. 6. Read the preview page and confirm the corrected paragraphs say the same thing the code does. ## Checklist Check all before review: - [x] I have read [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) - [x] If I wrote a new docs topic or edited an existing topic, I used the `/write-the-docs` or `/edit-the-docs` skill, which references [WORD_LIST](https://github.com/supabase/supabase/blob/master/apps/docs/WORD_LIST.md) and the docs [CONTRIBUTING](https://github.com/supabase/supabase/blob/master/apps/docs/CONTRIBUTING.md) guide ## Additional context One suggestion, which I've deliberately left out of the diff because it's an addition rather than a correction — your call whether it belongs on this page. The guide sets no request timeout anywhere, in either the built-in section or the `fetch-retry` examples. That matters because a retry only fires once a request has failed. A request that is merely hanging never fails, so it never triggers a retry, and the caller waits for whatever the platform's own timeout turns out to be. This isn't hypothetical. During a Cloudflare edge incident on 22 September 2026, PostgREST calls from Edge Functions stalled for 20 to 60 seconds and returned `522`. Supabase Support confirmed the elevated 522s were platform-wide at the time rather than specific to one project. The built-in retry fired on none of them — partly because `522` isn't in the list, but also because a stalled request never reaches the retry check at all. A sentence pointing readers at `AbortSignal.timeout` alongside the retry would close that gap: ```javascript const { data, error } = await supabase .from('your_table') .select('*') .abortSignal(AbortSignal.timeout(10_000)) ``` Happy to write that up as a short subsection if you want it — tell me where you'd like it to sit and I'll open a separate PR so this correction stays reviewable on its own. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Clarified that automatic retries apply only to idempotent GET, HEAD, and OPTIONS requests that encounter HTTP 503 or 520 responses, or network failures. * Documented that RPC calls use POST by default and are not retried, and that `{ get: true }` or `{ head: true }` can use retryable methods. * Added guidance for using `AbortSignal.timeout(10_000)` to limit requests that hang before retry handling. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Katerina Skroumpelou <sk.katherine@gmail.com> |
||
|
|
531431cd77 |
docs: document MCP cost confirmation via elicitations (#50017)
## I have read the [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) file. YES ## What kind of change does this PR introduce? Docs update for the MCP cost confirmation launch ([AI-1161](https://linear.app/supabase/issue/AI-1161/write-the-docs)). ## What is the current behavior? The MCP server guide lists `get_cost` / `confirm_cost` but doesn't describe the elicitation-based cost confirmation flow that `@supabase/mcp-server-supabase` 0.12.0 introduces for `create_project` and `create_branch` on form-capable clients. ## What is the new behavior? - New **Cost confirmation** section in the MCP server guide: how the elicitation flow works (accept / decline / expiry / rate-change outcomes, all side-effect-free except accept), the zero-cost skip, client support, and how to tell which cost flow a connection uses. - New troubleshooting entry: "Cost confirmations do not appear in your MCP client". - Three `supa-mdx-lint` dictionary additions the new prose needs (`elicitation(s)`, `dialogs`, `pauses`). ## Additional context **Draft — hold until launch.** Merge gates before publishing: 1. The feature is enabled for hosted connections. 2. The client support table is re-verified against launch verification results (there's a matching `{/* ... */}` reviewer note above the table). Client support moves quickly; the table reflects verification as of 2026-09-04. Needs review: - **Rate-change behavior follows the shipped code, not the spec docs**: on any change to the computed cost between confirmation and creation (including a decrease), the server reissues a fresh confirmation rather than proceeding (`account-tools.ts` redemption path in supabase/mcp). Flagging in case the intent was lower-or-equal proceeds. - No exact confirmation expiry is stated because the TTL is deployment-configured (`ttlSeconds`). - Wording deliberately says "client-mediated" style confirmation and avoids claiming a person approved each action, since clients can answer elicitations via hooks. Test plan: `supa-mdx-lint` clean on both files; Prettier (repo config) clean. No runnable snippets, so no sandbox verification needed. Vercel preview link will appear below. 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added advanced options to hosted MCP connections for skipping selected cost or destructive-SQL confirmations when supported. Available options depend on connection scope, enabled features, and read-only settings. * The configuration panel explains when skip selections are unavailable or ignored by certain client configurations. * **Documentation** * Added guidance on cost and SQL confirmation prompts, Edge Function secret entry, and troubleshooting missing prompts or unavailable secret collection. This includes client requirements, fallback behavior, and relevant security considerations. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Barry Roodt <barry.roodt@supabase.io> |
||
|
|
ffd2754c7a |
docs(cli): document experimental supabase stack commands and native runtime (#50391)
Add two guides under Local Development for the experimental `supabase stack` commands, wire them into the docs nav, the CLI reference, the marketing features list, and the pages that readers reach with a port conflict. New pages: - guides/local-development/parallel-projects: run one local project per app, git worktree, branch, or named environment on a single machine. Covers identity, automatic port assignment, removing fixed ports from config.toml, named projects, finding endpoints, stop and destroy, the `[experimental] stack` setting, and current limitations. - guides/local-development/runtimes: the Docker and native runtimes, how the CLI picks one, native platform requirements, artifact download and cache locations, and runtime limitations. Cross-links and context: - Local development index, CLI getting started, CLI workflows, managing environments, AI tools, MCP, and the edge functions port troubleshooting entry now point readers to the new guides where a second `supabase start` fails on a port conflict. - CLI reference: `supabase stack`, `stack start`, `stack stop`, `stack destroy`, the `experimental.stack` config key, and a note on `supabase start` and `[experimental] stack`. - www: two feature entries and copy tweaks on the hosted Postgres and innovation teams solution pages. - supa-mdx-lint: allow worktree, glibc, musl, and checksum. |
||
|
|
6143441493 |
fix(pipelines): clarify DuckLake destination setup (#51013)
## Problem The DuckLake setup form makes it hard to choose between Supabase projects and external connection details. Bucket creation, catalog settings, and the guide do not clearly follow the setup flow. ## Solution - Show **Configuration method** as two clear choices: **Select Supabase projects** and **Enter connection details**. - Group catalog and storage fields, move **Pool size** to **Advanced settings**, and add **New bucket** to the bucket selector. - Clarify the custom Postgres and S3 fields, including the metadata schema, connection URL, and storage options. - Update the [DuckLake destination guide](https://docs-git-dnywh-ducklake-pipelines-setup-supabase.vercel.app/docs/guides/database/replication/pipelines/ducklake) to follow the form and explain resource preparation and validation. | Before | After | | --- | --- | | <img width="1280" height="1323" alt="50587" src="https://github.com/user-attachments/assets/bf5997cf-9fc4-48a8-ad4f-13fa991d56f9" /> | <img width="1280" height="1323" alt="61914" src="https://github.com/user-attachments/assets/2c1dd7ef-797f-4302-9e2e-93a5f1e6e515" /> | ## Review instructions 1. Open **Database > Pipelines > Add pipeline** and select **DuckLake**. 2. Select **Select Supabase projects**. Check the catalog and storage fields, create a bucket from the bucket selector, and find **Pool size** under **Advanced settings**. 3. Select **Enter connection details**. Check the Catalog URL, S3 URL style, and Use SSL guidance. 4. Compare both routes with the [DuckLake destination guide](https://docs-git-dnywh-ducklake-pipelines-setup-supabase.vercel.app/docs/guides/database/replication/pipelines/ducklake). ## Checklist - [x] I have read [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) - [x] I used the `/edit-the-docs` skill and the docs [style guide](https://github.com/supabase/supabase/tree/master/apps/docs/style-guide) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * DuckLake destinations support Supabase-managed projects or an existing Postgres catalog with S3-compatible storage. * Select a storage bucket using search, configure a metadata schema, and access clearer guidance for catalog and storage settings. * Advanced settings provide a connection pool size from 1 to 6, with a default of 4. Credential fields include show and hide controls. * **Documentation** * Updated setup steps, configuration guidance, query credential details, and troubleshooting instructions for both configuration modes. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
26010d80ce |
docs(observability): rename "Hire an agent" to "Agent prompts" (#51148)
The "Hire an agent" and "monitor" wording oversold the feature: it is just a prompt you give an agent to check health, security, performance, or resources, optionally on a schedule. Rename the group to "Agent prompts", drop "monitor" from the four child pages (Health, Security, Performance, Resources), and use plainer framing across the landing page and observability hub. URL slugs are unchanged. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Renamed the Observability section to “Agent prompts” and updated its page titles and descriptions to describe project checks. * Clarified that prompts read project data without changing it, and that findings can be sent through existing harness connections. * Updated setup guidance to refer to running prompts and using “checks” in task names. * Renamed the Health, Security, Performance, and Resources entries. The related links, schedules, and reporting details remain unchanged. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|
|
da2d0c46d7 | docs(self-hosting): refresh the overview page (#51127) | ||
|
|
cf063c4ae8 | docs: clarify self-hosted function timeout limits (#50807) | ||
|
|
5a7c0d6d84 |
fix(docs): resolve legacy sdk reference urls (#51064)
I made the crawler renderer resolve legacy JavaScript and Dart reference slugs to their current sections, and updated authored guide and SDK spec links to use them. Exact slugs still win, ambiguous bare slugs still return 404, and `file-buckets-listv2` remains a section slug in canonical links. I kept the www redirect work in a separate draft PR because the apps deploy independently. ## To test - [x] On the Docs preview, request `reference/javascript/order` and `reference/dart/get-user` with a bot user agent. Expect the intended heading and canonical URL. - [x] Request `reference/javascript/file-buckets-listv2` with bot and browser user agents. Expect it to open the list v2 section. - [x] Request `reference/swift/get-user` and the Kotlin reference root with a bot user agent. Expect the intended heading. - [x] Open the Storage quickstart guide and follow its upload reference link. Expect the current JavaScript upload section. ## Linear refs GROWTH-1293 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Reference pages now resolve legacy aliases and ambiguous slugs more accurately, with canonical links that preserve explicit SDK versions. * SDK version paths are recognized only when the full path segment matches the version format, improving reference-page routing. * **Documentation** * Updated API reference links across authentication, storage, security, and SDK guides to point to current pages. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
9a60894bfa |
docs(functions): edit the secrets guide against the new style guide (#50763)
Production secrets sat after two non-procedure sections, so the reader setting up a key crossed reference material to get from the local steps to the production ones. Move it up to follow Local secrets, which runs all four procedure sections unbroken before the reference sections. Group "Where local values come from" and "Default secrets" under a Reference heading. Both answer "what are its parts?", so both are Structure under the style guide's information types, and Reference is the group the worked outline ends with. They demote from H2 to H3, which keeps them in the page TOC, since it is built from h2 and h3. No heading is renamed, so the anchors Studio deep-links into (#default-secrets, #using-the-cli) and the one the secrets-limit troubleshooting page uses (#accessing-environment-variables) are intact. Changing a heading's level preserves its slug. Glue the new shape needs: an outline of the three section groups at the top, a transition out of the troubleshooting section, and an opening line under Reference. |
||
|
|
e29f4e0736 |
docs(database): style pass on the database functions guide (#50820)
Inline rewording only. Nothing moves and no claim changes. Addresses reader-facing "we", UI labels in quotes rather than bold, "allows you to", "e.g.", future tense, and title-case common nouns in body prose. |
||
|
|
19188ece58 |
docs(functions): style pass on the Edge Function auth guide (#50884)
Apply the docs style guide to Securing Edge Functions. Inline changes only. - Open the page with a value statement - Split the sentences that ran past the 26-word aim, and keep one relationship per sentence - Replace dash-bounded asides with separate sentences - Lift `(the default)` out of parentheses so it reads as a claim - Name the section instead of "above" and "the sections below" - Introduce the mode table in the sentence before it - Raise the `auth: 'none'` admonition to `danger`, and state it in the positive form - Stop restating that admonition in the Public functions section - Spell out Row Level Security, and name `@supabase/server` rather than "the SDK" - Use Supabase Dashboard and Supabase Platform consistently - Use "function" rather than "endpoint", and spell out "db" - Link `@supabase/server` once, and name it as a GitHub destination - Rewrite the Secret keys alt text to describe both rows, the column headers, and the masked key format |
||
|
|
2cb70302b0 |
docs(cli): recommend OrbStack as primary Docker alternative on macOS (#51101)
## Problem The documentation currently lists Docker Desktop as the preferred option for all platforms, but OrbStack is a superior alternative on macOS that offers better performance (faster startup, lower CPU/memory/disk usage). Users on macOS should be guided toward OrbStack first. ## Solution Reordered and updated the container runtime recommendations to: 1. Highlight OrbStack as the recommended option specifically for macOS 2. Position Docker Desktop as the recommended option for Windows and Linux 3. Moved OrbStack higher in the list to reflect its priority on macOS 4. Added a dedicated paragraph in the CLI getting started guide explaining OrbStack's benefits and why it's recommended over Docker Desktop on macOS The changes improve the developer experience by directing macOS users toward the more performant option while maintaining clear guidance for other platforms. ## Review instructions 1. Open the preview links for the modified documentation pages 2. Verify that OrbStack is now listed first and marked as "recommended on macOS" 3. Verify that Docker Desktop is now marked as "recommended on Windows and Linux" 4. Check the CLI getting started guide to confirm the new paragraph about OrbStack's benefits is clear and helpful 5. Ensure the information is consistent across both modified files ## Checklist - [x] I have read [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) - [x] Documentation changes follow the docs style guide https://claude.ai/code/session_01Nbp9LwhMkqxEvQJzEVUbwt <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Updated local development guidance to recommend OrbStack for macOS and Docker Desktop for Windows and Linux. * Clarified that OrbStack supports extended file attributes on mounted volumes and container networking, and added startup and resource-use comparisons with Docker Desktop. * Listed Rancher Desktop and Podman as alternatives; the CLI guide also lists Colima. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
e54394cfd8 |
feat: update mgmt api docs (#49743)
This PR updates Management API docs automatically. This regenerates: - Management API specs and sections - Personal Access Tokens permission-to-endpoint table - Personal Access Tokens MCP tool permissions table Sources include the live Management API specs, MCP permission map, and Studio's shared permission catalog. Co-authored-by: zamotany <17573635+zamotany@users.noreply.github.com> |
||
|
|
9946747579 |
docs(orioledb): update OrioleDB docs for public beta (#50813)
> [!IMPORTANT] > Don't merge until the OrioleDB public beta launches. Docs deploy on merge. ## What Updates the OrioleDB guide (`guides/database/orioledb`) for the public beta: - States that OrioleDB is in public beta and that OrioleDB projects have access to the same paid features as other Supabase projects. - Replaces the outdated "choose `OrioleDB Public Alpha` Postgres version" instruction and its screenshot with text steps that match the current project creation form (**Advanced Configuration** → **Postgres Type** → **Postgres with OrioleDB**). It also notes that OrioleDB can't be added to or removed from an existing project. A new screenshot will follow once the dashboard shows the beta labels. - Corrects the `orioledb.default_compress` range to `-1` to `22`. Values outside that range are rejected. - Updates the `EXPLAIN` output for the primary key lookup to match what OrioleDB returns (`Custom Scan (o_scan)`). - Replaces the benchmark chart's alt text with a description of the chart. Headings, frontmatter, and navigation are unchanged, so existing links to this page and its sections still work. ## Checked against upstream OrioleDB Checked the page's claims against the [OrioleDB docs](https://github.com/orioledb/orioledb/tree/main/doc/usage) and codebase on `main`: - The concepts section, the `orioledb.serializable` values, and the compression settings match. - The limitations link still resolves (`#current-limitations`). - Doc changes on `main` since beta17 (collations, sparse files, concurrent unique bridged indexes) don't affect claims on this page. ## Verification (`/test-the-docs`) | Snippet / step | Class | Sandbox | Result | Notes | | --- | --- | --- | --- | --- | | `create table blog_post …` | runnable-local | DinD + runner, `supabase/postgres:17.9.0.028-orioledb` | pass | Table created with the `orioledb` access method (default) | | `create index …` (2 indexes) | runnable-with-setup | same | pass | | | `insert …` + `select …` | runnable-with-setup | same | pass | Timestamp differs, as expected | | `explain` (3 statements) | runnable-with-setup | same | pass | Primary key lookup output updated in this PR to match | | `select … from pg_settings where name like 'orioledb.%'` | runnable-local | same | pass | All 10 automatically tuned settings present | | `alter database … default_compress to 1` | runnable-local | same | pass | | | Compression range `-1`–`22` | claim check | same | pass | `23` rejected: "outside the valid range (-1 .. 22)" | | User-configurable settings have `user` context | claim check | same | pass | `serializable` values match the page | | Hidden `ctid` key when no primary key is defined | claim check | same | pass | | | HNSW index via index bridging | claim check | same | fail (product bug) | Index misses rows inserted after it's created. Known upstream as orioledb/orioledb#1118, fixed after beta17. The tested image bundles an earlier OrioleDB release. Re-test on an image with beta18 before merging. | | Dashboard project creation steps | deferred | — | deferred | Needs a hosted project; labels checked against Studio source | **Tier A path:** every SQL block on the page, run in page order against the Supabase OrioleDB image. **Environment:** Docker 29.4.0 (linux/aarch64); compose sandbox from `test-the-docs`; all SQL run inside the runner container. **Build:** `pnpm build:guides-markdown` passes; the generated markdown for this page includes all changes. ## Self-review **Blockers:** none. **Before merging:** - [ ] Re-run the HNSW check on an image with OrioleDB beta18. - [ ] Re-check the page against the `beta18` tag once it's published. **Nits left for a follow-up (existing text, outside this PR's scope):** - The page spells `pg_vector`; the extension is `pgvector`. - Index support is described twice, in the top note and again under "Creating indexes". - The markdown export (`internals/markdown-schema/Admonition.ts`) drops admonition titles on every page. This PR avoids relying on a title for the beta status. Linear: DOCS-1399 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Updated the OrioleDB guide with benchmark results for an 8xlarge instance, including a 1.8x speedup and throughput data across 32–256 connections. * Clarified that OrioleDB projects have access to the same paid features as other Supabase projects, and added guidance to review its limitations. * Updated project setup instructions, noting that OrioleDB must be selected when creating a project and cannot be added later or removed. * Revised the query plan example and documented compression levels from `0` through `22`. * **Product Updates** * Updated OrioleDB’s availability stage to public beta. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Artur Zakirov <zaartur@gmail.com> |
||
|
|
2013ebf417 |
docs: drop alpha labels and pin server and middleware imports to a major (#51031)
## Problem `@supabase/middleware` ships as 1.0.0. The docs still label the `pipeline` entry form of `withSupabase` alpha, and several snippets import `npm:@supabase/server` and `npm:@supabase/middleware` with no version or with a `^0.5.0` pin. A snippet without a version leaves readers and tools to guess one, and a guessed version fails on deploy. ## Solution - Removes the alpha wording from the middleware reference intro and usage examples, the server frameworks partial, and the Bring your own MCP guide. The `@supabase/server` 1.6.0 floor stays. - Pins every `npm:@supabase/server` and `npm:@supabase/middleware` import in the guides to a major range, `@1`, following the `npm:@supabase/supabase-js@2` convention in Managing dependencies. - Bumps the authenticated-mcp-server example to middleware `^1.0.0` and server `^1.9.0`. ~~Blocked by supabase/middleware#49. The `@1` range resolves once 1.0.0 is on npm.~~ <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Updated authentication, API key, and MCP examples to use versioned Supabase server and middleware packages. * Clarified that pipeline and nested composition behave the same, and that both require `@supabase/server` 1.6.0 or later. * Removed alpha-status labels from `withSupabase` guidance while retaining the 1.6.0 minimum-version requirement. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
e811d984ad | docs(auth): inline the Remix code in the OAuth troubleshooting (#50854) | ||
|
|
c8b665caf2 | feat(self-hosted): add api gateway logic for functions (#46810) | ||
|
|
ad0ed2cdbc |
Update docs based on SRE Agent findings (#50910)
## Problem SRE Agent running against a project which is read-only due to disk being full. ## Solution The SRE agent struggled to find the information which is now included in this PR. <!-- ## Preview links If relevant, include links to changed pages for easy review access. Copy the preview base URL from the Vercel bot comment on this PR. Use the following table as an example template. | Site | Live | Preview | Search for | | -------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------- | | WWW | [/blog/your-post](https://supabase.com/blog/your-post) | [/blog/your-post](https://zone-www-dot-com-git-branch-name-supabase.vercel.app/blog/your-post) | unique phrase from the change | | Docs | [/docs/guides/your-page](https://supabase.com/docs/guides/your-page) | [/docs/guides/your-page](https://docs-git-branch-name-supabase.vercel.app/docs/guides/your-page) | unique phrase from the change | | Studio | [/dashboard](https://supabase.com/dashboard) | [/dashboard](https://studio-git-branch-name-supabase.vercel.app/dashboard) | unique phrase from the change | | Design system | [/design-system](https://supabase.com/design-system) | [/design-system](https://design-system-git-branch-name-supabase.vercel.app/design-system) | unique phrase from the change | | UI library | [/library](https://supabase.com/library) | [/library](https://ui-library-git-branch-name-supabase.vercel.app/library) | unique phrase from the change | | Knowledge base | [/kb/guides/your-page](https://supabase.com/kb/guides/your-page) | [/kb/guides/your-page](https://kb-git-branch-name-supabase.vercel.app/kb/guides/your-page) | unique phrase from the change | --> <!-- ## Additional context Optionally add any other context or screenshots. --> ## Review instructions - https://supabase.com/docs/guides/api/rest/postgrest-error-codes - https://supabase.com/docs/guides/observability/advanced-log-filtering - https://supabase.com/docs/guides/platform/database-size ## Checklist Check all before review: - [x] I have read [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) - [x] If I wrote a new docs topic or edited an existing topic, I used the `/write-the-docs` or `/edit-the-docs` skill, which references [WORD_LIST](https://github.com/supabase/supabase/blob/master/apps/docs/WORD_LIST.md) and the docs [CONTRIBUTING](https://github.com/supabase/supabase/blob/master/apps/docs/CONTRIBUTING.md) guide <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added guidance for recognizing platform-related PostgreSQL errors, including read-only mode, disk exhaustion, connection-pool limits, and database restarts or failovers. * Added SQL queries for grouping PostgreSQL errors and reviewing recent error events while filtering out selected platform-level codes. * Clarified that read-write transaction settings apply only to the current session, and that background writes resume automatically after read-only mode ends. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
a9c594a820 |
chore(library): rename mcp-server block to mcp (#50999)
Renames the `mcp-server` Library block to `mcp`. Installing it now creates `supabase/functions/mcp`, so the server is served at `/functions/v1/mcp`. - Block, Edge Function folder, and docs page renamed (`/docs/headless/mcp`) - Headless App block now installs its tools into `supabase/functions/mcp` and configures `[functions.mcp]` - Links in the BYO MCP and MCP authentication guides updated - Permanent redirects keep `/r/mcp-server.json` and `/docs/headless/mcp-server` working - `public/r` rebuilt <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Updates** * The MCP Server block is now named `mcp` across its documentation, installation links, and setup instructions. * Updated function endpoints and deployment commands to use `/mcp`. * Added permanent redirects from the previous `mcp-server` documentation and install URLs to their new locations. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
6b7c91a773 |
docs(pipelines): clarify ClickHouse setup and form copy (#51009)
## Problem The ClickHouse destination guide leaves parts of resource setup unclear. The pipeline form suggests the `default` ClickHouse user and database even when a dedicated user and database are prepared. ## Solution - Clarify the ClickHouse setup path, connection details, engine choice, and query example in the guide. - Align the pipeline form's labels, examples, and help text with that setup path. - Include **Start pipeline** in the BigQuery guide before the cost confirmation and **Create and start pipeline**. ## Review instructions 1. Open **Database → Pipelines**, add a pipeline, and choose **ClickHouse**. Check the endpoint label, user and database examples, and table engine help. 2. Read the [ClickHouse destination guide](https://supabase.com/docs/guides/database/replication/pipelines/clickhouse), especially **Prepare ClickHouse resources** and **Configure ClickHouse as a destination**. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Updated the BigQuery guide to explain the pipeline validation, cost review, and start steps. * Expanded the ClickHouse guide with destination setup requirements, engine behavior, and querying guidance for current-state views and append-only history. * **User Experience** * Clarified ClickHouse connection field labels and descriptions, password visibility controls, and table-engine options in the setup form. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
07c75e84fc |
fix(docs): repair internal content links (#51050)
I fixed stale links in six Docs pages. Guide links now include the Docs base path, and links to the old Database Hooks route point directly to the Dashboard Webhooks page. ## To test - Open the Logs ingest guide in the Docs preview and follow the updated guide links. Each destination should load. - Open each affected Docs page in the preview and follow its Webhooks link. The Dashboard Webhooks page should load after sign-in. ## Linear - fixes GROWTH-1301 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Updated webhook setup and troubleshooting links to point to the Integrations Webhooks dashboard. * Updated Postgres configuration and log-setting links to use current documentation paths. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
ed6217a169 |
docs: clarify how owners and admins authorize MCP clients for enterprise auth (#50832)
The enterprise-managed MCP authentication guide said an organization owner authorizes the MCP client from the Authorized Apps page. That page only lists and revokes apps that are already approved, so readers had no way to follow the instruction. Approval actually happens when an owner or admin connects the MCP client through the standard sign-in flow and approves it for the organization on the consent screen. Both roles can grant that approval, not only owners. This updates the prerequisites, the validation step, the "why use it" summary, and the security considerations to: - Name owners and admins as the roles that can authorize the client - Describe the consent-screen approval as the way to authorize it - Point to Authorized Apps as the place to review or revoke approved clients |
||
|
|
fea8b8b41d |
Update copy RE disk configuration changes and cooldown (#50844)
## Context Reverts copy changes from the following PRs: - Docs: https://github.com/supabase/supabase/pull/42184 - FE: https://github.com/supabase/supabase/pull/47646 Our platform's disk management configuration limitation still follows the 4 hour cooldown at the moment, doesn't align with AWS's 4 changes in 24 hours rule just yet. This is just to prevent any confusion for now, and we'll need to update the copy again once behaviour matches AWS on our BE <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Updates** * Disk changes are now subject to an approximately four-hour cooldown after each modification, replacing the previous limit of four changes in a rolling 24-hour period. * Disk management screens now show the cooldown status, remaining wait time, and next available update time. * Updated platform guides and troubleshooting instructions to reflect the cooldown and explain available recovery options. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
708bfa7ad1 |
[docs] Fix broken links to '/guides/' paths (#50870)
## Problem There are several broken links within docs that reference `/guides/...`. These need to be updated to `/docs/guides/` to resolve correctly. ## Solution Updated links to resolve correctly ## Preview links If relevant, include links to changed pages for easy review access. TBD, waiting on build (unclear if this happens for external contributions). ## Review instructions 1. Navigate to the pages in the live/preview. 2. Click the links that were updated. ## Checklist Check all before review: - [x ] I have read [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Updated internal documentation links across API, Auth, Database, Functions, and troubleshooting guides to use the `/docs` paths. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: kodster28-happy-hour <kody@catholicestateplanning.com> |
||
|
|
80761d2521 |
docs(troubleshooting): Add guide for NXDOMAIN errors (#50969)
## Problem We get several tickets related to NXDOMAIN errors ## Solution Add guide to troubleshoot the issue, providing typical scenarios and workarounds ## Checklist Check all before review: - [X] I have read [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) - [X] If I wrote a new docs topic or edited an existing topic, I used the `/write-the-docs` or `/edit-the-docs` skill, which applies the docs [style guide](https://github.com/supabase/supabase/tree/master/apps/docs/style-guide) Used `/write-the-docs` and then manually modified several things <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added troubleshooting guidance for `NXDOMAIN` errors when connecting to a project, covering possible causes, checks, and next steps. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> |
||
|
|
0eb08cb9f0 |
docs: prepare scoped personal access tokens docs for GA (#50839)
Scoped personal access tokens are leaving alpha. Remove the pre-GA framing and update pages that assumed every token carries full account access. - Personal Access Tokens guide: remove the public alpha / early access admonition. Add a section on using a scoped token with the Supabase CLI: the browser flow of `supabase login` creates a classic token, while SUPABASE_ACCESS_TOKEN or `supabase login --token` uses a scoped one, and commands that connect with the database password aren't limited by the token's permissions. - Management API introduction: replace "PATs carry the same privileges as your user account" with the scoped vs. classic distinction and link to the guide's permission tables. - MCP guide: the CI setup now asks for a scoped token limited to the connected project and links to the MCP tool permissions table. - API keys guide: replace the internal "fine-grained token" permission ID with the names shown in the dashboard (API Keys, Read), and note that `reveal=true` in the example also needs API Key Secrets (Read). - Managing environments: recommend a scoped token for the GitHub Actions deploy workflow. |
||
|
|
b03448ec59 |
docs(pipelines): improve Snowflake setup guidance (#50715)
## Problem The Snowflake guide leaves several setup details open to interpretation, particularly how roles are used and which RSA key content belongs in Snowflake versus the Dashboard. This PR is stacked on #50751 so the documented role location, private-key upload, and **Start pipeline** action match the updated creation sheet. The full stack starts with #50708, which moves the guide to its nested Pipelines path. ## Solution Clarifies the setup sequence, explains the default and optional role behaviour, distinguishes `rsa_key.pub` from `rsa_key.p8`, and makes the destination field guidance more direct. ## To test - [Snowflake guide](https://docs-git-dnywh-docsimprove-snowflake-setup-supabase.vercel.app/docs/guides/database/replication/pipelines/snowflake) ## Review instructions 1. Read the setup path from **Prepare Snowflake resources** through **Configure Snowflake as a destination**. 2. Confirm the role guidance explains what happens when the Dashboard field is empty. 3. Confirm it is clear which key file is registered in Snowflake and which file is pasted or uploaded in the Dashboard. ## Checklist - [x] I have read [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) - [x] If I wrote a new docs topic or edited an existing topic, I used the `/write-the-docs` or `/edit-the-docs` skill, which references [WORD_LIST](https://github.com/supabase/supabase/blob/master/apps/docs/WORD_LIST.md) and the docs [CONTRIBUTING](https://github.com/supabase/supabase/blob/master/apps/docs/CONTRIBUTING.md) guide <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Updated the Snowflake guide with clearer setup steps and requirements for roles, ownership, key handling, account IDs, and Dashboard settings. * Expanded guidance on append-only history, current-state queries, dynamic-table freshness and costs, stream and task recovery, type serialization, and the effects of schema changes on historical data. * Renamed the pipeline setup button to **Start pipeline**. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
c6b92060d2 |
docs(realtime): realtime permissions (#50735)
All changes are related to Realtime permissions that I observed on support tickets recently: - Migrations can't have `ALTER TABLE realtime.messages`. That's is not allowed and breaks migrations. - Missing realtime.messages partitions are usually due to lack of connections - Errors like "must be owner of table messages" are misleading Closes REAL-1125 ## Additional context https://supabase.slack.com/archives/C01G8CC0X9D/p1789981286693829 and SU-479680 ## Checklist - [x] I have read [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) - [x] If I wrote a new docs topic or edited an existing topic, I used the `/write-the-docs` or `/edit-the-docs` skill, which references [WORD_LIST](https://github.com/supabase/supabase/blob/master/apps/docs/WORD_LIST.md) and the docs [CONTRIBUTING](https://github.com/supabase/supabase/blob/master/apps/docs/CONTRIBUTING.md) guide <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Clarified Realtime authorization restrictions, supported RLS policy management, and the existing RLS configuration for `realtime.messages`. * Documented broadcast partition creation, connection requirements, and warning behavior when partitions are unavailable. * Added troubleshooting guidance for ownership errors, including migration rollback implications and supported remedies. * Added instructions for inspecting message partitions and diagnosing missing, expired, or unavailable partition configurations. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
a21111b7e0 |
docs: Clarify private flag for broadcast from database (#50192)
## I have read the [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) file. YES ## What kind of change does this PR introduce? Doc update ## What is the current behavior? The description of the private flag for broadcast from database functions is inconsistent and a bit confusing. ## What is the new behavior? Use the same language on both examples and clarify the default, and what true and false map to. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Documentation** - Clarified the meaning of boolean privacy flags in realtime SQL examples: `true` indicates Private (the default), while `false` indicates Public. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
830c06d494 |
docs: clarify authorisation window when policies change (#50695)
## Solution Clarifying the authorisation window for RLS/access checks on channels in Realtime. <!-- ## Preview links If relevant, include links to changed pages for easy review access. Copy the preview base URL from the Vercel bot comment on this PR. Use the following table as an example template. | Site | Live | Preview | Search for | | -------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------- | | WWW | [/blog/your-post](https://supabase.com/blog/your-post) | [/blog/your-post](https://zone-www-dot-com-git-branch-name-supabase.vercel.app/blog/your-post) | unique phrase from the change | | Docs | [/docs/guides/your-page](https://supabase.com/docs/guides/your-page) | [/docs/guides/your-page](https://docs-git-branch-name-supabase.vercel.app/docs/guides/your-page) | unique phrase from the change | | Studio | [/dashboard](https://supabase.com/dashboard) | [/dashboard](https://studio-git-branch-name-supabase.vercel.app/dashboard) | unique phrase from the change | | Design system | [/design-system](https://supabase.com/design-system) | [/design-system](https://design-system-git-branch-name-supabase.vercel.app/design-system) | unique phrase from the change | | UI library | [/library](https://supabase.com/library) | [/library](https://ui-library-git-branch-name-supabase.vercel.app/library) | unique phrase from the change | | Knowledge base | [/kb/guides/your-page](https://supabase.com/kb/guides/your-page) | [/kb/guides/your-page](https://kb-git-branch-name-supabase.vercel.app/kb/guides/your-page) | unique phrase from the change | --> <!-- ## Additional context Optionally add any other context or screenshots. --> ## Review instructions Provide a clear numbered procedure that the PR reviewer can walk through. 1. For example, `Open the live and preview links side-by-side.` 2. For example, `See the issue is fixed.` ## Checklist Check all before review: - [x] I have read [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) - [ ] If I wrote a new docs topic or edited an existing topic, I used the `/write-the-docs` or `/edit-the-docs` skill, which references [WORD_LIST](https://github.com/supabase/supabase/blob/master/apps/docs/WORD_LIST.md) and the docs [CONTRIBUTING](https://github.com/supabase/supabase/blob/master/apps/docs/CONTRIBUTING.md) guide <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Clarified that Realtime authorization policy changes may not affect already-connected clients until their JWT expires or a new JWT is provided. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
c3c741c20e |
docs: warn about postgres.js pipelining on Supavisor transaction mode (#50712)
Re-does #50082 against the redesigned `connecting-to-postgres.mdx` (see [Slack discussion](https://supabase.slack.com/archives/C04JR9DBNQL/p1789991651381399?thread_ts=1788980733.712609&cid=C04JR9DBNQL)). What changed vs. #50082: - `connecting-to-postgres.mdx`: the pipelining caution now lives in the new **Transaction mode limitations** section (the old "Pooler transaction mode" prose it was in got redesigned), and is a short redirect to the Postgres.js guide rather than a full explanation. - `postgres-js.mdx`: keeps the full warning, the `{ prepare: false }` workaround, and now explains *why* pipelining can't just be turned off (`max_pipeline: 0` breaks `sql.begin()`, tracked in porsager/postgres#1189), plus a "contact support" prompt for anyone still stuck, and a note that Supavisor v2.10 will add native pipelining support. - Drops the standalone troubleshooting page from #50082 — the team wasn't confident enough yet to officially point everyone at the `postgres.js` patch, so support is the escalation path for now instead. - Re-adds the `Rule003Spelling.toml` allow-list entry for "pipelining" (not present on `master`). 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Clarified that query pipelining is unsupported in transaction mode and may cause hangs or mismatched results. * Documented Postgres.js pipeline behavior, recommended workarounds, and planned native support in a future Supavisor release. * Updated the Postgres.js connection example to disable prepared statements for improved compatibility. * Added a support contact link for assistance with transaction-mode pipeline issues. <!-- end of auto-generated comment: release notes by coderabbit.ai --> ## Preview * pipelining mentioned in the Supavisor TX mode: https://docs-git-docs-postgres-js-pipelining-warning-supabase.vercel.app/docs/guides/database/connecting-to-postgres#pooler-transaction-mode * pipelining mentioned in more detail in TX mode limitations: https://docs-git-docs-postgres-js-pipelining-warning-supabase.vercel.app/docs/guides/database/connecting-to-postgres#transaction-mode-limitations * `postgres.js` pipelining warning with even more details: https://docs-git-docs-postgres-js-pipelining-warning-supabase.vercel.app/docs/guides/database/postgres-js --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Miranda Limonczenko <miranda.limonczenko@supabase.io> |
||
|
|
d15634ae58 |
updated guidance for logs pricing, revised manage logs usage pages, introduction of the grace period(#49656)
Supabase Logs is moving to usage-based pricing. We're announcing changes early so impacted projects have time to adjust before billing begins when the grace period through early 2027. |
||
|
|
8ab2197eb8 |
Rename capacity monitor to resource monitor (#50849)
## Problem Capacity felt like a misleading naming for some users ## Solution renaming to resource monitor, to remove confusion with things like AWS capacity. And also leaves some room for interpretation that resource issues worth reporting are not always related to capacity. It could ust be interest in increase consumption. User expectations based on terminology will never be perfect though. ## Preview links https://supabase.com/docs/guides/observability/automate-with-agents/usage?queryGroups=agent-setup&agent-setup=prompt | Docs | [/docs/guides/your-page](https://supabase.com/docs/guides/observability/automate-with-agents/usage?queryGroups=agent-setup&agent-setup=prompt) <!-- ## Additional context Optionally add any other context or screenshots. --> ## Review instructions Provide a clear numbered procedure that the PR reviewer can walk through. 1. For example, `Open the live and preview links side-by-side.` 2. For example, `See the issue is fixed.` ## Checklist Check all before review: - [ ] I have read [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) - [ ] If I wrote a new docs topic or edited an existing topic, I used the `/write-the-docs` or `/edit-the-docs` skill, which references [WORD_LIST](https://github.com/supabase/supabase/blob/master/apps/docs/WORD_LIST.md) and the docs [CONTRIBUTING](https://github.com/supabase/supabase/blob/master/apps/docs/CONTRIBUTING.md) guide <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Renamed “Capacity monitor” to “Resource monitor” across the guide, navigation, and monitoring prompt labels. * Updated the guide to link to the resource-report trigger documentation. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
4998a137ec |
docs: correct function-to-function call rate limit for Edge Functions (#50806)
Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Kalleby Santos <105971119+kallebysantos@users.noreply.github.com> |
||
|
|
f1b7c0aa4d |
docs: update compute size selection screenshots (#50798)
## Problem The Compute & Disk sizes screenshot is outdated after the changes from . https://supabase.com/docs/guides/platform/compute-and-disk#compute The screenshot still shows architecture, core-counts, and CPU labels. Fixes PROD-656 ## Solution A new screenshot has been provided to reflect the latest state of Studio. ## Review instructions Review the screenshot under: /docs/guides/platform/compute-and-disk#compute It should depict what the Studio shows under /dashboard/project/_/settings/infrastructure . Test dark & light mode. | Site | Live | Preview | Search for | | -------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------- | | Docs | [/docs/guides/platform/compute-and-disk#compute](https://supabase.com/docs/guides/platform/compute-and-disk#compute) | [/docs/guides/platform/compute-and-disk#compute](https://docs-git-docs-update-compute-size-screenshot-supabase.vercel.app/docs/guides/platform/compute-and-disk#compute) | N/A (screenshot) | ## Checklist Check all before review: - [x] I have read [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) - [ ] If I wrote a new docs topic or edited an existing topic, I used the /write-the-docs or /edit-the-docs skill, which references [WORD_LIST](https://github.com/supabase/supabase/blob/master/apps/docs/WORD_LIST.md) and the docs [CONTRIBUTING](https://github.com/supabase/supabase/blob/master/apps/docs/CONTRIBUTING.md) guide |
||
|
|
4730e3a640 |
docs: remove Generalist monitoring agent (#50784)
The Generalist is too broad and doesn't do any one thing well. Removing it to focus on dogfooding the four targeted agents (Health, Security, Performance, Capacity) before revisiting a combined agent. https://github.com/supabase/supabase/pull/50396 new PR since this one became messy with many upstream changes ## Problem I don't like the generalist ## Solution I am removing the generalist <!-- ## Preview links If relevant, include links to changed pages for easy review access. Copy the preview base URL from the Vercel bot comment on this PR. Use the following table as an example template. | Site | Live | Preview | Search for | | -------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------- | | WWW | [/blog/your-post](https://supabase.com/blog/your-post) | [/blog/your-post](https://zone-www-dot-com-git-branch-name-supabase.vercel.app/blog/your-post) | unique phrase from the change | | Docs | [/docs/guides/your-page](https://supabase.com/docs/guides/your-page) | [/docs/guides/your-page](https://docs-git-branch-name-supabase.vercel.app/docs/guides/your-page) | unique phrase from the change | | Studio | [/dashboard](https://supabase.com/dashboard) | [/dashboard](https://studio-git-branch-name-supabase.vercel.app/dashboard) | unique phrase from the change | | Design system | [/design-system](https://supabase.com/design-system) | [/design-system](https://design-system-git-branch-name-supabase.vercel.app/design-system) | unique phrase from the change | | UI library | [/library](https://supabase.com/library) | [/library](https://ui-library-git-branch-name-supabase.vercel.app/library) | unique phrase from the change | | Knowledge base | [/kb/guides/your-page](https://supabase.com/kb/guides/your-page) | [/kb/guides/your-page](https://kb-git-branch-name-supabase.vercel.app/kb/guides/your-page) | unique phrase from the change | --> <!-- ## Additional context Optionally add any other context or screenshots. --> ## Review instructions Simply removing generalist: https://supabase.com/docs/guides/observability/automate-with-agents <img width="305" height="339" alt="image" src="https://github.com/user-attachments/assets/bb537038-799f-4ec6-a357-c4cb3c552cba" /> So generalist will be no mas ## Checklist Check all before review: - [x] I have read [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) - [x] If I wrote a new docs topic or edited an existing topic, I used the `/write-the-docs` or `/edit-the-docs` skill, which references [WORD_LIST](https://github.com/supabase/supabase/blob/master/apps/docs/WORD_LIST.md) and the docs [CONTRIBUTING](https://github.com/supabase/supabase/blob/master/apps/docs/CONTRIBUTING.md) guide <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Removed the combined Generalist monitoring guide and its navigation entry. Separate guides for health, security, performance, and usage monitoring remain. * The Generalist agent card and combined monitoring prompt are no longer available. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
564eab8ad7 | chore(self-hosted): update 2026-09-23 - 0.8.2 (#50790) | ||
|
|
e7e76ca0da |
fix: misleading privatelink dns copy (#50771)
Somewhat urgent update to documentation based on new AWS behavior. Will include additional details when we properly support custom DNS for privatelink <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Updated the PrivateLink endpoint creation guide’s Option A steps and numbering. The DNS record note now stands on its own, without referencing a removed step. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
59e2122833 |
docs(pipelines): nest destination guides (#50708)
## Problem Pipeline destination guides live beside the Pipelines overview, so their sidebar hierarchy and URLs do not reflect that they belong to Pipelines. ## Solution Moves the BigQuery, ClickHouse, DuckLake, and Snowflake guides under `/database/replication/pipelines/`, redirects the old URLs in both docs preview (`apps/docs/next.config.mjs`) and production (`apps/www/lib/redirects.js`), and updates internal documentation links. The matching Studio changes, including destination-aware links from the creation sheet, will follow in a separate PR. ## To test - [Pipelines overview](https://docs-git-dnywh-docsnest-pipeline-destinations-supabase.vercel.app/docs/guides/database/replication/pipelines) - Destination guides: [BigQuery](https://docs-git-dnywh-docsnest-pipeline-destinations-supabase.vercel.app/docs/guides/database/replication/pipelines/bigquery), [ClickHouse](https://docs-git-dnywh-docsnest-pipeline-destinations-supabase.vercel.app/docs/guides/database/replication/pipelines/clickhouse), [DuckLake](https://docs-git-dnywh-docsnest-pipeline-destinations-supabase.vercel.app/docs/guides/database/replication/pipelines/ducklake), [Snowflake](https://docs-git-dnywh-docsnest-pipeline-destinations-supabase.vercel.app/docs/guides/database/replication/pipelines/snowflake) - [Old Snowflake URL](https://docs-git-dnywh-docsnest-pipeline-destinations-supabase.vercel.app/docs/guides/database/replication/snowflake) ## Review instructions 1. Open the Pipelines overview and confirm the four destination guides appear beneath Pipelines in the sidebar. 2. Open each destination guide and confirm its nested URL and content load correctly. 3. Open the old Snowflake URL and confirm it redirects to its new location. ## Checklist - [x] I have read [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) - [x] If I wrote a new docs topic or edited an existing topic, I used the `/write-the-docs` or `/edit-the-docs` skill, which references [WORD_LIST](https://github.com/supabase/supabase/blob/master/apps/docs/WORD_LIST.md) and the docs [CONTRIBUTING](https://github.com/supabase/supabase/blob/master/apps/docs/CONTRIBUTING.md) guide <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Moved BigQuery, ClickHouse, DuckLake, and Snowflake replication guides to a dedicated pipelines section and updated related navigation and links. * **Bug Fixes** * Added permanent redirects so existing links to the four destination guides continue to work. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
05a45dd1ed |
feat(studio): rename Replication to Pipelines (#50637)
## What kind of change does this PR introduce? Feature and docs update. ## What is the current behavior? The Dashboard lists Pipelines destinations under Database > Replication. Read replicas have moved to Infrastructure, but the temporary notices remain on the destinations page and new destination sheet. Closes PIPE-1021. ## What is the new behavior? The canonical Dashboard routes are Database > Pipelines, while legacy Replication list and detail URLs permanently redirect to the equivalent Pipelines routes. Navigation, command palette, shortcuts, pipeline links, docs, and current marketing copy use Pipelines. Read-replica notices and their obsolete dismissal state are removed. | Before | After | | --- | --- | | <img width="1024" height="759" alt="Replication Database Agua Basket Supabase" src="https://github.com/user-attachments/assets/53f9f565-1ed1-43e9-a7d9-b66b2a47e948" /> | <img width="1024" height="759" alt="2540" src="https://github.com/user-attachments/assets/14ab2d61-d01c-483f-9d4f-0ac286dae159" /> | The Management API, pipeline behaviour, replication logs, and Postgres replication terminology remain unchanged. ## To test - Open `/project/<ref>/database/pipelines` and confirm the Database navigation, page header, and pipeline breadcrumb say Pipelines. - Open `/project/<ref>/database/replication?source=bookmark#destinations` and a legacy pipeline detail URL. Confirm each redirects to the matching Pipelines URL while preserving parameters and fragments. - From the Pipelines page, open Add destination. Confirm no read-replica migration notice appears. - Open the Pipelines guide and confirm its Dashboard steps lead to Database > Pipelines. ## Before merge - [ ] Get changelog entry reviewed https://github.com/supabase/changelog/pull/262 and prepare to merge simultaneously <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added dedicated **Database > Pipelines** pages for pipeline lists and details. - Added permanent redirects from legacy Replication URLs to their corresponding Pipelines pages. - Read replica management links now open **Settings > Infrastructure**. - **Documentation** - Updated Pipelines setup, monitoring, troubleshooting, and usage guidance to reference the current dashboard locations. - Updated Realtime guidance to use **Database > Publications**. - **Updates** - Renamed dashboard navigation, breadcrumbs, commands, and keyboard shortcuts from **Replication** to **Pipelines**. - Removed the “Read replicas have moved” notification. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Joshen Lim <joshenlimek@gmail.com> |
||
|
|
7ce4ee53ae |
chore(docs) Retire supa-mdx-lint (#50602)
Closes [DOCS-1289](https://linear.app/supabase/issue/DOCS-1289/get-the-linter-to-fix-what-it-flags-or-retirereplace-the-linter) Stacked on #50600, which points contributors at the authoring skills. Merge that one first. ## Problem Contributors experienced friction with the linter. They felt nickle and dimed for tiny nits and felt detracted from the work itself. PRs would become noisy with tiny one-word suggestions. Additionally, our homegrown linter is not very intelligent, causing frequent overrides. ## Solution This removes the linter entirely in favor of directing contributors to use SKILLS instead. The removal entails... - **CI.** Delete the three `docs_lint` workflows: the PR check, the external-PR comment companion, and the nightly `--fix` bot. Drop the stale `zizmor.yml` ignore entry for the deleted workflow. - **Tooling.** Delete `supa-mdx-lint.config.toml` and the 14 rule files. Drop the `lint:mdx` script and the `@supabase/supa-mdx-lint` dependency from docs, learn, and ui-library, and regenerate the lockfile. - **Content.** Remove the 181 directives. A separate commit carries Prettier's reformatting of the tables and blank lines those comments had suppressed, so the deletion commit stays readable. No prose changes. - **Style guide.** The word list states each rule directly instead of describing what the linter flagged. Every term survives, including the phrase groups that mirrored `Rule004ExcludeWords`. - **Skills.** `write-the-docs`, `edit-the-docs`, and `review-the-docs` drop `pnpm lint:mdx` from their self-review commands and check the word list directly. `ask-the-docs`'s CI reference drops both workflows. ## Manual testing 1. Run `git grep -i supa-mdx-lint -- . ':!pnpm-lock.yaml'`. No matches. 2. Run `pnpm install --frozen-lockfile --lockfile-only`. It passes, so the lockfile matches the three trimmed manifests. 3. Run `git diff master...HEAD --name-only --diff-filter=ACMR | grep -E '\.(md|mdx)$' | xargs npx prettier --config prettier.config.mjs --check`. All changed markdown passes. 4. Open the [reformatted filter table](https://docs-git-docs-retire-mdx-linter-supabase.vercel.app/docs/guides/observability/logs#filter-events) on the preview and compare it with [production](https://supabase.com/docs/guides/observability/logs#filter-events). The table renders the same. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Documentation guidance now uses manual prose and terminology review with the shared word list. * Clarified storage configuration and common Realtime channel mistakes. * Improved table formatting, text wrapping, and selected reference links. * Updated documentation authoring and review guidance. * **Chores** * Retired automated MDX linting from workflows and local validation commands. * Removed lint-suppression markers throughout documentation without changing instructions. * Added targeted documentation review guidance for pull requests. <!-- end of auto-generated comment: release notes by coderabbit.ai --> |
||
|
|
d7ff2c29e7 | fix(self-hosted): make setup.sh work for non-root sudo users (#50653) | ||
|
|
8ed27fdb50 | docs(auth): forward Set-Cookie headers on server-side OAuth redirect (PKCE) (#50722) | ||
|
|
e1e16d4a18 |
docs(troubleshooting): document custom roles in troubleshooting guide (#50510)
## I have read the [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) file. YES ## What kind of change does this PR introduce? Docs ## Additional context Explicitly mention custom roles in the troubleshooting guide for password authentication failure <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **Documentation** - Added troubleshooting guidance for using custom PostgreSQL roles with direct connections, dedicated pooling, and shared pooling. - Documented temporary authentication failures that may occur after resetting a custom role’s password when using shared pooling. - Added guidance to verify the password directly and retry shared-pooler connections with bounded retries. - Added a link to password-rotation documentation for further details. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> |
||
|
|
b0bb496977 |
[bot] Sync from supabase/troubleshooting (#50656)
This PR syncs the latest troubleshooting guides from the supabase/troubleshooting repository. --------- Co-authored-by: github-docs-bot <github-docs-bot@supabase.com> Co-authored-by: Miranda Limonczenko <miranda.limonczenko@supabase.io> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> |