Identity and resource attribution
Use these types when constructing an aggregate identity or an attribution path. They describe the wire fields; they do not infer identity from an authentication token or enforce permission checks. All fields below are required unless the exact declaration marks them optional. Interfaces supply no runtime defaults.
| Contract | Meaning and constraint |
|---|---|
Identifier.id / Version.version | Generic string identity / numeric version. Neither generates an ID nor validates a version range. |
AggregateId | Flat {aggregateId, tenantId, contextName, aggregateName}. Match all four when correlating results; an ID string alone is not the full identity. |
AggregateIdCapable.aggregateId | Nests that whole object. Do not confuse this with the string field of AggregateId. |
NamedBoundedContext / AliasBoundedContext | contextName is the model name; contextAlias is the routing alias. Named/AliasAggregate additionally require aggregateName. |
OwnerId, TenantId, SpaceIdCapable | Explicit string attribution fields. |
UrlPathParams | Optional tenant/owner/id plus custom string path slots. Supply the slots required by the chosen template. |
ResourceAttributionPathSpec | Empty, tenant, owner and tenant+owner route prefixes; templates do not establish authorization. |
AbacTags / AbacTaggable.tags | Map each tag key to a string array; empty tags {}, wildcard values ['*']. The server defines how they affect policy. |
ApplyAbacTags / AbacTagsApplied | Command/event payloads containing tags; no local policy engine or automatic mutation. |
Named / DescriptionCapable | Required name / description strings, without formatting or nonempty validation. |
For an HTTP command combine the identity/path fields with command options. Never substitute UI tenant filtering for server authorization.
Exact contracts
AbacTagKey
export type AbacTagKey = string;typescript/wow-client/src/types/abac.ts:13
AbacTagValue
export type AbacTagValue = string[];typescript/wow-client/src/types/abac.ts:14
AbacTags
export type AbacTags = Record<AbacTagKey, AbacTagValue>;typescript/wow-client/src/types/abac.ts:15
EMPTY_ABAC_TAGS
declare const EMPTY_ABAC_TAGS: Readonly<AbacTags>;Frozen: copy it before adding a tag.
typescript/wow-client/src/types/abac.ts:17
WILDCARD_ABAC_TAG_VALUES
declare const WILDCARD_ABAC_TAG_VALUES: readonly string[];Frozen: copy it before changing it.
typescript/wow-client/src/types/abac.ts:19
AbacTaggable
export interface AbacTaggable {
tags: AbacTags;
}typescript/wow-client/src/types/abac.ts:21
ApplyAbacTags
export interface ApplyAbacTags extends AbacTaggable {}typescript/wow-client/src/types/abac.ts:26
AbacTagsApplied
export interface AbacTagsApplied extends AbacTaggable {}typescript/wow-client/src/types/abac.ts:29
Identifier
export interface Identifier {
id: string;
}typescript/wow-client/src/types/common.ts:17
Version
export interface Version {
version: number;
}typescript/wow-client/src/types/common.ts:31
UrlPathParams
export interface UrlPathParams {
tenantId?: string;
ownerId?: string;
id?: string;
[key: string]: string | undefined;
}typescript/wow-client/src/types/endpoints.ts:19
ResourceAttributionPathSpec
export enum ResourceAttributionPathSpec {
NONE = '',
TENANT = '/tenant/{tenantId}',
OWNER = '/owner/{ownerId}',
TENANT_OWNER = '/tenant/{tenantId}/owner/{ownerId}',
}typescript/wow-client/src/types/endpoints.ts:57
AggregateNameCapable
export interface AggregateNameCapable {
aggregateName: string;
}typescript/wow-client/src/types/modeling.ts:79
NamedAggregate
export interface NamedAggregate
extends NamedBoundedContext, AggregateNameCapable {}typescript/wow-client/src/types/modeling.ts:89
AliasAggregate
export interface AliasAggregate
extends AliasBoundedContext, AggregateNameCapable {}typescript/wow-client/src/types/modeling.ts:92
AggregateId
export interface AggregateId extends TenantId, NamedAggregate {
aggregateId: string;
}typescript/wow-client/src/types/modeling.ts:98
AggregateIdCapable
export interface AggregateIdCapable {
aggregateId: AggregateId;
}typescript/wow-client/src/types/modeling.ts:109
OwnerId
export interface OwnerId {
ownerId: string;
}typescript/wow-client/src/types/modeling.ts:132
SpaceIdCapable
export interface SpaceIdCapable {
spaceId: string;
}typescript/wow-client/src/types/modeling.ts:139
TenantId
export interface TenantId {
tenantId: string;
}typescript/wow-client/src/types/modeling.ts:156
NamedBoundedContext
export interface NamedBoundedContext {
contextName: string;
}typescript/wow-client/src/types/naming.ts:17
AliasBoundedContext
export interface AliasBoundedContext {
contextAlias: string;
}typescript/wow-client/src/types/naming.ts:21
Named
export interface Named {
name: string;
}typescript/wow-client/src/types/naming.ts:28
DescriptionCapable
export interface DescriptionCapable {
description: string;
}