Part of #60-epic.
Depends on: #60-C
Per-KB roles (ADR-017/018) compose across tenants a principal is a member of; tenant quotas apply regardless of role; no new cross-tenant trust is created.
This phase's primary, highest-priority test (per real CVE precedent — Gitea CVE-2026-27771/CVE-2026-58444, Vaultwarden CVE-2026-27898, both root-caused to "authorization checked too late, on a path the addressing layer didn't anticipate"): a request correctly addressed at tenant A's own instance via Phase A's addressing, whose payload references a raw node ID actually belonging to a DIFFERENT tenant, must be rejected at ID-resolution time — not served just because the outer RPC was addressed correctly.
DoD
Part of #60-epic.
Depends on: #60-C
Per-KB roles (ADR-017/018) compose across tenants a principal is a member of; tenant quotas apply regardless of role; no new cross-tenant trust is created.
This phase's primary, highest-priority test (per real CVE precedent — Gitea CVE-2026-27771/CVE-2026-58444, Vaultwarden CVE-2026-27898, both root-caused to "authorization checked too late, on a path the addressing layer didn't anticipate"): a request correctly addressed at tenant A's own instance via Phase A's addressing, whose payload references a raw node ID actually belonging to a DIFFERENT tenant, must be rejected at ID-resolution time — not served just because the outer RPC was addressed correctly.
DoD