Documentation

Audience filters

Every knowledge source and tenant-shared connector in OrgMCP carries a share list of principals. RAG search and MCP knowledge tools are enforced server-side in OpenSearch via a mandatory filter on every query — there is no admin override.

Format

A share list is one or more principals. Chunks stamp each principal as an OpenSearch keyword:

  • tenant:<tenantId> — visible to every member of the workspace
  • group:<groupId> — visible to members of the named group
  • user:<userId> — visible to that person

A chunk is visible if any listed principal matches the requesting user. The admin console Share dialog edits this list on the connector and on each source.

Connectors vs sources

  • The connector list is who can use that connector's live tools (github_*, gdrive_*, …). New sources inherit it.
  • A source can inherit the connector list or use a custom list. Custom source access is RAG-only: someone can see indexed chunks without getting the live tools.

Resolution at request time

For each authenticated user we expand the audience set to:

  1. tenant:<currentTenant>
  2. group:<groupId> for every group the user is a member of
  3. user:<currentUser>

OpenSearch's terms filter on the chunk's audience field then restricts the result set. No tenant override or "admin sees everything" mode exists.

Personal-source rule

Knowledge sources created via a personal connector stay locked to user:<ownerId>. Share them by re-ingesting through a tenant-level connector.

Plans

Whole-workspace sharing is available on every plan. Restricted lists (people and groups) require Business+. Downgrading does not wipe existing restricted lists — they keep working in search; only new writes are blocked.

Audit

Connector share-list changes are connector.sharing_updated. Source changes are knowledge_source.visibility_updated.