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. DEFAULT_OWNER_ID is ''; it is not FetcherViewer's (0) default. |
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. For a saved-view identity, use the remote confirmation rules; never substitute UI tenant filtering for server authorization.
Exact contracts
AbacTagKey
export type AbacTagKey = string;packages/wow/src/types/abac.ts:13
AbacTagValue
export type AbacTagValue = string[];packages/wow/src/types/abac.ts:14
AbacTags
export type AbacTags = Record<AbacTagKey, AbacTagValue>;packages/wow/src/types/abac.ts:15
EMPTY_ABAC_TAGS
declare const EMPTY_ABAC_TAGS: AbacTags;packages/wow/src/types/abac.ts:16
WILDCARD_ABAC_TAG_VALUES
declare const WILDCARD_ABAC_TAG_VALUES: string[];packages/wow/src/types/abac.ts:17
AbacTaggable
export interface AbacTaggable {
tags: AbacTags;
}packages/wow/src/types/abac.ts:19
ApplyAbacTags
export interface ApplyAbacTags extends AbacTaggable {}packages/wow/src/types/abac.ts:24
AbacTagsApplied
export interface AbacTagsApplied extends AbacTaggable {}packages/wow/src/types/abac.ts:27
Identifier
export interface Identifier {
id: string;
}packages/wow/src/types/common.ts:17
Version
export interface Version {
version: number;
}packages/wow/src/types/common.ts:31
UrlPathParams
export interface UrlPathParams {
tenantId?: string;
ownerId?: string;
id?: string;
[key: string]: string | undefined;
}packages/wow/src/types/endpoints.ts:19
ResourceAttributionPathSpec
export enum ResourceAttributionPathSpec {
NONE = '',
TENANT = '/tenant/{tenantId}',
OWNER = '/owner/{ownerId}',
TENANT_OWNER = '/tenant/{tenantId}/owner/{ownerId}',
}packages/wow/src/types/endpoints.ts:57
AggregateNameCapable
export interface AggregateNameCapable {
aggregateName: string;
}packages/wow/src/types/modeling.ts:79
NamedAggregate
export interface NamedAggregate
extends NamedBoundedContext, AggregateNameCapable {}packages/wow/src/types/modeling.ts:89
AliasAggregate
export interface AliasAggregate
extends AliasBoundedContext, AggregateNameCapable {}packages/wow/src/types/modeling.ts:92
AggregateId
export interface AggregateId extends TenantId, NamedAggregate {
aggregateId: string;
}packages/wow/src/types/modeling.ts:98
AggregateIdCapable
export interface AggregateIdCapable {
aggregateId: AggregateId;
}packages/wow/src/types/modeling.ts:109
DEFAULT_OWNER_ID
declare const DEFAULT_OWNER_ID: '';packages/wow/src/types/modeling.ts:129
OwnerId
export interface OwnerId {
ownerId: string;
}packages/wow/src/types/modeling.ts:134
SpaceIdCapable
export interface SpaceIdCapable {
spaceId: string;
}packages/wow/src/types/modeling.ts:141
TenantId
export interface TenantId {
tenantId: string;
}packages/wow/src/types/modeling.ts:158
NamedBoundedContext
export interface NamedBoundedContext {
contextName: string;
}packages/wow/src/types/naming.ts:17
AliasBoundedContext
export interface AliasBoundedContext {
contextAlias: string;
}packages/wow/src/types/naming.ts:21
Named
export interface Named {
name: string;
}packages/wow/src/types/naming.ts:28
DescriptionCapable
export interface DescriptionCapable {
description: string;
}