Multi-Turn Permissions

Permissions can change during a conversation. Reapply authorization on every retrieval, source fetch, and cache access. A conversation ID is not proof of ownership. If a user's access is revoked, summaries or cached answers may also require redaction or invalidation. Test attempts to carry restricted facts across tenants or identities.

Implementation example
async function loadSource(sourceId, auth) {
 return db.documents.findOne({
   sourceId, tenantId:auth.tenantId, allowedUserIds:auth.userId
 });
}
💡 The exact ACL schema varies, but access must be checked at request time.
Key Takeaways
  • Inspect the relevant pipeline stage instead of guessing.
  • Preserve source provenance, versions, and access scope.
  • Measure quality on representative queries.
Knowledge Check

Why re-check permissions on every turn?