stoplightio/spectral
A flexible JSON/YAML linter for creating automated style guides, with baked in support for OpenAPI (v3.1, v3.0, and v2.0), Arazzo v1.0, as well as AsyncAPI v2.x.
📋 What's Changed
- fix(deps): update dependencies by @mnaumanali94 in https://github.com/stoplightio/spectral/pull/2794
- chore(deps): bump elliptic from 6.6.0 to 6.6.1 by @dependabot in https://github.com/stoplightio/spectral/pull/2782
- fix(repo): replace discord link with forum link by @frankkilcommins in https://github.com/stoplightio/spectral/pull/2793
- docs(rulesets): add v3 to AsyncAPI support docs by @frankkilcommins in https://github.com/stoplightio/spectral/pull/2755
- docs(repo): fixing alias name by @dret in https://github.com/stoplightio/spectral/pull/2776
- feat(functions): add or function by @cuttingclyde and @frankkilcommins in https://github.com/stoplightio/spectral/pull/2798
- feat(core): add documentUrl to JS api and cli formatters by @dweber019 in https://github.com/stoplightio/spectral/pull/2443
✨ New Contributors
- @dret made their first contribution in https://github.com/stoplightio/spectral/pull/2776
- Full Changelog: https://github.com/stoplightio/spectral/compare/v6.14.3...v6.15.0
📋 What's Changed
- fix(deps): fix CVE related to jsonpath-plus by @frankkilcommins in https://github.com/stoplightio/spectral/pull/2740
- fix(deps): bump spectral-core dependents by @frankkilcommins in https://github.com/stoplightio/spectral/pull/2742
- Full Changelog: https://github.com/stoplightio/spectral/compare/v6.14.1...v6.14.2
📋 What's Changed
- fix(deps): update spectral core to latest in all packages by @mnaumanali94 in https://github.com/stoplightio/spectral/pull/2728
- chore(deps): fix dependabot alerts by @mnaumanali94 in https://github.com/stoplightio/spectral/pull/2730
- fix(cli): update dependencies and trigger docker release by @mnaumanali94 in https://github.com/stoplightio/spectral/pull/2733
- Full Changelog: https://github.com/stoplightio/spectral/compare/v6.14.0...v6.14.1
📋 What's Changed
- feat: dropped support for node 12/14
- fix(rulesets): always allow string examples in asyncapi schema by @timonback in https://github.com/stoplightio/spectral/pull/2625
- chore(deps): bump rollup from 2.79.0 to 2.79.2 by @dependabot in https://github.com/stoplightio/spectral/pull/2702
- chore(rulesets): add Arazzo to rulesets docs by @frankkilcommins in https://github.com/stoplightio/spectral/pull/2703
- feat(rulesets): add AsyncAPI v3 support by @jonaslagoni in https://github.com/stoplightio/spectral/pull/2697
- chore(deps): bump jsonpath-plus from 7.1.0 to 10.0.0 by @dependabot in https://github.com/stoplightio/spectral/pull/2709
- chore(deps): bump nimma 0.2.2 to 0.2.3 by @jacquesg in https://github.com/stoplightio/spectral/pull/2712
- chore(deps): update jsonpath-plus to fix CVE-2024-21534 by @johannesmarx in https://github.com/stoplightio/spectral/pull/2718
- + 2 more
📋 What's Changed
- chore(deps): bump tar from 6.1.15 to 6.2.1 by @dependabot in https://github.com/stoplightio/spectral/pull/2611
- feat(rulesets): add multiple xor by @JeanArhancet in https://github.com/stoplightio/spectral/pull/2614
- docs(rulesets): update docs about recommended OpenAPI rules by @ls-jad-elkik in https://github.com/stoplightio/spectral/pull/2594
- chore(deps): bump es5-ext from 0.10.53 to 0.10.64 by @dependabot in https://github.com/stoplightio/spectral/pull/2602
- feat(rulesets): add oas3_1-servers-in-webhook and oas3_1-callbacks-in… by @kaylachun in https://github.com/stoplightio/spectral/pull/2581
- docs(rulesets): update asyncapi ruleset link by @RafaelJCamara in https://github.com/stoplightio/spectral/pull/2618
- feat(rulesets): improve {oas2,oas3}-valid-schema rule by @P0lip in https://github.com/stoplightio/spectral/pull/2574
- fix(rulesets): required readOnly and writeOnly properties should not … by @pplr in https://github.com/stoplightio/spectral/pull/2573
- + 21 more
✨ New Contributors
- @JeanArhancet made their first contribution in https://github.com/stoplightio/spectral/pull/2614
- @ls-jad-elkik made their first contribution in https://github.com/stoplightio/spectral/pull/2594
- @RafaelJCamara made their first contribution in https://github.com/stoplightio/spectral/pull/2618
- @pplr made their first contribution in https://github.com/stoplightio/spectral/pull/2573
- @brendarearden made their first contribution in https://github.com/stoplightio/spectral/pull/2629
- @rainum made their first contribution in https://github.com/stoplightio/spectral/pull/2632
- @matthewmurphy made their first contribution in https://github.com/stoplightio/spectral/pull/2642
- @aeworxet made their first contribution in https://github.com/stoplightio/spectral/pull/2658
- + 6 more
📋 What's Changed
- fix(rulesets): tweak server variables function by @P0lip in https://github.com/stoplightio/spectral/pull/2533
- refactor(rulesets): simplify oasOpSecurityDefined by @P0lip in https://github.com/stoplightio/spectral/pull/2537
- feat(rulesets): add scope validation to oas{2,3}-operation-security-defined rules by @P0lip in https://github.com/stoplightio/spectral/pull/2538
- chore(deps): bump @babel/traverse from 7.18.9 to 7.23.2 by @dependabot in https://github.com/stoplightio/spectral/pull/2547
- feat(formats): jsonSchemaLoose format should search for enum keyword by @P0lip in https://github.com/stoplightio/spectral/pull/2551
- chore(deps): bump browserify-sign from 4.0.4 to 4.2.2 by @dependabot in https://github.com/stoplightio/spectral/pull/2549
- fix(rulesets): oasExample should clean id fields from non-schema objects by @P0lip in https://github.com/stoplightio/spectral/pull/2561
- build(repo): fix arm64 builds by @P0lip in https://github.com/stoplightio/spectral/pull/2569
- + 8 more
📋 What's Changed
- feat(rulesets): add oas3-server-variables rule by @P0lip in https://github.com/stoplightio/spectral/pull/2526
- chore(rulesets): use createRulesetFunction for all oas functions by @P0lip in https://github.com/stoplightio/spectral/pull/2491
- feat(formatters): add sarif formatter by @PhilippHeuer in https://github.com/stoplightio/spectral/pull/2532
✨ New Contributors
- @PhilippHeuer made their first contribution in https://github.com/stoplightio/spectral/pull/2532
- Full Changelog: https://github.com/stoplightio/spectral/compare/v6.10.1...v6.11.0
📋 What's Changed
- fix(cli): choose proxy agent based on requester protocol by @P0lip in https://github.com/stoplightio/spectral/pull/2521
- Full Changelog: https://github.com/stoplightio/spectral/compare/v6.10.0...v6.10.1
**Full Changelog**: https://github.com/stoplightio/spectral/compare/v6.9.0...v6.10.0
📋 What's Changed
- feat(formatters): add export entrypoint for utils by @P0lip in https://github.com/stoplightio/spectral/pull/2482
- fix(ruleset-migrator): correct package.json's browser field by @P0lip in https://github.com/stoplightio/spectral/pull/2497
- docs(repo): adds json formatter docs by @mnaumanali94 in https://github.com/stoplightio/spectral/pull/2481
- fix(core): invalid then produced by Rule#toJSON by @P0lip in https://github.com/stoplightio/spectral/pull/2496
- fix(core): dedupe paths containing special characters correctly by @P0lip in https://github.com/stoplightio/spectral/pull/2501
- chore(deps): bump semver from 5.7.1 to 5.7.2 by @dependabot in https://github.com/stoplightio/spectral/pull/2502
- fix(core): pointer in overrides are applied too broadly by @P0lip in https://github.com/stoplightio/spectral/pull/2511
- chore(repo): add Node 20.5 to the test matrix by @P0lip in https://github.com/stoplightio/spectral/pull/2478
- + 3 more
✨ New Contributors
- @klaude made their first contribution in https://github.com/stoplightio/spectral/pull/2492
- Full Changelog: https://github.com/stoplightio/spectral/compare/v6.8.0...v6.9.0
📋 What's Changed
- docs(repo): add documentation as codeowners for toc.json by @heitortsergent in https://github.com/stoplightio/spectral/pull/2321
- docs(repo): update rulesets docs by @heitortsergent in https://github.com/stoplightio/spectral/pull/2310
- docs(repo): fix custom function examples with targetVal by @heitortsergent in https://github.com/stoplightio/spectral/pull/2322
- chore(deps): bump engine.io from 6.2.0 to 6.2.1 by @dependabot in https://github.com/stoplightio/spectral/pull/2347
- fix(core): improve deep ruleset inheritance by @P0lip in https://github.com/stoplightio/spectral/pull/2326
- docs(repo): add API Stylebook to README by @heitortsergent in https://github.com/stoplightio/spectral/pull/2346
- fix(ruleset-migrator): avoid positive lookbehinds by @P0lip in https://github.com/stoplightio/spectral/pull/2349
- feat(core): support end-user extensions in the rule definitions by @pavelkornev in https://github.com/stoplightio/spectral/pull/2345
- + 27 more
✨ New Contributors
- @dweber019 made their first contribution in https://github.com/stoplightio/spectral/pull/2405
- @thiagoschreck made their first contribution in https://github.com/stoplightio/spectral/pull/2409
- @CalemRoelofsSB made their first contribution in https://github.com/stoplightio/spectral/pull/2460
- @sennyeya made their first contribution in https://github.com/stoplightio/spectral/pull/2468
- Full Changelog: https://github.com/stoplightio/spectral/compare/v6.6.0...v6.7.0
📋 What's Changed
- fix(ruleset-migrator): http/https uris not followed correctly by @P0lip in https://github.com/stoplightio/spectral/pull/2247
- perf(core): bump jsonpath-plus to 7.1.0 by @FredericKayser in https://github.com/stoplightio/spectral/pull/2259
- feat(rulesets): add rule to check if the AsyncAPI document is using the latest version by @magicmatatjahu in https://github.com/stoplightio/spectral/pull/2282
- chore(core): drop runner runtime by @P0lip in https://github.com/stoplightio/spectral/pull/2302
- fix(core): async functions have undefined paths by @P0lip in https://github.com/stoplightio/spectral/pull/2304
- fix(rulesets): handle empty payload and headers in AsyncAPI message's examples validation by @magicmatatjahu in https://github.com/stoplightio/spectral/pull/2284
- refactor(rulesets): remove unused rules style param by @philsturgeon in https://github.com/stoplightio/spectral/pull/2306
- feat(ruleset-migrator): relax validation by @P0lip in https://github.com/stoplightio/spectral/pull/2307
- + 6 more
✨ New Contributors
- @ObjectIsAdvantag made their first contribution in https://github.com/stoplightio/spectral/pull/2258
- @FredericKayser made their first contribution in https://github.com/stoplightio/spectral/pull/2259
- Full Changelog: https://github.com/stoplightio/spectral/compare/v6.5.1...v6.6.0
📋 What's Changed
- fix(rulesets): __importDefault undefined by @P0lip in https://github.com/stoplightio/spectral/pull/2243
- fix(functions): bump stoplight/better-ajv-errors by @P0lip in https://github.com/stoplightio/spectral/pull/2250
- feat(rulesets): check uniqueness of AsyncAPI messages by @magicmatatjahu in https://github.com/stoplightio/spectral/pull/2224
- fix(cli): missing line break by @nmoreaud in https://github.com/stoplightio/spectral/pull/2251
✨ New Contributors
- @snim2 made their first contribution in https://github.com/stoplightio/spectral/pull/2221
- @nmoreaud made their first contribution in https://github.com/stoplightio/spectral/pull/2251
- Full Changelog: https://github.com/stoplightio/spectral/compare/v6.5.0...v6.5.1
📋 What's Changed
- fix(functions): handle percent encoded in unreferencedReusableObject by @mkistler in https://github.com/stoplightio/spectral/pull/2212
- feat(core): improve ruleset validation by @P0lip in https://github.com/stoplightio/spectral/pull/2026
- fix(ruleset-bundler): never externalize builtins by @P0lip in https://github.com/stoplightio/spectral/pull/2174
- Full Changelog: https://github.com/stoplightio/spectral/compare/v6.4.2...v6.5.0
📋 What's Changed
- feat(rulesets): add rule to validate message's examples by @magicmatatjahu in https://github.com/stoplightio/spectral/pull/2126
- chore(core): bump minimatch from 3.0.4 to 3.1.2 by @P0lip in https://github.com/stoplightio/spectral/pull/2171
- fix(core): bump nimma from 0.2.1 to 0.2.2 by @P0lip in https://github.com/stoplightio/spectral/pull/2173
- feat(ruleset-bundler): add fullOutput option to bundleRuleset by @P0lip in https://github.com/stoplightio/spectral/pull/2194
- feat(rulesets): validate channel servers, server securities and operation securities by @magicmatatjahu in https://github.com/stoplightio/spectral/pull/2122
- fix(core): fix 'resolved vs unresolved' json path mapping by @padamstx in https://github.com/stoplightio/spectral/pull/2202
✨ New Contributors
- @padamstx made their first contribution in https://github.com/stoplightio/spectral/pull/2202
- Full Changelog: https://github.com/stoplightio/spectral/compare/v6.4.1...v6.4.2
📋 What's Changed
- fix(core): bump nimma from 0.2.0 to 0.2.1 by @P0lip in https://github.com/stoplightio/spectral/pull/2157
- feat(rulesets): add rules for validation of server variables and channel parameters by @magicmatatjahu in https://github.com/stoplightio/spectral/pull/2101
- feat(rulesets): add rules for validation uniqueness of tag names by @magicmatatjahu in https://github.com/stoplightio/spectral/pull/2104
- feat(rulesets): add rule to check uniqueness operationId of AsyncAPI operations by @magicmatatjahu in https://github.com/stoplightio/spectral/pull/2121
- fix(cli): do not show 'or higher' if severity equals error by @P0lip in https://github.com/stoplightio/spectral/pull/2172
✨ New Contributors
- @ssbarnea made their first contribution in https://github.com/stoplightio/spectral/pull/2168
- Full Changelog: https://github.com/stoplightio/spectral/compare/v6.4.0...v6.4.1
📋 What's Changed
- fix(functions): reset RegExp.lastIndex to zero when using cached RegExp objects by @pavelkornev in https://github.com/stoplightio/spectral/pull/2079
- fix(ruleset-migrator): validate aliases correctly by @P0lip in https://github.com/stoplightio/spectral/pull/2085
- fix(core): bump nimma from 0.1.8 to 0.2.0 by @P0lip in https://github.com/stoplightio/spectral/pull/2088
- feat(rulesets): add unused components server rule by @jonaslagoni in https://github.com/stoplightio/spectral/pull/2097
- feat(rulesets): support AsyncAPI 2.4 by @jonaslagoni in https://github.com/stoplightio/spectral/commit/7364b2dd602f4f2a9367d8a8653b621b9fef4326
- feat(core): support JSON ruleset validation by @P0lip in https://github.com/stoplightio/spectral/pull/2062
- docs(repo): explain $refs caveat with overrides by @P0lip in https://github.com/stoplightio/spectral/pull/2127
- fix(core): redeclared rules should always be re-enabled by @P0lip in https://github.com/stoplightio/spectral/pull/2138
- + 2 more
✨ New Contributors
- @pavelkornev made their first contribution in https://github.com/stoplightio/spectral/pull/2079
- Full Changelog: https://github.com/stoplightio/spectral/compare/v6.3.0...v6.4.0
📋 What's Changed
- build(repo): missing latest tag for Docker by @P0lip in https://github.com/stoplightio/spectral/pull/2056
- fix(rulesets): simplify schema used in duplicated-entry-in-enum by @P0lip in https://github.com/stoplightio/spectral/pull/2055
- fix(core): consider `message` when de-duplicating results by @dpopp07 in https://github.com/stoplightio/spectral/pull/2052
- fix(core): bump nimma from 0.1.7 to 0.1.8 by @P0lip in https://github.com/stoplightio/spectral/pull/2058
- feat(ruleset-bundler): a number of minor enhancements by @P0lip in https://github.com/stoplightio/spectral/pull/2048
- feat(rulesets): validate API security in oas-operation-security-defined by @mkistler in https://github.com/stoplightio/spectral/pull/2046
- feat(cli): improve error logging by @P0lip in https://github.com/stoplightio/spectral/pull/2071
✨ New Contributors
- @dpopp07 made their first contribution in https://github.com/stoplightio/spectral/pull/2052
- Full Changelog: https://github.com/stoplightio/spectral/compare/v6.2.1...v6.3.0
📋 What's Changed
- fix(runtime): update node-fetch from ^2.6.1 to ^2.6.7 by @crudo in https://github.com/stoplightio/spectral/pull/2041
- fix(rulesets): add scopes to required in oauth2 security schemes by @mkistler in https://github.com/stoplightio/spectral/pull/2035
- chore(repo): install.sh should work in POSIX envs by @jurek7 in https://github.com/stoplightio/spectral/pull/2045
- fix(rulesets): operation-tags should fail on empty array by @eazy-g in https://github.com/stoplightio/spectral/pull/2050
- fix(cli): output to stdout not working with multiple output formatters by @P0lip in https://github.com/stoplightio/spectral/pull/2044
✨ New Contributors
- @crudo made their first contribution in https://github.com/stoplightio/spectral/pull/2041
- @jurek7 made their first contribution in https://github.com/stoplightio/spectral/pull/2045
- @eazy-g made their first contribution in https://github.com/stoplightio/spectral/pull/2050
- Full Changelog: https://github.com/stoplightio/spectral/compare/v6.2.0...v6.2.1
📋 What's Changed
- fix(ruleset-migrator): resolve npm packages correctly by @P0lip in https://github.com/stoplightio/spectral/pull/2022
- feat(core): aliases take only array-ish given by @P0lip in https://github.com/stoplightio/spectral/pull/2033
- docs(repo): clarify how to version pin rulesets by @jamietanna in https://github.com/stoplightio/spectral/pull/2039
- feat(cli): support multiple formats and outputs at once by @P0lip in https://github.com/stoplightio/spectral/pull/2037
- Full Changelog: https://github.com/stoplightio/spectral/compare/v6.1.1...v6.2.0
📋 What's Changed
- feat(core): support scoped aliases by @P0lip in https://github.com/stoplightio/spectral/pull/1840
- feat(functions): export functionOptions by @wmhilton in https://github.com/stoplightio/spectral/pull/1904
- fix(rulesets): support matrix parameter style for openapi3 by @lintaba in https://github.com/stoplightio/spectral/pull/1864
- feat(functions): revamp Ajv integration by @P0lip in https://github.com/stoplightio/spectral/pull/1845
- chore(deps): bump vm2 from 3.9.3 to 3.9.5 by @dependabot in https://github.com/stoplightio/spectral/pull/1906
- fix(rulesets): exclusiveMinimum must be a number thrown for OAS 3.0 by @P0lip in https://github.com/stoplightio/spectral/pull/1913
- fix(ruleset-migrator): order contains duplicate keys by @P0lip in https://github.com/stoplightio/spectral/pull/1912
- fix(rulesets): variable not supported in server url within OAS 3.1 by @P0lip in https://github.com/stoplightio/spectral/pull/1914
- + 27 more
✨ New Contributors
- @lintaba made their first contribution in https://github.com/stoplightio/spectral/pull/1864
- @wbolster made their first contribution in https://github.com/stoplightio/spectral/pull/1960
- @jgreen44 made their first contribution in https://github.com/stoplightio/spectral/pull/2000
- @jeremyfiel made their first contribution in https://github.com/stoplightio/spectral/pull/2024
- Full Changelog: https://github.com/stoplightio/spectral/compare/v6.1.0...v6.1.1
🐛 Fixed
- Dependencies upgrade for audit fixes
🐛 Fixed
- `duplicated-entry-in-enum` rule complains about `enum` property in objects [#1571](https://github.com/stoplightio/spectral/issues/1571)
- Dependencies upgrade, including `proxy-agent` [#1552](https://github.com/stoplightio/spectral/issues/1552)
✨ Added
- Add `duplicated-entry-in-enum` rule to detect duplicated entry in enum [#1478](https://github.com/stoplightio/spectral/issues/1478)
- Improve `additionalProperties` JSON Schema validation [#1433](https://github.com/stoplightio/spectral/pull/1433)
📋 Changed
- $refs in rulesets linking to json-schema.org are kept unresolved [#1519](https://github.com/stoplightio/spectral/pull/1519)
🐛 Fixed
- Empty $refs should not be ignored [#1540](https://github.com/stoplightio/spectral/pull/1540)
- Proper source detection of an error caused by an empty $ref [#1515](https://github.com/stoplightio/spectral/issues/1515)
- Improve file $ref resolving on Windows [#1514](https://github.com/stoplightio/spectral/pull/1514)
- Proxy settings not applied to all outgoing requests [#1324](https://github.com/stoplightio/spectral/issues/1324)
- Pascal/Camel `casing` do not support single uppercase letters at the end [#1500](https://github.com/stoplightio/spectral/issues/1500)
- Nested extends broken in rulesets Error disabling an extended ruleset in an extended ruleset [#1352](https://github.com/stoplightio/spectral/issues/1352), [#1380](https://github.com/stoplightio/spectral/issues/1380)
- Missing validation of child parameter child properties [#1400](https://github.com/stoplightio/spectral/issues/1400)
