All notable changes to this project will be documented in this file.
[0.17.1] - 2026-10-08
๐ Bug Fixes
- Precast parameters whose schema reference is not resolved yet (#161) (Stefan Fochler)
[0.17.0] - 2026-10-04
This release brings a migration path for OpenApiSpex users.
Oaskit now provides an agent skill that migrates a Phoenix application from OpenApiSpex to Oaskit. Scripts rewrite the schemas, controllers and tests, and the agent handles the remaining cases. See the Migrating from OpenApiSpex guide to install it and choose what your API clients keep.
Oaskit also supports more of what OpenApiSpex applications rely on:
- JSON request bodies that are not objects, such as arrays, are validated.
- Parameters whose schema type is a union, such as
[:integer, :null], are cast. Oaskit.warmup_spec_cache/2andOaskit.SpecCacheWarmupbuild the spec at boot. Concurrent first requests now wait for a single build.
JSV 0.26 adds context data to normalized errors, so error handlers can render the former OpenApiSpex error format without parsing messages. Oaskit now requires JSV 0.26.
Breaking: parameters with a type union including string no longer pass
numeric or boolean strings unchanged. With [:integer, :string], "007" is
cast to 7.
๐ Features
- Serialize spec builds and add Oaskit.warmupspec_cache/2 (_lud)
- [breaking] Cast parameter values for type unions (lud)
๐ Bug Fixes
- Validate non-object JSON request bodies wrapped by Plug (lud)
๐ Documentation
- Provide a migration skill for OpenAPI 3.0 users (lud)
- Documentation changes around new JSV error ctx values (lud)
[0.16.1] - 2026-09-28
๐ Bug Fixes
- Fix transforming single example into examples map (lud)
- Correctly take default request/response descriptions from schema modules as documented (lud)
- Keep description on request bodies (lud)
- Raise explicit error for invalid request body definitions (lud)
- Accept maps as parameter definitions (lud)
๐ Refactor
- Share media type content casting between request bodies and responses (lud)
๐ Documentation
- Fix operation/2 docs and README inline schema wording (#153) (Ludovic Dem)
- Set JSON content type in guide tests, mention HTML errors in README (lud)
โ๏ธ Miscellaneous Tasks
- Various typo fixes (lud)
[0.16.0] - 2026-09-25
๐ Features
- [breaking] Drop intermediary JSON schema errors from JSON error responses (lud)
[0.15.0] - 2026-09-22
๐ Features
- Support description, deprecated and allowReserved on parameters (#147) (Stefan Fochler)
๐ Bug Fixes
- Require timezone offset in the time format per RFC 3339 (lud)
๐ Documentation
- Added missing docs for public API (lud)
๐งช Testing
- Updated orval build (lud)
โ๏ธ Miscellaneous Tasks
- Limit justfile verbosity on mix.deps (lud)
[0.14.2] - 2026-07-06
๐ Bug Fixes
- Handle new texture 1.2 http structured fields parse errors (lud)
[0.14.1] - 2026-07-05
๐ Bug Fixes
- Removed required openIdConnectUrl parameter for mutualTLS security scheme (lud)
๐งช Testing
- Cover HTML rendering of header validation errors (lud)
- Cover HTML rendering and escaping of body validation errors (lud)
- Guard against query-object-key XSS via a plain GET link (lud)
๐ก๏ธ Security
- Prevent XSS in default HTML error handler (lud)
- Pin Redoc CDN bundle with subresource integrity (lud)
[0.14.0] - 2026-06-28
๐ Features
- Support object type parameters (lud)
- Validate response headers in Oaskit.Test.validresponse/3 (_lud)
๐ Documentation
- Simplify custom web module definition for API controllers (lud)
[0.13.2] - 2026-06-26
๐ Documentation
- Encourage users to use custom controller setup in web module (lud)
- Show how to use @externalresource for imported specs (_lud)
[0.13.1] - 2026-05-29
๐ Documentation
- Fix docs for JSV module based schemas now expecting jsonschema/0 (#98) (_Ludovic Dem)
โ๏ธ Miscellaneous Tasks
- Fix compilation warnings for Elixir 1.20 (lud)
[0.13.0] - 2026-05-10
๐ Features
- Upgrade to JSV 0.19 new cast system (lud)
[0.12.0] - 2026-03-19
๐ Features
- [breaking] Changed schema titles for all Oaskit errors, possibly impacting client generators (lud)
โ๏ธ Miscellaneous Tasks
- Updated license to Apache-2.0 (lud)
[0.11.0] - 2026-01-20
๐ Features
- Pass the :extensions options to the security plug (lud)
๐ Bug Fixes
- Added validation constraints for security scheme objects (lud)
[0.10.1] - 2026-01-15
๐ Bug Fixes
- Relax climate dependency version requirement (_lud)
[0.10.0] - 2026-01-08
๐ก๏ธ Security
- [breaking] The security plug is now called on all operations (lud)
[0.9.1] - 2025-12-31
๐ Bug Fixes
- Improve handling of shared and operation tags (#69) (Jaden)
- Fixed merging of parameters and tag with operation macro (lud)
[0.9.0] - 2025-12-11
๐ Features
- [breaking] Renamed unprocessableentity to unprocessable_content (_lud)
[0.8.0] - 2025-11-21
๐ Features
- Added experimental support for operation extensions (lud)
๐ Bug Fixes
- Take all existing operation fields from operation macro (lud)
[0.7.0] - 2025-11-13
๐ Features
- Support explode and delimiters in query parameters validator (lud)
- Automatically strip '[]' suffix from parameter names in validation (lud)
- Add support to simple header parameters (#37) (Yannis Weishaupt)
- Add precast for array of ref query parameter (#38) (Yannis Weishaupt)
๐ Refactor
- Simplify parameter precast build code (lud)
- Return explicit server config fetch errors (lud)
๐ Documentation
- Document security option on operation macro (lud)
๐งช Testing
- Instrument Orval to test enforced array brackets (lud)
[0.6.0] - 2025-10-13
๐ Features
- Added operation-level security check using user-defined plugs (lud)
- Added support for root level security requirements (lud)
- Handling security is now mandatory (lud)
๐ Bug Fixes
- Ensure response body is a binary in Oaskit.Test.validresponse (#23) (_Yannis Weishaupt)
- Fixed normalization of %Reference{} structs (lud)
[0.5.1] - 2025-10-10
๐ Bug Fixes
- Don't erase existing private conn data in ValidateRequest (#20) (Yannis Weishaupt)
๐งช Testing
- Ensure spec and operation id are preserved in private conn data (lud)
[0.5.0] - 2025-09-16
๐ Features
- [breaking] ABNF parser dependency isn't optional anymore (lud)
[0.4.1] - 2025-08-25
๐ Features
- Expose SpecValidator and SpecDumper tools (lud)
[0.4.0] - 2025-08-21
๐ Features
- Provide request and response data abstractions for custom validations (lud)
[0.3.1] - 2025-07-18
๐ Features
- Added the :unprefix option to remove an URL prefix in Paths.fromrouter/2 (_lud)
[0.3.0] - 2025-07-10
โ๏ธ Miscellaneous Tasks
- Upgrade OpenAPI spec schemas for JSV 0.10 (lud)
[0.2.0] - 2025-07-05
๐ Features
- Provide a JSON schema for the default error responses (lud)
[0.1.2] - 2025-06-30
๐ Features
- Provide a controller to serve the specs and Redoc UI (lud)
[0.1.1] - 2025-06-29
๐ Documentation
- Fix doc rendering on hexdocs.pm (lud)
โ๏ธ Miscellaneous Tasks
- Setup versioning (lud)
[0.1.0] - 2025-06-29
๐ Features
- Initialize from proof of concept (lud)
โ๏ธ Miscellaneous Tasks
- Hex package setup (lud)