Changelog
View SourceAll 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.
Unreleased
0.1.0 - 2026-03-31
Added
- OpenAPI 3.0 and 3.1 specification generation from Ash domains
- Automatic schema extraction from Ash resource attributes
- AshJsonApi route integration for path generation
- Comprehensive type mapping:
- String types:
string,ci_string,atom - Numeric types:
integer,float,decimal - Boolean type
- Date/time types:
date,time,datetime,utc_datetime,utc_datetime_usec,naive_datetime - Other types:
uuid,binary,map,term - Array types with nested type support
- String types:
- Constraint support:
min,max,min_length,max_length,match,one_of - Plug controller for serving specs from Phoenix applications
- Mix task for CLI spec generation (
mix ash_oaskit.generate) - Igniter installation task (
mix igniter.install ash_oaskit) - JSON and YAML output formats
- Configurable API metadata (title, version, description, servers, contact, license)
v0.2.0 (2026-06-10)
Breaking Changes:
only include public fields in generated specs by futhr
The visibility filter checked a
:private?field that does not exist on Ash 3.x structs, so specs exposed every attribute, calculation, aggregate, and relationship — including non-public ones. Specs now include onlypublic? truefields, matching what AshJsonApi serializes. Mark fieldspublic? trueif your spec relied on the old behavior.derive request body schemas from the routed action by futhr
POST/PATCH bodies now reference
{Resource}{Action}Inputschemas derived from the routed action'sacceptlist and public arguments (previously they pointed at the responseAttributesschema). PATCH bodies requiredata.id. BlanketCreateInput/UpdateInputschemas are no longer emitted for resources without body-bearing routes.include resource-level routes and domain prefix in paths by futhr
Routes declared on the resource (
json_api do routes do ... end end) now appear in specs, and the domain-widejson_apiprefixis prepended to generated paths.
Features:
generate a spec module from the igniter installer by futhr
serve spec modules and Redoc UI from AshOaskit.Router by futhr
add spec modules via use AshOaskit by futhr
enrich operation summaries and descriptions by futhr
document JSON:API query parameters on related routes by futhr
complete Ash built-in type mappings by futhr
Bug Fixes:
derive HTTP methods and operations from the route struct by futhr
emit valid nullable $ref schemas for OpenAPI 3.0 by futhr
v0.1.1 (2026-04-02)
Bug Fixes:
- remove HTML div wrapper for hex.pm rendering by Tobias Bohwalli