Identity & Entity Lifecycle
Identity is a universal lookup MV keyed by (CanonicalKind, payload_bytes) (ADR-021). resolve_identity unifies a seed across all canonical validators; fuse_identities is the ontological merge; erase_subject is the governed right-to-erasure (cryptographic, ADR-151).
13 methods across this domain. Signatures, parameters (incl. keyword-only tunable defaults), and the three SDK spellings are ported from the live SDK source; flagship methods carry a hand-written When to use + example.
IdentityClient
erase_subject(subject_identity, reason, certify=True, purpose)
When to use. GDPR right-to-erasure — cryptographic, governed, audit-logged (ADR-151).
- Python —
client.identityclient.erase_subject(subject_identity, reason, certify=True, purpose) - TypeScript —
eraseSubject(subjectIdentity, reason, opts) - Go —
EraseSubject(subjectIdentity, reason, purpose)
Parameters: subject_identity, reason, certify=True, purpose
Example
IdentityClient.from_client(relata).erase_subject("alice@x.io", reason="gdpr-art17")invoke_lookup(name, key)
invoke_lookup(name, key)`
- Python —
client.identityclient.invoke_lookup(name, key) - TypeScript —
invokeLookup(name, key) - Go —
InvokeLookup(name, key)
Parameters: name, key
label(identity, label, confidence=1.0, source_id=None)
label(identity, label, confidence=1.0, source_id=None)`
- Python —
client.identityclient.label(identity, label, confidence=1.0, source_id=None) - TypeScript —
label(identity, label, opts) - Go —
Label(identity, label)
Parameters: identity, label, confidence=1.0, source_id=None
list_lookups()
list_lookups()`
- Python —
client.identityclient.list_lookups() - TypeScript —
listLookups() - Go —
ListLookups()
record_uncertainty(identity, reason, suggested_alternatives=None)
record_uncertainty(identity, reason, suggested_alternatives=None)`
- Python —
client.identityclient.record_uncertainty(identity, reason, suggested_alternatives=None) - TypeScript —
recordUncertainty(identity, reason, opts) - Go —
RecordUncertainty(identity, reason)
Parameters: identity, reason, suggested_alternatives=None
register_lookup(name, csv_data, key_column, value_columns=None)
register_lookup(name, csv_data, key_column, value_columns=None)`
- Python —
client.identityclient.register_lookup(name, csv_data, key_column, value_columns=None) - TypeScript —
registerLookup(name, csvData, opts) - Go —
RegisterLookup(name, csvData, keyColumn)
Parameters: name, csv_data, key_column, value_columns=None
RelataClient
detect_identities(text, purpose=None)
When to use. Run SmartIngest's lazy identifier detection over a type's rows (ADR-051).
- Python —
client.relataclient.detect_identities(text, purpose=None) - TypeScript —
detectIdentities(text, purpose) - Go —
DetectIdentities(purpose, text)
Parameters: text, purpose=None
Example
relata.detect_identities("Person")fuse_identities(id_a, id_b, purpose=None)
When to use. Ontologically merge two entities into one governed identity (provenance-tracked).
- Python —
client.relataclient.fuse_identities(id_a, id_b, purpose=None) - TypeScript —
fuseIdentities(idA, idB, purpose) - Go —
FuseIdentities(purpose, idA, idB)
Parameters: id_a, id_b, purpose=None
Example
relata.fuse_identities(id_a, id_b, reason="sanctions-match")resolve_identity(value, mode=None, purpose=None)
When to use. Unify a seed identifier (email/phone/IBAN…) into one entity + aliases across all canonical validators.
- Python —
client.relataclient.resolve_identity(value, mode=None, purpose=None) - TypeScript —
resolveIdentity(value, purpose, mode) - Go —
ResolveIdentity(purpose, value, mode)
Parameters: value, mode=None, purpose=None
Example
entity = relata.resolve_identities("alice@x.io")
print(entity.aliases)e, _ := relata.ResolveIdentity(ctx, "alice@x.io")erase_subject(subject, reason="gdpr-art17-request", purpose=None)
erase_subject(subject, reason="gdpr-art17-request", purpose=None)`
- Python —
client.relataclient.erase_subject(subject, reason="gdpr-art17-request", purpose=None) - TypeScript —
eraseSubject(subject, reason) - Go —
EraseSubject(purpose, subject, reason)
Parameters: subject, reason="gdpr-art17-request", purpose=None
identity_cluster(value, purpose=None)
identity_cluster(value, purpose=None)`
- Python —
client.relataclient.identity_cluster(value, purpose=None) - TypeScript —
identityCluster(value, purpose) - Go —
IdentityCluster(purpose, value)
Parameters: value, purpose=None
same_identity(a, b, purpose=None)
same_identity(a, b, purpose=None)`
- Python —
client.relataclient.same_identity(a, b, purpose=None) - TypeScript —
sameIdentity(a, b, purpose) - Go —
SameIdentity(purpose, idA, idB)
Parameters: a, b, purpose=None
split_identities(id_a, id_b, purpose=None)
split_identities(id_a, id_b, purpose=None)`
- Python —
client.relataclient.split_identities(id_a, id_b, purpose=None) - TypeScript —
splitIdentities(idA, idB, purpose) - Go —
SplitIdentities(purpose, idA, idB)
Parameters: id_a, id_b, purpose=None