Multi-tenant Access Control
Tenant isolation enforced by scoped access keys and an EF Core global query filter applied to protected entities, so isolation does not depend on every query remembering its WHERE clause.
The problem
The app serves multiple tenants off shared infrastructure, so a single missed filter could surface one tenant inside another tenant results. That is not a risk worth resting on every developer remembering to write the same clause correctly every time.
What was built
Tenant isolation through scoped access keys, combined with an EF Core global query filter applied to all protected entities.
What I'd do differently
I would use a separate named query filter rather than the single global one. When this was built, .NET Core supported only one query filter, so ignoring a filter meant ignoring all of them at once. Named filters in newer versions would let us selectively ignore other filters without ever touching tenant protection - something I have been scoping out as we move to a newer .NET version.