Skip to content

Identity and resource attribution ​

5.x only

This page applies to the 5.x line only (npm 5.1.x, branch 5.x). From 6.0, @ahoo-wang/fetcher-wow lives in the Wow repository (typescript/) and is documented at wow.ahoo.me; its successor @ahoo-wang/wow-client is on npm from Wow 9.2.0 (9.2.1 or later accepts fetcher 6).

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.