This document provides a high-level overview of the form system used within the IoT platform frontend. Our forms are built upon the react-jsonschema-form
library (version 1.6) and extended with custom widgets and a powerful data transformation engine to handle dynamic behaviors and data dependencies common in IoT scenarios. These schemas are applied to the forms in the widgets like Configuration, Endpoint / Asset lists, Rules and rule actions forms and whnever the Json Schema and UI Schema are present in the widget configuration.
Also it’s used for the Custom UI Widgets.
The system relies on two key JSON structures to define and render forms:
Beyond the standard capabilities of react-jsonschema-form
, our system incorporates several custom extensions:
ui:widget
) tailored for specific data types or user interactions within the platform (e.g., service selection, file uploads, templating inputs).ui:options.transformation
) allows form fields (like dropdowns) to dynamically fetch and update their options or values based on changes in other parts of the form or external data sources. This is crucial for dependent fields, such as selecting an application version based on a chosen application. See the Transformations Guide for an in-depth explanation.