
Security News
NVD Concedes Inability to Keep Pace with Surging CVE Disclosures in 2025
Security experts warn that recent classification changes obscure the true scope of the NVD backlog as CVE volume hits all-time highs.
asyncapi-validator
Advanced tools
message validator through asyncapi schema
_Note: This package only support AsyncAPI Schema v2.0.0 and above. Since v3.0.0, support for older versions of AsyncAPI Schema has been removed.
npm i asyncapi-validator
/**
* Load and Parse the schema from source.
* @param {string} path - local PATH or URL of schema
* @param {Object} options - options for validation
* @returns {Promise}
*/
AsyncApiValidator.fromSource(path, options)
value | type | description | |
---|---|---|---|
ignoreArray | boolean | optional | If true , then if schema is defined as an array and payload is an object, then payload will be placed inside an array before validation. |
msgIdentifier | string | required | Name of parameter whose value will be used as "key" in .validate() method. Recommendation is to use "name" as described in message-object. You can also use Specification Extensions |
/**
* Method to validate the Payload against schema definition.
* @param {string} key - required - message key
* @param {Object} payload - required - payload of the message
* @param {string} channel - required - name of the channel/topic
* @param {string} operation - required - publish | subscribe
* @returns {boolean}
*/
.validate(key, payload, channel, operation)
.schema
property can be used to access AsyncAPI schema in JSON format and with all the refs resolved.
Schema
asyncapi: 2.0.0
info:
title: User Events
version: 1.0.0
channels:
user-events:
description: user related events
publish:
message:
name: UserDeletedMessage
x-custom-key: UserDeleted
payload:
type: object
properties:
userEmail:
type: string
userId:
type: string
const AsyncApiValidator = require('asyncapi-validator')
let va = await AsyncApiValidator.fromSource('./api.yaml', {msgIdentifier: 'x-custom-key'})
// validate 'UserDeleted' on channel 'user-events' with operation 'publish'
va.validate('UserDeleted', {
userId: '123456789',
userEmail: 'alex@mail.com',
}, 'user-events', 'publish')
In above example, "msgIdentifier"
is "x-custom-key"
. That is why, "UserDeleted"
is used as "key"
in "va.validate()"
method.
Error thrown from asyncapi-validator will have these properties.
key | type | value | description |
---|---|---|---|
name | string | AsyncAPIValidationError | AsyncAPIValidationError |
key | string | "key" of payload against which schema is validated | |
message | string | errorsText from AJV | |
errors | array | Array of errors from AJV |
{
AsyncAPIValidationError: data.type should be equal to one of the allowed values at MessageValidator.validate (.....
name: 'AsyncAPIValidationError',
key: 'hello',
errors:
[
{ keyword: 'enum',
dataPath: '.type',
schemaPath: '#/properties/type/enum',
params: [Object],
message: 'should be equal to one of the allowed values'
}
]
}
asyncapi-validator validates the payload of the messages of a certain message, as described in your schema document. To validate against
a certain message, it needs to find the message are you pointing to in schema document. For that, you need to pass it key
, channel
, and operation
of the message.
validate(key, payload, channel, operation)
channel
should be defined only once in your whole schema document.key
should be unique for an operation
on a channel
.That means,
key
.key
FAQs
message validator through asyncapi schema
The npm package asyncapi-validator receives a total of 9,638 weekly downloads. As such, asyncapi-validator popularity was classified as popular.
We found that asyncapi-validator demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Security experts warn that recent classification changes obscure the true scope of the NVD backlog as CVE volume hits all-time highs.
Security Fundamentals
Attackers use obfuscation to hide malware in open source packages. Learn how to spot these techniques across npm, PyPI, Maven, and more.
Security News
Join Socket for exclusive networking events, rooftop gatherings, and one-on-one meetings during BSidesSF and RSA 2025 in San Francisco.