References

A reference decides what a node works on. It never triggers a run.

A reference is an input bound to another node’s output. It means use that node’s latest result as this value. It’s the only way data moves between nodes: edges only decide the order in which they run.

Any input in a node’s sidebar can hold a value or a reference. To bind one, hover the input and click the link icon next to it. A list opens with the outputs of the other nodes in the flow, grouped by node:

  • Only outputs of a compatible type are listed — a dataset input offers datasets, a model input offers models.
  • Each group says how that node relates to this one: 2 edges upstream, Connected by 1 edge, Not connected to this node.
  • An output that has no value yet is marked with a warning. It gets a value once its node has run successfully.

Once bound, the input shows the source node, the output name and its current value. Hovering it highlights the source node on the canvas. Click the × to unbind, which resets the input to its default.

Some inputs take several values at once — a list of datasets to merge, for example — and let you tick several outputs. A few inputs hold references inside a larger value: each outcome of a Labeling node points at its own destination dataset.

When a reference is resolved

A reference is resolved at the moment the node starts: OvalBee reads the source node’s latest stored output. That’s why references work across the whole canvas, not only between neighbors. If the source node has never produced that output, the run stops with a message naming the node to run first.

Because references don’t trigger anything, you still need an edge (or a manual run) to make sure the source has run before the node that reads from it.

Binding while you draw

When you draw a flow edge to a node whose dataset inputs are empty, OvalBee looks for matching outputs on the source node and offers to bind them: Set variable binding? Choose Set binding or Skip, and tick Always use this choice if you don’t want to be asked again. The same preference lives in the flow toolbar’s settings under Auto-bind inputs.

Use references generously

References are what keep a flow correct when it changes. A few habits pay off quickly:

  • One source of truth for each dataset. Put a Dataset node at the top of the flow and reference its output everywhere else. Switching the whole flow to another dataset is then one change instead of ten.
  • Don’t retype what a node already produced. Bind the model a training node trained, the dataset a split wrote, the report another node built. Typed-in copies go stale the first time something reruns.
  • Let outputs travel far. An evaluation at the bottom of the flow can reference the validation split at the top. No extra arrows needed.
  • Check before deleting. When you delete a node that others reference, OvalBee lists the affected nodes and clears their bound inputs, so nothing silently points at a node that’s gone.

To see every output in the flow at once, open More actions → Variables… in the toolbar.

The app calls a reference a variable binding, and the list of bindable outputs variables. It’s the same thing.

Latest or pinned

A dataset input can follow a dataset’s latest version or stay on one exact version. In the dataset picker, the row marked @latest follows the newest version, and expanding a dataset with several versions lets you pick one of them. Model inputs work the same way, and a model reference marked @latest picks up the newest ready version every time the node runs — so the next training run’s model is used automatically.

See Datasets and versions for when to use which.