-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathChanges
More file actions
612 lines (479 loc) · 24.9 KB
/
Changes
File metadata and controls
612 lines (479 loc) · 24.9 KB
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
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
Revision history for OpenAPI-Modern
{{$NEXT}}
0.132 2026-03-29 19:14:44Z
- full support for parsing of "query" parameters: form,
spaceDelimited, pipeDelimited and deepObject styles, as well as
parsing into arrays and objects
- full support for parsing of the Cookie header via "cookie"
parameters: form and cookie styles and media-type-encoded content,
as well as parsing into arrays and objects
0.131 2026-03-23 16:41:59Z
- fix handling of zero-length path parameters using the default
style when no schema is provided
0.130 2026-03-08 23:12:28Z
- type inference calculations are now cached on the document object,
for faster runtime performance
0.129 2026-03-01 18:52:33Z
- support "defaultMapping" in the 3.2.0 discriminator object
0.128 2026-02-21 23:11:29Z
- header parameters now support utf8-encoded values
- updated bundled schemas for OAS versions 3.1, 3.2 to their latest
published versions
0.127 2026-02-09 19:01:59Z
- fix bad parsing of server object in link object
0.126 2026-01-31 01:04:02Z
- recursive_get() now preserves summary, description fields from the
original object when following $refs
0.125 2026-01-27 00:00:08Z
- fix stringification bug on older perls from last release
0.124 2026-01-26 22:23:44Z
- BREAKING CHANGE: "path_captures" in find_path_item and
validate_request is no longer percent-decoded
- full support for parsing of "path" parameters: simple, matrix and
label styles, as well as parsing into arrays and objects
0.123 2026-01-21 22:53:30Z
- more scenarios are supported in OAD 3.0 -> 3.[1,2] upgrade
0.122 2026-01-19 01:30:30Z
- fix bug with number <-> string coercion on older perls
0.121 2026-01-18 01:00:15Z
- type coercion for parameter data is now more
specification-compliant, using the schema to infer the intended
type for base types, object properties and array items
0.120 2026-01-06 20:00:01Z
- now checking for references that target an unknown or incorrect
location when OpenAPI documents are parsed
0.119 2025-12-29 04:53:44Z
- fix bad implementation of "$ref" in v3.0 OADs
0.118 2025-12-25 00:35:04Z
- also identify missing "minimum" and "maximum" keywords when
validating schemas in v3.0 OADs
- add ability to upgrade OpenAPI documents to a newer version
(available via "openapi-validate --upgrade")
0.117 2025-12-17 19:03:12Z
- more improvements to "with_defaults" handling
0.116 2025-12-16 23:36:39Z
- the converted response object is now added to the optional hashref
used in validate_response()
- fix usage of --with-defaults in "openapi-validate'
0.115 2025-12-14 20:15:30Z
- drop the --document argument in "openapi-validate" in favour of
@ARGV
- added --with-defaults option to "openapi-validate" script
0.114 2025-12-09 22:34:18Z
- support added for parsing and validation of Dancer2 request and
response objects
0.113 2025-12-08 19:38:14Z
- now fully supporting the use of v3.0.x documents in request and
response validation, as well as document validation
0.112 2025-12-07 07:05:36Z
- fix tests that changed their output with JSON::Schema::Modern
0.628
0.111 2025-12-04 01:23:20Z
- now also allowing validation of v3.0.x documents
0.110 2025-12-03 23:53:53Z
- new command line script "openapi-validate", to validate OpenAPI
descriptions (one or more files)
0.109 2025-11-29 00:46:37Z
- the OpenAPI 3.0 schema is now available to be used via
load_cached_document() in JSON::Schema::Modern::Utilities,
when OpenAPI::Modern::Utilities is loaded
0.108 2025-11-25 18:03:38Z
- fixed error in type detection in parameter schemas (thanks, Robin
Murray!)
0.107 2025-11-23 18:56:54Z
- efficiency improvements in validate_response() when provided with
an operationId for lookup
- prereq bump on Test2::Warnings for an import fix
0.106 2025-11-19 20:28:01Z
- fix invalid restriction on trailing '/' in server urls (added in
v0.086)
0.105 2025-11-03 20:04:48Z
- improved specification compliance when matching URIs to path
patterns and server url patterns
0.104 2025-10-29 17:54:47Z
- support added for tagged operations (tag heirarchies are new in
OpenAPI 3.2)
0.103 2025-10-26 19:14:30Z
- find_path() has been renamed to find_path_item() (with a
backcompat alias), and now accepts lookup using just an HTTP
request URI and method alone, rather than a complete request
object
0.102 2025-10-21 21:33:40Z
- support added for additional HTTP methods, new in OpenAPI 3.2
0.101 2025-10-19 20:09:38Z
- support added for "in: querystring" in parameter descriptions, new
in OpenAPI 3.2
0.100 2025-10-15 19:38:38Z
- support added for OpenAPI v3.2 documents!
See https://github.com/OAI/OpenAPI-Specification/releases/tag/3.2.0
for what is new or changed.
0.099 2025-10-13 19:44:43Z
- fixed bug: properly support operation_id = '0'
0.098 2025-10-09 21:01:35Z
- fixed bug: we no longer assume that a /paths entry can be inferred
from an operation_id alone
0.097 2025-09-28 22:30:37Z
- various internal changes to adjust for changes in
JSON::Schema::Modern 0.619
0.096 2025-09-19 17:17:20Z
- potentially-breaking change: "method" in the options hash is
now treated case-sensitively when matching to an HTTP request (the
entry in the OpenAPI document itself is still lower-cased), and
also preserves the case when it is returned.
- updated bundled schemas to their latest published versions
0.095 2025-09-11 03:38:53Z
- updated bundled schemas to their latest published versions
0.094 2025-09-08 19:05:29Z
- fix redefinition warning in tests
0.093 2025-09-07 20:32:18Z
- fix error in tests exposed by JSON::Schema::Modern 0.618
0.092 2025-09-03 22:49:24Z
- removed the 'json_schema_dialect' constructor argument for
JSON::Schema::Modern::Document::OpenAPI (use jsonSchemaDialect in
the document instead)
- the 'openapi_uri' constructor argument for OpenAPI::Modern is no
longer required, as it can be calculated from the JSMDO default
0.091 2025-08-16 20:52:35Z
- various internal changes to adjust for changes in
JSON::Schema::Modern 0.617
0.090 2025-08-04 00:57:05Z
- update bundled schemas to their latest versions
0.089 2025-07-31 21:03:29Z
- internal changes to JSON::Schema::Modern::Document::OpenAPI with
how the evaluator object is stored and tracked
0.088 2025-07-19 17:09:08Z
- better type inference for serialized parameters (also looks inside
the "allOf" keyword, respects keywords adjacent to "$ref", and now
infers null and boolean data using the "type" keyword)
0.087 2025-06-17 21:01:06Z
- various fixes to instance and keyword locations in some errors
when validating requests and responses
- full support for "server urls" when matching URIs against
path-items
0.086 2025-06-15 22:58:48Z
- allow for "x-*" properties in /paths/*
- "debug" option added to OpenAPI::Modern
0.085 2025-04-22 17:42:36Z
- no longer resolving error, annotation locations against scheme or
host from the HTTP request/response
0.084 2025-04-11 21:10:20Z
- no longer require the user to define a custom metaschema when
changing jsonSchemaDialect (we dynamically create one for you)
- pre-emptive support for '$self' property in the OpenAPI document
(to be officially added in v3.2)
0.083 2025-02-28 23:48:29Z
- fix Sereal serialization and deserialization hooks
- operation_uri is now resolved against the document uri and request
uri, just like error locations are
0.082 2025-02-11 02:51:02Z
- bump a prereq to work around a mysterious XS bug (RT#159140)
0.081 2025-02-08 19:12:50Z
- fix a prereq declaration
0.080 2025-02-07 06:24:48Z
- fix incorrect discriminator test, that was added for a change
reverted before the OpenAPI v3.1.1 release
- fix incorrect traversal semantics that new checks in
JSON::Schema::Modern 0.602 would surface
- fix a prerequisite declaration for a required HTTP method
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 (reverted in v0.085)
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.