Skip to content

Node schemas

The two declarative halves that define a custom node — its data schema and the form rendered in the property panel.

A node is described by two declarative files. Together they define what the node stores and how it’s edited:

FilePurpose
schema.tsData layer. A JSON Schema for the node’s properties — types, validation rules.
uischema.tsVisual layer. A JsonForms-shaped tree describing the form in the property panel.

The two reference each other through scope strings — JsonPointer-style paths from the data schema’s root, e.g. '#/properties/url'. schema.ts says what a property is; uischema.ts says how it renders.

PageWhat it covers
Data schemaField types, validators, the SDK’s options extension, NodeDataProperties inference.
Form overviewThe shape of uischema.ts and how its three element families fit together.
Form controlsEvery built-in input control with required + optional props and an example.
Form layoutsContainers (VerticalLayout, HorizontalLayout, Group, Accordion) and labels.

If you’re authoring your first custom node, follow the Add a custom node recipe — it walks through schema.ts, uischema.ts, defaults, and palette registration end-to-end. Reach for the pages above when you need the type catalogue or the props for a specific control.