Skip to content

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.

ContractMeaning and constraint
Identifier.id / Version.versionGeneric string identity / numeric version. Neither generates an ID nor validates a version range.
AggregateIdFlat {aggregateId, tenantId, contextName, aggregateName}. Match all four when correlating results; an ID string alone is not the full identity.
AggregateIdCapable.aggregateIdNests that whole object. Do not confuse this with the string field of AggregateId.
NamedBoundedContext / AliasBoundedContextcontextName is the model name; contextAlias is the routing alias. Named/AliasAggregate additionally require aggregateName.
OwnerId, TenantId, SpaceIdCapableExplicit string attribution fields. DEFAULT_OWNER_ID is ''; it is not FetcherViewer's (0) default.
UrlPathParamsOptional tenant/owner/id plus custom string path slots. Supply the slots required by the chosen template.
ResourceAttributionPathSpecEmpty, tenant, owner and tenant+owner route prefixes; templates do not establish authorization.
AbacTags / AbacTaggable.tagsMap each tag key to a string array; empty tags {}, wildcard values ['*']. The server defines how they affect policy.
ApplyAbacTags / AbacTagsAppliedCommand/event payloads containing tags; no local policy engine or automatic mutation.
Named / DescriptionCapableRequired 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

ts
export type AbacTagKey = string;

packages/wow/src/types/abac.ts:13

AbacTagValue

ts
export type AbacTagValue = string[];

packages/wow/src/types/abac.ts:14

AbacTags

ts
export type AbacTags = Record<AbacTagKey, AbacTagValue>;

packages/wow/src/types/abac.ts:15

EMPTY_ABAC_TAGS

ts
declare const EMPTY_ABAC_TAGS: AbacTags;

packages/wow/src/types/abac.ts:16

WILDCARD_ABAC_TAG_VALUES

ts
declare const WILDCARD_ABAC_TAG_VALUES: string[];

packages/wow/src/types/abac.ts:17

AbacTaggable

ts
export interface AbacTaggable {
  tags: AbacTags;
}

packages/wow/src/types/abac.ts:19

ApplyAbacTags

ts
export interface ApplyAbacTags extends AbacTaggable {}

packages/wow/src/types/abac.ts:24

AbacTagsApplied

ts
export interface AbacTagsApplied extends AbacTaggable {}

packages/wow/src/types/abac.ts:27

Identifier

ts
export interface Identifier {
  id: string;
}

packages/wow/src/types/common.ts:17

Version

ts
export interface Version {
  version: number;
}

packages/wow/src/types/common.ts:31

UrlPathParams

ts
export interface UrlPathParams {
  tenantId?: string;
  ownerId?: string;
  id?: string;
  [key: string]: string | undefined;
}

packages/wow/src/types/endpoints.ts:19

ResourceAttributionPathSpec

ts
export enum ResourceAttributionPathSpec {
  NONE = '',
  TENANT = '/tenant/{tenantId}',
  OWNER = '/owner/{ownerId}',
  TENANT_OWNER = '/tenant/{tenantId}/owner/{ownerId}',
}

packages/wow/src/types/endpoints.ts:57

AggregateNameCapable

ts
export interface AggregateNameCapable {
  aggregateName: string;
}

packages/wow/src/types/modeling.ts:79

NamedAggregate

ts
export interface NamedAggregate
  extends NamedBoundedContext, AggregateNameCapable {}

packages/wow/src/types/modeling.ts:89

AliasAggregate

ts
export interface AliasAggregate
  extends AliasBoundedContext, AggregateNameCapable {}

packages/wow/src/types/modeling.ts:92

AggregateId

ts
export interface AggregateId extends TenantId, NamedAggregate {
  aggregateId: string;
}

packages/wow/src/types/modeling.ts:98

AggregateIdCapable

ts
export interface AggregateIdCapable {
  aggregateId: AggregateId;
}

packages/wow/src/types/modeling.ts:109

DEFAULT_OWNER_ID

ts
declare const DEFAULT_OWNER_ID: '';

packages/wow/src/types/modeling.ts:129

OwnerId

ts
export interface OwnerId {
  ownerId: string;
}

packages/wow/src/types/modeling.ts:134

SpaceIdCapable

ts
export interface SpaceIdCapable {
  spaceId: string;
}

packages/wow/src/types/modeling.ts:141

TenantId

ts
export interface TenantId {
  tenantId: string;
}

packages/wow/src/types/modeling.ts:158

NamedBoundedContext

ts
export interface NamedBoundedContext {
  contextName: string;
}

packages/wow/src/types/naming.ts:17

AliasBoundedContext

ts
export interface AliasBoundedContext {
  contextAlias: string;
}

packages/wow/src/types/naming.ts:21

Named

ts
export interface Named {
  name: string;
}

packages/wow/src/types/naming.ts:28

DescriptionCapable

ts
export interface DescriptionCapable {
  description: string;
}

packages/wow/src/types/naming.ts:39

Complete symbol index

Released under the Apache License 2.0.