UI Schema
UI Schema is the protocol NocoBase uses to describe frontend components, based on Formily Schema 2.0 in a JSON Schema-like style. In FlowEngine, the uiSchema field in registerFlow uses this syntax to define the UI for configuration panels.
Basic Usage
Simplest Component
All native HTML tags can be converted to schema notation:
Equivalent JSX:
Child Components
Children components are written in properties:
Equivalent JSX:
Property Reference
type
The type of the node:
name
The schema name. The name of a child node is the key in properties:
title
The node title, typically used as the label for form fields.
x-component
The component name. Can be a native HTML tag or a registered React component:
x-component-props
Component props:
x-decorator
Wrapper component. The x-decorator + x-component combination allows placing two components in a single schema node — reducing structural complexity and improving reusability.
For example, in form scenarios, FormItem serves as the decorator:
Equivalent JSX:
x-display
The display state of the component:
x-pattern
The interaction mode of field components:
Usage in registerFlow
In plugin development, uiSchema is primarily used in registerFlow configuration panels. Each field is typically wrapped with 'x-decorator': 'FormItem':
v2 is compatible with the uiSchema syntax, but its use cases are limited — it is mainly used in Flow configuration panels to describe form UI. For most runtime component rendering, it is recommended to use Antd components directly.
Common Components Quick Reference
Related Links
- FlowEngine Overview (Plugin Development) — Practical usage of uiSchema in registerFlow
- FlowDefinition — Complete parameter reference for registerFlow
- Formily Schema Documentation — The underlying Formily protocol that uiSchema is based on

