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 workspacegroup:<groupId>— visible to members of the named groupuser:<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:
tenant:<currentTenant>group:<groupId>for every group the user is a member ofuser:<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.