0.1.2 • Published 1 month ago

@gregoriusrippenstein/node-red-contrib-validation-and-documentation v0.1.2

Weekly downloads
-
License
MIT
Repository
github
Last release
1 month ago

Built upon node-red-contrib-full-msg-json-schema-validation, origial readme follows

This validation node does two more things:

  • valid the entire object, previously it was only possible to validate a property on the object
  • generates documentation of the schema and replaces the info details of the node with the documentation

Some more details are available at the comparison flow and the forum discussion.

Unlike the original, instead of two outputs this has only one. Previously the two outputs where used to diverge messages that where valid and those that weren't. Instead this throws an exception that can be caught if validation fails. For the author this makes more sense since a validation that fails represents an unknown state of the system, likely to cause failure - fail fast, fail early is the motto.

Documentation is created using jsonschema2md and stored in the nodes info box - existing content will be replaced. The intention is to copy and paste that documentation to somewhere else. The info box is a good place to put it in the first place, alternative would be a debug message of some sort.

To generate the documentation, use the button in the property panel:

img

The schema can be pasted into the editor pane also located in the property panel:

img

Documentation

Documentation can be found in the description panel and from there copied:

img

The markdown is rendered in the info box of the node:

img

Examples

An example flow is included and can also be viewed here.

Validation methods

As with the original, validation is done using the ajv library, just an updated version.

Validation of flow and global is perhaps not the best since it makes a copy of those two. The environment is validating using process.env - this too might not be the best way.

Artifacts


node-red-contrib-json-full-schema-validator

JSON Full Schema validator for Node Red is pretty easy to use. Just open node properties and choose which property object wants to validate and paste JSON Schema

  • OK will returned in first response
  • KO will returned in second response. Error object with explanation will added in msg

JSON Schema:

{ "title": "Person", "type": "object", "required":"lastName", "properties": { "firstName": { "type": "string", "description": "The person's first name." }, "lastName": { "type": "string", "description": "The person's last name." }, "age": { "description": "Age in years which must be equal to or greater than zero.", "type": "integer", "minimum": 0 } } }

Examples:

  • OK msg.payload= { "firstName": "John", "lastName": "Doe", "age": 1 };

  • KO msg.payload= { "firstName": "John", "age": 1 };

0.1.2

1 month ago

0.1.1

2 months ago

0.1.0

6 months ago

0.0.9

6 months ago

0.0.8

7 months ago

0.0.7

7 months ago

0.0.6

7 months ago

0.0.5

7 months ago

0.0.4

7 months ago

0.0.3

7 months ago

0.0.2

7 months ago

0.0.1

7 months ago