
Research
Malicious fezbox npm Package Steals Browser Passwords from Cookies via Innovative QR Code Steganographic Technique
A malicious package uses a QR code as steganography in an innovative technique.
openapi-enforcer
Advanced tools
Library for validating, parsing, and formatting data against open api schemas.
Tools for using the Open API Specification (OAS)
Supports OAS 2.0 (formerly Swagger) and OAS 3.x.x
npm install openapi-enforcer
Use the Enforcer to load and resolve all $ref values and then to validate the complete document.
const Enforcer = require('openapi-enforcer')
async function run () {
const [openapi, error, warning] = await Enforcer('./path/to/openapi.yml', {
fullResult: true
})
if (error !== undefined) console.error(error)
if (warning !== undefined) console.warn(warning)
if (openapi !== undefined) console.log('Document is valid')
}
run.catch(console.error)
const Enforcer = require('openapi-enforcer')
async function run () {
// Because we don't specify `fullResult: true`, any errors will throw an exception and
// warnings will be logged to the console.
const openapi = await Enforcer('./path/to/openapi.yml')
// If the request is valid then the req object will contain the parsed and validated request.
// If it is invalid then the error will contain details about what was wrong with the
// request and these details are safe to return to the client that made the request.
const [ req, error ] = openapi.request({
method: 'POST',
path: '/tasks',
// the body should be parsed by a JSON.parse() prior to passing in (if applicable).
body: { task: 'Buy Milk', quantity: 2 }
})
// You can use the req.operation property to look at the properties from your OpenAPI document.
// A good use of this is to look at the operationId you defined there to determine which path
// is being used to handle the request.
if (req.operaton.operationId === 'my-operation-id') {
// ... additional request processing
}
}
run.catch(console.error)
const Enforcer = require('openapi-enforcer')
async function run () {
const openapi = await Enforcer('./path/to/openapi.yml')
const [ req ] = openapi.request({
method: 'POST',
path: '/tasks',
// the body should be parsed by a JSON.parse() prior to passing in (if applicable).
body: { task: 'Buy Milk', quantity: 2 }
})
const body = { id: 1, task: 'Buy Milk', quantity: 2, dateCompleted: null }
const headers = {}
// This will validate the response code, body, and headers. It will also correctly serialize
// the body and headers for sending to the client that made the request. Using this method
// you'll never send back a response that does not match what your OpenAPI document defines.
const [ res, error ] = req.response(200, body, headers)
console.log(res.body, res.headers)
}
run.catch(console.error)
1.23.0
You Can Ignore Undefined Property Values
The default implementation complains of objects where a property is defined but set to undefined
.
This will cause Schema instances to fail validations, serialization, and deserialization.
Now you have the option to set the global Enforcer.config.ignoreUndefinedPropertyValues
to true
or false
(default)
or when calling a Schema instance's validate
function you can specify the ignoreUndefinedPropertyValues
as an option property.
Serialization and deserialization will now ignore undefined values in all cases.
FAQs
Library for validating, parsing, and formatting data against open api schemas.
The npm package openapi-enforcer receives a total of 8,386 weekly downloads. As such, openapi-enforcer popularity was classified as popular.
We found that openapi-enforcer demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.
Application Security
/Research
/Security News
Socket detected multiple compromised CrowdStrike npm packages, continuing the "Shai-Hulud" supply chain attack that has now impacted nearly 500 packages.