A simple Amazon States Language validator based on JSON schemas. It also validates JSON paths syntax in InputPath
, OutputPath
and ResultPath
.
When writing your state machine (for AWS step functions), you can't locally validate you state machine definition without creating it. asl-validator
makes it possible.
# Use via the CLI
npm install -g asl-validator
# Use in your code
npm install asl-validator
$ asl-validator --help
Usage: asl-validator [options]
Amazon States Language validator
Options:
-v, --version output the version number
--json-definition <jsonDefinition> JSON definition
--json-path <jsonPath> JSON path
--silent silent mode
-h, --help output usage information
Return status:
0
if state machine definition is valid1
if state machine definition is invalid2
if an exception occurs
const aslValidator = require('asl-validator');
const definition = require('./path/to/my/state/machine/json/definition');
const { isValid, errors, errorsText } = aslValidator(definition);
if (isValid) {
console.log('✓ State machine definition is valid')
} else {
// Either go through the errors object
console.error('✕ State machine definition is invalid:', errors.map(({ message }) => message).join('\n'));
// Or display the preformatted errors text
console.error('✕ State machine definition is invalid:', errorsText('\n'));
}
npm run test
npm run lint
- ASL specifications
- ASL documentation on AWS website
- Blog post from the creator of ASL explaining the pros and cons of a JSON schema based validator. An RFC based looks really interesting, but still the JSON schema approach seems more flexible and evolutive.
See LICENSE.