DocTalk · a bi concepts service

Talk to your documents.
Safely.

Permission-aware AI search on Snowflake Cortex: every answer filtered by who is asking, with SharePoint permissions enforced inside the index.

Snowflake Cortex SearchSharePoint OnlineMicrosoft Entra ID

01 · The problem

AI search doesn't know who is allowed to read what

AI search runs on an index: every document read once, made findable in milliseconds. The standard build: one pool, for everyone.

chloe.eng · Engineering

“What's the salary band for a Senior Engineer?”

Naive RAGanswers from the confidential HR file. A silent leak.

Why this matters

  • HR, M&A, legal and client files in one index
  • Regulators expect provable access control
  • Permissions change daily

02 · Why this is hard

A SharePoint document's real audience is buried under layers that change constantly

Layered grants

Site groups, nested Entra groups, direct grants, sharing links.

Constant drift

People join, leave, change projects. Last month's index is wrong today.

Filtering after retrieval fails

Retrieve-then-filter leaks. Trimming must happen inside the index.

03 · The approach

Permissions are enforced twice: when documents are indexed, and when questions are asked

Index boundary

At sync time

Only documents with resolvable permissions are indexed, carrying their access list with them. Unresolvable: excluded and reported.

Query boundary

At question time

The filter is built server-side, from the verified identity of whoever asks. Unknown identity: zero results.

04 · Architecture

SharePoint stays authoritative

Microsoft 365 · authoritative source

SharePointdocuments + ACLs
Entra IDgroups & membership

Snowflake · governed knowledge

Document chunksparsed, incremental
allowed_principalsper doc: group OIDs, never expanded
entitlementsper user: transitive group closure

Curation layer

Cortex Search indexfilterable attribute: allowed_principals
auditone row per query

Consumption

Verified identitieschat app · SSO token
Snowflake agentCURRENT_USER
Permitted results only

No copies. Citations link back and a click re-enforces the live SharePoint ACL.

Permission changes propagate in ~2 minutes, with no re-indexing.

Every query audited: who asked what, and which documents answered.

05 · Under the hood

From document to grounded answer

1 · Understand

PARSE_DOCUMENT: PDF, Word, PowerPoint, to structured markdown, tables intact

2 · Chunk

Structure-aware, overlapping, title-prefixed

3 · Govern

Chunks join their access lists, fail closed

4 · Embed + index

Managed embeddings, hybrid retrieval, reranking

5 · Answer

Grounded answers with citations, from the permitted subset only

No external vector database. Everything inside Snowflake.

06 · Design guarantees

Guarantee and mechanism

GuaranteeMechanism
Fail closed everywhereNo permissions: not indexed. Unknown user: zero results.
No names in the indexObject IDs only, never names.
Server-side filter onlyClient filters rejected.
Groups stay groupsGroups referenced, never expanded: fast revocation.
Everything auditedOne audit row per query.
No governance surprisesExcluded content is reported, never silent.
Strictly additive deploymentPrefixed, monitored, one-command teardown.

Talk to your documents. Safely.

Let's look at your document estate together. bi concepts is a Snowflake Select Partner, based in Switzerland.