I published a small linter for JSON Forms configs: schema-form-lint.
It reads a JSON Schema and a UI schema and reports problems before a user hits them. The checks that matter most for JSON Forms:
- a field that is required, has no default, and a SHOW or HIDE rule can hide (JSON Forms still validates hidden fields)
- a rule condition that can never match the schema (wrong enum value, wrong type)
- a scoped condition without failWhenUndefined, so the rule applies while the field is still empty
- a scope that does not resolve, including inside array detail layouts
- required names that do not exist on the schema
It only reports what it can prove. Names required only inside then, oneOf, or dependentRequired are not treated as always required. If your app already drops validation errors for hidden fields, turn that rule off:
schema-form-lint jsonforms --schema schema.json --uischema uischema.json --rule jsonforms/required-hideable=off
Install: npm install --save-dev schema-form-lint
npm: https://www.npmjs.com/package/schema-form-lint
source: GitHub - Yomu1273/schema-form-lint · GitHub
The same package also checks react-jsonschema-form uiSchema (ui:order, unknown keys, hidden required fields). Happy to hear which warnings are noise on real forms.