0.20.1 - 2025-02-08
- Fix
ATH::ViewHandler
bundle configuration values not being correctly set (#520) (George Dietrich)
0.20.0 - 2025-01-26
- Breaking: Normalize exception types (#428) (George Dietrich)
- Breaking: The
ATHR::Interface.configuration
macro is no longer scoped to the resolver namespace (#425) (George Dietrich) - Breaking: Rename
ATHR::RequestBody::Extract
toATHA::MapRequestBody
(#425) (George Dietrich) - Breaking: Rename
ATHR::Time::Format
toATHA::MapTime
(#425) (George Dietrich) - Update minimum
crystal
version to~> 1.14.0
(#433) (George Dietrich) - Refactor auto redirection logic to be more robust (#436, #480) (George Dietrich)
- Refactor
ATHR::RequestBody
to raise more accurate deserialization errors (#490) (George Dietrich)
- Add support for Proxies & Load Balancers (#440, #444) (George Dietrich)
- Add new
trusted_host
bundle scheme property to allow setting trusted hostnames (#474) (George Dietrich) - Add support for deserializing
application/x-www-form-urlencoded
bodies viaATHA::MapRequestBody
(#477) (George Dietrich) - Add
ATHA::MapQueryString
to map a request's query string into a DTO type (#477) (George Dietrich) - Add
ATH::Exception.from_status
helper method (#426) (George Dietrich) - Add
ATHA::MapQueryParameter
for handling query parameters (#426) (George Dietrich) - Add
#validation_groups
and#accept_formats
annotation properties toATHA::MapRequestBody
(#486) (George Dietrich) - Add
#validation_groups
annotation property toATHA::MapQueryString
(#486) (George Dietrich) - Add
ATH::Request#port
andATH::Response#redirect?
methods (#436) (George Dietrich) - Add
#host
,#scheme
,#secure?
, and#from_trusted_proxy?
methods toATH::Request
(#440) (George Dietrich) - Add
ATH::Request#content_type_format
to return the request format's name from itscontent-type
header (#477) (George Dietrich) - Add
ATH::IPUtils
module (#440) (George Dietrich) - Add
.unquote
,.split
, and.combine
methodsATH::HeaderUtils
(#440) (George Dietrich) - Add request matchers for headers and query parameters (#491) (George Dietrich)
- Breaking: Remove
ATHA::QueryParam
(#426) (George Dietrich) - Breaking: Remove
ATHA::RequestParam
(#426) (George Dietrich) - Breaking: Remove
ATH::Exception::InvalidParameter
(#426) (George Dietrich) - Breaking: Remove everything within
ATH::Params
namespace (#426) (George Dietrich) - Breaking: Remove
ATH::Action#params
(#426) (George Dietrich) - Breaking: Remove
ATH::Listeners::ParamFetcher
(#426) (George Dietrich)
- Fix query parameters being dropped when redirecting to a trailing/non-trailing slash endpoint (#436) (George Dietrich)
- Fix auto redirection with non-standard ports (#480) (George Dietrich)
- Fix
multipart/form-data
not being mapped to theform
format (#441) (George Dietrich) - Fix being unable to provide the path of an
ARTA::Route
annotation on a class as a positional argument (#482) (George Dietrich) - Fix error when attempting to use
ATH::Controller#redirect_view
andATH::Controller#route_redirect_view
(#498) (George Dietrich) - Fix error when attempting to use
ATH::Spec::APITestCase#unlink
(#498) (George Dietrich)
0.19.2 - 2024-07-31
- Add
ATH.run_console
as an easier entrypoint into the console application (#413) (George Dietrich) - Add support for additional boolean conversion values from request attributes (#422) (George Dietrich)
- Breaking:
ATH::RequestMatcher::Method
now requires anArray(String)
as opposed to anyEnumerable(String)
(#431) (George Dietrich) - Update minimum
crystal
version to~> 1.13.0
(#433) (George Dietrich) - Updates usages of
UTF-8
in response headers toutf-8
as preferred by the RFC (#417) (George Dietrich)
- Fix the content negotiation implementation not working (#431) (George Dietrich)
0.19.1 - 2024-04-27
- Fix
framework
component docs landing on an empty page (#399) (George Dietrich) - Fix
Athena::Clock
not being aliased to the interface correctly (#400) (George Dietrich) - Fix
ATHA::View
annotation being defined in incorrect namespace (#403) (George Dietrich) - Fix
ATH::ErrorRenderer
not being aliased to the interface correctly (#404) (George Dietrich)
0.19.0 - 2024-04-09
- Breaking: change how framework features are configured (#337, #374, #383) (George Dietrich)
- Update minimum
crystal
version to~> 1.11.0
(#270) (George Dietrich) - Integrate website into monorepo (#365) (George Dietrich)
- Support for Windows OS (#270) (George Dietrich)
- Add
ATH::RequestMatcher
as a generic way of matching anATH::Request
given a set of rules (#338) (George Dietrich) - Raise an exception if a controller's return value fails to serialize instead of just returning
nil
(#357) (George Dietrich) - Add support for new Crystal 1.12
Process.on_terminate
method (#394) (George Dietrich)
- Fix macro splat deprecation (#330) (George Dietrich)
- Normalize
ATH::Request#method
to always be uppercase (#338) (George Dietrich) - Fixed not being able to use top level configuration annotations on controller action parameters (#356) (George Dietrich)
0.18.2 - 2023-10-09
- Change routing logic to redirect
GET
andHEAD
requests with a trailing slash to the route without one if it exists, and vice versa (#307) (George Dietrich)
- Add native tab completion support to the built-in
ATH::Commands
(#296) (George Dietrich) - Add support for defining multiple route annotations on a single controller action method (#315) (George Dietrich)
- Require the new
Athena::Clock
component (#318) (George Dietrich) - Add additional
ATH::Spec::APITestCase
request helper methods (#312, #313) (George Dietrich)
- Fix incorrectly generated route paths with a controller level prefix and no action level
/
prefix (#308) (George Dietrich)
0.18.1 - 2023-05-29
- Add support for serializing arbitrarily nested controller action return types (#273) (George Dietrich)
- Allow using constants for controller action's
path
(#279) (George Dietrich)
- Fix incorrect
content-length
header value when returning multi-byte strings (#288) (George Dietrich)
0.18.0 - 2023-02-20
- Breaking: upgrade Athena::EventDispatcher to 0.2.x (#205) (George Dietrich)
- Breaking: deprecate the
ATH::ParamConverter
concept in favor of Value Resolvers (#243) (George Dietrich) - Breaking: rename various types/methods to better adhere to crystal-lang/crystal#10374 (#243) (George Dietrich)
- Breaking: Change
ATH::Spec::AbstractBrowser
to be aclass
(#249) (George Dietrich) - Breaking: upgrade Athena::Validator to 0.3.x (#250) (George Dietrich)
- Improve service
ATH::Controller
s to not need thepublic: true
ADI::Register
field (#213) (George Dietrich) - Update minimum
crystal
version to~> 1.6.0
(#205) (George Dietrich)
- Add trace logging to
ATH::Listeners::CORS
to aid in debugging (#265) (George Dietrich) - Introduce new
framework.debug
parameter that istrue
if the binary was not built with the--release
flag (#249) (George Dietrich) - Add built-in HTTP Expectation methods to
ATH::Spec::WebTestCase
(#249) (George Dietrich) - Add
#response
and#request
methods toATH::Spec::AbstractBrowser
types (#249) (George Dietrich) - Add ATHR alias to make using value resolver annotations easier (#243) (George Dietrich)
- Add ATH::Commands::Commands::DebugEventDispatcher framework CLI command to aid in debugging the event dispatcher (#241) (George Dietrich)
- Add ATH::Commands::Commands::DebugRouter and ATH::Commands::Commands::DebugRouterMatch framework CLI commands to aid in debugging the router (#224) (George Dietrich)
- Add integration for the Athena::Console component (#218) (George Dietrich)
- Correctly populate
content-length
based on the response content's size (#267) (George Dietrich) - Prevent wildcard CORS
expose_headers
value whenallow_credentials
istrue
(#264) (George Dietrich) - Correctly handle
JSON::Serializable
values withinHash
/NamedTuple
controller action return types (#253) (George Dietrich) - Fix ATH::ParameterBag#get? not returning
nil
if it could not convert the value to the desired type (#243) (George Dietrich)
0.17.1 - 2022-09-05
- Breaking: ensure parameter names defined on interfaces match the implementation (#188) (George Dietrich)
0.17.0 - 2022-05-14
Checkout this forum thread for an overview of changes within the ecosystem.
- Add
pcre2
library dependency toshard.yml
(#159) (George Dietrich) - Add ATH::Arguments::Resolvers::Enum to allow resolving
Enum
members directly to controller actions (#173) (George Dietrich) - Add ATH::Arguments::Resolvers::UUID to allow resolving
UUID
s directly to controller actions by (#176) (George Dietrich) - Add ATH::ParameterBag#has(name, type) that checks if a parameter with the provided name exists, and that is of the provided type (#176) (George Dietrich)
- Add ATH::Arguments::Resolvers::DefaultValue to allow resolving an action parameter's default value if no other value was provided (#177) (George Dietrich)
- Breaking: rename
ATH::Arguments::Resolvers::ArgumentValueResolverInterface
toATH::Arguments::Resolvers::Interface
(#176) (George Dietrich) - Breaking: bump
athena-framework/serializer
to~> 0.3.0
(#181) (George Dietrich) - Breaking: bump
athena-framework/validator
to~> 0.2.0
(#181) (George Dietrich) - Expose the default value of an ATH::Arguments::ArgumentMetadata (#176) (George Dietrich)
- Update minimum
crystal
version to~> 1.4.0
(#169) (George Dietrich)
- Fix error when two controller share a common action name (#146) (George Dietrich)
- Fix release badge to use correct repo (#161) (George Dietrich)
- Fix query/request param docs to use new error responses (#167) (George Dietrich)
- Fix incorrect
Athena::Framework
Log
name (#175) (George Dietrich)
0.16.0 - 2022-01-22
First release in the athena-framework/framework repo, post monorepo.
- Add dependency on
athena-framework/routing
(#141) (George Dietrich) - Allow prepending HTTP::Handlers to the Athena server (#133) (George Dietrich)
- Add common HTTP methods (get, post, put, delete) to ATH::Spec::APITestCase (#134) (George Dietrich)
- Add overload of ATH::Spec::APITestCase#request that accepts an ATH::Request or HTTP::Request (#134) (George Dietrich)
- Allow running an HTTPS server via passing an OpenSSL::SSL::Context::Server to
ATH.run
(#135, #136) (George Dietrich) - Add ATH::ParameterBag#set(hash) that allows setting a hash of key/value pairs (#141) (George Dietrich)
- Breaking: integrate the Athena::Routing component (#141) (George Dietrich)
- Breaking: remove dependency on amberframework/amber-router (#141) (George Dietrich)
0.15.1 - 2021-12-13
- Include error list in
ATH::Exception::InvalidParameter
(#124) (George Dietrich) - Set the base path of parameter errors to the name of the parameter (#124) (George Dietrich)
0.15.0 - 2021-10-30
Last release in the athena-framework/athena repo, pre monorepo.
- Expose the raw HTTP::Request method from an
ATH::Request
(#115) (George Dietrich) - Add built in ATH::RequestBodyConverter param converter (#116) (George Dietrich)
- Add
VERSION
constant toAthena::Framework
namespace (#120) (George Dietrich)