Freshness, Versioning, and ACL Metadata
Store stable document ID, version, content hash, effective date, ingestion time, tenant/group ACL, and parser/chunker/embedding versions. Access filters must be derived from trusted identity and applied before chunks reach the model. Test revocation as carefully as granting access.
Define freshness SLOs, such as the target time from source change to searchable update. Crawl time alone does not prove a policy is current; effective date and supersession status are different concepts.
Implementation example
const filter = {
tenantId: authenticatedUser.tenantId,
status: "published",
deleted: false
};💡 Build filters from server-authenticated identity, never from model-generated or untrusted tenant values.
Key Takeaways
- Inspect the relevant pipeline stage instead of guessing.
- Preserve source provenance, versions, and access scope.
- Measure quality on representative queries.
Knowledge Check
Where should tenant filtering be enforced?