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).

  • Pythonclient.identityclient.erase_subject(subject_identity, reason, certify=True, purpose)
  • TypeScripteraseSubject(subjectIdentity, reason, opts)
  • GoEraseSubject(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)`

  • Pythonclient.identityclient.invoke_lookup(name, key)
  • TypeScriptinvokeLookup(name, key)
  • GoInvokeLookup(name, key)

Parameters: name, key

label(identity, label, confidence=1.0, source_id=None)

label(identity, label, confidence=1.0, source_id=None)`

  • Pythonclient.identityclient.label(identity, label, confidence=1.0, source_id=None)
  • TypeScriptlabel(identity, label, opts)
  • GoLabel(identity, label)

Parameters: identity, label, confidence=1.0, source_id=None

list_lookups()

list_lookups()`

  • Pythonclient.identityclient.list_lookups()
  • TypeScriptlistLookups()
  • GoListLookups()

record_uncertainty(identity, reason, suggested_alternatives=None)

record_uncertainty(identity, reason, suggested_alternatives=None)`

  • Pythonclient.identityclient.record_uncertainty(identity, reason, suggested_alternatives=None)
  • TypeScriptrecordUncertainty(identity, reason, opts)
  • GoRecordUncertainty(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)`

  • Pythonclient.identityclient.register_lookup(name, csv_data, key_column, value_columns=None)
  • TypeScriptregisterLookup(name, csvData, opts)
  • GoRegisterLookup(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).

  • Pythonclient.relataclient.detect_identities(text, purpose=None)
  • TypeScriptdetectIdentities(text, purpose)
  • GoDetectIdentities(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).

  • Pythonclient.relataclient.fuse_identities(id_a, id_b, purpose=None)
  • TypeScriptfuseIdentities(idA, idB, purpose)
  • GoFuseIdentities(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.

  • Pythonclient.relataclient.resolve_identity(value, mode=None, purpose=None)
  • TypeScriptresolveIdentity(value, purpose, mode)
  • GoResolveIdentity(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)`

  • Pythonclient.relataclient.erase_subject(subject, reason="gdpr-art17-request", purpose=None)
  • TypeScripteraseSubject(subject, reason)
  • GoEraseSubject(purpose, subject, reason)

Parameters: subject, reason="gdpr-art17-request", purpose=None

identity_cluster(value, purpose=None)

identity_cluster(value, purpose=None)`

  • Pythonclient.relataclient.identity_cluster(value, purpose=None)
  • TypeScriptidentityCluster(value, purpose)
  • GoIdentityCluster(purpose, value)

Parameters: value, purpose=None

same_identity(a, b, purpose=None)

same_identity(a, b, purpose=None)`

  • Pythonclient.relataclient.same_identity(a, b, purpose=None)
  • TypeScriptsameIdentity(a, b, purpose)
  • GoSameIdentity(purpose, idA, idB)

Parameters: a, b, purpose=None

split_identities(id_a, id_b, purpose=None)

split_identities(id_a, id_b, purpose=None)`

  • Pythonclient.relataclient.split_identities(id_a, id_b, purpose=None)
  • TypeScriptsplitIdentities(idA, idB, purpose)
  • GoSplitIdentities(purpose, idA, idB)

Parameters: id_a, id_b, purpose=None