# Changelog ## 03/10/2020 0.20.12 - Fixed typeerror in live validator when search operation in case of unknownapiversion ## 03/03/2020 0.20.11 - Upgrade openapi-markdown package version ## 03/02/2020 0.20.10 - Upgrade virtual-fs package version ## 02/13/2020 0.20.9 - Fall back to match child resouce in live validator ## 02/13/2020 0.20.8 - The path matching for subscription and provider in Live validation should be case-insensitive. ## 02/05/2020 0.20.7 - Add base model name as a value to discriminator enum value list.[Issue#468](https://github.com/Azure/oav/issues/468) ## 01/16/2020 0.20.6 - security vulnerability fix for handlebars, kind-of and lodash ## 12/26/2019 0.20.4 - Upgrade yasway and z-schema version. ## 12/05/2019 0.20.3 - Change the swaggerPathsPattern of LiveValidatorOptions to array type ## 11/26/2019 0.20.2 - Upgrade yasway version to consume the change for x-ms-secret property update ## 11/20/2019 0.20.1 - Resource provider and API version should be case-insensitive in live validation - Upgrade yasway version to reflect the deep clone performance improvement change ## 11/4/2019 0.20.0 - Support x-ms-mutability in the response validation. If there's a write-only x-ms-mutabitlity property in the response, report an error ## 10/22/2019 0.19.9 - Extends logging for live validator to log performance metrics, correlationId and structured request information. ## 10/14/2019 0.19.8 - Add an optional logging callback to consume by livevalidator in order to dump log to external caller. - Update the yasway version to 1.8.5. - Add the new validation error code of SECRET_PROPERTY. ## 09/04/2019 0.19.6 - Report example position for request parameter errors [Issue#423](https://github.com/Azure/oav/issues/423). - Fixed internal error when load invalid local reference file [Issue#449](https://github.com/Azure/oav/issues/449). - Fixed internal error when load empty reference file [Issue#444](https://github.com/Azure/oav/issues/444). ## 09/03/2019 0.19.5 - Add package.lock file to lock the version of dependencies. ## 08/12/2019 0.19.4 - Update the error handling when loading and parsing suppression files. ## 07/30/2019 0.19.3 - Fixed validation of nullable array types if they were defined as tope level models or transformed into top level models in the `"definitions"` object. Fixes #437. - Fixed an issue where `"properties": {}` was being incorrectly added to a schema with `"$ref"` in the response or a top level `array`. ## 07/12/2019 0.19.2 - Add support for validating discriminator is required and also the support for suppression.[Issue#386](https://github.com/Azure/oav/issues/386). ## 07/02/2019 0.19.1 - Update TypeScript to 3.5 - `@types/jsonpath` is a dependency because `PathComponent` type from the package is exported in `lib/util/validationError.ts`. ## 07/12/2019 0.19.0 - Modify path in payload for MISSING_REQUIRED_PROPERTIES and for OBJECT_ADDITIONAL_PROPERTIES to point to the actual property. ## 07/02/2019 0.18.6 - Adding support for JSON path & schema path in errors. - Improved model validation when example provides the response body however the spec doesn't have a schema for the response and vice-versa. ## 06/12/2019 0.18.5 - Added support for JSON path & schema path in errors. ## 05/30/2019 0.18.4 - Better error reporting for spec reference pointing to invalid files. ## 05/29/2019 0.18.3 - Update cache initialization in live validator to `Promise.all()`. - Update package version of `yuml2svg` dependency (since it contains typescript definitions). - Add support for validating `readOnly` properties in the request. - Limiting dependencies on `@types/lodash` and `typescript` due to stricter type definition rules in the later versions. ## 04/25/2019 0.18.2 - Use node env for jest #422. ## 04/08/2019 0.18.1 - Validate request body when it is a JSON object. ## 04/08/2019 0.18.0 - The `isSuccessful` is `undefined` in case of an existing `runtimeException`. - `RequestResponseLiveValidationResult` has a runtimeExceptions field instead of an errors field. ## 04/05/2019 0.17.0 - Live Validation mode is now skipping validating for errors not specified when using the `includeErrors` option. - The types `RequestValidationResult` and `ResponseValidationResult` have been replaced with the `LiveValidationResult` type. ## 04/05/2019 0.16.1 - OAV should exit with code `1` if it finds errors. - Breaking changes in SpecValidationResult, CommonValidationResult. ## 04/01/2019 0.15.3 - Polymporphic anyOf's will be validated only against the matching subschema and any error wont be nested. ## 04/01/2019 0.15.2 - Inner errors will have the `LiveValidationIssue` type instead of`object`. ## 03/28/2019 0.15.1 - Allow for live validation to exclude/include specific errors. ## 03/27/2019 0.15.0 - Refactor live validator and new types for validation results. - Expose separate request and response validate methods. - Expose types for live validation parameters. - `processValidationErrors`, `serializeErrors` and `getPotentialOperations` are not exported anymore. Validation methods automatically call these. ## 03/20/2019 0.14.8 - Don't parse examples when not needed. - Remove example references when not needed to avoid "UNRESOLVABLE_REFERENCE" errors. ## 03/20/2019 0.14.7 - Change test runner to jest. ## 03/19/2019 0.14.6 - Don't resolve x-ms-examples for live validation and for semantic validation. ## 03/07/2019 0.14.5 - Fixing linting and coding style issues. ## 03/08/2019 0.14.4 - `INTERNAL_ERROR` as an error code. ## 03/07/2019 0.14.3 - OAV shouldn't parse `error.title` twice. ## 03/06/2019 0.14.2 - Use one cache per SpecValidator inside the LiveValidator. ## 03/06/2019 0.14.1 - Add doc cache during `LiveValidator initialization` to reduce memory footprint and execution time. ## 03/06/2019 0.14.0 - Remove package level global doc cache. - Remove external exports of `clearCache()` and of `executePromisesSequentially()` ## 02/06/2019 0.13.6 - Polymorphic models should have `"type": "object"`. ## 02/05/2019 0.13.5 - Fixing `ONE_OF_MULTIPLE`. It was caused by `x-ms-enum.modelAsString` which validates discriminators as an unrestricted strings ## 01/29/2019 0.13.4 - Provide url and file position for these errors: - `RESPONSE_STATUS_CODE_NOT_IN_SPEC`, - `RESPONSE_STATUS_CODE_NOT_IN_EXAMPLE`, - `XMS_EXAMPLE_NOT_FOUND_ERROR`, - `DOUBLE_FORWARD_SLASHES_IN_URL`, - `RESPONSE_SCHEMA_NOT_IN_SPEC`, and - `REQUIRED_PARAMETER_EXAMPLE_NOT_FOUND`. ## 01/28/2019 0.13.3 - Provide url and file position for `RESPONSE_STATUS_CODE_NOT_IN_EXAMPLE` errors. ## 01/23/2019 0.13.2 - Update `z-schema`. ## 01/18/2019 0.13.1 - Handle `text-matches` in suppression. ## 01/15/2019 0.13.0 - JSON types are updated. ## 01/14/2019 0.12.0 - Simplify model and semantic property names. `errorCode` becomes `code` and `errorDetails` becomes `details`. ## 01/14/2019 0.11.1 - Replace an example object with a function to avoid reference resolutions in examples. ## 01/08/2019 0.11.0 - Remove JS symbols from errors to avoid logging failure. ## 01/08/2019 0.10.4 - remove `ts-node` ## 12/11/2018 0.10.3 - exporting NodeError to consume it outside of oav.. ## 12/07/2018 0.10.2 - no default response for non errors. ## 12/07/2018 0.10.1 - update `@ts-common/virtual-fs` to retry network requests. ## 12/05/2018 0.10.0 - no `CloudError` generation. ## 12/01/2018 0.9.7 - Properly handle JSON errors ## 11/29/2018 0.9.6 - update `@ts-common/json-parser` to properly handle UNICODE escape symbols. ## 11/28/2018 0.9.5 - catch `jsonpath` exceptions. - Better internal structure. ## 11/27/2018 0.9.4 - Improve exception/error message. ## 11/26/2018 0.9.3 - Use `z-schema` instead of `@ts-common/z-schema`. ## 11/21/2018 0.9.2 - Remove `rewire()` package. ## 11/20/2018 0.9.1 - getErrorsFromSemanticValidation(). ## 11/19/2018 0.9.0 - Improve error types. ## 11/16/2018 0.8.1 - Suppressions may have multiple `where` and `from` fields. OAV didn't handle it properly. ## 11/08/2018 0.8.0 - a source map for CloudError - a bug fix for embedded examples. ## 11/08/2018 0.7.14 - update swagger definition ## 10/23/2018 0.7.13 - switch to Azure DevOps. ## 10/23/2018 0.7.12 - switch from `@ts-common/azure-openapi-markdown` to `@azure/openapi-markdown`. ## 10/15/2018 0.7.11 - exported functions don't catch exceptions. ## 10/15/2018 0.7.10 - Provide Title for all Schema Objects. ## 10/12/2018 0.7.9 - Additional source map for generated Schema objects. ## 10/09/2018 0.7.8 - Update `@ts-common/azure-openapi-markdown` package. ## 10/08/2018 0.7.7 - Fix a bug applying suppressions from HTTPS. ## 10/08/2018 0.7.6 - Fix a bug in ReadFile from HTTPS. ## 10/08/2018 0.7.5 - Get suppressions from HTTPS. ## 10/03/2018 0.7.4 - Fix `@ts-common/source-map` `.d.ts` files. ## 10/02/2018 0.7.3 - Suppress promise rejection. ## 10/02/2018 0.7.2 - Fix URL encoding test. ## 10/02/2018 0.7.1 - Fix yasway. ## 10/01/2018 0.7.0 - Suppression API is changed. ## 09/27/2018 0.6.5 - Suppression supports relative file and object paths. ## 09/25/2018 0.6.4 - Source Map for `.d.ts` files. ## 09/25/2018 0.6.3 - Source Map ## 09/25/2018 0.6.2 - Bug fix for `resolve-spec` CLI (#320) ## 09/25/2018 0.6.1 - Semantic validation warning bug fix. ## 09/21/2018 0.6.0 - Suppression. `where` is not supported yet. ## 09/21/2018 0.5.13 - Correcting where we add url and position information to semantic validation errors. ## 09/19/2018 0.5.12 - Adding url and position to source where issue occurs for semantic validation errors. ## 09/19/2018 0.5.11 - Adding pretty printing to validate-spec command, --pretty option. ## 09/17/2018 0.5.10 - xMsExamplesExtractor bug fix #309 ## 09/11/2018 0.5.9 - OAV is using '@ts-common/z-schema' instead of 'z-schema' ## 09/10/2018 0.5.8 - Fix JSON-Pointer encoding. ## 08/28/2018 0.5.7 - Errors have optional `jsonUrl` and `jsonPosition` fields. ## 08/22/2018 0.5.6 - CloudError proper fix ## 08/22/2018 0.5.5 - CloudError bug fix #300. ## 08/22/2018 0.5.4 - Simplified source-map ## 08/21/2018 0.5.3 - Friendly nested definition name ## 08/21/2018 0.5.2 - Bug fix for `"type": "file"` ## 08/17/2018 0.5.1 - File URL and position in title ## 08/17/2018 0.5.0 - File URL and position ## 08/16/2018 0.4.70 - New transformation functions. ## 08/14/2018 0.4.69 - Collapse of similar errors for array elements in `similarPaths` property on the error. ## 08/13/2018 0.4.68 - Using a JSON parser with a source map. ## 08/11/2018 0.4.67 - Single error for not matching any discriminated types. ## 08/10/2018 0.4.66 - Use JSON Pointer format for inserted schema title for properties and definitions. ## 08/10/2018 0.4.65 - Include property name as schema title in the property object. ## 08/10/2018 0.4.64 - Include definition name as schema title in the definitions. ## 08/01/2018 0.4.63 - Replacing `reduce` error collections with lazy iterators. ## 07/18/2018 0.4.62 - Solve security vulnerabilities ## 07/18/2018 0.4.61 - Export more types ## 07/18/2018 0.4.60 - Use `yasway` type definitions ## 07/18/2018 0.4.59 - Bug fix: `scenarios is undefined` when running AutoRest plugin. ## 07/17/2018 0.4.58 - export additional types. ## 07/05/2018 0.4.57 - `--pretty` output. ## 07/05/2018 0.4.56 - Error serialization. ## 07/05/2018 0.4.55 - Remove a dependency on `@types/winston` package. `winston` is updated to `3.0.0`. ## 06/21/2018 0.4.54 - Apply rules for Nested Properties ## 06/26/2018 0.4.51 - Bug fix: Do BOM stripping for remote URL's [#266](https://github.com/Azure/oav/issues/266). ## 06/20/2018 0.4.50 - Replace sway dependency with yasway. ## 06/19/2018 0.4.49 - Bug fix: Data is valid against more than one schema from `oneOf` [#248](https://github.com/Azure/oav/pull/248) The problem occurs when referenced model may also accept `null`. The fix is replacing `oneOf` with `anyOf`. ## 05/14/2018 0.4.38 - Bug fix: `oav extract-xmsexamples` also extracts request headers. [#241](https://github.com/Azure/oav/pull/241) - Bug fix: x-ms-parametrized-host is not validated correctly [#240](https://github.com/Azure/oav/issues/240) ## 04/23/2018 0.4.37 - Update dependencies. - Bug fixes: [#238](https://github.com/Azure/oav/pull/238) - Path parameters can include single quotes and be evaluated succesfully. - Enums with non-string values are properly evaluated. ## 04/19/2018 0.4.36 - If enums mismatch only in casing the new error ENUM_CASE_MISMATCH will be returned. ## 03/15/2018 0.4.35 - Validate default responses. [#228](https://github.com/Azure/oav/issues/228) - Add option to model an implicit default cloud error response. [#224](https://github.com/Azure/oav/issues/224) ## 03/08/2018 0.4.34 - Updating default output level to info. - Fixing issue #225, where output verbosity wasn't respected in one case. ## 02/28/2018 0.4.33 - Don't validate pure objects. ## 02/05/2018 0.4.32 - Fix bug for resolve external references introduced part of #202. ## 02/05/2018 0.4.31 - Bug fix for the fix made to resolve jshint issues in #202. ## 02/05/2018 0.4.30 - Improve matching for status code string for live validation. ## 02/05/2018 0.4.29 - Add support for live validation to support status code string along the status code number. - Update to use package autorest-extension-base from npm. ## 02/01/2018 0.4.28 - Fix undefined headers issue when the spec does not define consumes values. ## 01/31/2018 0.4.27 - Updating dependency of lodash to 4.17.4. ## 01/31/2018 0.4.26 - Fix all linter issues. [#201](https://github.com/Azure/oav/issues/201) - Add option to do case insensitive regex matches on swagger paths to the SpecValidator and LiveValidator. [#203](https://github.com/Azure/oav/issues/203) ## 01/30/2018 0.4.25 - Fixed a typo in the variable name while resolving nullable types. ## 01/17/2018 0.4.24 - The tool does not error on missing definitions in the swagger spec #194 - Added support for application/octet-stream or file upload/download scenarios #192 ## 01/05/2018 0.4.23 - Addressing INVALID_TYPE issues reported by model validation due to nullable types/properties. [#155](https://github.com/Azure/oav/issues/155). In order to allow null types, we relax types to be 'oneOf' `null` or its type, for the cases where properties/models have x-nullable set or x-nullable is not defined and property is not required. ## 12/11/2017 0.4.22 - Added support to generate class diagram from a given swagger spec #188. - Fixed #190, #191. ## 12/4/2017 0.4.21 - Removed the enum constraint or reference to an enum on the discriminator property if previously present before making it a constant. ## 11/20/2017 0.4.20 - Added support for processing [`"x-ms-parameterized-host": {}`](https://github.com/Azure/autorest/tree/master/docs/extensions#x-ms-parameterized-host) extension if present in the 2.0 swagger spec. ## 11/19/2017 0.4.19 - Added support for validating examples for parameters `"in": "formData"`. ## 11/09/2017 0.4.18 - Ensure scheme, host and basePath are used to construct the base url #180. ## 10/24/2017 0.4.17 - Disable resolving discriminators while performing semantic validation for an open api specification that conforms to 2.0 version. ## 10/20/2017 0.4.16 - Entire tree except the leaf nodes need to be traversed for replacing references of (an uber(root) or intermediate) parent with a `"oneof"` array containing references to itself and all its children. #175 ## 10/18/2017 0.4.15 - Updating model validator to resolve polymorphic types using oneOf. #171 ## 10/17/2017 0.4.14 - Updating model validator to plugin to autorest. ## 09/12/2017 0.4.13 - Provide the filepath of the file that has an incorrect json. This makes it easy for customers to find out the faulty file among numerous files. ## 09/12/2017 0.4.12 - [Model Validator] Should handle forward slashes in path parameters. #165 - [Model Validator] Should handle question mark in paths that are defined in x-ms-paths. #140 ## 08/30/2017 0.4.11 - [Wire Format Generator] Should handle resolved x-ms-examples. #161 ## 08/23/2017 0.4.10 - [Wire Format Generator] Removed condition for checking 200 & 204 in final status code for non-LRO. #159 - [Wire Format Generator] Updated default directory to be the api-version folder of the swagger spec. #159 ## 08/03/2017 0.4.9 - [Live Validator] Shallow clone the azure-rest-api-spec repo. - [Model Validator] Improve pluggability of oav into vs-code. #143 ## 08/03/2017 0.4.8 - [Live Validator] Before cloning the rest api specs repo if directory named 'repo' exists we delete it and then create an empty directory to clone repo inside it. ## 07/11/2017 0.4.7 - Fixed Live validator for reorg branch of azure-rest-api-specs #137 ## 07/03/2017 0.4.6 - Fixed issue #134 ## 06/26/2017 0.4.5 - Added support to generate wireformat as a YAML doc - Improved the format to specify request body for a in a request using curl.