All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- The resolve option
--internal-refs
to resolve internal references (#295) - Line numbers to YAML parse errors (#336, #337)
- The
path-keys-no-trailing-slash
rule not detecting paths with a trailing slash (#285, #340) - Overriding an inherited rule with a disable one would have no effect (#274)
rules
andskip
options specified inspeccy.yaml
may be ignored when omitting--rules
or--skip
arguments in the command line (#278)- A regression where assertion errors would spit out a stacktrace (#300, #335, #338)
- A regression where the
resolve
command would not serialize the resolved YAML
- An invalid property declaration in the
openapi-tags-alphabetical
rule [#269] - Loading of external configuration files (#294)
- Verbosity handling. All verbose messages are sent to
stderr
to ensure pipes work. Verbosity level1
is normal output. (#235, #265, #270, #294)
- The
lib/linter.js
module has been entirely removed, and oas-linter is now used directly (#248) - Rulesets must now be YAML not JSON (#248)
- Response mime types with a + (e.g:
application/vnd.api+json
) are now encoded correctly (#248) - The lint option
--skip
and the matching config option are no longer being ignored
- Semantic versioning for docker tags, so you can use
docker run wework/speccy:0.8
lint to a major, minor or patch level (#254) - The
pattern
rule action can now match on"property": "$key"
(#239)
- Correct handling of displaying validation and linting errors (#234)
- Support options after the command name, and at the end of the command (#229)
- Bumped
json-schema-to-openapi-schema
to v0.3.0 to handle if/then/else, const, exclusiveMiniumum/exclusiveMaximum, and emptyitems
in type: array. Thanks @MikeRalphson!
- Referenced files containing spaces would fail to load on OS X and Linux (#181)
- Callbacks and Security Requirements were failing due to bug in dependency (#180)
- New rule for when the default rules match the example rules provided
--skip
and--rules
were being ignored in v0.8.0 - v0.8.1- Stopped
GET filename.yaml
showing up in normal output (should only show in verbose mode)
- Rules using action
notEndWith
(likepath-keys-no-trailing-slash
) should not cause validation errors when string length is 1 (#137)
- Switched to using oas-kit for resolving and validating
- Moved
short-summary
fromwework
tostrict
rules (#110) - YAML files were previously loaded in "JSON mode", which meant duplicate keys were allowed. They will now error (#108)
- Config files can be passed with
-c
(defaults tospeccy.yaml
). See README for more information - Enabled
path-keys-no-trailing-slash
now oas-resolver can handle keys for lint rules - Enabled better-ajv-errors for beautiful validation errors. Linter errors remain unchanged
- Resolving to a file would silently fail when writing to a folder that did not exist
- Got rid of
wework
rules, as the last rule was moved tostrict
(#110)
- Provide "More Info" links in linter errors, so users understand the reasoning behind various rules. (#90)
- Using
not
withoutoneOf
since 0.7.0 was causing validation failures
- Error now raised for all commands when
$ref
points to a file that does not exist, or cannot be opened
- Bumped
json-schema-to-openapi-schema
to v0.2.0 so subschemas will be converted - Invalid keywords will be stripped everywhere instead of just root
- Removed switch
--watch
as it didn't actually work, and was flagging "security issues" on npm (#46)
- Support URLs in
--rules
for lint command (#41) - New switch
--json-schema / -j
will tell speccy to resolve $refs as JSON Schema, converting them to OpenAPI on the fly (#45)
properties
rule will now ignore extensions, sofoo: 'a', x-bar: 'b'
is only 1 property.
- Disabled
reference-components-regex
rule until resolver can allow it to work
- Warn about YAML/JSON parsing errors in referenced files (#36)
- Fixed max length (it was previously enforcing exact length) (#38)
- Loads of tests
- Allow
$refs
to link Objects (#22) - Fixes "Unhandled promise rejection" messages for not found files (#27)
- Can now use
--verbose
for lint and serve (#29)
- Learning how to npm publish
- Dropped support for NodeJS 6, now requires 7.5 (with
--harmony
) or higher.
- Linter was not resolving $ref properly, meaning more errors will now appear in $ref schemas (#19)
- Serve command now supports URLs (#19)
- Path Item
$ref
support fixed in validator (#16) - Serve command early exists and errors if file is not found, even added some tests (#17)
- Added
--skip
to lint command to allow certain rules to be skipped (#9 via @jblazek) - CLI output shows all lint errors, not just the first error found (#11 via @jblazek)
- Fixed
serve
command when package is installed via yarn global
- New
serve
command, to serve up ReDoc documentation without needing a local html file and your own server - Added
openapi-tags-alphabetical
rule to snark if your tags definitions are out of order
- Object spread was causing errors on node 6 and 7.