Deny any call whose requestContext carries NO isolation scope. Deployments
that segment budgets/replay caches by tenant include this in their policy
set, turning "the scope is absent" from silently-shared-keys into a denial.
It runs in the PRE-EXECUTE gates loop — which matters because the dry-run
branch returns before the idempotency and rate-limit machinery, and a
constraint that must bind simulations cannot live on those paths. The
single-tenant OSS default simply omits this evaluator: absent scope then
preserves unsegmented keys exactly.
Deny any call whose requestContext carries NO isolation scope. Deployments that segment budgets/replay caches by tenant include this in their policy set, turning "the scope is absent" from silently-shared-keys into a denial. It runs in the PRE-EXECUTE gates loop — which matters because the dry-run branch returns before the idempotency and rate-limit machinery, and a constraint that must bind simulations cannot live on those paths. The single-tenant OSS default simply omits this evaluator: absent scope then preserves unsegmented keys exactly.