All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Ensure request body is always rewound #425
Rack::Request#POST
no longer rewind, it because removed in rack/rack@42aff22f708123839ba706cbe659d108b47c40c7.
- Add
allow_blank_structures
option #417- Allow Empty Response Body. supported on Hyper-schema parser but will default to true in next major version.
- Rename
parameter_overwite_by_rails_rule
toparameter_overwrite_by_rails_rule
#396- You can use old option name but it will be deprecated in next major version.
- Error explicitly that OpenAPI 3.1+ isn't supported #418
- Implement cache in schema loading #385
- Upgrade
openapi_parser
dependency to 2.0 #400 - Drop support for Ruby 2.6 #403
- Skip content-type validation in OpenAPI 3 when body is both optional & empty #355
- Support RequestBody.required for OpenAPI 3
- Drop ruby 2.4 and 2.5 #326
- Don't validate response for status 304(Not Modified) #332
- Allow HEAD method in OpenAPI 3 #331
- Support strict response validation #319
- Support Psych v4.0.0 #335
- Support Http OPTIONS method #344
- Add OpenAPI3 strict references option to Committee (#343) #346
- When there is a reference objects with no referent, we'll raise error.
- Validate path, query and request parameters separately #349
- Change parameter_overwite_by_rails_rule option's default #374
- Change query_hash key option's default #375
- Change error handler option #379
- error handler take two args (this is deprecation in 4.99.x)
- Change old assert behavior #380
- when we use
assert_schema_conform
we validate response only by default. - But we validate request by default
- This default behavior is deprecation in 4.99.x
- when we use
- Please read [4.4.99.beta1] section
- We add backport parameter overwrite rule #373
- We provide merged parameter for
committee.params
(params_key
option) - When a same parameter name exist in path/query/request body, it overwrited.
- We we change overwrite rule next version.
- Please set
parameter_overwite_by_rails_rule=true
for Rails rule (v5.0.0)- (high priority) path_hash_key -> request_body_hash -> query_param
- If you don't want to change, please set false (current rule)
- (high priority) path_hash_key -> query_param -> request_body_hash
- We provide merged parameter for
- Support newest ruby version
- backport #368
4.4.0 - 2021-06-12
- Please read 4.4.0.rc1 section
4.4.0.rc1 - 2021-05-31
- We refactoring request unpacker so please check and feedback if we add bug or break backward compatibility.
- Please set
query_hash_key
likerack.request.query_hash
because will break backward compatibility on 5.0.0. If you doesn't accessrack.request.query_hash
, we recommended setcommittee.query_hash
(default value in 5.0.0)
- avoid overwriting query hash (#310)
- save path parameter to other key (#318)
- request unpacker refactoring (#321)
- save request params to other key (#322)
4.3.0 - 2020-12-23
- Improve deprecation messages (#291)
4.2.1 - 2020-11-07
- Hold original exception only openapi3. (#281)
- Make check for complex JSON types more strict. (#287)
- Put deprecation warning together in one line. (#288)
4.2.0 - 2020-08-26
- Does not suppress application error. (#279)
4.1.0 - 2020-06-27
- Parse response body as JSON only when applicable. (#273)
4.0.0 - 2020-05-14
- Drop Ruby 2.3.x.
3.3.0 - 2019-11-16
- Add a filter for request validation. (#249)
- Add ignore_error option to Committee::Middleware::RequestValidation. (#248)
3.2.1 - 2019-10-13
- Use openapi_parser 0.6.1 (#246)
- Validate request parameter for POST, PUT, PATCH operations. (#244)
3.2.0 - 2019-09-28
- Add ignore_error option. (#218)
3.1.1 - 2019-09-05
- OS3 request validator skip if link does not exist. (#240)
3.1.0 - 2019-08-07
- Add error handler option to Committee::Middleware::RequestValidation. (#230)
- Support request validations by assert_schema_conform. (#227)
- Ensure we catch all OpenAPIParser::OpenAPIError classes when coercing path parameters for OpenAPI 3. (#228)
3.0.3 - 2019-06-17
- Catch OpenAPIParser::NotExistRequiredKey with RequestValidation. (#225)
3.0.2 - 2019-05-15
- Support OpenAPI 3 patch version. (#223)
3.0.1 - 2019-03-18
- Correct use of
filepath
toschema_path
. (#216)
3.0.0 - 2019-01-31
- Allow GET request body data. (#211)
3.0.0.beta3 - 2019-01-25
- OpenAPI 3 merge request body to request parameter in GET request. (#210)
3.0.0.beta2 - 2019-01-23
- Merge 2.4.0 feature (rename
filepath
option toschema_path
(#191)).
3.0.0.beta - 2019-01-19
- Support full committee options in OpenAPI3.
- Support check_content_type option for OpenAPI3. (#174)
- Fix bug when non defined link with form content type and coerce option. (#173)
3.0.0.alpha - 2018-12-26
- OpenAPI 3.0 support. (#164)
- Drops support for old versions of Ruby. (#146)
2.5.1 - 2019-01-22
- Fix bug in the handling of
pattern
attribute on OpenAPI 2 parameters. (#209)
2.5.0 - 2019-01-22
- Support more parameter validations for OpenAPI 2. (#207)
2.4.0 - 2019-01-20
- Add
error_handler
option. (#152) - Add
schema_path
option. (#191) - Add
request_object
andresponse_data
toCommittee::Test::Methods
. (#195) - Add
validate_success_only
option. (#199)
- Prefer path with fewest slugs when a request may route to resolve to multiple. (#160)
- Deprecate many methods in
Committee::Test::Methods
. (#157) - Deprecated
validate_errors
option in favor ofvalidate_success_only
. (#187)
- Fix bug when using
coerce_recursive
in request parameters. (#162)
2.3.0 - 2018-11-15
- Update minimum Rack dependencies to mitigate CVE-2018-16471. (#155)
- Deprecate use of
JsonSchema::Schema
object. (#147)
2.2.1 - 2018-09-20
- Add numeric response status support for openapi 2. (#141)
2.2.0 - 2018-09-06
- Add support for
multipart/form-data
when processing requests. (#127)
2.1.1 - 2018-08-04
- Fix the
committee-stub
bin so that it runs if installed as a gem. (#127)
2.1.0 - 2017-03-26
- Support validating header schemas in OpenAPI 2. (#122)
2.0.1 - 2017-02-27
- Support either a string or an integer for status code responses. (#125)
2.0.0 - 2017-09-05
- Add support for OpenAPI 2.0.
- Add support for coercing types in form bodies (default on for OpenAPI 2.0).
- Add
committee.response_schema
env key. - Add sample generators for schemas that are arrays or have enums.
- Add
coerce_date_times
option to turn strings into time objects. - Add
coerce_recursive
option to disable recursive coercion.
- Required that a driver name be passed to
committee-stub
executable. - Recurse into arrays and objects by default when coercing parameters.
- Raise
Committee::NotFound
with more meaningful error message.
1.15.0 - 2016-09-13
- Add the
coerce_query_params
option to allow queries with basic types to be checked against a schema/