Schema Node
Overview
Section titled “Overview”- outputSchema – JSON Schema defining the expected structure
- validationEnabled – Whether to validate incoming data
- transformData – Whether to transform data to match schema
On the Explore tab you browse the output rows the last run published for the node. Filters and sorts run on the server, so large tables stay responsive, and your saved views, lineage markers, and edit marks apply as in every Explore view. Click a cell to select it, and hover its lineage marker to see where the value came from.
Nested output ports follow the schema tree. An array field port (for example _sheetData) is one row with one column holding the nested array. The array item port under it (the {} node, path ending in .0) unnests object items into a table so you can split a multi-sheet workbook into one tabular stream per sheet. Schema copies those nested arrays from the incoming row by full path (Sheet1._sheetData), then you can wire that item port to a following Schema.
Schema from Input on File Input does that split for you when the file is a multi-sheet workbook: it creates the input Schema for the keyed workbook, then one extract Schema per sheet wired to output.{Sheet}._sheetData.0 with that sheet’s columns already added. The hub Input Schema turns on Hide Unused Properties so unused nested columns and unused sheets start hidden. Extract Schemas and single-sheet or flat-table Input Schemas leave that setting off.
On Schema Display Settings, Hide Unused Properties keeps a field on the canvas when you wired that field or any nested field under it. A wire on output.Sheet1._sheetData.0.Col A keeps Sheet1, _sheetData, the item row, and Col A. Unused sibling columns and unused sheets hide.
Unused grey output field ports stay hidden until you hover the Schema card. They also become visible on every Schema while you drag a wire from another node’s input side, so you can drop onto one. A Schema’s input side is one port per incoming wire, not one per field, so it has no field ports to reveal.
On the Schema Output Schema tree, select a field to add a source-path alias ((add source...)). The processor maps incoming columns from those JSONPath or dot paths first, then falls back to the field name. The canvas Schema card shows existing aliases as grey text and does not let you edit them there.
Reading one wire, or several
Section titled “Reading one wire, or several”With one wire into the Schema node, a source path is a path on the incoming row (Sheet1._sheetData), as above.
With several wires, each wire is a named table on the node and a source path names the table and the field: prices.asOf reads the asOf field of the table on the handle prices. The handle is the wire’s own name, which you can rename on the Overview panel. See Wires and named tables.
A property that should take its value from a formula instead of a wire belongs in the node’s merge formula, which runs before the schema mapping and can read every table.
Row identity key
Section titled “Row identity key”On Schema settings you can pick an ordered row identity key from that Schema’s output properties (one field or several). The first Schema on a lineage that sets this key owns it. Later Schemas inherit it and cannot re-declare it.
When a key is defined:
- A missing key value, a duplicate key, or two lineages that meet with different keys fails the run.
- A merge formula can join rows on it:
inputs().prop("prices").find("tradeId", prop("tradeId"))matches the same row across wires. - Exception management matches tickets by this key across runs, not by a full-row content hash.
Community template Exception Ticket Persistence uses tradeId as the identity key so you can change ticket Status, edit the blotter, and re-run in your clone of the Workspace.
The key travels as sidecar metadata on each row. The key is not added as extra visible columns.
Related
Section titled “Related”- Workflow schema – Full schema reference
- Wires and named tables – Source paths when several wires reach the node
- operation – Uses schema for field detection