You're reading the v2.4.1 docs. View the latest (v2.5.8) →

Types & Ontology

Types are git-branched, schema-as-code (ADR ontology). schema_alter evolves a type in place; ontology_migrate applies a SHACL constraint set; create_link/register_edge_type wire the graph. Modules group a type pack.

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

RelataClient

register_type(name, **kwargs)

When to use. Register a new governed type with its column schema and constraints. **kwargs mirrors the server's full TypeDef body: description/owner, properties (each {name, required, state_machine}), computed_columns, graph_triggers (materialise a LinkStore edge from src_field to dst_field on every ingested row — the mechanism behind automatic graph wiring on ingest), bm25_params ({k1, b}, per-type full-text tuning), and force (required to redefine a computed column/state machine on a type that already has rows).

  • Pythonclient.relataclient.register_type(name, **kwargs)
  • TypeScriptregisterType(name, spec)
  • GoRegisterType(name, spec)

Parameters: name, **kwargs

Example

relata.register_type(
    "Company",
    properties=[{"name": "name", "required": True}, {"name": "vat", "required": False}],
    graph_triggers=[{"link_type": "employs", "src_field": "company_id", "dst_field": "employee_id"}],
)

schema_alter(type_name, action, column, new_column=None, col_type=None, optional=None)

When to use. Evolve a type in place (add/drop/rename/retype columns) without a full re-register (ADR-1307).

  • Pythonclient.relataclient.schema_alter(type_name, action, column, new_column=None, col_type=None, optional=None)
  • TypeScriptschemaAlter(name, action, column, opts)
  • GoSchemaAlter(name, action, column)

Parameters: type_name, action, column, new_column=None, col_type=None, optional=None

Example

relata.schema_alter("Company", "add", "lei", col_type="text")

create_link(link_name, source_id, source_type, target_id, target_type)`

  • Pythonclient.relataclient.create_link(link_name, source_id, source_type, target_id, target_type)
  • TypeScriptcreateLink(params)
  • GoCreateLink(params)

Parameters: link_name, source_id, source_type, target_id, target_type

delete_webhook(webhook_id)

delete_webhook(webhook_id)`

  • Pythonclient.relataclient.delete_webhook(webhook_id)
  • TypeScriptdeleteWebhook(id)
  • GoDeleteWebhook(id)

Parameters: webhook_id

deregister_type(name)

deregister_type(name)`

  • Pythonclient.relataclient.deregister_type(name)
  • TypeScriptderegisterType(name)
  • GoDeregisterType(name)

Parameters: name

enrichment_rules(rules)

enrichment_rules(rules)`

  • Pythonclient.relataclient.enrichment_rules(rules)
  • TypeScriptenrichmentRules(rules)
  • GoEnrichmentRules(rules)

Parameters: rules

list_edge_types()

list_edge_types()`

  • Pythonclient.relataclient.list_edge_types()
  • TypeScriptlistEdgeTypes()
  • GoListEdgeTypes()

list_modules()

list_modules()`

  • Pythonclient.relataclient.list_modules()
  • TypeScriptlistModules()
  • GoListModules()

list_types()

list_types()`

  • Pythonclient.relataclient.list_types()
  • TypeScriptlistTypes()
  • GoListTypes()

list_webhooks()

list_webhooks()`

  • Pythonclient.relataclient.list_webhooks()
  • TypeScriptlistWebhooks()
  • GoListWebhooks()

ontology_migrate(schema)

ontology_migrate(schema)`

  • Pythonclient.relataclient.ontology_migrate(schema)
  • TypeScriptontologyMigrate(schema)
  • GoOntologyMigrate(schema)

Parameters: schema

register_edge_type(from_type, to_type, label)

register_edge_type(from_type, to_type, label)`

  • Pythonclient.relataclient.register_edge_type(from_type, to_type, label)
  • TypeScriptregisterEdgeType(fromType, toType, label)
  • GoRegisterEdgeType(fromType, toType, label)

Parameters: from_type, to_type, label

register_webhook(url, event_types=None, secret=None)

register_webhook(url, event_types=None, secret=None)`

  • Pythonclient.relataclient.register_webhook(url, event_types=None, secret=None)
  • TypeScriptregisterWebhook(url, eventTypes, opts)
  • GoRegisterWebhook(url, eventTypes)

Parameters: url, event_types=None, secret=None

type_detail(name)

type_detail(name)`

  • Pythonclient.relataclient.type_detail(name)
  • TypeScripttypeDetail(name)
  • GoTypeDetail(name)

Parameters: name