Skip to main content

Overview

Groups let you partition your data sources by user groups so that the same guru returns role-appropriate answers. The same question asked by a sales team member and a support engineer can return different context, drawn only from the sources each user is allowed to see. Groups are distinct from Gurubase RBAC roles. Roles control who can manage a guru; Groups control what content each user can see when they ask a question.
Group-based access control currently applies only to authenticated users on the Gurubase web UI. The widget embed, public /api/v1/answer/ endpoint, Slack, Discord, GitHub, Jira, Zendesk, MCP server, and chat-completions endpoints remain Everyone-only for now. See Where It Applies for the full list.

Concepts

ContentGroup

A ContentGroup is a named collection of users scoped to a single guru. Group names are unique per guru (two different gurus can both have an “Engineering” group without conflict), and a user can belong to multiple groups inside the same guru.

Membership

A Membership links one user to one ContentGroup inside one guru. Memberships are assigned manually by a guru admin from the Team page.

Visible To

Every data source has a “Visible to” field. When Visible to is empty, the source is marked “Everyone” and every authenticated user of the guru sees it in their answers. When Visible to lists one or more groups, only users with membership in at least one of those groups can see the source. Everyone and specific groups are mutually exclusive: selecting a group clears Everyone, and selecting Everyone clears any selected groups.

Setup

1

Open the Team page

Go to your guru’s Team page and switch to the Groups tab. You must be a guru admin (or a super admin on self-hosted) to see this tab.
2

Create a group

Click Create Group and enter a name (for example, Engineering). The name is unique per guru; you cannot create two groups with the same name inside one guru.
3

Assign members

From the Members tab, use the Groups column multi-select to assign each team member to one or more groups. Users without any group assignment are marked as Everyone-only and can only see Everyone sources.
4

Set Visible to on a data source

Open a data source’s edit modal (or select multiple sources and use the bulk Set Visible to action). Pick Everyone or one or more specific groups. Selecting a group clears Everyone; selecting Everyone clears any previously selected groups.
5

Verify by asking a question

Sign in as a user who is a member of the group you assigned to the source and ask a question that only the restricted source can answer. The answer should include content from that source. Then sign in as a user who is NOT in the group and ask the same question; the answer must not reference any restricted content.

Worked Example

A company uses a single Gurubase guru to answer questions across its Engineering, Sales, and Support teams. The team admin creates three ContentGroups and assigns each data source to the appropriate group.

Groups and Memberships

UserMemberships
AliceEngineering
BobSales
CarolSupport
DaveEngineering, Sales

Data Sources

SourceVisible To
Company HandbookEveryone
Public FAQEveryone
Product OverviewEveryone
Internal API ReferenceEngineering
Architecture DecisionsEngineering
Sales PlaybooksSales
Pricing SheetsSales
Customer RunbooksSupport
Internal Troubleshooting GuideSupport

Shared Question

All four users ask the same question:
What do we tell a customer asking about enterprise pricing?

Observed Answers

UserSources UsedAnswer Character
AliceCompany Handbook, Public FAQ, Product OverviewGeneric public answer from the Product Overview. No pricing details.
BobCompany Handbook, Public FAQ, Product Overview, Sales Playbooks, Pricing SheetsSpecific pricing tier breakdown drawn from the sales-restricted sources.
CarolCompany Handbook, Public FAQ, Product Overview, Customer Runbooks, Internal Troubleshooting GuideEscalation script from the Customer Runbooks pointing the customer to the sales team.
DaveAll Everyone sources, Sales Playbooks, Pricing Sheets, Internal API Reference, Architecture DecisionsUnion of the Engineering and Sales sources: full pricing detail plus any relevant API context.
The same question produces four different answers because the backend resolves each user’s ContentGroup membership server-side and filters the retrieved chunks before the LLM assembles the answer.

Where It Applies

Group-based access control currently applies to authenticated users on the Gurubase web UI. The table below shows every user-facing answer surface and its current status.
SurfaceStatusNotes
Gurubase web UI (authenticated user)Groups-enabledPer-request ContentGroup resolution
Widget embedEveryone-onlyNo data-user-groups attribute yet
Public POST /api/v1/<guru>/answer/Everyone-onlygroups body field silently ignored
Slack botEveryone-onlyNo per-bot group config yet
Discord botEveryone-onlyNo per-bot group config yet
GitHub botEveryone-onlyNo per-bot group config yet
Jira botEveryone-onlyNo per-bot group config yet
Zendesk integrationEveryone-onlyNo per-integration group config yet
MCP serverEveryone-onlyNo groups surface yet
Chat-completions (OpenAI-SDK compatible)Everyone-onlyNo groups parameter yet