Skip to content

ThingDetail

ThingDetail = object

Full record shape for a single Thing returned by single-record SDK reads. Returned by client.thing.get and client.thing.resolve, the items[] element type for client.thing.getMany, the base of client.thing.graph, and the return of client.repo.getReadme and getAgents (nullable). Identity fields (wref, name, kind, shape/shapeName) are always populated. data carries the shape-validated payload when present; active is false for retracted reads. The [key: string]: unknown index signature is a forward-compat affordance — current callers should rely on the named fields. Note: list reads — client.thing.head, query, and search — return a thinner row shape (no shape, validatedShape, or committerWref); use client.thing.get to hydrate a full ThingDetail from a list result.

Authored WREF values inside data and identity metadata such as aboutWref, committerWref, createdBy, and revisedBy use durable ids in the reader-independent base response. Body references preserve their exact version pin; identity references are unpinned. With decorateResponses, a separate decorations sidecar maps readable durable ids to current canonical labels without rewriting the base body. A durable id grants no target access.

https://docs.warmhub.ai/data-modeling/things/

[key: string]: unknown

wref: string


optional pinnedWref?: string


name: string


kind: string


optional shape?: string


optional shapeName?: string

Canonical unversioned shape name (e.g. "Game").


optional validatedShape?: string

Version-pinned shape wref (e.g. "Game@v3") — the shape version that validated this thing version.

Naming caveat, now retiring. Where the read path still sources the legacy shape column, this is synthesized from the shape’s current version at read time, so revising a shape retroactively changes it for every thing already validated against an older version. Where reads are served from certificate records it is the captured fact and no longer moves. The two sources give the same answer except when the shape was revised after the thing version was written; the caveat goes away entirely once every repository reads certificates.


version: number


active: boolean


optional data?: unknown


optional collection?: CollectionReadSummary


optional synthesized?: boolean

True on synthesized empty stubs from getReadme/getAgents when no row exists yet.


optional aboutWref?: string


optional affirmedWrefs?: string[]

Pinned target wrefs the returned assertion version affirms. Assertions only; targets the reader cannot see are suppressed per-target.


optional committerWref?: string


optional createdBy?: string

#4848 Phase C: the thing’s creator (first-version author), a peer of the current-version author revisedBy. Present for things created after Phase C; optional for legacy rows without trustworthy creator provenance.


optional revisedBy?: string

#4848 Phase C: current-version author (renamed from createdByWref).


optional metadata?: ThingMetadata