From 5e42df1642289bf2324e44375ae41f836ab08062 Mon Sep 17 00:00:00 2001 From: Leyland Yang Date: Fri, 18 Sep 2026 10:24:14 -0700 Subject: [PATCH 1/2] docs: document exclude groups for page visibility Claude-Session: https://claude.ai/code/session_01L1uunejmUAuZ3JWRZJW5KZ --- create/personalization.mdx | 13 +++++++ deploy/authentication-setup.mdx | 65 +++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) diff --git a/create/personalization.mdx b/create/personalization.mdx index 103449479..74a3f9401 100644 --- a/create/personalization.mdx +++ b/create/personalization.mdx @@ -147,6 +147,19 @@ groups: ["admin"] --- ``` +To hide a page from specific groups instead, use the object form with `excludes`. Users in an excluded group do not see the page in navigation even if they match `includes`. + +```mdx +--- +title: "Customer FAQ" +groups: + - includes: [] + - excludes: ["internal"] +--- +``` + +See [Exclude groups](/deploy/authentication-setup#exclude-groups) for the full rules. + ## OpenAPI content filtering Filter API reference content based on user groups with the `x-mint` extension in your OpenAPI specification. You can filter entire endpoints, individual schema properties, `oneOf` variants, and enum values. diff --git a/deploy/authentication-setup.mdx b/deploy/authentication-setup.mdx index 0e5b9eaea..1f2a81877 100644 --- a/deploy/authentication-setup.mdx +++ b/deploy/authentication-setup.mdx @@ -387,12 +387,68 @@ groups: ["admin"] Users must belong to at least one of the listed groups to access the page. If a user tries to access a page without the required group, they'll receive a 404 error. +### Exclude groups + +To hide a page from specific groups instead of listing every group that can see it, use the object form of `groups` with `includes` and `excludes`. + +```mdx Example page hidden from the internal group highlight={3-5} +--- +title: "Customer FAQ" +groups: + - includes: [] + - excludes: ["internal"] +--- +``` + +- `includes`: Groups that can see the page. Leave empty or omit it to allow every group. +- `excludes`: Groups that cannot see the page, even if they match `includes`. + +A user sees the page when they belong to at least one group in `includes` (or `includes` is empty) and to no group in `excludes`. Excluded users get a 404 error and do not see the page in navigation, search, or the assistant. + +`excludes` applies only to signed-in users. Visitors who are not signed in have no groups, so a page with `public: true` and `excludes` is visible to everyone except signed-in members of the excluded groups. Combine `public` with `excludes` to publish a page to the world while hiding it from an internal team. + + + +```mdx Everyone except internal +--- +title: "Customer FAQ" +public: true +groups: + - excludes: ["internal"] +--- +``` + +```mdx Internal only, also public +--- +title: "Release notes" +public: true +groups: + - includes: ["internal"] +--- +``` + +```mdx Internal only, sign-in required +--- +title: "Runbook" +groups: + - includes: ["internal"] +--- +``` + + +With the three pages above, a visitor who is not signed in sees the Customer FAQ and Release notes. A signed-in member of `internal` sees Release notes and the Runbook. + + + The `*` wildcard is not allowed in `excludes`. To hide a page from all signed-in users, set `groups: []`. + + ### How groups interact with public pages - All pages require authentication by default. - Pages with a `groups` property are only accessible to authenticated users in those groups. - Pages without a `groups` property are accessible to all authenticated users. - Pages with `public: true` and no `groups` property are accessible to everyone. +- Pages with `public: true` and `excludes` are accessible to everyone except signed-in users in the excluded groups. @@ -415,6 +471,15 @@ title: "Advanced configurations" groups: ["pro", "enterprise"] --- ``` + +```mdx Public page hidden from a group +--- +title: "Customer FAQ" +public: true +groups: + - excludes: ["internal"] +--- +``` ## User data format From 63d4bc8d7d3269ac05b41b2fe0651d8e4d6cc884 Mon Sep 17 00:00:00 2001 From: Leyland Yang Date: Tue, 22 Sep 2026 09:28:51 -0700 Subject: [PATCH 2/2] docs: omit includes rather than empty list in exclude examples Claude-Session: https://claude.ai/code/session_01L1uunejmUAuZ3JWRZJW5KZ --- create/personalization.mdx | 1 - deploy/authentication-setup.mdx | 7 +++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/create/personalization.mdx b/create/personalization.mdx index 74a3f9401..3531fce69 100644 --- a/create/personalization.mdx +++ b/create/personalization.mdx @@ -153,7 +153,6 @@ To hide a page from specific groups instead, use the object form with `excludes` --- title: "Customer FAQ" groups: - - includes: [] - excludes: ["internal"] --- ``` diff --git a/deploy/authentication-setup.mdx b/deploy/authentication-setup.mdx index 1f2a81877..821aef89a 100644 --- a/deploy/authentication-setup.mdx +++ b/deploy/authentication-setup.mdx @@ -391,19 +391,18 @@ Users must belong to at least one of the listed groups to access the page. If a To hide a page from specific groups instead of listing every group that can see it, use the object form of `groups` with `includes` and `excludes`. -```mdx Example page hidden from the internal group highlight={3-5} +```mdx Example page hidden from the internal group highlight={3-4} --- title: "Customer FAQ" groups: - - includes: [] - excludes: ["internal"] --- ``` -- `includes`: Groups that can see the page. Leave empty or omit it to allow every group. +- `includes`: Groups that can see the page. Omit it to allow every group. An empty list is not allowed; use `groups: []` to deny everyone. - `excludes`: Groups that cannot see the page, even if they match `includes`. -A user sees the page when they belong to at least one group in `includes` (or `includes` is empty) and to no group in `excludes`. Excluded users get a 404 error and do not see the page in navigation, search, or the assistant. +A user sees the page when they belong to at least one group in `includes` (or `includes` is omitted) and to no group in `excludes`. Excluded users get a 404 error and do not see the page in navigation, search, or the assistant. `excludes` applies only to signed-in users. Visitors who are not signed in have no groups, so a page with `public: true` and `excludes` is visible to everyone except signed-in members of the excluded groups. Combine `public` with `excludes` to publish a page to the world while hiding it from an internal team.