Get the metadata for an object.
Returns mutable meta when passed a mutable object (inside Obj.update callback).
Returns read-only meta when passed a regular object or snapshot.
Caller-supplied domain identity, unique within a space: two entities carrying the same
convergence key are the same entity and are merged into one. Declared by assigning this
field inside an update callback — Entity.update(x, (x) => { Entity.getMeta(x).convergenceKey = '…' })
— so it batches with the caller's other writes; there is deliberately no dedicated setter.
Objects only: the merge engine ignores the field on relations and types (not merge subjects
yet), and treats the empty string as no key — both are verified at detection, in the worker,
and in the client executor rather than at write time, since the field replicates from peers
that cannot be trusted to have validated it.
Opaque to the storage engine — callers that need generations encode them in the string
(e.g. com.example.seed@2), which yields distinct entities because the strings differ.
Distinct from key/version above, which record the registry entry an instance was
created from (provenance, not identity).
OptionalReadonlycreatedAt?: number
Unix ms timestamp when this entity was created.
Read-only; sourced from the system section of the automerge document — not stored in meta.
OptionalReadonlykey?: string
Fully-qualified registry key for the object (FQN format, e.g. com.example.type.foo).
Identifies the canonical registry entry the object instance was created from.
Readonlykeys: {id:string;source:string}[]
Readonlytags: Ref<Tag>[]
Tags applied to this entity, as references to Tag objects.
OptionalReadonlyupdatedAt?: number
Unix ms timestamp of the last automerge change on this entity's document.
Read-only; derived from the automerge change graph — not stored in meta.
OptionalReadonlyversion?: string
Semantic version of the registry entry the object was created from.
Must be a valid semver string (e.g. 1.2.3).
Get the metadata for an object.
Returns mutable meta when passed a mutable object (inside Obj.update callback).
Returns read-only meta when passed a regular object or snapshot.
Caller-supplied domain identity, unique within a space: two entities carrying the same
convergence key are the same entity and are merged into one. Declared by assigning this
field inside an update callback — Entity.update(x, (x) => { Entity.getMeta(x).convergenceKey = '…' })
— so it batches with the caller's other writes; there is deliberately no dedicated setter.
Objects only: the merge engine ignores the field on relations and types (not merge subjects
yet), and treats the empty string as no key — both are verified at detection, in the worker,
and in the client executor rather than at write time, since the field replicates from peers
that cannot be trusted to have validated it.
Opaque to the storage engine — callers that need generations encode them in the string
(e.g. com.example.seed@2), which yields distinct entities because the strings differ.
Distinct from key/version above, which record the registry entry an instance was
created from (provenance, not identity).
OptionalReadonlycreatedAt?: number
Unix ms timestamp when this entity was created.
Read-only; sourced from the system section of the automerge document — not stored in meta.
OptionalReadonlykey?: string
Fully-qualified registry key for the object (FQN format, e.g. com.example.type.foo).
Identifies the canonical registry entry the object instance was created from.
A hook bound to window.DXOS.