ViewStoreService
The view store: the saved views and view preferences of the view engine's ViewStore port, and the wording a tenant sets over the datasets it reads.
No aggregate has a static tenant, so every route carries tenant/{tenantId}; each requires an owner, so every route carries owner/{ownerId} too. The owner segment is the audience: a user id for a personal view, SHARED_OWNER_ID for a shared one, SYSTEM_OWNER_ID for a stored system view. No aggregate is spaced.
Properties
The request header naming the calling application; CoSec authenticates it.
The command header the application is carried in, the same key CoSec's message propagator uses.
A tenant's wording over one dataset in one application (the view engine's dataset overrides, D86): kept under SHARED_OWNER_ID, since it is the whole tenant's, and written by whom the security gateway lets write it.
The reserved owner of shared views and shared preferences. The parentheses keep it apart from every user id.
The reserved owner of stored system views: the views every user of an application reads, whatever their tenant. They live under SYSTEM_TENANT_ID only, so every write of one is a request under …/tenant/(platform)/owner/(system)/…; the security gateway decides who may send it.
The one tenant stored system views live under. System views are global; each request tenant reads them beside the configured ones. It is not Wow's default tenant (0), the tenant of a deployment without tenants: its value is CoSec's platform tenant (Tenant.PLATFORM_TENANT_ID), matched by value, without a dependency on CoSec, so a gateway rule and a platform administrator's token name the same tenant.