Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces modifications to the validation layer of the protocol server to enhance its OpenAPI validation capabilities, specifically targeting OpenAPI 3.1.0 specifications. Key changes include:
Package Update:
Added ajv version 8.17.1 to package.json. This library was chosen as an alternative to express-openapi-validator due to its limitations in handling certain validation keywords, such as contains, if, then, else, etc introduced in OpenAPI 3.1.0.
Migration to agv:
The validation middleware has been partially refactored to replace express-openapi-validator, which could not fully support OpenAPI 3.1.0 schemas, even with the latest alpha releases. For OAS 3.1.0, validation will be through agv and other older OAS version, existing express-openapi-validator would be used like before.
To increase the performance of validation, some of the spec file is compiled and cached during app load itself and stored in in-memory. For any request if it is precompiled, then it is compiled at that moment and stored in the cache for faster response from next request onwards.
Linked Issue #202