ScopedIds

object ScopedIds

The ids the view store derives from what an aggregate is for, so a route finds the aggregate without a lookup: the same parts always give the same id. They are derived exactly as the 9.x view store derived them (ViewPreferencesIds, DatasetWordingIds): the tenant first, then the parts, joined by NUL, the first 32 hex digits of their SHA-256. So the preferences and the wordings migrate-data imports from 9.x keep their ids, and a route finds them after the cut-over (found by the 8c.1 rehearsal). The tenant is redundant in 10.x, whose ids are unique per tenant (axiom A6), and no part names the aggregate type, since each type has its own streams; both stay for this compatibility.

Functions

Link copied to clipboard
fun preferences(tenantId: String, ownerId: String?, appId: String, definitionId: String): String

The id of ownerId's preferences for definitionId in appId, in tenantId; an owner-less caller's are its tenant's.

Link copied to clipboard
fun wording(tenantId: String, appId: String, dataset: String): String

The id of the wording over dataset in appId, in tenantId.