Releases: pb33f/libopenapi
v0.25.2
Adds dependentRequired
support to the Schema
low and high models for more JSON Schema compatibility.
v0.25.1
Security fix reported in #446
This problem comes is a supply chain issue and one of the vendors in the chain is a potential bad actor. We have forked our suppliers code (ordered maps) and removed the offending supplier from there.
We have forked the github.com/wk8/go-ordered-map library as pb33f/ordered-map. Which is the exact same library, but uses the standard library for JSON, instead of easyjson, a drop in replacement for anyone else who needs a solution fast.
easyjson has been eradicated from our supply chain.
v0.25.0
No new features, no breaking changes - just a solid improvement on performance and memory use - particularly for very large specs.
Before:
vacuum took 3.30 seconds to lint 4.28 MB across 1 files
After
vacuum took 2.37 seconds to lint 4.28 MB across 1 files
- Fixes issue #433
v0.24.0
Adds support for OpenAPI 3.2 Tags model and recursive parent/child structures.
Quick Hash is a feature introduced in v0.23.0
that allows much faster lookups for nested remote references. In short, it's a feature required for enterprise grade specs that need diffing over large distances. This conflicts with and edge case where you need to check changes in circular references in a single file doc.
TLDR; Quick schema cache is now set via a configuration flag in indexes and documents, it's off by default.
Various other fixes and additions from the community. Including discriminators and inline bundling (#436)
v0.23.0
An upgraded rolodex with much more efficient async lookups and much less looping. No more sleeps and more efficient lock use. This cleans up messy async code from native implementations of the filesystem.
Adds a context to some of the index and rolodex APIs, so there are some breaking changes in lower level parts of the index.
Upgrades a few issues with parameters in the what-changed
module. required
state now being checked properly, as well as the parameter names being passed into the change object.
v0.22.3
v0.22.2
Fixes issue #421
v0.22.1
v0.22.0
Adds a new 'composed' bundling mode.
// BundleBytesComposed will take a byte slice of an OpenAPI specification and return a composed bundled version of it.
// this is the same as BundleBytes, but it will compose the bundling instead of inline it.
func BundleBytesComposed(bytes []byte, configuration *datamodel.DocumentConfiguration,
compositionConfig *BundleCompositionConfig) ([]byte, error)
// BundleDocumentComposed will take a v3.Document and return a composed bundled version of it. Composed means
// that every external file will have references lifted out and added to the `components` section of the document.
// Names will be preserved where possible, conflicts will be appended with a number. If the type of the reference cannot
// be determined, it will be added to the `components` section as a `Schema` type, a warning will be logged.
// The document model will be mutated permanently.
//
// Circular references will not be resolved and will be skipped.
func BundleDocumentComposed(model *v3.Document, compositionConfig *BundleCompositionConfig) ([]byte, error)
Docs updates at https://pb33f.io/libopenapi/bundling/
Adds fixes for:
v0.21.12
Fixes issue reported in pb33f/openapi-changes#203
Also stops a $ref
swap out from being a breaking change in the what-changed
module.