Releases: pb33f/libopenapi
v0.20.0
libopenapi is now RFC-9535 Compliant!
https://www.rfc-editor.org/rfc/rfc9535.html
Thanks speakeasy! https://github.com/speakeasy-api/jsonpath
No changes to any APIs, no breaking changes.
v0.19.1
No changes, or fixes, just a small update to how SchemaProxy
logic handles nil states.
v0.19.0
Adds a ton of changes, without breaking anything! There are no known breaking changes in this release, a lot of changes but nothing will break by upgrading.
Lots of updates to fix glitches and improve support for non OpenAPI files in the rolodex.
v0.18.7
v0.18.6
Solves issue #333
- Accessing
GetAllComponentSchemas
causes a race condition error during usage. - Adds a RWLock to ensure that the map object is safely created across go routines. This pattern is used for other similar fields
Add nil check on Document Render to avoid panic
Expanded the existing check during Render to generally check for a nil highOpenAPI3Model, with more specific error message depending on if it's Swagger or not.
Also added a check for the info which is a pointer, so could technically be nil.
Added a test case to ensure we error. Without my changes the test panics which we're trying to avoid.
Fix: resolve remote relative refs correctly
Some deep dark glitches in the index resulted in some random relative $ref's being missed under certain edge conditions.
This release was 100% provided by the community
v0.18.5
Added a high level model cache that prevents the over production of schemas when walking the model.
A new cache interface and implementation have been added to index, so the cache design can be re-used anywhere else its needed as we work towards cleaning up memory use.
v0.18.4
Added GetIndex() and GetContext() to v3 low models.
Makes it much easier for downstream tools to know all the things
fix: indexing of operations which are $refs (#339)
Why
We have a linting rule which checks for duplicate operation IDs / duplicate operations. This linting rule wasn't catching duplicates if the operations were living in an external $ref.
What
Currently when building the index of operations we weren't checking for refs, this PR changes that.
v0.18.3
This fixes vacuum rules that lookup operations in the index where:
The original spec (root.yaml) has an external reference to a file in a different directory ./paths/mypath.yaml
In that location, there is a relative reference to a path-item in a nearby file, e.g. ./components.yaml#/path-item
What was previously happening in [2] is that the ./components.yaml was being resolved in ./components.yaml (the parent directory) instead of ./paths/components.yaml (the right directory). This resulted in a failure to evaluate path item references and unexpected linting failures.
This changes adjusts the lookup to search through the index's nodeMap to find the location of the YAML $ref node value that's been evaluated. Once we find it, we lookup the associated index of that file and do a seek in that specific index.
We also fix a race condition with resolving the specification asyncronously -- if we are going to an external ref we must do it sequentially as otherwise an index might be added multiple times during an async FindComponent call. This latent bug was exposed as we tested this.
v0.18.1
Fixes a small off by one error in the resolver.
Also adds extension support to server variables that was missing, courtesy of @geffersonFerraz
v0.18.0
Fixes some memory issues with string allocations. Utility functions were causing a surge of memory when run repeatedly.
Also upgrades the rolodex to use the real name of the root file, instead of 'root.yaml'
Fixes an error that was hard-coded into the License
object. Also adds Extensions
to License
and Contact
objects.
No breaking changes, no signature changes.,