Skip to main content

Lineage node

An asset on the lineage canvas.

<mm-lineage-node name="orders_daily" type="model" provider="dbt" current></mm-lineage-node>
<mm-lineage-node name="Weekly revenue" type="dashboard" provider="looker" stub></mm-lineage-node>
<mm-lineage-node variant="agent-cluster" count="4"></mm-lineage-node>

Guidance​

Lineage nodes are compact cards on the lineage canvas: a sentence-case caption naming the asset type ("Table", "Topic · stub"), the asset name (13px, 600, wrapping anywhere so long MRN-like names never overflow), and the provider with its logo. Provider logos are the only colour; they are never recoloured.

States, each carried by shape or words as well as colour:

  • current: the asset whose page you are on. 2px burnt sienna border on the burnt sienna tint. One per graph.
  • selected: a 2px ink border and a tick at the end of the type strip. It is deliberately not the focus ring (a detached 2px ink outline with a 2px gap) and not burnt sienna, so current, selected and focused can all be told apart, alone or combined.
  • stub: created by OpenLineage but not yet surveyed by a plugin. Dashed border on a transparent ground, "stub" in the type strip, and "Not catalogued yet" for assistive technology.
  • failed: the last run failed. A crimson error icon and the words "Last run failed".

Variants: cycle-return closes a cycle without drawing an edge backwards ("Returns to orders_daily", dotted ochre border, matching cycle edges). agent-cluster groups agents that looked up one asset ("4 agents looked this up") and expands to list them.

Standalone, set interactive to render the node as a button that fires mm-node-activate. Inside mm-lineage-canvas the canvas owns focus and keyboard, so nodes are not tab stops there.

Properties​

PropertyAttributeTypeDefaultDescription
namenamestring''Asset name, or for cycle-return the name of the asset the cycle returns to.
typetypestring''Asset type, written in normal case (table, topic, dashboard, model). Shown in sentence case ("Table").
providerproviderstring''Provider key as used in MRNs (postgresql, kafka, dbt).
mrnmrnstring''The asset's MRN, e.g. mrn://postgresql/table/shop.public.orders. Used in events and the accessible description.
variantvariantLineageNodeVariant'asset'asset (default), cycle-return or agent-cluster.
currentcurrentbooleanfalseThe asset whose page you are on.
selectedselectedbooleanfalseSelected on the canvas.
stubstubbooleanfalseCreated by OpenLineage, not yet surveyed by a plugin.
failedfailedbooleanfalseThe asset's last run failed.
focusedfocusedbooleanfalseDraws the focus ring. Set by mm-lineage-canvas, which keeps DOM focus on itself and points at the node with aria-activedescendant.
interactiveinteractivebooleanfalseRenders the card as a button that fires mm-node-activate. For standalone use.
countcountnumber0Agent cluster: number of agents. Defaults to the length of members.
membersstring[][]Agent cluster: agent names, listed when expanded.
expandedexpandedbooleanfalseAgent cluster: whether the agent list is shown.

Methods​

MethodDescription
describe()A sentence describing the node for assistive technology, used by the canvas as the node's label.
toggle()Expands or collapses an agent cluster and fires mm-toggle.

Events​

EventDetailDescription
mm-node-activateCustomEvent<MmLineageNodeActivateDetail>An interactive node was clicked or activated with Enter or Space.
mm-toggleCustomEvent<MmLineageNodeToggleDetail>An agent cluster was expanded or collapsed.

CSS parts​

PartDescription
nodeThe card (a button when interactive).
typeThe type caption.
nameThe asset name.
providerThe provider row.
statusThe "Last run failed" row.
toggleThe agent cluster's show or hide button.

Examples​

Every state of mm-lineage-node in Storybook, with keyboard and screen reader tests.