Changelog

View Source

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.

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
  • 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.1 (2026-06-10)

Bug Fixes:

  • document typed structs with their declared field types by HaimKortovich

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 only public? true fields, matching what AshJsonApi serializes. Mark fields public? true if your spec relied on the old behavior.

  • derive request body schemas from the routed action by futhr

    POST/PATCH bodies now reference {Resource}{Action}Input schemas derived from the routed action's accept list and public arguments (previously they pointed at the response Attributes schema). PATCH bodies require data.id. Blanket CreateInput/UpdateInput schemas 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-wide json_api prefix is 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