Packages

Permit.Absinthe provides integration between the Permit authorization library and Absinthe GraphQL for Elixir.

Current section

Files

Jump to
permit_absinthe CHANGELOG.md
Raw

CHANGELOG.md

# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## Unreleased
## [v0.3.1] - 2026-05-25
### Fixed
- Reverted `:igniter` dependency from `only: [:dev, :test], runtime: false` back to `optional: true`, restoring correct Igniter behaviour for generator tasks.
## [0.3.0] - 2026-04-27
### Added
- Igniter installer task (`mix permit_absinthe.install`) to automatically patch the Absinthe schema module with `use Permit.Absinthe` (#14)
## [0.2.1] - 2026-02-24
### Changed
- Shortened middleware module name: `Permit.Absinthe.Middleware.LoadAndAuthorize` is now `Permit.Absinthe.Middleware` (#11). The old module is deprecated and delegates to the new one with a runtime warning.
### Fixed
- Fixed create action authorization: authorization is now checked against a blank struct for `:create` actions (and any custom actions that group under `:create`), preventing conditioned rules from passing unconditionally (#10).
## [0.2.0] - 2026-02-16
### Added
- Extended `permit` configuration options for resolver customization (#5 - thanks @arturz):
- `:fetch_subject`
- `:base_query`
- `:finalize_query`
- `:handle_unauthorized`
- `:handle_not_found`
- `:unauthorized_message`
- `:loader`
- `:wrap_authorized`
- Support for collection results from custom `:loader` callbacks.
- Expanded test coverage for configuration options and loader edge cases.
### Changed
- Simplified dataloader integration: `authorized_dataloader/3` now self-initializes Permit dataloader sources per field (#9). This removed the need to use `Permit.Absinthe.Middleware.DataloaderSetup`.
- Updated docs and examples to reflect the new dataloader flow and onboarding guidance.
- Updated dependency and CI matrix configuration for current Elixir/OTP compatibility.
### Fixed
- Fixed metadata lookup and callback arity detection for nested Absinthe type wrappers (#7).
- Fixed dataloader source key handling in resolution context (part of #9).
- Improved dataloader source key stability by using tuple-based source keys (part of #9).
## [0.1.0] - 2025-08-07
### Added
- Map GraphQL types to Permit resource modules using the `permit` macro
- Built-in `load_and_authorize/2` resolver for automatic resource loading and authorization
- `Permit.Absinthe.Middleware.LoadAndAuthorize` middleware for complex resolution scenarios
- `:load_and_authorize` directive for declarative authorization
- `Permit.Absinthe.Dataloader` for authorized dataloader integration
- Action-based authorization with default `:read` action for queries
- Custom ID parameter support via `id_param_name` and `id_struct_field_name` options
- Test helpers and reference implementation
[0.1.0]: https://github.com/permit-elixir/permit_absinthe/releases/tag/v0.1.0
[0.2.0]: https://github.com/permit-elixir/permit_absinthe/releases/tag/v0.2.0
[0.2.1]: https://github.com/permit-elixir/permit_absinthe/releases/tag/v0.2.1