Embedding Pipeline Service  ·  View 21 of 22  ·  Assurance

Identity and Access — Authorising One Retrieval

Who proves what to whom, in what order, and what happens when the authority does not answer.

Editable source SVG draw.io All views
Knowledge worker Product surface Retrieval gateway SPIRE Vector index Suppression list Permission authority Audit log 1. search "renewal terms" 2. retrieve(tenant, subject, query) 3. verify caller SVID 4. workload = search-api 5. tenant claim -> partition 6. search in tenant partition 7. 200 candidate chunks 8. any suppressed documents? 9. drop 3 (revoked 4 s ago) 10. batch check 90 documents 11. readable: 41 12. timeout -> withhold all 13. withheld count, not content 14. top-50 of 41 + withheld = N 15. results with citations Identity and Access — Authorising One Retrieval Message 12 is the fail-closed branch: an unreachable authority withholds everything and says so, rather than returning what the index happens to hold. v 1.0 · owner Data & AI Platform Architecture · date 2026-10

The fail-closed branch

  • Message 12 is the decision this view exists for: an unreachable permission authority withholds everything and says so, rather than returning what the index happens to hold.
  • Suppression is checked before the ACL batch, so a document revoked four seconds ago is dropped even if the authority has not yet caught up.
  • The audit record carries counts, not content: that results were withheld is auditable; what they were is not.

Two identities, two jobs

  • Workload identity (SPIRE SVID) proves which service is calling and gates the tenant partition it may address.
  • Subject identity is carried as a claim and resolved against the corpus authority. The platform never decides whether a person may read a document.
  • Human operator identity is separate again, through Keycloak, and reaches no tenant content without a grant.

Cost of this design

  • A per-query batch ACL check is a hot-path dependency on a system the platform does not own, and it sets the floor on retrieval p99.
  • Post-filtering means candidate sets must be over-fetched. Where a user can read very little of a tenant's corpus, recall suffers — the open question on view 15.