Security
Tenant security
Every call is bound to a store (tenant), allowed Cloud sessions, and the grant permission list. A client-supplied tenantId is not authorization. There is no cross-tenant access.
- Authorization is the McpAccessGrant. A client tenantId is not authorization.
- Sessions outside the allowlist return SESSION_NOT_ALLOWED; another tenant returns SESSION_TENANT_MISMATCH.
- Revoke applies on the next request; there is no startup cache.
- Expired grants return MCP_ACCESS_EXPIRED.
- Raw tokens are not stored; only a hash is kept.
- Destructive is off by default. FULL does not enable it.
- WAPIX_MCP_WRITE_ENABLED / DESTRUCTIVE_ENABLED cannot add grant permissions.