-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathChanges
384 lines (304 loc) · 15.9 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
Revision history for OpenAPI-Modern
{{$NEXT}}
0.079 2025-01-31 23:33:40Z
- fix use of error modes for changes in JSON::Schema::Modern 0.600
- fix use of document traversal for changes in JSON::Schema::Modern
0.600
0.078 2025-01-27 05:41:19Z
- remove use of prototypes combined with signatures (unstable on
perls 5.22 through 5.26)
0.077 2025-01-26 21:05:06Z
- fix usage of JSON::Schema::Modern::Result objects, in preparation
for an upcoming deprecation of boolean overloads
0.076 2024-12-27 22:25:32Z
- now supporting $refs in path-item objects (e.g. those under
/paths/<path template>)
0.075 2024-12-22 19:51:49Z
- now using metaschemas published for OpenAPI 3.1.1 in November 2024.
0.074 2024-12-14 18:07:54Z
- some adjustments to error messages and locations when matching a
provided request uri against /paths/* entries in an openapi document
0.073 2024-11-02 23:33:29Z
- fix test that would break with the latest JSON::Schema::Modern (0.594)
0.072 2024-10-24 16:36:44Z
- fix module loading, for downstream dependencies (broken in 0.071)
0.071 2024-10-20 23:18:32Z
- fix tests that changed their output with JSON::Schema::Modern 0.592
0.070 2024-10-07 20:57:24Z
- fix use of document traversal for changes in JSON::Schema::Modern 0.591
0.069 2024-09-28 23:34:35Z
- adjust for changes in JSON::Schema::Modern 0.591 (which deprecate
a form of "add_schema")
0.068 2024-09-14 23:35:47Z
- path-item+operation lookup can now be performed by operation_id
alone (a valid usecase for response validation)
0.067 2024-07-27 23:55:46Z
- fix path template regex to allow for [/?#] characters in capture
names
0.066 2024-07-13 23:27:00Z
- now preserving the numeric/string type of any path capture values
passed in via the $options hash, while still evaluating path
parameter values as both strings and numbers
0.065 2024-05-25 23:56:08Z
- BREAKING CHANGE: path_item_uri is dropped from the populated
$options hash in validate_request, validate_response, and
find_path, and replaced with operation_uri (note that the
path-item uri is always one level up)
- add support for "allowEmptyValue" option in query parameter
descriptions
0.064 2024-05-07 00:14:00Z
- fix: requests with an empty URI path (e.g. "https://example.com?foo=1")
now matches path "/".
- fix: preserve all headers of the same name when validating a
Plack::Response object
- support added for validation of Catalyst::Request and
Catalyst::Response objects
0.063 2024-04-27 22:26:47Z
- the url scheme of absoluteKeywordLocations in errors is now taken
from the incoming request, rather than always being "https"
- fix matching of request uri against path templates so that
all characters are matched literally, not treated as regexes
0.062 2024-04-21 18:11:43Z
- BREAKING CHANGE: operation_path is dropped from the populated
$options hash in validate_request, validate_response, and
find_path, and replaced with path_item_uri (note this changed
again to operation_uri in v0.065)
- "servers" entries are now allowed in openapi documents, but they
are not yet considered when matching URIs to paths
0.061 2024-04-01 05:33:15Z
- fixed incompatibility with an internal change in
JSON::Schema::Modern 0.583
0.060 2024-03-20 20:56:37Z
- remove use of JSON::MaybeXS, to avoid potential use of JSON::XS;
now we use Cpanel::JSON::XS or JSON::PP directly, using the same
environment variables as in Mojo::JSON for customization.
0.059 2024-02-10 02:29:14Z
- now being more strict on conversions from LWP and Plack
requests/responses to Mojolicious types
0.058 2024-01-18 04:37:30Z
- bump internal version requirement for Math::BigInt
0.057 2024-01-15 18:36:19Z
- fix OAS vocabulary definitions for changes in JSON::Schema::Modern
0.579
0.056 2023-12-31 17:26:55Z
- bump optional dependency on HTTP::Headers::Fast for a psgi
interface (GH#70)
0.055 2023-12-31 06:21:46Z
- fix incompatibility with JSON::Schema::Modern 0.578
0.054 2023-12-20 19:41:20Z
- now making use of "recommended_response" in JSON::Schema::Modern to
recommend an HTTP response code and message to use after certain
request validation failures
0.053 2023-12-13 05:01:33Z
- no longer improperly reporting 4xx response errors as validation
failures when message has actually been transmitted
0.052 2023-11-26 23:48:32Z
- "recursive_get" now optionally takes a target entity type
- support added for validation of Plack::Request and Plack::Response
objects
0.051 2023-11-13 01:02:33Z
- Content-Length checking is now more properly consistent with
RFC9112; some users of HTTP::Request and ::Response objects may
need to make adjustments in their tests to be compliant
- track all subschema locations, not just schema roots, for better
$ref verification
0.050 2023-11-06 03:10:15Z
- fix construction of an OpenAPI::Modern object with a
pre-constructed JSON::Schema::Modern::Document::OpenAPI object
- "recursive_get" moved from JSON::Schema::Modern::Document::OpenAPI
to OpenAPI::Modern
- when validating header strings against a string schema, no longer
parse out internal whitespace surrounding commas (to use RFC9112
semantics, validate as an array).
0.049 2023-10-29 01:01:38Z
- fix "recursive_get" to take a uri-reference, rather than a json
pointer
- fix some "discriminator" tests that fail with JSON::Schema::Modern
0.574, and some inconsistencies with the spec
0.048 2023-10-04 05:34:44Z
- now validating all headers of a given name, not just the first,
when provided on the request/response as separate lines
- multiple headers of the same name can be validated as an array or
object as per deserialization rules in the OpenAPI v3.1
specification.
0.047 2023-09-19 04:29:16Z
- strings are now treated as numbers without requiring the "type"
keyword, and only from parameters, not message bodies, and only
when no media type is provided
- new "recursive_get" method on
JSON::Schema::Modern::Document::OpenAPI for fetching a
specification at a json pointer and following any $refs
(note this interface has changed in 0.049 and 0.050)
0.046 2023-06-24 21:56:39Z
- extra validation for Transfer-Encoding response header
0.045 2023-06-06 04:15:18Z
- fix test for changes in JSON::Schema::Modern 0.567
- now ensuring that $ref locations are to the correct entity type
0.044 2023-05-23 02:08:54Z
- revert changes to YAML parsing in 0.043, pending fixes to YAML::XS
0.043 2023-05-11 04:36:24Z
- properly detect, and fail early, on badly-parsed request or
response objects
0.042 2023-04-08 21:22:13Z
- improvements to some errors resulting from parsing an invalid
OpenAPI document
0.041 2023-03-13 02:47:59Z
- now detecting and erroring on two /paths with the same template
semantics
- handle new callback behaviour in JSON::Schema::Modern 0.565
0.040 2023-02-18 23:43:50Z
- all request and response validation are now done with
Mojo::Message::Request and ::Response objects, converting from
HTTP::Request and HTTP::Response as needed; the $options hash is
now populated with the mojo request
0.039 2023-02-11 23:23:17Z
- BREAKING CHANGE: find_path now takes one argument, not two; the
$request object is now passed with the $options hash.
- the $options hash populated by validate_request, validate_response
and find_path now includes the request object, when available
0.038 2023-01-15 18:51:02Z
- fix vocabulary tests with TJSA 1.018
- fix test for compatibility with JSM 0.561
0.037 2022-11-27 23:57:29Z
- added operation_path to the options hash returned from find_path,
validate_request, validate_response
0.036 2022-11-19 22:30:06Z
- fix some media-type test cases to accomodate changes in
JSON::Schema::Modern 0.558
0.035 2022-11-12 20:53:54Z
- fixes to media-type parsing: correctly ignore any charset included
with non-text Content-Types, and always interpret application/json
as charset=utf-8 as per RFC8259 §11
0.034 2022-10-15 20:15:34Z
- removed validation of readOnly properties in request bodies and
writeOnly values in response bodies
- bundled OAS v3.1 schemas have been updated to the 2022-10-07
edition
0.033 2022-09-18 23:10:04Z
- bump dependency on JSON::Schema::Modern, to pick up changes to
error output when an openapi document is invalid
0.032 2022-08-13 23:17:31Z
- error when a uri path specification contains duplicate capture
names
0.031 2022-06-01 03:59:14Z
- fix error when request or response body schema is empty (since
v0.028)
- use a custom error message with false schemas (to indicate the
entire entity is forbidden)
0.030 2022-05-26 05:17:26Z
- prohibit request bodies for HEAD and GET request unless
requestBody explicitly specified, as this is a smuggling vector
0.029 2022-05-16 04:20:20Z
- fix missing prereq for result serialization tests
0.028 2022-05-14 21:11:50Z
- now only checking for readOnly values in request bodies and
writeOnly values in response bodies (not path
parameters/headers/query parameters).
0.027 2022-05-01 01:41:48Z
- permit the use of unevaluatedProperties, unevaluatedItems in
openapi subschemas, and collect annotations into the evaluation
result
- now checking for readOnly values in requests and writeOnly values
in responses
0.026 2022-04-23 16:48:26Z
- fix installation of sharedir files when fallback installers
(ExtUtils::MakeMaker or Module::Build) are used
0.025 2022-04-03 19:58:27Z
- find_path no longer returns an undef operation_id when there is
no operationId defined in the schema document
0.024 2022-03-25 23:41:04Z
- operation_id and method are now always returned in the options
hash in validate_request, validate_response, find_path
0.023 2022-03-12 00:25:21Z
- get_operationId has been renamed to get_operationId_path
- updated bundled schemas from 2021-09-28 versions to 2022-02-27
0.022 2022-02-16 06:00:37Z
- construction with an invalid document is handled more nicely
- added new dialect schema share/strict-schema.json to the list of
available schemas, which prohibits unrecognized keywords
- added custom LICENSE to schema files copied from
github.com/OAI/OpenAPI-Specification
- distribution is renamed from JSON-Schema-Modern-Document-OpenAPI
to OpenAPI-Modern
0.021 2022-02-11 04:44:05Z
- absolute locations in errors are now resolved against the
request's Host header
0.020 2022-02-10 02:56:46Z
- validation methods and find_path now also accept the HTTP request
method as an option
- the request object is no longer required as an argument to
find_path
- validate_request, validate_response now also support Mojolicious
request and response objects
0.019 2022-01-23 08:17:30Z
- some instanceLocations in errors from validate_request and
validate_response have changed to be more specific regarding the
source of the error
- find_path is now a public method of OpenAPI::Modern, factored out
of validate_request and validate_response to enable third-party
callers to reuse information between these two method calls
0.018 2022-01-17 23:37:05Z
- fix parsing of escaped characters in URI paths and capture values
0.017 2022-01-17 18:33:07Z
- remove erroneous logic when checking the "discriminator" keyword
- user-provided path_template, path_captures and operation_id are
all verified against the request URI
- path_template, operation_id and path_captures are no longer
required arguments for validate_request, validate_response
0.016 2022-01-06 04:22:20Z
- fix the prereq specification for YAML::PP
0.015 2021-12-31 21:17:11Z
- load Math::BigInt before attempting to use it
0.014 2021-12-30 05:38:03Z
- use bignums in JSON::Schema::Modern to properly support int32,
int64 numeric formats
0.013 2021-12-22 19:23:30Z
- support */* as a media-type in a content specification, to
indicate valiation checks that can be performed on any content
type (e.g. length)
- add support for OAS-specific formats: int32, int64, float, double,
password
0.012 2021-12-17 06:39:38Z
- properly handle a missing Content-Length header alongside a
non-zero-length body payload
0.011 2021-12-16 06:17:57Z
- spurious validation errors fixed when request body is empty,
yet not required
0.010 2021-12-11 23:11:43Z
- OpenAPI metaschemas are now also available via URIs ending in
.../latest
- improved error messaging when a media-type or charset decoder fails
- improved handling of HTTP headers
0.009 2021-12-06 05:55:01Z
- validation no longer errors on a missing media type if the
corresponding schema is empty (true)
- validate_request and validate_response now accept an operation_id
instead of a path_template for looking up the endpoint
specification in the openapi document
- treat Content-Type headers and media-type entries in openapi
documents case-insensitively, and also match wildcards
(image/jpg falls back to image/* or */*)
0.008 2021-12-03 05:33:29Z
- process response headers in canonical order
0.007 2021-12-02 05:43:34Z
- properly handle missing message bodies, with possibly a mising
Content-Type header as well
- better type handling for numeric strings and stringy numbers
- detect and handle infinite recursion while evaluating
0.006 2021-12-01 05:22:01Z
- support media type encodings in parameters
0.005 2021-11-30 06:22:10Z
- performance improvements when loading and parsing documents
- extract and cache all operationIds in the document
0.004 2021-11-28 22:09:01Z
- implemented validate_response()
- when validating requests and responses, values that look like
numbers, and are evaluated as numbers in schemas, are now coerced
to numbers automatically
0.003 2021-11-26 01:01:47Z
- OpenAPI::Modern is born
0.002 2021-11-17 05:49:29Z
- minimum Perl version raised to 5.20
- embedded schemas are now traversed for resource URIs
0.001 2021-11-10 04:50:17Z
- Initial release.