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=None, purpose)

When to use. GDPR right-to-erasure — cryptographic, governed, audit-logged (ADR-151).

  • Python — client.identityclient.erase_subject(subject_identity, reason, certify=None, purpose)
  • TypeScript — eraseSubject(subjectIdentity, reason, opts)
  • Go — EraseSubject(subjectIdentity, reason, purpose)

Parameters: subject_identity, reason, certify=None, 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