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?