# Change Log All notable changes to this project will be documented in this file. See [Conventional Commits](Https://conventionalcommits.org) for commit guidelines. ## [v2.11.9](https://github.com/ash-project/ash/compare/v2.11.8...v2.11.9) (2023-07-18) ### Bug Fixes: * only error on incorrect destination managed relationships when they are resources ### Improvements: * support the `-` unary operator ## [v2.11.8](https://github.com/ash-project/ash/compare/v2.11.7...v2.11.8) (2023-07-13) ### Improvements: * add `ForbiddenField` exception * warn on api missing from config * support resources directly in API modules * compile time warning on resources not detected in any apis ## [v2.11.7](https://github.com/ash-project/ash/compare/v2.11.6...v2.11.7) (2023-07-13) ### Improvements: * `exists` type aggregate ## [v2.11.6](https://github.com/ash-project/ash/compare/v2.11.5...v2.11.6) (2023-07-12) ### Improvements: * add `at/2` function ## [v2.11.5](https://github.com/ash-project/ash/compare/v2.11.4...v2.11.5) (2023-07-12) ### Bug Fixes: * incorrect error for casting binary UUID (#653) * fix and improve policy breakdown logs * incorrect typespec for `bulk_create/5`. (#646) ### Improvements: * add `string_split` expression * add field_policy_bypass * optimize field selection/loading when possible * deselect fields we know statically are not visible ## [v2.11.4](https://github.com/ash-project/ash/compare/v2.11.3...v2.11.4) (2023-07-10) ### Bug Fixes: * add `handle_change/3` and `prepare_change/3` to `Ash.Type.Union` (#642) ## [v2.11.3](https://github.com/ash-project/ash/compare/v2.11.2...v2.11.3) (2023-07-06) ### Bug Fixes: * properly detect selected attributes for changeset field policies * run before_action after authorization ### Improvements: * Add `Negate` validation (#636) ## [v2.11.2](https://github.com/ash-project/ash/compare/v2.11.1...v2.11.2) (2023-07-04) ### Bug Fixes: * return accumulator to correct state after altering exists * typo in at_most validation message (#640) ## [v2.11.1](https://github.com/ash-project/ash/compare/v2.11.0...v2.11.1) (2023-07-04) ### Bug Fixes: * select attributes in load statement ## [v2.11.0](https://github.com/ash-project/ash/compare/v2.11.0-rc.3...v2.11.0) (2023-07-04) ### Bug Fixes: * don't loan unless we need to for runtime filters ## [v2.11.0-rc.3](https://github.com/ash-project/ash/compare/v2.11.0-rc.2...v2.11.0-rc.3) (2023-06-29) ### Bug Fixes: * load after all hooks have completed * don't allow `is_nil` as an expression operator * proper source field loading on related data * reselect all selected attributes on action loading * don't deselect fields on loading for changesets ### Improvements: * better behavior for invalid filter value errors ## [v2.11.0-rc.2](https://github.com/ash-project/ash/compare/v2.11.0-rc.1...v2.11.0-rc.2) (2023-06-28) ### Features: * Adds Ash.Changeset around_transaction (#632) ### Bug Fixes: * select after setting notification data ### Improvements: * support partial eager evaluation of functions ## [v2.11.0-rc.1](https://github.com/ash-project/ash/compare/v2.11.0-rc.0...v2.11.0-rc.1) (2023-06-24) ### Improvements: * support specifying calculation as an option ## [v2.11.0-rc.0](https://github.com/ash-project/ash/compare/v2.10.2...v2.11.0-rc.0) (2023-06-23) ### Features: * add `field_policies` ### Bug Fixes: * fix field policy expressions * handle various inconsistencies in runtime expression runner ## [v2.10.2](https://github.com/ash-project/ash/compare/v2.10.1...v2.10.2) (2023-06-22) ### Improvements: * fix loading w/ only nil values * add verifier for identity fields. (#626) * adds verifier for identity fields. ## [v2.10.1](https://github.com/ash-project/ash/compare/v2.10.0...v2.10.1) (2023-06-16) ### Bug Fixes: * check paginability before streaming * properly set notification_data from loaded record * properly handle lazy loaded many to many relationships * remove duplicate doc for `authorize?` in `Query.for_read_opts` (#623) * set notification data with loaded result * honor `not_found_error?: true` opt in code interface get actions (#620) * typo on keyset refactor ### Improvements: * fix problems w/ nested loads using relationship load calcs ## [v2.10.0](https://github.com/ash-project/ash/compare/v2.9.29...v2.10.0) (2023-06-14) ### Features: * generate some action helpers with code interface (#614) ### Bug Fixes: * ensure attributes for keyset pagination are selected ### Improvements: * add support for generic actions in `api.can` (#617) ## [v2.9.29](https://github.com/ash-project/ash/compare/v2.9.28...v2.9.29) (2023-06-12) ### Bug Fixes: * can_load?/1 -> can_load?/2 * handle new load calculations in nested `loading?` checks ## [v2.9.28](https://github.com/ash-project/ash/compare/v2.9.27...v2.9.28) (2023-06-12) ### Bug Fixes: * don't load `nil` values for runtime types * properly set `upsert_keys` on bulk upserts * continue refactor in code interface (#611) ### Improvements: * properly pass calculation args in keyset filters ## [v2.9.27](https://github.com/ash-project/ash/compare/v2.9.26...v2.9.27) (2023-06-10) ### Bug Fixes: * honor query limit when streaming * refactor out some repetition in code interface (#609) ## [v2.9.26](https://github.com/ash-project/ash/compare/v2.9.25...v2.9.26) (2023-06-09) ### Bug Fixes: * properly handle loading through list types ### Improvements: * better keyset pagination behavior on first and last pages ## [v2.9.25](https://github.com/ash-project/ash/compare/v2.9.24...v2.9.25) (2023-06-09) ### Bug Fixes: * handle api missing in code interface calls ## [v2.9.24](https://github.com/ash-project/ash/compare/v2.9.23...v2.9.24) (2023-06-09) ### Bug Fixes: * pass empty select statement when loading on changesets * fixes for loading through attributes * drop proper opts keys when calling api in code interface (#608) ## [v2.9.23](https://github.com/ash-project/ash/compare/v2.9.22...v2.9.23) (2023-06-09) ### Bug Fixes: * remove validation that was breaking real design patterns ## [v2.9.22](https://github.com/ash-project/ash/compare/v2.9.21...v2.9.22) (2023-06-09) ### Bug Fixes: * various fixes to data loading * properly set tenant on nested calculation loads * properly set calc_name to resource calculation name on aliased calc loads * check correct calculation dependency for relationship * don't use `to_string` on the calculation names * don't need to check current aggs/calcs in filters anymore * set query tenant on calc dep loads * copy tenant to step on flow build (#603) * ensure add_tenant/1 checks the correctkey (#601) ### Improvements: * optimize `LoadRelationship` calculation * `Ash.Query.accessing/2` to get a list of fields being accessed * builting `LoadAttribute` and `LoadRelationship` calculations * warn on invalid/impossible policies * support loading through types * properly set tenant from initial data ## [v2.9.21](https://github.com/ash-project/ash/compare/v2.9.20...v2.9.21) (2023-06-06) ### Bug Fixes: * properly chain batch to each change in bulk creates * properly handle failed bulk creates with no errors ### Improvements: * handle `nil`s in memory the same way sql would have ## [v2.9.20](https://github.com/ash-project/ash/compare/v2.9.19...v2.9.20) (2023-06-05) ### Bug Fixes: * also do not autogenerate values for optional fields that have a generator (#599) * rename few error files to match module names (#597) ### Improvements: * support `changeset.load` ## [v2.9.19](https://github.com/ash-project/ash/compare/v2.9.18...v2.9.19) (2023-06-02) ### Bug Fixes: * Only create values for attributes that did not get a generator (#595) * remove field name from string length error message (#594) * remove field name from string length error message * remove old unused `Error.Changes.UnknownError` * do not capitalize ash error messages * change error kind code for `Ash.Error.Forbidden.Policy` ### Improvements: * verify reserved calc names, support `as` input ## [v2.9.18](https://github.com/ash-project/ash/compare/v2.9.17...v2.9.18) (2023-05-31) ### Bug Fixes: * properly load aggregates required for keyset pagination ## [v2.9.17](https://github.com/ash-project/ash/compare/v2.9.16...v2.9.17) (2023-05-31) ### Bug Fixes: * properly load depended on source attributes ## [v2.9.16](https://github.com/ash-project/ash/compare/v2.9.15...v2.9.16) (2023-05-29) ### Bug Fixes: * handle pre-hydrated predicates in expressions * handle `nil` errors on bulk creates * add `:forbidden` to `error_class`, lowercase code for `Forbidden` (#589) ## [v2.9.15](https://github.com/ash-project/ash/compare/v2.9.14...v2.9.15) (2023-05-27) ### Bug Fixes: * proper required value validations in bulk creates * don't use error count in place of errors ### Improvements: * make `loading?/2` smarter ## [v2.9.14](https://github.com/ash-project/ash/compare/v2.9.13...v2.9.14) (2023-05-26) ### Bug Fixes: * properly manage relationships on bulk creates * validations could undo certain changeset changes in bulk creates * properly upsert on non batchable rows ## [v2.9.13](https://github.com/ash-project/ash/compare/v2.9.12...v2.9.13) (2023-05-25) ### Bug Fixes: * properly honor the `return_errors?` option ## [v2.9.12](https://github.com/ash-project/ash/compare/v2.9.11...v2.9.12) (2023-05-23) ### Bug Fixes: * properly wrap errored changesets in bulk creates * don't notify unless `notify?: true` in bulk creates * properly wrap errored changesets in `{:error` in bulk creates ### Improvements: * better support for multiple code interfaces w/ same name ## [v2.9.11](https://github.com/ash-project/ash/compare/v2.9.10...v2.9.11) (2023-05-23) ### Bug Fixes: * swap `Exception.exception?` for `Kernel.is_exception` (#584) ### Improvements: * handle bulk transaction errors better ## [v2.9.10](https://github.com/ash-project/ash/compare/v2.9.9...v2.9.10) (2023-05-18) ### Bug Fixes: * accidental variable shadowing in calculation loading. * add missing batch_size opt for bulk_create (#581) ## [v2.9.9](https://github.com/ash-project/ash/compare/v2.9.8...v2.9.9) (2023-05-18) ### Bug Fixes: * errors on casting arrays of unions in newtypes ## [v2.9.8](https://github.com/ash-project/ash/compare/v2.9.7...v2.9.8) (2023-05-17) ### Improvements: * add unavailable error ## [v2.9.7](https://github.com/ash-project/ash/compare/v2.9.6...v2.9.7) (2023-05-16) ### Bug Fixes: * don't require `{:data_layer, *}` for custom locks ### Improvements: * add `get_and_lock/1` builtin change ## [v2.9.6](https://github.com/ash-project/ash/compare/v2.9.5...v2.9.6) (2023-05-15) ### Bug Fixes: * don't use `:map` as storage type for `Map` ### Improvements: * Ash.Type.Module: Add `:module` type. (#578) * handle ci strings in `cast_stored` * better default overflow logic * custom stale record error ## [v2.9.5](https://github.com/ash-project/ash/compare/v2.9.4...v2.9.5) (2023-05-08) ### Bug Fixes: * user proper upsert identity for bulk operations ### Improvements: * optimistic locking via `changeset.filters` ## [v2.9.4](https://github.com/ash-project/ash/compare/v2.9.3...v2.9.4) (2023-05-04) ### Bug Fixes: * ecto type of map is just `:map` ## [v2.9.3](https://github.com/ash-project/ash/compare/v2.9.2...v2.9.3) (2023-05-03) ### Bug Fixes: * unbound variable in schema definition ### Improvements: * support bulk upserts ## [v2.9.2](https://github.com/ash-project/ash/compare/v2.9.1...v2.9.2) (2023-05-02) ### Bug Fixes: * fix dialyzer * proper return value for synthesized bulk creates * assorted bulk create fixes * set upsert context from action on create changesets * handle invalid input in basic actions ### Improvements: * bulk create improvements, docs * finishing initial touches on bulk actions * bulk create actions * initial support for basic actions * better messages for missed notifications * retain stacktraces from task errors ## [v2.9.1](https://github.com/ash-project/ash/compare/v2.9.0...v2.9.1) (2023-05-01) ### Bug Fixes: * handle map relationship data in lateral join ## [v2.9.0](https://github.com/ash-project/ash/compare/v2.8.1...v2.9.0) (2023-05-01) ### Features: * `attribute_in/2` builtin validation ### Bug Fixes: * proper source path for lateral joined relationships ### Improvements: * error if relationship.api is not an Ash.Api ## [v2.8.1](https://github.com/ash-project/ash/compare/v2.8.0...v2.8.1) (2023-04-28) ### Improvements: * more typespec fixes * support lock option on read * data layer can? might get a dsl, not a resource ## [v2.8.0](https://github.com/ash-project/ash/compare/v2.7.1...v2.8.0) (2023-04-28) ### Features: * add `Api.stream!/1` ### Bug Fixes: * set flow argument defaults * handle join relationship in different api * don't warn on being managed from attribute changing * don't initially require attributes for belongs to relationships being managed * simple equality filter should not traverse `or`s ### Improvements: * introduce basic locking * include resource validations by default * validate explicit api configurations, with good error messages ## [v2.7.1](https://github.com/ash-project/ash/compare/v2.7.0...v2.7.1) (2023-04-21) ### Bug Fixes: * more fixes to optimized boolean filter building ## [v2.7.0](https://github.com/ash-project/ash/compare/v2.6.31...v2.7.0) (2023-04-20) ### Features: * add `fields/1` and `public_fields/1` to Ash.Resource.Info (#569) ### Bug Fixes: * don't optimize across `or` boundaries * handle calculation deps w/ multiple nested relationship paths * only do tenant things in ETS if strategy is `:context` * add the spark function version of calculations * proper error message on invalid inline function calculation * Add tenant attribute to identity attributes on upserts (#565) ### Improvements: * Add upserts option to flow's create step (#566) * Change storage type of Ash.Type.Term to :binary (#561) * automatically gather up notifications ## [v2.6.31](https://github.com/ash-project/ash/compare/v2.6.30...v2.6.31) (2023-04-11) ### Bug Fixes: * properly require attributes on creates ## [v2.6.30](https://github.com/ash-project/ash/compare/v2.6.29...v2.6.30) (2023-04-10) ### Bug Fixes: * don't require values if a changeset result has been set * properly return errors on invalid calculation arguments * user unpaginated_read for `read_one` * handle strings better in refs * consider strings in `ref` ### Improvements: * add build_action_metadata to resource builder * add `Ash.merge_context/1` and `Ash.update_context/1` * add constraints to maps (#556) ## [v2.6.29](https://github.com/ash-project/ash/compare/v2.6.28...v2.6.29) (2023-04-04) ### Bug Fixes: * various ash flow return value fixes * Fix set_new_attribute by adding missing option to set_attribute (#553) * show context on all errors * include error context in top level of errors ### Improvements: * validate returnable steps in flow returns * update touched_resources logic * Add :field option to relate_actor change (#546) ## [v2.6.28](https://github.com/ash-project/ash/compare/v2.6.27...v2.6.28) (2023-04-03) ### Bug Fixes: * properly handle nested calculation selects * fix typespecs and `not_found_error?` code interface option * typespec support `Expr.t()` in calculation builder * remove bad default for struct constraint * use values when already loading aggregates ### Improvements: * thread context through when loading data * update spark to fix deeply nested DSLs * read_uses_flow?: Build stub for `Ash.Actions.Flows.Read`. * properly set related resource * simpler required attributes behavior * add :subfield option to relates_to_actor_via (#540) * add `accessing_from/2` builtin check * rewrite calculation loader * add `{set,update,get}_context` to `Ash.PlugHelpers` (#534) * improve compile times with 🪄 * fix action typespecs * add option `set_when_nil?` to builtin change `set_attribute` (#528) ## [v2.6.27](https://github.com/ash-project/ash/compare/v2.6.26...v2.6.27) (2023-03-22) ### Improvements: * add `update_actor` to `Ash.Plughelpers` (#532) ## [v2.6.26](https://github.com/ash-project/ash/compare/v2.6.25...v2.6.26) (2023-03-21) ### Bug Fixes: * use proper arguments for aggregating queries ## [v2.6.25](https://github.com/ash-project/ash/compare/v2.6.24...v2.6.25) (2023-03-21) ### Improvements: * add `skip_global_validations?` option for actions ## [v2.6.24](https://github.com/ash-project/ash/compare/v2.6.23...v2.6.24) (2023-03-21) ### Bug Fixes: * datetime_add was actually datetime_subtract in elixir * prevent exception when describing some checks (#531) ### Improvements: * Add `get_by` option to read actions. (#530) ## [v2.6.23](https://github.com/ash-project/ash/compare/v2.6.22...v2.6.23) (2023-03-21) ### Improvements: * builder & typespec improvements ## [v2.6.22](https://github.com/ash-project/ash/compare/v2.6.21...v2.6.22) (2023-03-20) ### Bug Fixes: * properly handle multi-resource transaction return values * various fixes in aggregate authorization behavior * use builtin short names for builtin type helper * properly set builtin types ### Improvements: * better resource detection of transactions in `Ash.Flow` * better formatting for branches in flow charts * add `:read_action` and `:authorize?` configurations for resource aggregates * Add `before_action/1` and `after_action/1` to `Ash.Resource.Preparations.Builtins`. (#526) ## [v2.6.21](https://github.com/ash-project/ash/compare/v2.6.20...v2.6.21) (2023-03-13) ### Improvements: * add `Ash.Type.NewType` * add `:unknown` for all potential facts * optimize policy check running with laziness * don't select when running policy queries ## [v2.6.20](https://github.com/ash-project/ash/compare/v2.6.19...v2.6.20) (2023-03-10) ### Bug Fixes: * remove pre_flight expression checking ### Improvements: * Add builtin changes for lifecycle hooks. (#523) ## [v2.6.19](https://github.com/ash-project/ash/compare/v2.6.18...v2.6.19) (2023-03-09) ### Bug Fixes: * properly return `false` on forbidden errors ## [v2.6.18](https://github.com/ash-project/ash/compare/v2.6.17...v2.6.18) (2023-03-08) ### Improvements: * add `Api.can?` and `Api.can` ## [v2.6.17](https://github.com/ash-project/ash/compare/v2.6.16...v2.6.17) (2023-03-06) ### Bug Fixes: * add `actor` back to transaction metadata ### Improvements: * add `delay_global_validations?` action option ## [v2.6.16](https://github.com/ash-project/ash/compare/v2.6.15...v2.6.16) (2023-03-03) ### Bug Fixes: * calc loading in keyset pagination ### Improvements: * add new date expressions ## [v2.6.15](https://github.com/ash-project/ash/compare/v2.6.14...v2.6.15) (2023-02-27) ### Bug Fixes: * properly handle allow_nil fields in keyset pagination ## [v2.6.14](https://github.com/ash-project/ash/compare/v2.6.13...v2.6.14) (2023-02-24) ### Bug Fixes: * don't reselect fields automatically * ensure data layer is compiled ### Improvements: * introduce `reselect_all?` option for loading ## [v2.6.13](https://github.com/ash-project/ash/compare/v2.6.12...v2.6.13) (2023-02-24) ### Bug Fixes: * only use `resource_to_query/2` ## [v2.6.12](https://github.com/ash-project/ash/compare/v2.6.11...v2.6.12) (2023-02-24) ### Bug Fixes: * support `nil` values in `dump_to_native` * properly support calc expansion in policies * support `nil` cast for resource type ### Improvements: * support record's as calculate arguments * include actor in all calculation context ## [v2.6.11](https://github.com/ash-project/ash/compare/v2.6.10...v2.6.11) (2023-02-23) ### Bug Fixes: * allow argument references in policies ### Improvements: * don't eager load sort data ## [v2.6.10](https://github.com/ash-project/ash/compare/v2.6.9...v2.6.10) (2023-02-21) ### Bug Fixes: * properly handle list args for functions * set query context from `before_action` hooks into initial query * set context into `initial_query` ### Improvements: * Implement string_join expr function (#515) ## [v2.6.9](https://github.com/ash-project/ash/compare/v2.6.8...v2.6.9) (2023-02-21) ### Bug Fixes: * make resource diagram task recursive * use `private.internal?` to bypass require_actor? * properly call `run_aggregate_query_with_lateral_join` ### Improvements: * add `force` variations of set arguments ## [v2.6.8](https://github.com/ash-project/ash/compare/v2.6.7...v2.6.8) (2023-02-16) ### Bug Fixes: * don't overwrite keyset when loading data ## [v2.6.7](https://github.com/ash-project/ash/compare/v2.6.6...v2.6.7) (2023-02-16) ### Bug Fixes: * properly return `{:ok, page}` in all cases ## [v2.6.6](https://github.com/ash-project/ash/compare/v2.6.5...v2.6.6) (2023-02-16) ### Bug Fixes: * authorize?: true by default on flows, pass actor through * pass actor into engine ## [v2.6.5](https://github.com/ash-project/ash/compare/v2.6.4...v2.6.5) (2023-02-15) ### Bug Fixes: * properly handle optional args in code interface ## [v2.6.4](https://github.com/ash-project/ash/compare/v2.6.3...v2.6.4) (2023-02-15) ### Bug Fixes: * handle cases where union type is already atom * various union fixes * make `depend_on_resources` more reliable * use `load/3` for builtin concat calc ### Improvements: * Add error message when page is added but pagination is not enabled (#511) * add union type and some tests around it * add union short name * add union type * better operator type casting and expression fixes ## [v2.6.3](https://github.com/ash-project/ash/compare/v2.6.2...v2.6.3) (2023-02-12) ### Bug Fixes: * fix non-optional pagination ### Improvements: * add warning on usage of transaction hooks when in a surrounding transaction * add before_transaction and after_transaction ## [v2.6.2](https://github.com/ash-project/ash/compare/v2.6.1...v2.6.2) (2023-02-10) ### Bug Fixes: * pagination behavior is incorrect * `nil` as page_opts is acceptable * fix aggregate.uniq? ## [v2.6.1](https://github.com/ash-project/ash/compare/v2.6.0...v2.6.1) (2023-02-09) ### Bug Fixes: * Type error: Suggest custom short type names as well (#508) ### Improvements: * support uniq? for `count`/`list` attributes ## [v2.6.0](https://github.com/ash-project/ash/compare/v2.5.16...v2.6.0) (2023-02-05) ### Features: * initial (and slightly experimental) Api.aggregate support ### Bug Fixes: * handle `{:ref, ...}` tuple in static syntax * various fast follows to api aggregate functions * pattern match problem in aggregate action * properly handle nested array type constraint validation ### Improvements: * update spark for latest doc improvements * better description of `action_type` check * add more builders * stop running preparations if one of them returns an error ## [v2.5.16](https://github.com/ash-project/ash/compare/v2.5.15...v2.5.16) (2023-02-01) ### Bug Fixes: * load lazily after action when results are set * fix typespec for `Ash.set_tenant/1` ## [v2.5.15](https://github.com/ash-project/ash/compare/v2.5.14...v2.5.15) (2023-01-31) ### Bug Fixes: * set proper query aggregate when fetching aggregate values ## [v2.5.14](https://github.com/ash-project/ash/compare/v2.5.13...v2.5.14) (2023-01-30) ### Improvements: * registry resource validations transformers -> verifiers * better error message on unknown relationship ## [v2.5.13](https://github.com/ash-project/ash/compare/v2.5.12...v2.5.13) (2023-01-30) ### Bug Fixes: * use destination query for aggregates, join auth to come later * check `changeset.valid?` properly on destroys * properly halt on action errors in `before_action` hooks ### Improvements: * no async loads except when loading on initial data * support length constraints on array embeds ## [v2.5.12](https://github.com/ash-project/ash/compare/v2.5.11...v2.5.12) (2023-01-29) ### Improvements: * simplify aggregate loading, fix bug with auth query resource ## [v2.5.11](https://github.com/ash-project/ash/compare/v2.5.10...v2.5.11) (2023-01-28) ### Improvements: * support `{:ignore, changeset}` from error handlers * add read action metadata ## [v2.5.10](https://github.com/ash-project/ash/compare/v2.5.9...v2.5.10) (2023-01-27) ### Improvements: * upgrade to latest spark for compile time improvements * improve compile times by reorienting some compile deps * add relationships to underlying ecto schemas for better escape hatches * reselect explicitly selected queries on reload ## [v2.5.9](https://github.com/ash-project/ash/compare/v2.5.8...v2.5.9) (2023-01-22) ### Bug Fixes: * properly surface errors from embedded attributes * use original pkey for ets upsert lookup ## [v2.5.8](https://github.com/ash-project/ash/compare/v2.5.7...v2.5.8) (2023-01-20) ### Bug Fixes: * properly prepend the prefix to the topic ## [v2.5.7](https://github.com/ash-project/ash/compare/v2.5.6...v2.5.7) (2023-01-20) ### Bug Fixes: * properly load depended on aggregates * properly handle functional manual creates * Use proper options in `confirm` change. * only pass action name in Ash.Changeset.for_action (#476) * properly set the context option on changesets * return proper value from validation ### Improvements: * include value in invalid error messages * cleaner inspect for calculations * add `set_result` for conditional manual actions/caching * update docs to new links formats for ash_hq (#483) * add nil return type to api get/3, read_one/2 and read_one!/2 (#482) * don't load dependencies for calcs in query * add `action_is/1` builtin validation * more compile time optimizations ## [v2.5.6](https://github.com/ash-project/ash/compare/v2.5.5...v2.5.6) (2023-01-19) ### Bug Fixes: * properly load depended on aggregates * properly handle functional manual creates * Use proper options in `confirm` change. * only pass action name in Ash.Changeset.for_action (#476) * properly set the context option on changesets * return proper value from validation ### Improvements: * cleaner inspect for calculations * add `set_result` for conditional manual actions/caching * update docs to new links formats for ash_hq (#483) * add nil return type to api get/3, read_one/2 and read_one!/2 (#482) * don't load dependencies for calcs in query * add `action_is/1` builtin validation * more compile time optimizations ## [v2.5.5](https://github.com/ash-project/ash/compare/v2.5.4...v2.5.5) (2023-01-19) ### Bug Fixes: * properly handle functional manual creates * Use proper options in `confirm` change. * only pass action name in Ash.Changeset.for_action (#476) * properly set the context option on changesets * return proper value from validation ### Improvements: * add `set_result` for conditional manual actions/caching * update docs to new links formats for ash_hq (#483) * add nil return type to api get/3, read_one/2 and read_one!/2 (#482) * don't load dependencies for calcs in query * add `action_is/1` builtin validation * more compile time optimizations ## [v2.5.4](https://github.com/ash-project/ash/compare/v2.5.3...v2.5.4) (2023-01-18) ### Bug Fixes: * Use proper options in `confirm` change. * only pass action name in Ash.Changeset.for_action (#476) * properly set the context option on changesets * return proper value from validation ### Improvements: * update docs to new links formats for ash_hq (#483) * add nil return type to api get/3, read_one/2 and read_one!/2 (#482) * don't load dependencies for calcs in query * add `action_is/1` builtin validation * more compile time optimizations ## [v2.5.3](https://github.com/ash-project/ash/compare/v2.5.2...v2.5.3) (2023-01-18) ### Bug Fixes: * Use proper options in `confirm` change. * only pass action name in Ash.Changeset.for_action (#476) * properly set the context option on changesets * return proper value from validation ### Improvements: * update docs to new links formats for ash_hq (#483) * add nil return type to api get/3, read_one/2 and read_one!/2 (#482) * don't load dependencies for calcs in query * add `action_is/1` builtin validation * more compile time optimizations ## [v2.5.2](https://github.com/ash-project/ash/compare/v2.5.1...v2.5.2) (2023-01-12) ### Bug Fixes: * properly set the context option on changesets * return proper value from validation ### Improvements: * add `action_is/1` builtin validation * more compile time optimizations ## [v2.5.1](https://github.com/ash-project/ash/compare/v2.5.0...v2.5.1) (2023-01-11) ### Bug Fixes: * return proper value from validation ### Improvements: * more compile time optimizations ## [v2.5.0](https://github.com/ash-project/ash/compare/v2.5.0-rc.6...v2.5.0) (2023-01-11) ## [v2.5.0-rc.6](https://github.com/ash-project/ash/compare/v2.5.0-rc.5...v2.5.0-rc.6) (2023-01-09) ### Bug Fixes: * set interface args to empty list by default ## [v2.5.0-rc.5](https://github.com/ash-project/ash/compare/v2.5.0-rc.4...v2.5.0-rc.5) (2023-01-09) ### Bug Fixes: * properly zip calculation results with primary keys ### Improvements: * add `Api.calculate/3` and `define_calculation` code interface builder ## [v2.5.0-rc.4](https://github.com/ash-project/ash/compare/v2.5.0-rc.3...v2.5.0-rc.4) (2023-01-06) ### Bug Fixes: * more fixes for synonymous relationship paths ## [v2.5.0-rc.3](https://github.com/ash-project/ash/compare/v2.5.0-rc.2...v2.5.0-rc.3) (2023-01-06) ### Bug Fixes: * stop seeing incorrect relationships as synonymous ## [v2.5.0-rc.2](https://github.com/ash-project/ash/compare/v2.5.0-rc.1...v2.5.0-rc.2) (2023-01-05) ### Bug Fixes: * various filter & expression fixes * handle aggregate defaults when evaluating expressions ## [v2.5.0-rc.1](https://github.com/ash-project/ash/compare/v2.5.0-rc.0...v2.5.0-rc.1) (2023-01-05) ### Bug Fixes: * remove all URI encoding/decoding from core for keysets ### Improvements: * rename `this` to `parent` for clarity ## [v2.5.0-rc.0](https://github.com/ash-project/ash/compare/v2.4.30...v2.5.0-rc.0) (2023-01-04) ### Features: * add `this/1` for use inside `exists/2` (and other places eventually) ### Bug Fixes: * various fixes to expression syntax * encode the keyset for display in a URI automatically * fix authorize? method (#472) * calculations depending on aggregates were not including those dependencies properly * load types marked with `cast_in_query? false` at runtime * proper support for nested expressions in calculations * typo in `cast_in_query?` * allow lists in expr syntax ### Improvements: * warn on potentially incompatible relationship attributes * add `default_belongs_to_type` configuration * loading an attribute is now equivalent to `ensure_selected` * support module attributes in exprs * Add Ash.Error.Invalid.TenantRequired error (#471) * add constraints to query calculations * cast_in_query? takes constraints * support for calculations in aggregate fields ## [v2.4.30](https://github.com/ash-project/ash/compare/v2.4.29...v2.4.30) (2022-12-27) ### Bug Fixes: * calculation builder using wrong builder ### Improvements: * add `simple_notifiers` as a compile time optimization ## [v2.4.29](https://github.com/ash-project/ash/compare/v2.4.28...v2.4.29) (2022-12-27) ### Bug Fixes: * handle `nil` constraints in array * only start transactions for resources not already in one ### Improvements: * add calculations to builder ## [v2.4.28](https://github.com/ash-project/ash/compare/v2.4.27...v2.4.28) (2022-12-23) ### Bug Fixes: * import builtins at the action level, not the section level * fix broken default behavior around managing relationships. ### Improvements: * fix tests to handle new defaults * optimize strict checks ## [v2.4.27](https://github.com/ash-project/ash/compare/v2.4.26...v2.4.27) (2022-12-21) ### Bug Fixes: * properly include module in doc links * add test for string generator, and fix it * only allow `nil` in appropriate circumstances in generator * respect selects in related_query (#464) * use action name not struct for embedded generators * use create generators for embedded types * support dependencies on pruned branch steps * ensure type compiled for generator ### Improvements: * fix decimal generator to only compare with floats at generation * filter min_length strings in generators ## [v2.4.26](https://github.com/ash-project/ash/compare/v2.4.25...v2.4.26) (2022-12-15) ### Improvements: * update spark ## [v2.4.25](https://github.com/ash-project/ash/compare/v2.4.24...v2.4.25) (2022-12-15) ### Bug Fixes: * transaction steps use `failure_mode: :stop` ### Improvements: * better expression detection ## [v2.4.24](https://github.com/ash-project/ash/compare/v2.4.23...v2.4.24) (2022-12-10) ### Improvements: * more dependable notifications, support custom notifications better ## [v2.4.23](https://github.com/ash-project/ash/compare/v2.4.22...v2.4.23) (2022-12-08) ### Improvements: * add more transaction types ## [v2.4.22](https://github.com/ash-project/ash/compare/v2.4.21...v2.4.22) (2022-12-08) ### Bug Fixes: * depend on latest spark * different formats for extensions ### Improvements: * add `:struct` (`Ash.Type.struct`) type ## [v2.4.21](https://github.com/ash-project/ash/compare/v2.4.20...v2.4.21) (2022-12-08) ### Bug Fixes: * don't lock specific nimble options version ### Improvements: * replace doc links in sidebar also * better doc replacement behavior * dep updates & new aggregate types avg/min/max/custom ## [v2.4.20](https://github.com/ash-project/ash/compare/v2.4.19...v2.4.20) (2022-12-07) ### Bug Fixes: * more matching fixes on manual relationships * handle manual relationship load results when building query ### Improvements: * only set `defaults` when attribute is actually set * Pass context into query and changeset for_... functions. (#460) ## [v2.4.19](https://github.com/ash-project/ash/compare/v2.4.18...v2.4.19) (2022-12-04) ### Improvements: * set context once, early ## [v2.4.18](https://github.com/ash-project/ash/compare/v2.4.17...v2.4.18) (2022-12-01) ### Bug Fixes: * set proper types in transaction reasons ## [v2.4.17](https://github.com/ash-project/ash/compare/v2.4.16...v2.4.17) (2022-12-01) ### Improvements: * support data layers implementing transaction level hooks ## [v2.4.16](https://github.com/ash-project/ash/compare/v2.4.15...v2.4.16) (2022-11-30) ### Bug Fixes: * properly authorize manage relationship calls ### Improvements: * don't run calculation queries if no records were returned * don't run queries with `limit: 0` * more readable flow charts * `not_found_error?` option on `get?: true` `read` flow steps ## [v2.4.15](https://github.com/ash-project/ash/compare/v2.4.14...v2.4.15) (2022-11-29) ### Improvements: * add `not_found_error?` option to interface builder and when calling ## [v2.4.14](https://github.com/ash-project/ash/compare/v2.4.13...v2.4.14) (2022-11-29) ### Bug Fixes: * properly handle arguments with default values in code interface ## [v2.4.13](https://github.com/ash-project/ash/compare/v2.4.12...v2.4.13) (2022-11-29) ### Bug Fixes: * don't raise a backwards incompatible error message on certian changeset functions * properly apply managed relationships on manual actions * properly pass `resource` option in filter policies ## [v2.4.12](https://github.com/ash-project/ash/compare/v2.4.11...v2.4.12) (2022-11-25) ### Bug Fixes: * don't revisit nodes in the ash engine * properly map to `:destroy` step names * handle `Ash.Flow.Step.Destroy` in path matchers * resolve issue with `authorize_unless` and filter checks * fix pattern match error in manage relationship reduce ### Improvements: * optimize various solver boolean optimizations * more comprehensively remove unnecessary clauses * prevent changing attributes and arguments after action validation ## [v2.4.11](https://github.com/ash-project/ash/compare/v2.4.10...v2.4.11) (2022-11-22) ### Bug Fixes: * fix typespec for Api.Info.trace_name/3 ### Improvements: * add error context to error creation / normalisation (#440) * update hexdocs processor to link guides on hexdocs ## [v2.4.10](https://github.com/ash-project/ash/compare/v2.4.9...v2.4.10) (2022-11-21) ### Improvements: * return invalid primary key errors for `Api.get` when the input can't be cast * much more readable errors when building loads * better check module validation ## [v2.4.9](https://github.com/ash-project/ash/compare/v2.4.8...v2.4.9) (2022-11-21) ### Bug Fixes: * reselect relationship source fields when loading relationships * make plug an optional dependency of Ash ## [v2.4.8](https://github.com/ash-project/ash/compare/v2.4.7...v2.4.8) (2022-11-19) ### Bug Fixes: * fix `where` and `or_where` implementation ## [v2.4.7](https://github.com/ash-project/ash/compare/v2.4.6...v2.4.7) (2022-11-19) ### Improvements: * add `where` and `or_where` to expr ## [v2.4.6](https://github.com/ash-project/ash/compare/v2.4.5...v2.4.6) (2022-11-19) ### Improvements: * mark manual action modules as modules ## [v2.4.5](https://github.com/ash-project/ash/compare/v2.4.4...v2.4.5) (2022-11-19) ### Bug Fixes: * properly pass a map to manual action context * destroy action types default to accepts [] (#453) ## [v2.4.4](https://github.com/ash-project/ash/compare/v2.4.3...v2.4.4) (2022-11-18) ### Bug Fixes: * various typespec/build fixes * handle tuples properly in some cases in expression syntax * Add missing `[:ash, :query]` telemetry (#451) ### Improvements: * improve runtime expression running * add default description for filter checks * validate that modules exist and are documented when referenced ## [v2.4.3](https://github.com/ash-project/ash/compare/v2.4.2...v2.4.3) (2022-11-15) ### Bug Fixes: * don't incur compile time dependency for resources used as types * allow for not-yet-compiled resources as Ash types * properly raise error on invalid type. ### Improvements: * optimize sat solving ## [v2.4.2](https://github.com/ash-project/ash/compare/v2.4.1...v2.4.2) (2022-11-03) ### Bug Fixes: * properly set error vars with list constraints * when creating changesets/queries that already have arguments, revalidate arguments ### Improvements: * update to latest spark * support statically configured upsert actions * add more builders ## [v2.4.1](https://github.com/ash-project/ash/compare/v2.4.0...v2.4.1) (2022-10-31) ### Bug Fixes: * fix depend on resources to depend on each resource * allow references on both sides of `in` * properly upsert all explicitly changed fields * traverse maps for `template_references_actor?/1` ### Improvements: * replace templates in change/preparation/validation opts ## [v2.4.0](https://github.com/ash-project/ash/compare/v2.3.0...v2.4.0) (2022-10-31) ### Features: * support anonymous functions in DSL These include: - custom create/read/update/destroy actions - changes - preparations - validations - calculations - manual relationships See the respective DSL guides for more. ### Bug Fixes: * don't add required belongs_to error if changeset is invalid (#437) * don't lazy load when managing relationships ### Improvements: * support anonymous functions for various behaviour based options * add more ergonomic manual action definitions. * more additions to the resource builder, update spark ## [v2.3.0](https://github.com/ash-project/ash/compare/v2.2.0...v2.3.0) (2022-10-27) ### Features: * Ash.PlugHelpers: standardise conn interface for actors/tenants. (#432) * add `Ash.Resource.Builder`, the start of DSL builder utilities of rextension writing ### Bug Fixes: * DataLayer: incorrect typespec for `run_query/2` callback. (#431) * in Ash.Seed, don't try to update a non-loaded record * properly load manual to_one relationships * properly compare against decimal values ### Improvements: * pass tenant to calculation query explicitly * allow using `get_path/2` by name, as well as bracket access * SVG, PDF, PNG, Markdown and plain mermaid formats (#428) * optimize nested `exists` filter statements * support floats & decimals in the `compare` validation ## [v2.2.0](https://github.com/ash-project/ash/compare/v2.1.0...v2.2.0) (2022-10-21) ### Features: * add `Ash.Api.Info.depend_on_resources/1` to get the list of resources at compile time ### Bug Fixes: * don't attempt to re-authorize access to already retrieved records in `Api.load/2` ### Improvements: * when returning a page, choose keyset if `before` or `after` was supplied * add keysets to records if any action supports keysets * show conditions in policy breakdowns ## [v2.1.0](https://github.com/ash-project/ash/compare/v2.0.0...v2.1.0) (2022-10-19) ### Features: * Custom short names for types (#423) A compile env can be set to allow customizing the available type short names. This supports two things: 1. Adding custom type short names, like `attribute :price, :money` mapping to `MyApp.Type.Money` 2. Overriding the builtin type short names, like `attribute, :price, :string` mapping to a custom string type implementation (there is likely no reason to do this) Commit with unknown type in: feat: Custom short names for types (#423) See the docs for `Ash.Type` for more information * add `now()` to expressions ### Bug Fixes: * set defaults before running changes ### Improvements: * sort relationship in order of input when managing it This helps with things like https://github.com/ash-project/ash_phoenix/issues/57 which involve rendering the relationship value after editing it. Retaining the order allows direct reuse without any gymnastics ## [v2.0.0](https://github.com/ash-project/ash/compare/v1.53.3...v2.0.0) (2022-10-17) ### Features: * basic livebook generator and mix task (#420) * mermaid class diagram mix task (#417) ### Bug Fixes: * properly lateral join when possible * use `prepend?: true` when applying relationship sorts * don't miss dependencies in flow diagrams * fix deps finding in flow charts & flows * properly load calcs/aggs on manual relationships * properly load nested manual relationships * allow overriding validation message on a list of errors (#412) * reraise errors on task error * don't show dependencies for run_flow steps in expanded view(they are duplicates) ### Improvements: * don't eager evaluate `type/2` * support depending on requests that will be added * support dynamic action steps in `Ash.Flow` * add `prepend?: true` option to sort * use `simple_equality?/0` to allow for optimized equality checking * mermaid mix task for ER diagrams (#415) * try to resolve flaky tests by not using named tables for private ets resources * better unknown error handling * allow passing query or changeset in can/can?/4 (#410) ## [v2.0.0-rc.15](https://github.com/ash-project/ash/compare/v2.0.0-rc.14...v2.0.0-rc.15) (2022-10-10) ### Bug Fixes: * handle upsert_identity better with ets/mnesia * always set source on attributes ### Improvements: * Improve error when actions reject and accept keys overlap (#405) * update to latest spark ## [v2.0.0-rc.14](https://github.com/ash-project/ash/compare/v2.0.0-rc.13...v2.0.0-rc.14) (2022-10-07) ### Features: * list arguments for resource actions in class diagrams (#399) ### Bug Fixes: * fix chart links rendering * make `loading?/2` know about calcs and aggs * properly set source on attributes * policy fixes from pair session (#403) * don't evaluate expressions incorrectly after casting ### Improvements: * add `type` function to ash core * Allow a single `where` condition for validations (#407) * haltable flows, branch step type * simplify async task strategy * clean up new create authorization simplification * remove the need for `SetTypes` * add some info to policy errors * experimental support for calcualtions accepting expression arguments * various Ash.Flow improvements, including returning the new `Ash.Flow.Result` ## [v2.0.0-rc.13](https://github.com/ash-project/ash/compare/v2.0.0-rc.12...v2.0.0-rc.13) (2022-10-04) ### Features: * `show_private?` option for diagrams (#396) * generate mermaid entity relationship diagrams from a given api (#376) ### Bug Fixes: * add back in `new/2` to Changeset * properly load nested calcs * switch from no_depend_modules in most places * properly display compare/2 error message * use the short type for aggregate types * `kind_to_type/2` returns tagged tuple ### Improvements: * allow select/load callbacks for calcs to return irrelevant keys * optimize load equality matching by not using `Comp` * Forbid reserved field names (#388) * validate accepted and rejected attributes in actions (#395) * support zero argument functions in `compare/2` ## [v2.0.0-rc.12](https://github.com/ash-project/ash/compare/v2.0.0-rc.11...v2.0.0-rc.12) (2022-09-30) ### Improvements: * optimize for `relates_to_actor_via` ## [v2.0.0-rc.11](https://github.com/ash-project/ash/compare/v2.0.0-rc.10...v2.0.0-rc.11) (2022-09-29) ### Bug Fixes: * use `at_path` when parsing `Exists` * properly require a condition of a following bypasses * don't transform == nil to is_nil automatically * pass path down to keyword list errors ### Improvements: * optimize relates_to_actor_via checks ## [v2.0.0-rc.10](https://github.com/ash-project/ash/compare/v2.0.0-rc.9...v2.0.0-rc.10) (2022-09-28) ### Bug Fixes: * bad pattern in `filter.ex`, fix dialyzer * attempt to evaluate filter checks for strict checks * only return errors when there actually are errors * return an error if `data_layer_query/2` is given a query with errors * various fixes with complex policy statements * ensure fields selected in-line when loading calcs * handle statically false conditions in filter logic * cast embedded datetimes properly * Ash.Calculation: fix return type for `load/3` callback. (#384) * warn instead of raise on `:replace` usage * handle var_args expression with literal args ### Improvements: * catch more cases in preflight authorization checks * lazily set required loads/selects for calcs/sorts * reselect any necessary fields when loading calcs * set context when creating related filters allowing checks like `filtering_on` * simplify filter statements further * don't overconstraint filters on related data * any filter being statically true means `:authorized` * properly mark conditions w/ access_type * use `IsNil` instead of `Eq` when either side is `nil` * handle string dates for embeds * remove __timestamps__ in favor of simpler macro ## [v2.0.0-rc.9](https://github.com/ash-project/ash/compare/v2.0.0-rc.8...v2.0.0-rc.9) (2022-09-21) ### Bug Fixes: * fix `replace_relationship` type ## [v2.0.0-rc.8](https://github.com/ash-project/ash/compare/v2.0.0-rc.7...v2.0.0-rc.8) (2022-09-21) ### Bug Fixes: * properly handle args/nested expression for tuple calcs * add a case for calculations as tuples in expr filters * return count, not {:ok, count} * bad return value when async fetching counts * remove dbg() call ### Improvements: * update to latest spark, support dsls in resource info * deprecate `:replace` in favor of `:append_and_remove` * add `loading?/1` query helper * add `loading/1` built in check ## [v2.0.0-rc.7](https://github.com/ash-project/ash/compare/v2.0.0-rc.6...v2.0.0-rc.7) (2022-09-15) ### Bug Fixes: * `nil` casts as any type (sort of) * return `nil` on `nil` inputs for length/1 * properly reraise errors raised in tasks * properly return errors from tasks * use `Comp.equal?/2` when finding loaded data matches ## [v2.0.0-rc.6](https://github.com/ash-project/ash/compare/v2.0.0-rc.5...v2.0.0-rc.6) (2022-09-15) ### Bug Fixes: * properly error on types when evaluating expressions at runtime * properly surface errors all the way from runtime filters * properly catch errors when running expressions at runtime ### Improvements: * Implement length function (#379) ## [v2.0.0-rc.5](https://github.com/ash-project/ash/compare/v2.0.0-rc.4...v2.0.0-rc.5) (2022-09-14) ### Bug Fixes: * inspect the match for default message ### Improvements: * validate aggregate paths supported * add `filterable?` option to relationships * add data layer capability for aggregate relationships & filter relationships * add guide on manual relationships ## [v2.0.0-rc.4](https://github.com/ash-project/ash/compare/v2.0.0-rc.3...v2.0.0-rc.4) (2022-09-12) ### Bug Fixes: * fix keyset pagination ordering bug * short names are snake cased * properly do pagination * handle pins in exists * add better error for `exists/2` * use root_resource for `related` path in filter * add `match/3` to upgrading guide * set root_resource in `exists` parsing * error fetching relationships in filter expressions * filter check typespecs ### Improvements: * add `aggregate_type/2` helper * make two queries for full keyset pagination support ## [v2.0.0-rc.3](https://github.com/ash-project/ash/compare/v2.0.0-rc.2...v2.0.0-rc.3) (2022-09-06) ### Bug Fixes: * runtime filter handle new relationship shape ### Improvements: * add `exists/2` expression ## [v2.0.0-rc.2](https://github.com/ash-project/ash/compare/v2.0.0-rc.1...v2.0.0-rc.2) (2022-09-04) ### Bug Fixes: * the semantics of `forbid_unless` were not wrong ## [v2.0.0-rc.1](https://github.com/ash-project/ash/compare/v2.0.0-rc.0...v2.0.0-rc.1) (2022-09-04) ### Bug Fixes: * `forbid_unless` expression compilation * fix runtime filter join simulation for multiple rows ## [v2.0.0-rc.0](https://github.com/ash-project/ash/compare/v1.53.3...v2.0.0-rc.0) (2022-09-04) ### Bug Fixes: * Initial Ash 2.0.0-rc.0 release! ## [v1.53.3](https://github.com/ash-project/ash/compare/v1.53.2...v1.53.3) (2022-08-22) ### Bug Fixes: * False default value for argument is nil in changeset (#364) * ignore belongs_to in preflight attribute check * clean up relationship validation logic * clean up logic around preflight belongs_to validation ### Improvements: * add `value_is_key` option for managed relationships * Replace usage of Timex.shift with builtin Calendar functions (#362) * handle required but not accepted values better ## [v1.53.2](https://github.com/ash-project/ash/compare/v1.53.1...v1.53.2) (2022-08-10) ### Bug Fixes: * persist a nil actor properly ## [v1.53.1](https://github.com/ash-project/ash/compare/v1.53.0...v1.53.1) (2022-08-10) ### Bug Fixes: * properly set authorize?: false on runtime filter * explicitly don't authorize the runtime filter authorization logic * fix eager function/operator evaluation * scrub values properly, same as last bug * map update bug when sanitizing boolean expressions * fixs runtime filter fallbacks ### Improvements: * support `authorize?` as a changeset option * add `actor_present` policy * add `error?` option to get * fix various operator evaluators ## [v1.53.0](https://github.com/ash-project/ash/compare/v1.52.0-rc.22...v1.53.0) (2022-08-04) ### Bug Fixes: * (attempt) to fix calc loading issue ## [v1.52.0-rc.22](https://github.com/ash-project/ash/compare/v1.52.0-rc.21...v1.52.0-rc.22) (2022-08-03) ### Bug Fixes: * actually use `warn_on_empty?` config * check for actor on query/changeset for actor context * pass actor opt down * don't skip setting tenant when actor is present * don't use `apply/3` on kernel macros * small bug in DSL transformer manipulation. * && and || don't short-circuit to `nil` * `{:ok, _}` -> `{:known, _}` when evaluating operators * fix bad evaluation case for operators * ensure we only take unique related records when lazy loading ### Improvements: * add warnings to DSL transformer returns * warn on empty registries * better sanitization around sensitive attributes in filters * change `always_authorize?` to `authorize` for multiple options * add error message for manual action missed ## [v1.52.0-rc.21](https://github.com/ash-project/ash/compare/v1.52.0-rc.20...v1.52.0-rc.21) (2022-07-19) ### Bug Fixes: * use `Map.get/2` when getting paths if the value is a struct ### Improvements: * add || and && operators * sort parsing helpers * add `Ash.Sort.parse_input!/2` * add `transfer_context/1` and `get_context_for_transfer/0` * add process-based actor, tenant and query/changeset context * add `always_authorize?` and `require_actor?` to api config * support paths in `actor/1` ## [v1.52.0-rc.20](https://github.com/ash-project/ash/compare/v1.52.0-rc.19...v1.52.0-rc.20) (2022-07-14) ### Features: * add can?/4 policy utility (#349) * add can?/4 policy utility ### Improvements: * add default guide to doc_index ## [v1.52.0-rc.19](https://github.com/ash-project/ash/compare/v1.52.0-rc.18...v1.52.0-rc.19) (2022-07-13) ### Bug Fixes: * make mnesia and ets work properly when sharing tables * make updates properly merge with mnesia and ets * `attribute_writable?` also makes it public ### Improvements: * code_interface optional arguments * improve behavior of `lazy?: true` option ## [v1.52.0-rc.18](https://github.com/ash-project/ash/compare/v1.52.0-rc.17...v1.52.0-rc.18) (2022-07-10) ### Bug Fixes: * fix doc links and include in release ## [v1.52.0-rc.17](https://github.com/ash-project/ash/compare/v1.52.0-rc.16...v1.52.0-rc.17) (2022-07-06) ### Bug Fixes: * add back in `writable?` option to relationships, and add `attribute_writable?` to `belongs_to` * don't rescue arbitrary exception/exits ### Improvements: * add back in DSL docs * add `match_other_defaults?` to attribute ## [v1.52.0-rc.16](https://github.com/ash-project/ash/compare/v1.52.0-rc.15...v1.52.0-rc.16) (2022-07-05) ### Bug Fixes: * fix return type for `dump/3` ecto type * `load/3` returns `{:ok, value} | :error` ### Improvements: * remove relationship writability, as it all happens through arguments now * repurpose `writable?` on `belongs_to` to make the attribute writable ## [v1.52.0-rc.15](https://github.com/ash-project/ash/compare/v1.52.0-rc.14...v1.52.0-rc.15) (2022-06-28) ### Bug Fixes: * ensure type is always set on attributes ## [v1.52.0-rc.14](https://github.com/ash-project/ash/compare/v1.52.0-rc.13...v1.52.0-rc.14) (2022-06-28) ### Bug Fixes: * don't try to read files that don't exist ### Improvements: * new timeout error message and test it ## [v1.52.0-rc.13](https://github.com/ash-project/ash/compare/v1.52.0-rc.12...v1.52.0-rc.13) (2022-06-27) ### Bug Fixes: * bad return value for `destroy!` + `return_notifications?: true` * use digraph to order transformers * things breaking due to stricter expectations on type function inputs * depend on all entries in registry ### Improvements: * `Ash.Generator` * add `Ash.Seed` module with seed helpers * add basic type handling for non embedded resources * better transformer ordering error * don't pay massive costs of a function undefined error * optimize related resource inclusion check ## [v1.52.0-rc.12](https://github.com/ash-project/ash/compare/v1.52.0-rc.11...v1.52.0-rc.12) (2022-06-14) ### Bug Fixes: * don't disable lexical tracker for extensions * properly set the `changed?` context * always return all notifications if `return_notifications?: true` * read file at compile time for doc index * when casting atom -> string, stringify it first ### Improvements: * add resource to notification warning * add `config :ash, :pub_sub, debug?: true` * add `from` to notification, and `notification_metadata` to api ## [v1.52.0-rc.11](https://github.com/ash-project/ash/compare/v1.52.0-rc.10...v1.52.0-rc.11) (2022-06-03) ### Bug Fixes: * move preparation init to runtime * don't automatically url encode keyset values * fixed bug where embedded resources would always provide defaults, not allowing you to declare your own (primary?) actions (#339) * keyset pagination counts all rows * fetch items closest to cursor by reversing keyset sort * keyset + before results must be reversed ### Improvements: * add `identity_priority` and `use_identities` option to manage_relationship * support limit in simple data layer * add `key` to `InvalidKeyset` error ## [v1.52.0-rc.10](https://github.com/ash-project/ash/compare/v1.52.0-rc.9...v1.52.0-rc.10) (2022-05-30) ### Improvements: * better error message on invalid keyset * added options to the built-in function `relate_actor/1` (#332) * add `:_pkey` shortcut in pub_sub * validate `pre_check_with` is set for ets/mnesia identities * clearer and raised error message on changeset action mismatch * accept atoms when casting strings ## [v1.52.0-rc.9](https://github.com/ash-project/ash/compare/v1.52.0-rc.8...v1.52.0-rc.9) (2022-05-23) ### Bug Fixes: * rename `interval` to `duration_name` * Fix concat (#326) * Make get and get! consistent with what they raise when no record found (#325) ### Improvements: * specify that upserts could be related at creation ## [v1.52.0-rc.8](https://github.com/ash-project/ash/compare/v1.52.0-rc.7...v1.52.0-rc.8) (2022-05-18) ### Bug Fixes: * add resource/action to policy error context ## [v1.52.0-rc.7](https://github.com/ash-project/ash/compare/v1.52.0-rc.6...v1.52.0-rc.7) (2022-05-18) ### Bug Fixes: * don't ignore lazy load option ## [v1.52.0-rc.6](https://github.com/ash-project/ash/compare/v1.52.0-rc.5...v1.52.0-rc.6) (2022-05-18) ### Bug Fixes: * return `{:ok, nil}` on nil cast for strings ## [v1.52.0-rc.5](https://github.com/ash-project/ash/compare/v1.52.0-rc.4...v1.52.0-rc.5) (2022-05-17) ### Improvements: * move ash_policy_authorizer into core as `Ash.Policy.Authorizer` ## [v1.52.0-rc.4](https://github.com/ash-project/ash/compare/v1.52.0-rc.3...v1.52.0-rc.4) (2022-05-17) ### Bug Fixes: * run after_action in create properly ## [v1.52.0-rc.3](https://github.com/ash-project/ash/compare/v1.52.0-rc.2...v1.52.0-rc.3) (2022-05-17) ### Bug Fixes: * require calculations specified on resource load ## [v1.52.0-rc.2](https://github.com/ash-project/ash/compare/v1.52.0-rc.1...v1.52.0-rc.2) (2022-05-13) ### Bug Fixes: * ensure that the default accept is used * distinct before limit and offset * add distinct in data_layer_query * merge calculations when merging loads * add `no_depend_modules` for changes/validations * match on `:unknown` not `{:ok, :unknown}` * run calc in data layer if it returns `:unknown` * don't ignore lexical tracker on modules in DSL * don't treat single actions of a type as primary * render contributor images correctly in hexdocs (#321) * go back to old method of checking for resource * properly load from `load` statement in calculations * send notifications in all cases * use unpaginated read when loading * properly handle errors in mnesia transactions * default custom steps to be async?: false * get tests/dialyzer passing ### Improvements: * work on module dependencies * use new `no_depend_modules` everywhere * add `no_attributes?` relationships * add manual read actions * calculation values from requests * small optimizations * more flow features/fixes, debug step * work on transaction flow steps ## [v1.52.0-rc.1](https://github.com/ash-project/ash/compare/v1.52.0-rc.0...v1.52.0-rc.1) (2022-04-19) ### Bug Fixes: * Handle date type cast_input with nil value (#311) * fix expression logic * don't throw away timeout exit * timeouts @ the engine, not the parent process * timeout logic was timing out after the fact * uniqueify `list_refs` even further * flaky test issue * Enforce unique action names (#308) * pass tenant option to requests properly * Fix typespecs in Ash.Api (#307) * fix resource relationship validation * fix paths for load in flow * aggregate/calculation filter issues * show error message in `NoSuchResource` * import builtin preparations in global preparations block ### Improvements: * `load` on `cast_stored` in embedded type * add descriptions to mermaid charts/flow * tons of engine/timeout improvements * implement NaiveDateTime type (#312) * Improve usability of finding by primary key (ID) (#294) * Add time type matching existing date type (#310) * flow -> mermaid chart * flow tenants * fix nested map statements in flow * add dynamic allow list * uniqify list_references * set default timeout to 30_000 * remove coverage from CI * fully deprecate the `resource` entity * add eager validate identities * percolate `nil` values in operators in ash expression language (like SQL) * add `return_destroyed?` option * add `api` option to relationships * make default actions and primary actions far more explicit * better error messages on unknown * better loading behavior for managed relationships * add lazy? option for loading * show value in atom error list * add `modify_query` callback * add overview * add build_entity! * properly parse `{:_ref, path, name}` * add `deselect` to build * validates attributes and relationships have unique names (#300) * validate no embeds in api ## [v1.52.0-rc.0](https://github.com/ash-project/ash/compare/v1.51.2...v1.52.0-rc.0) (2022-03-25) ### Features: * add `Ash.Flow` * support recursive DSL entities. * manual relationships ### Bug Fixes: * add `load` option convenience for reads/code interface * handle errors in all action types where `changeset` wasn't resolved * always sanitize requests before we spawn them * context name in loading manual relationships * get aggregate query from proper engine path * handle error case in create * don't require attributes if an argument overrides them * fix hanging issue when adding engine requests * don't require `writable?: false` attributes * pull aggregate values properly * fix nested section configs having wrong path * don't rescue errors in resource_formatter * add `input/2` to resource modules * move back to more efficient formatter * make the formatter safer, again * typo in changeset.ex (#291) ### Improvements: * properly attach authorization_filters to loaded items * add `ref` template helper * add transaction steps to flow * unimport to avoid name collisions in nested DSLs * disable lexical tracker when expanding aliases * temporarily move init to runtime for changes ## [v1.51.2](https://github.com/ash-project/ash/compare/v1.51.1...v1.51.2) (2022-02-17) ### Bug Fixes: * don't blow away sections when formatting * properly reorder sections in the formatter ## [v1.51.1](https://github.com/ash-project/ash/compare/v1.51.0...v1.51.1) (2022-02-17) ### Bug Fixes: * solve reorder bugs in formatter ## [v1.51.0](https://github.com/ash-project/ash/compare/v1.50.21...v1.51.0) (2022-02-14) ### Features: * add `source` option to attributes ## [v1.50.21](https://github.com/ash-project/ash/compare/v1.50.20...v1.50.21) (2022-02-14) ### Improvements: * add `cast_in_query?/0` to `Ash.Type` ## [v1.50.20](https://github.com/ash-project/ash/compare/v1.50.19...v1.50.20) (2022-02-11) ### Improvements: * small data layer improvements ## [v1.50.19](https://github.com/ash-project/ash/compare/v1.50.18...v1.50.19) (2022-02-07) ### Bug Fixes: * include a missing module * properly set filterability on attributes ## [v1.50.18](https://github.com/ash-project/ash/compare/v1.50.17...v1.50.18) (2022-02-07) ### Bug Fixes: ### Improvements: * initial implementation of ash resource formatter * ensure no reserved names can be used as constraints ## [v1.50.17](https://github.com/ash-project/ash/compare/v1.50.16...v1.50.17) (2022-01-31) ### Improvements: * optimize `if` and `is_nil` functions ## [v1.50.16](https://github.com/ash-project/ash/compare/v1.50.15...v1.50.16) (2022-01-24) ### Bug Fixes: * use `ash_struct_fields` to accumulate schema struct field defaults ## [v1.50.15](https://github.com/ash-project/ash/compare/v1.50.14...v1.50.15) (2022-01-19) ### Bug Fixes: * don't call add_aggregates w/ a map * allow new `filter` pattern in typespec ### Improvements: * add `where` to `change` * support data layers bulk adding aggregates ## [v1.50.14](https://github.com/ash-project/ash/compare/v1.50.13...v1.50.14) (2021-12-21) ### Bug Fixes: * fix recursion in `do_reverse_relationship_path/3` ### Improvements: * add more authorizer state management * customizable exception for authorizers ## [v1.50.13](https://github.com/ash-project/ash/compare/v1.50.12...v1.50.13) (2021-12-21) ### Bug Fixes: * properly construct reverse relationship paths ### Improvements: * cover more potential cases in filter parsing ## [v1.50.12](https://github.com/ash-project/ash/compare/v1.50.11...v1.50.12) (2021-12-19) ### Bug Fixes: * support new versions of ecto's struct fields * fixes for elixir_sense plugin ## [v1.50.11](https://github.com/ash-project/ash/compare/v1.50.10...v1.50.11) (2021-12-13) ### Improvements: * add elixir_sense extension, to be merged when ready (#275) ## [v1.50.10](https://github.com/ash-project/ash/compare/v1.50.9...v1.50.10) (2021-12-08) ### Improvements: * add `Ash.DataLayer.Simple.set_data/2` * complete mutually_exclusive_and_collectively_exhaustive logic ## [v1.50.9](https://github.com/ash-project/ash/compare/v1.50.8...v1.50.9) (2021-12-06) ### Bug Fixes: * undo an unnecessary `contains` change * WIP attempt to resolve ci_string typing errors ### Improvements: * catch more equivalencey cases around is_nil in sat solver ## [v1.50.8](https://github.com/ash-project/ash/compare/v1.50.7...v1.50.8) (2021-12-01) ### Bug Fixes: * case clause error in `Query.equivalent_to?` ## [v1.50.7](https://github.com/ash-project/ash/compare/v1.50.6...v1.50.7) (2021-12-01) ### Bug Fixes: * missing rename on refactor * typo in `unquote` * mark `contains` as a predicate ### Improvements: * expose small filter helpers * make to_simple_filter fail better, add failure option ## [v1.50.6](https://github.com/ash-project/ash/compare/v1.50.5...v1.50.6) (2021-11-26) ### Improvements: * add `Transformer.eval/3` (for special use cases only) ## [v1.50.5](https://github.com/ash-project/ash/compare/v1.50.4...v1.50.5) (2021-11-25) ### Improvements: * track defaults being set ## [v1.50.4](https://github.com/ash-project/ash/compare/v1.50.3...v1.50.4) (2021-11-17) ### Improvements: * add `Ash.Query.equivalent_to/2` ## [v1.50.3](https://github.com/ash-project/ash/compare/v1.50.2...v1.50.3) (2021-11-17) ### Improvements: * add `subset_of?` and `superset_of?` query macros ## [v1.50.2](https://github.com/ash-project/ash/compare/v1.50.1...v1.50.2) (2021-11-13) ### Bug Fixes: * run calculations inline by default * use Date.add when using LessThanOrEqual with date value (#281) * cast nil input on strings ### Improvements: * support do/else blocks in if * support `cond` ## [v1.50.1](https://github.com/ash-project/ash/compare/v1.50.0...v1.50.1) (2021-11-09) ### Bug Fixes: * simplify and improve allow_nil checking ## [v1.50.0](https://github.com/ash-project/ash/compare/v1.49.0...v1.50.0) (2021-11-09) ### Breaking Changes: * breaking!: explicitly setting a value to nil on create no longer falls back to the default value ## [v1.49.0](https://github.com/ash-project/ash/compare/v1.48.0-rc.30...v1.49.0) (2021-11-03) ### Bug Fixes: * don't ask the data layer to sort if no sort is applied * set tenant at start of query build (#278) ### Improvements: * still filter in cases w/o a lateral join on load ## [v1.48.0-rc.30](https://github.com/ash-project/ash/compare/v1.48.0-rc.29...v1.48.0-rc.30) (2021-11-01) ### Bug Fixes: * set storage_type to `:uuid` for Ash.Type.UUID ### Improvements: * `only_when_valid?` on changes ## [v1.48.0-rc.29](https://github.com/ash-project/ash/compare/v1.48.0-rc.28...v1.48.0-rc.29) (2021-10-29) ### Bug Fixes: ## [v1.48.0-rc.28](https://github.com/ash-project/ash/compare/v1.48.0-rc.27...v1.48.0-rc.28) (2021-10-29) ### Bug Fixes: * add changes from last release that I forgot ## [v1.48.0-rc.27](https://github.com/ash-project/ash/compare/v1.48.0-rc.26...v1.48.0-rc.27) (2021-10-29) ### Improvements: * compile time optimizations via configuration ## [v1.48.0-rc.26](https://github.com/ash-project/ash/compare/v1.48.0-rc.25...v1.48.0-rc.26) (2021-10-28) ### Bug Fixes: * correctly handle errors in validate_required_belongs_to (#276) * set actor when loading to manage belongs_to * cast to string before concatenating ### Improvements: * set `action` into data layer context ## [v1.48.0-rc.25](https://github.com/ash-project/ash/compare/v1.48.0-rc.24...v1.48.0-rc.25) (2021-10-25) ### Bug Fixes: * always lateral join for many to many relationships ### Improvements: * add `default` option for aggregates ## [v1.48.0-rc.24](https://github.com/ash-project/ash/compare/v1.48.0-rc.23...v1.48.0-rc.24) (2021-10-25) ### Bug Fixes: * unset `load` when running calculation queries ### Improvements: * add `allow_async?` to calculations, default to false * add elixir evaluation step to expression calculations * global resource preparations ## [v1.48.0-rc.23](https://github.com/ash-project/ash/compare/v1.48.0-rc.22...v1.48.0-rc.23) (2021-10-24) ### Bug Fixes: * breaking change! disambiguating functions in keyword filter syntax ## [v1.48.0-rc.22](https://github.com/ash-project/ash/compare/v1.48.0-rc.21...v1.48.0-rc.22) (2021-10-23) ### Bug Fixes: * use correct typespec for `Ash.Sort.parse_input/2` ## [v1.48.0-rc.21](https://github.com/ash-project/ash/compare/v1.48.0-rc.20...v1.48.0-rc.21) (2021-10-22) ### Improvements: * add get? metadata ## [v1.48.0-rc.20](https://github.com/ash-project/ash/compare/v1.48.0-rc.19...v1.48.0-rc.20) (2021-10-21) ### Improvements: * custom error paths for managed relationships ## [v1.48.0-rc.19](https://github.com/ash-project/ash/compare/v1.48.0-rc.18...v1.48.0-rc.19) (2021-10-20) ### Bug Fixes: * honor `get_by` and `get_by_identity` on bang (!) interfaces ## [v1.48.0-rc.18](https://github.com/ash-project/ash/compare/v1.48.0-rc.17...v1.48.0-rc.18) (2021-10-20) ### Improvements: * add `get_by` and `get_by_identity` to code interface * compile time validations for managed relationships ## [v1.48.0-rc.17](https://github.com/ash-project/ash/compare/v1.48.0-rc.16...v1.48.0-rc.17) (2021-10-19) ### Bug Fixes: * don't require primary actions if disabled ## [v1.48.0-rc.16](https://github.com/ash-project/ash/compare/v1.48.0-rc.15...v1.48.0-rc.16) (2021-10-19) ### Improvements: * add `primary_actions?` option ## [v1.48.0-rc.15](https://github.com/ash-project/ash/compare/v1.48.0-rc.14...v1.48.0-rc.15) (2021-10-15) ### Bug Fixes: * don't validate allow_nil in attribute casting ## [v1.48.0-rc.14](https://github.com/ash-project/ash/compare/v1.48.0-rc.13...v1.48.0-rc.14) (2021-10-13) ### Bug Fixes: * fix code interface on resources ### Improvements: * breaking change! api level code interface *removed*, contact me on discord if you want a way to avoid changing to resource-based interface, but otherwise * use proper equality checking in places where we were using simple elixir equality checking ## [v1.48.0-rc.13](https://github.com/ash-project/ash/compare/v1.48.0-rc.12...v1.48.0-rc.13) (2021-10-12) ### Bug Fixes: * honor base query still when removing filters ## [v1.48.0-rc.12](https://github.com/ash-project/ash/compare/v1.48.0-rc.11...v1.48.0-rc.12) (2021-10-11) ### Bug Fixes: * move related field validations to resource * remove join_attributes, which didn't do anything anyway ### Improvements: * add resource registry validation ## [v1.48.0-rc.11](https://github.com/ash-project/ash/compare/v1.48.0-rc.10...v1.48.0-rc.11) (2021-10-09) ### Bug Fixes: * handle errors when validation calculation constraints * remove certain modules from avoiding recompilation ### Improvements: * support `module_prefix` for dsl extensions ## [v1.48.0-rc.10](https://github.com/ash-project/ash/compare/v1.48.0-rc.9...v1.48.0-rc.10) (2021-10-07) ### Bug Fixes: * remove certain modules from avoiding recompilation ## [v1.48.0-rc.9](https://github.com/ash-project/ash/compare/v1.48.0-rc.8...v1.48.0-rc.9) (2021-10-07) ### Improvements: * deprecation! ## [v1.48.0-rc.8](https://github.com/ash-project/ash/compare/v1.48.0-rc.7...v1.48.0-rc.8) (2021-10-06) ### Bug Fixes: * make arrays default to nil_items?: false ### Improvements: * breaking change! don't define code interface by default ## [v1.48.0-rc.7](https://github.com/ash-project/ash/compare/v1.48.0-rc.6...v1.48.0-rc.7) (2021-09-30) ### Bug Fixes: * ensure changeset is up to date in `after_action` hooks * fix a case where `unwrap_or_raise!` returned the wrong value on destroy * fix typo on lateral join checker * set default attribute type (in case it is explicitly set to nil) on belongs_to attributes * if an error with no message is produced, don't attempt to concat nil with a string ### Improvements: * simpler patterns around soft destroy actions * add `set_option/4` to transformer helpers * add `where` option to validate that accepts a list of validations * prevent more unnecessary lateral joins * only issue a lateral join when required (#269) ## [v1.48.0-rc.6](https://github.com/ash-project/ash/compare/v1.48.0-rc.5...v1.48.0-rc.6) (2021-09-20) ### Bug Fixes: * support `on` for global changes * return proper result when input is struct * remove File.read! from docs ### Improvements: * skip resource action if no changes have been made * add `changing_attributes?/1` to determine if any attributes are changing * add global changes ## [v1.48.0-rc.5](https://github.com/ash-project/ash/compare/v1.48.0-rc.4...v1.48.0-rc.5) (2021-09-17) ### Improvements: * upgrade docs/tooling for elixir_sense * set docs statically ## [v1.48.0-rc.4](https://github.com/ash-project/ash/compare/v1.48.0-rc.3...v1.48.0-rc.4) (2021-09-17) ### Improvements: * improvements for elixirsense integration ## [v1.48.0-rc.3](https://github.com/ash-project/ash/compare/v1.48.0-rc.2...v1.48.0-rc.3) (2021-09-16) ### Improvements: * transformer/extension improvements * add path to errors ## [v1.48.0-rc.2](https://github.com/ash-project/ash/compare/v1.48.0-rc.1...v1.48.0-rc.2) (2021-09-15) ### Bug Fixes: * set tenant properly on create interface * update type spec for Ash.Sort to include single atom instead of only list. (#263) ### Improvements: * support non-endpoint pubsub adapters ## [v1.48.0-rc.1](https://github.com/ash-project/ash/compare/v1.48.0-rc.0...v1.48.0-rc.1) (2021-09-13) ### Bug Fixes: * check action type properly in attribute validations ## [v1.48.0-rc.0](https://github.com/ash-project/ash/compare/v1.47.12...v1.48.0-rc.0) (2021-09-13) ### Breaking Changes: * update ecto version ### Bug Fixes: * pass constraints to sub-fields loaded in embeddable resources * take creates into account w/ attribute_equals and attribute_does_not_equal * set changeset in destroy authorization request ### Improvements: * use paramaterized types under the hood ## [v1.47.12](https://github.com/ash-project/ash/compare/v1.47.11...v1.47.12) (2021-09-12) ### Bug Fixes: * return not found in all cases on get * don't allow get! to return nil * don't do db filters on creation * honor `allow_nil_input` in required validations ### Improvements: * add `after_action` option to create/update * add config :ash, disable_async?: true * add `meta[:order]` option for managed relationships ## [v1.47.11](https://github.com/ash-project/ash/compare/v1.47.10...v1.47.11) (2021-08-29) ### Bug Fixes: * hydrate metadata types ### Improvements: * remove metadata from read actions ## [v1.47.10](https://github.com/ash-project/ash/compare/v1.47.9...v1.47.10) (2021-08-29) ### Bug Fixes: * update to latest picosat_elixir for releases * cast `nil` enum values properly * set api in destroy action hooks ### Improvements: * support action level metadata * add `on_match: :destroy` option * if a map is given for a list, take it's keys * set better error paths for invalid relationships * include api in changeset inspect ## [v1.47.9](https://github.com/ash-project/ash/compare/v1.47.8...v1.47.9) (2021-08-11) ### Bug Fixes: * set argument defaults early * don't add indices to non-list inputs in managed relationships ## [v1.47.8](https://github.com/ash-project/ash/compare/v1.47.7...v1.47.8) (2021-08-05) ### Bug Fixes: * stop managed relationships from sourcing wrong data ## [v1.47.7](https://github.com/ash-project/ash/compare/v1.47.6...v1.47.7) (2021-08-04) ### Bug Fixes: * redact fields in the resource struct as well * allow `before_action` to manage `belongs_to` relationships * load belongs to relationships before managing them * don't lookup nil input * don't look for matches for nil * don't accept list inputs for managed belongs_to * don't use list inputs in belongs_to managed * remove belongs to related after action * fix more cases where belongs_to isn't replaced ## [v1.47.6](https://github.com/ash-project/ash/compare/v1.47.5...v1.47.6) (2021-08-01) ### Bug Fixes: * honor `on_missing:` behavior for belongs_to relationships * properly remove old belongs_to records ## [v1.47.5](https://github.com/ash-project/ash/compare/v1.47.4...v1.47.5) (2021-07-28) ### Bug Fixes: * set source_query tenant in lateral join ### Improvements: * add `belongs_to` attributes *after* the others ## [v1.47.4](https://github.com/ash-project/ash/compare/v1.47.3...v1.47.4) (2021-07-25) ### Improvements: * pull relationship paths out of functions ## [v1.47.3](https://github.com/ash-project/ash/compare/v1.47.2...v1.47.3) (2021-07-23) ### Bug Fixes: * no need to trap exits anymore ## [v1.47.2](https://github.com/ash-project/ash/compare/v1.47.1...v1.47.2) (2021-07-23) ### Bug Fixes: * don't match on explicitly `:exit` ## [v1.47.1](https://github.com/ash-project/ash/compare/v1.47.0...v1.47.1) (2021-07-23) ### Bug Fixes: * catch normal exit message from engine * flush engine state always ## [v1.47.0](https://github.com/ash-project/ash/compare/v1.46.13...v1.47.0) (2021-07-22) ### Features: * Ash.Resource.Info: add &public_field/2 helper (#254) * Ash.Resource.Info: add &sortable?/3 helper ### Bug Fixes: * load calculations from sorts properly * rename conflicting test name * fix complex attribute check * disallow aggregate/calculation sorting w/ keyset pagination ## [v1.46.13](https://github.com/ash-project/ash/compare/v1.46.12...v1.46.13) (2021-07-21) ### Bug Fixes: * ensure calculation compiled * don't limit/offset aggregate queries ## [v1.46.12](https://github.com/ash-project/ash/compare/v1.46.11...v1.46.12) (2021-07-20) ### Bug Fixes: * call `get_type` in cast_stored again ## [v1.46.11](https://github.com/ash-project/ash/compare/v1.46.10...v1.46.11) (2021-07-19) ### Improvements: * speed up type loading * add `__order__` field to be used by data layers ## [v1.46.10](https://github.com/ash-project/ash/compare/v1.46.9...v1.46.10) (2021-07-18) ### Bug Fixes: * missing apply_attributes clause ### Improvements: * add `force?` option to `apply_attributes/2` ## [v1.46.9](https://github.com/ash-project/ash/compare/v1.46.8...v1.46.9) (2021-07-18) ### Bug Fixes: * demonitor engine pid after run ## [v1.46.8](https://github.com/ash-project/ash/compare/v1.46.7...v1.46.8) (2021-07-18) ### Bug Fixes: * on_lookup read is always on destination ## [v1.46.7](https://github.com/ash-project/ash/compare/v1.46.6...v1.46.7) (2021-07-17) ### Bug Fixes: * set item constraints properly ### Improvements: * add on_lookup_read_action ## [v1.46.6](https://github.com/ash-project/ash/compare/v1.46.5...v1.46.6) (2021-07-15) ### Bug Fixes: * fix simple data layer filtering ### Improvements: * add in error paths for managed relationships * set error paths on managed rels ## [v1.46.5](https://github.com/ash-project/ash/compare/v1.46.4...v1.46.5) (2021-07-09) ### Improvements: * always replace error message vars * minimize relationship source changeset context inspect size ## [v1.46.4](https://github.com/ash-project/ash/compare/v1.46.3...v1.46.4) (2021-07-08) ### Bug Fixes: * cast empty string to nil in atom * accept strings for atom types again * don't turn strings to atoms in `:atom` type * don't do unnecessary validation in type ## [v1.46.3](https://github.com/ash-project/ash/compare/v1.46.2...v1.46.3) (2021-07-05) ### Bug Fixes: * build aggregate paths properly ## [v1.46.2](https://github.com/ash-project/ash/compare/v1.46.1...v1.46.2) (2021-07-04) ### Improvements: * info only `required?` flag for `has_one` ## [v1.46.1](https://github.com/ash-project/ash/compare/v1.46.0...v1.46.1) (2021-07-02) ### Bug Fixes: * properly determine reverse aggregate relationship * ensure calculation modules are compiled * attempt to fix calculation compile time issues ## [v1.46.0](https://github.com/ash-project/ash/compare/v1.45.0-rc20...v1.46.0) (2021-07-02) ## [v1.45.0-rc20](https://github.com/ash-project/ash/compare/v1.45.0-rc19...v1.45.0-rc20) (2021-07-01) ### Bug Fixes: * allow sorting on aggs, w/o loading * ensure query in `ensure_selected` * handle sorting empty data properly * manage ets tables properly * link request handler to engine and runner, solve mem leak * ensure ci_strings casted after constraints * Revert "more optimized types" * revert a suboptimal change to the type system * don't call `type()` on `:string` * optimize ash type loading ### Improvements: * if "" fails to cast, cast it as `nil` instead * ReadActionRequiresActor error * `ensure_selected` change * don't perform `match` on `nil` * add `{:arg, :name}` input for `set_attribute` * revamp ci_string * add `Ash.Type.type/1` * more optimized types ## [v1.45.0-rc19](https://github.com/ash-project/ash/compare/v1.45.0-rc18...v1.45.0-rc19) (2021-06-29) ### Bug Fixes: * ensure query in `ensure_selected` * handle sorting empty data properly * manage ets tables properly * link request handler to engine and runner, solve mem leak * ensure ci_strings casted after constraints * Revert "more optimized types" * revert a suboptimal change to the type system * don't call `type()` on `:string` * optimize ash type loading ### Improvements: * if "" fails to cast, cast it as `nil` instead * ReadActionRequiresActor error * `ensure_selected` change * don't perform `match` on `nil` * add `{:arg, :name}` input for `set_attribute` * revamp ci_string * add `Ash.Type.type/1` * more optimized types ## [v1.45.0-rc18](https://github.com/ash-project/ash/compare/v1.45.0-rc17...v1.45.0-rc18) (2021-06-28) ### Bug Fixes: * handle sorting empty data properly * manage ets tables properly * link request handler to engine and runner, solve mem leak * ensure ci_strings casted after constraints * Revert "more optimized types" * revert a suboptimal change to the type system * don't call `type()` on `:string` * optimize ash type loading ### Improvements: * if "" fails to cast, cast it as `nil` instead * ReadActionRequiresActor error * `ensure_selected` change * don't perform `match` on `nil` * add `{:arg, :name}` input for `set_attribute` * revamp ci_string * add `Ash.Type.type/1` * more optimized types ## [v1.45.0-rc17](https://github.com/ash-project/ash/compare/v1.45.0-rc16...v1.45.0-rc17) (2021-06-28) ### Bug Fixes: * link request handler to engine and runner, solve mem leak * ensure ci_strings casted after constraints * Revert "more optimized types" * revert a suboptimal change to the type system * don't call `type()` on `:string` * optimize ash type loading ### Improvements: * if "" fails to cast, cast it as `nil` instead * ReadActionRequiresActor error * `ensure_selected` change * don't perform `match` on `nil` * add `{:arg, :name}` input for `set_attribute` * revamp ci_string * add `Ash.Type.type/1` * more optimized types ## [v1.45.0-rc16](https://github.com/ash-project/ash/compare/v1.45.0-rc15...v1.45.0-rc16) (2021-06-25) ### Bug Fixes: * ensure ci_strings casted after constraints * Revert "more optimized types" * revert a suboptimal change to the type system * don't call `type()` on `:string` * optimize ash type loading ### Improvements: * add `{:arg, :name}` input for `set_attribute` * revamp ci_string * add `Ash.Type.type/1` * more optimized types ## [v1.45.0-rc15](https://github.com/ash-project/ash/compare/v1.45.0-rc14...v1.45.0-rc15) (2021-06-25) ### Bug Fixes: * ensure ci_strings casted after constraints * Revert "more optimized types" * revert a suboptimal change to the type system * don't call `type()` on `:string` * optimize ash type loading ### Improvements: * revamp ci_string * add `Ash.Type.type/1` * more optimized types ## [v1.45.0-rc14](https://github.com/ash-project/ash/compare/v1.45.0-rc13...v1.45.0-rc14) (2021-06-24) ### Bug Fixes: * Revert "more optimized types" * revert a suboptimal change to the type system * don't call `type()` on `:string` * optimize ash type loading ### Improvements: * add `Ash.Type.type/1` * more optimized types ## [v1.45.0-rc11](https://github.com/ash-project/ash/compare/v1.45.0-rc10...v1.45.0-rc11) (2021-06-24) ### Bug Fixes: * revert a suboptimal change to the type system * don't call `type()` on `:string` * optimize ash type loading ### Improvements: * add `Ash.Type.type/1` * more optimized types ## [v1.45.0-rc10](https://github.com/ash-project/ash/compare/v1.45.0-rc9...v1.45.0-rc10) (2021-06-24) ### Bug Fixes: * optimize ash type loading ## [v1.45.0-rc9](https://github.com/ash-project/ash/compare/v1.45.0-rc8...v1.45.0-rc9) (2021-06-23) ### Bug Fixes: * pass opts through to Jason.Encode.string/2 ### Improvements: * add `error_handler` for create/update/destroy actions ## [v1.45.0-rc8](https://github.com/ash-project/ash/compare/v1.45.0-rc7...v1.45.0-rc8) (2021-06-23) ### Bug Fixes: * properly encode ci string to json ### Improvements: * more engine logging ## [v1.45.0-rc7](https://github.com/ash-project/ash/compare/v1.45.0-rc6...v1.45.0-rc7) (2021-06-22) ### Bug Fixes: * `:infinity` on engine genserver calls ## [v1.45.0-rc6](https://github.com/ash-project/ash/compare/v1.45.0-rc5...v1.45.0-rc6) (2021-06-08) ### Bug Fixes: * hide __metadata__ field on inspect * load relationships required for calculations (optimize later) ## [v1.45.0-rc5](https://github.com/ash-project/ash/compare/v1.45.0-rc4...v1.45.0-rc5) (2021-06-08) ### Bug Fixes: * don't halt on request handler failure * properly error when more than 2 requests of the same type are primary * properly process sort when the sort is an atom * properly calculate reverse relationship paths ## [v1.45.0-rc4](https://github.com/ash-project/ash/compare/v1.45.0-rc3...v1.45.0-rc4) (2021-06-05) ### Improvements: * support calculation sorts ## [v1.45.0-rc3](https://github.com/ash-project/ash/compare/v1.45.0-rc2...v1.45.0-rc3) (2021-06-05) ### Bug Fixes: * always wait on the engine if it hasn't completed ## [v1.45.0-rc2](https://github.com/ash-project/ash/compare/v1.45.0-rc1...v1.45.0-rc2) (2021-06-04) ### Bug Fixes: * always wait for engine ### Improvements: * spawn async requests where possible ## [v1.45.0-rc1](https://github.com/ash-project/ash/compare/v1.45.0-rc0...v1.45.0-rc1) (2021-06-04) ### Bug Fixes: * constraints on calculations * better calculation inspect * allow supplying stacktraces when building errors ## [v1.45.0-rc0](https://github.com/ash-project/ash/compare/v1.44.13...v1.45.0-rc0) (2021-06-04) ### Features: * expression based calculations for filterable/sortable calculations * expression calculations for sorting/filtering * add compare validator (#242) ### Bug Fixes: * aggregate authorization issues * ensure create functions generated by code_interface accept tenant in the opts list (#243) ### Improvements: * tons of improvements across the board * small improvements/fixes across the board * Update remaining builtin validators (#244) ## [v1.44.13](https://github.com/ash-project/ash/compare/v1.44.12...v1.44.13) (2021-05-28) ### Bug Fixes: * properly process managed belongs to relationships * cast nil -> {:ok, nil} in all cases * set tenant even on non-tenant resources where relevant (#241) ## [v1.44.12](https://github.com/ash-project/ash/compare/v1.44.11...v1.44.12) (2021-05-23) ### Improvements: * define embedded schemas where appropriate ## [v1.44.11](https://github.com/ash-project/ash/compare/v1.44.10...v1.44.11) (2021-05-20) ### Improvements: * calculation.select/2 + `select` calculation option ## [v1.44.10](https://github.com/ash-project/ash/compare/v1.44.9...v1.44.10) (2021-05-20) ### Bug Fixes: * run after_action hooks in the proper order ### Improvements: * add `validate_destination_attribute?` * add builtin `select` change ## [v1.44.9](https://github.com/ash-project/ash/compare/v1.44.8...v1.44.9) (2021-05-20) ### Improvements: * set moduledoc to description if one is not set ## [v1.44.8](https://github.com/ash-project/ash/compare/v1.44.7...v1.44.8) (2021-05-19) ### Bug Fixes: * fix dialyzer errors for enum + code interface ## [v1.44.7](https://github.com/ash-project/ash/compare/v1.44.6...v1.44.7) (2021-05-19) ### Bug Fixes: * fix code interface + `args` combo error ### Improvements: * support specifying the `upsert_identity` option ## [v1.44.6](https://github.com/ash-project/ash/compare/v1.44.5...v1.44.6) (2021-05-18) ### Bug Fixes: * `ignore?: true` still accumulates changes * properly require_attributes before setting defaults ## [v1.44.5](https://github.com/ash-project/ash/compare/v1.44.4...v1.44.5) (2021-05-18) ### Bug Fixes: * set default values before calling resource changes ### Improvements: * `ignore?` option for `manage_relationship` change ## [v1.44.4](https://github.com/ash-project/ash/compare/v1.44.3...v1.44.4) (2021-05-17) ### Bug Fixes: * reverse-reverse relationship detection ## [v1.44.3](https://github.com/ash-project/ash/compare/v1.44.2...v1.44.3) (2021-05-17) ### Bug Fixes: * support non-predicates in satsolver ## [v1.44.2](https://github.com/ash-project/ash/compare/v1.44.1...v1.44.2) (2021-05-15) ### Bug Fixes: * raise better error w/ invalid filter expression ### Improvements: * expose `default_value/1` in aggregate * transactions for reads, notifications from read callbacks ## [v1.44.1](https://github.com/ash-project/ash/compare/v1.44.0...v1.44.1) (2021-05-14) ### Bug Fixes: * handle error return in code_interface getter ## [v1.44.0](https://github.com/ash-project/ash/compare/v1.43.12...v1.44.0) (2021-05-14) ### Features: * `on_no_match: :match` supported for to_one rels ### Bug Fixes: * rename `context` -> `relationship_context` to avoid conflict ### Improvements: * various managed relationship improvements ## [v1.43.12](https://github.com/ash-project/ash/compare/v1.43.11...v1.43.12) (2021-05-11) ### Improvements: * set `__source__` context for embeds * utility `manage_relationship_source` context ## [v1.43.11](https://github.com/ash-project/ash/compare/v1.43.10...v1.43.11) (2021-05-09) ### Bug Fixes: * internal rename (requires version bump for other packages) ## [v1.43.10](https://github.com/ash-project/ash/compare/v1.43.9...v1.43.10) (2021-05-09) ### Bug Fixes: * run action changes on destroy * pattern match manage_relationship notifications fix ### Improvements: * add `manual?` option for create/update/destroy * ensure data layer can perform aggregates ## [v1.43.9](https://github.com/ash-project/ash/compare/v1.43.8...v1.43.9) (2021-05-09) ### Bug Fixes: * don't fail on nil root filters ### Improvements: * support filtering on related aggregates * autoload aggregates used in filters ## [v1.43.8](https://github.com/ash-project/ash/compare/v1.43.7...v1.43.8) (2021-05-07) ### Bug Fixes: * don't raise unnecessary side load error ## [v1.43.7](https://github.com/ash-project/ash/compare/v1.43.6...v1.43.7) (2021-05-07) ### Improvements: * fix data-based side loads ## [v1.43.6](https://github.com/ash-project/ash/compare/v1.43.5...v1.43.6) (2021-05-07) ### Bug Fixes: * IsNil function to IsNil operator * function clause match error in not expression ## [v1.43.5](https://github.com/ash-project/ash/compare/v1.43.4...v1.43.5) (2021-05-07) ### Bug Fixes: * limit 1 on to one side load queries ## [v1.43.4](https://github.com/ash-project/ash/compare/v1.43.3...v1.43.4) (2021-05-07) ### Improvements: * support sorted relationships ## [v1.43.3](https://github.com/ash-project/ash/compare/v1.43.2...v1.43.3) (2021-05-06) ### Bug Fixes: * don't consider contextual relationships as reverse relationships * support `not` in query expressions ## [v1.43.2](https://github.com/ash-project/ash/compare/v1.43.1...v1.43.2) (2021-05-04) ### Bug Fixes: * include aggregates in count request for aggregate filters ## [v1.43.1](https://github.com/ash-project/ash/compare/v1.43.0...v1.43.1) (2021-05-04) ### Bug Fixes: * use base_query for aritifical limit/offset when loading ## [v1.43.0](https://github.com/ash-project/ash/compare/v1.42.0...v1.43.0) (2021-05-03) ### Features: * rework lateral joins for many to many performance boost ### Improvements: * add `read_action` option ## [v1.42.0](https://github.com/ash-project/ash/compare/v1.41.12...v1.42.0) (2021-04-29) ### Features: * inner lateral join for many to many relationships ### Improvements: * inner later join for many to many relationships * support relationship filters ## [v1.41.12](https://github.com/ash-project/ash/compare/v1.41.11...v1.41.12) (2021-04-27) ### Improvements: * add `has` filter predicate ## [v1.41.11](https://github.com/ash-project/ash/compare/v1.41.10...v1.41.11) (2021-04-26) ### Improvements: * add `:list` aggregate kind ## [v1.41.10](https://github.com/ash-project/ash/compare/v1.41.9...v1.41.10) (2021-04-25) ### Bug Fixes: * don't include `NotLoaded` in `manage_relationship` ## [v1.41.9](https://github.com/ash-project/ash/compare/v1.41.8...v1.41.9) (2021-04-23) ### Bug Fixes: * compile time fixes ### Improvements: * add `require_attributes` to create/update/destroy ## [v1.41.8](https://github.com/ash-project/ash/compare/v1.41.7...v1.41.8) (2021-04-21) ### Bug Fixes: * don't consider nils for pkey matching ### Improvements: * add first class support for enum types * Add detailed parameter checking for Api read functions (#229) ## [v1.41.7](https://github.com/ash-project/ash/compare/v1.41.6...v1.41.7) (2021-04-18) ### Bug Fixes: * clearer errors when resource fails to compile * don't preload multiplicatively * Decimal casting issues on ash_postgres (#227) ### Improvements: * add list access to `context` * add Resource.input/1 ## [v1.41.6](https://github.com/ash-project/ash/compare/v1.41.5...v1.41.6) (2021-04-16) ### Bug Fixes: * use items for single constraints ## [v1.41.5](https://github.com/ash-project/ash/compare/v1.41.4...v1.41.5) (2021-04-15) ### Bug Fixes: * don't overwrite select in side_load ## [v1.41.4](https://github.com/ash-project/ash/compare/v1.41.3...v1.41.4) (2021-04-15) ### Bug Fixes: * load relationships for management properly * `fetch_key` bug in embedded types * handle_indexed_maps for embedded types ## [v1.41.3](https://github.com/ash-project/ash/compare/v1.41.2...v1.41.3) (2021-04-14) ### Bug Fixes: * handle no key provided to `NotFound` ## [v1.41.2](https://github.com/ash-project/ash/compare/v1.41.1...v1.41.2) (2021-04-13) ### Bug Fixes: * embedded cast_stored must cast all key/values * ci_string constraints when `nil` * manage_relationship change turns embedded resources to maps * fixes for common types parsing from embedded, e.g utc_datetime_usec ### Improvements: * special provisions for casting to embedded type (e.g uuid) ## [v1.41.1](https://github.com/ash-project/ash/compare/v1.41.0...v1.41.1) (2021-04-13) ### Bug Fixes: * `get!` should raise on `nil` not `{:ok, nil}` ## [v1.41.0](https://github.com/ash-project/ash/compare/v1.40.0...v1.41.0) (2021-04-13) ### Features: * change `get?: true` interface functions to raise on `nil` ### Bug Fixes: * allow_nil -> allow_nil_input * allow api.load/2 to load calculations ### Improvements: * add `allow_nil_input` to create actions for api layers * add `load/1` builtin change ## [v1.40.0](https://github.com/ash-project/ash/compare/v1.39.7...v1.40.0) (2021-04-13) ### Features: * change `get?: true` interface functions to raise on `nil` ### Bug Fixes: * allow api.load/2 to load calculations ### Improvements: * add `allow_nil_input` to create actions for api layers * add `load/1` builtin change ## [v1.39.7](https://github.com/ash-project/ash/compare/v1.39.6...v1.39.7) (2021-04-12) ### Bug Fixes: * always select necessary load fields for nested loads ## [v1.39.6](https://github.com/ash-project/ash/compare/v1.39.5...v1.39.6) (2021-04-10) ### Bug Fixes: * always select necessary fields for side loading ## [v1.39.5](https://github.com/ash-project/ash/compare/v1.39.4...v1.39.5) (2021-04-09) ### Bug Fixes: * logic bug in selecting specific fields ## [v1.39.4](https://github.com/ash-project/ash/compare/v1.39.3...v1.39.4) (2021-04-09) ### Improvements: * support the datalayer selecting fields in reads ## [v1.39.3](https://github.com/ash-project/ash/compare/v1.39.2...v1.39.3) (2021-04-04) ### Improvements: * add sum aggregate (#221) ## [v1.39.2](https://github.com/ash-project/ash/compare/v1.39.1...v1.39.2) (2021-04-04) ### Improvements: * allow specifying that calculation can't be nil (#220) ## [v1.39.1](https://github.com/ash-project/ash/compare/v1.39.0...v1.39.1) (2021-04-03) ### Bug Fixes: * update struct_field logic for latest ecto * apply proper interface operation when opts aren't passed ## [v1.39.0](https://github.com/ash-project/ash/compare/v1.38.0...v1.39.0) (2021-04-01) ### Features: * support `Ash.Query.distinct/2` * add `build/2` query preparation ### Bug Fixes: * manage_relationships *before* after_action callbacks ### Improvements: * `before_action?` on `validate`, validate inline ## [v1.38.0](https://github.com/ash-project/ash/compare/v1.37.2...v1.38.0) (2021-03-31) ### Features: * support `Ash.Query.distinct/2` * add `build/2` query preparation ### Bug Fixes: * manage_relationships *before* after_action callbacks ## [v1.37.2](https://github.com/ash-project/ash/compare/v1.37.1...v1.37.2) (2021-03-29) ### Bug Fixes: * don't overwrite managed `belongs_to` relationships * handle `on_lookup` + `on_no_match` for `belongs_to` * fix required relationships and add test * fix required relationships * various managed_relationship fixes ## [v1.37.1](https://github.com/ash-project/ash/compare/v1.37.0...v1.37.1) (2021-03-28) ### Bug Fixes: * fix required relationships and add test * fix required relationships * various managed_relationship fixes ## [v1.37.0](https://github.com/ash-project/ash/compare/v1.36.22...v1.37.0) (2021-03-25) ### Features: * add manage relationship types ### Improvements: * don't accept relationships on actions anymore * require arguments ## [v1.36.22](https://github.com/ash-project/ash/compare/v1.36.21...v1.36.22) (2021-03-24) ### Bug Fixes: * add tenant metadata before after action hooks ## [v1.36.21](https://github.com/ash-project/ash/compare/v1.36.20...v1.36.21) (2021-03-24) ### Bug Fixes: * support type aliases in more type casting functions * support `tenant` option in read interface ## [v1.36.20](https://github.com/ash-project/ash/compare/v1.36.19...v1.36.20) (2021-03-24) ### Bug Fixes: * support `tenant` option in read interface ## [v1.36.19](https://github.com/ash-project/ash/compare/v1.36.18...v1.36.19) (2021-03-22) ### Bug Fixes: * always return changeset when runner failed ## [v1.36.18](https://github.com/ash-project/ash/compare/v1.36.17...v1.36.18) (2021-03-22) ### Improvements: * docs + dialyzer + error improvements ## [v1.36.17](https://github.com/ash-project/ash/compare/v1.36.16...v1.36.17) (2021-03-22) ### Bug Fixes: * don't require values when managing relationships * Revert "fix: force_change_attributes before passing to action" ## [v1.36.16](https://github.com/ash-project/ash/compare/v1.36.15...v1.36.16) (2021-03-22) ### Bug Fixes: * force_change_attributes before passing to action ## [v1.36.15](https://github.com/ash-project/ash/compare/v1.36.14...v1.36.15) (2021-03-21) ### Bug Fixes: * exception on invalid query arguments * allow casting strings as uuids (for embedded types) ### Improvements: * retain actor context from changeset ## [v1.36.14](https://github.com/ash-project/ash/compare/v1.36.13...v1.36.14) (2021-03-21) ### Improvements: * Add float type (#204) ## [v1.36.13](https://github.com/ash-project/ash/compare/v1.36.12...v1.36.13) (2021-03-20) ### Bug Fixes: * avoid exception in `Changeset.new/2` for bad attribute * use ecto's uuid type under the hood ### Improvements: * raise informative errors on bad inputs to `for_*` ## [v1.36.12](https://github.com/ash-project/ash/compare/v1.36.11...v1.36.12) (2021-03-19) ### Improvements: * make `Ash.Error` a public module ## [v1.36.11](https://github.com/ash-project/ash/compare/v1.36.10...v1.36.11) (2021-03-19) ### Improvements: * docs/default value for params ## [v1.36.10](https://github.com/ash-project/ash/compare/v1.36.9...v1.36.10) (2021-03-19) ### Bug Fixes: * set `source_attribute` when replacing `belongs_to` relationship * don't consider `false` as absent value * set argument name in `manage_relationship` ### Improvements: * trim whitespace in uuid ## [v1.36.9](https://github.com/ash-project/ash/compare/v1.36.8...v1.36.9) (2021-03-18) ### Improvements: * improve the behavior of defaults ## [v1.36.8](https://github.com/ash-project/ash/compare/v1.36.7...v1.36.8) (2021-03-17) ### Bug Fixes: * validate required attributes *after* before_action hooks ## [v1.36.7](https://github.com/ash-project/ash/compare/v1.36.6...v1.36.7) (2021-03-17) ### Improvements: * discard certain empty values for embed input ## [v1.36.6](https://github.com/ash-project/ash/compare/v1.36.5...v1.36.6) (2021-03-15) ### Bug Fixes: * force_change attrs *after* `for_create/update` * pattern match errors in `manage_relationships` * clean up some error cases * only default accept to `public` attributes * allow_nil?: false + default interaction ## [v1.36.5](https://github.com/ash-project/ash/compare/v1.36.4...v1.36.5) (2021-03-14) ### Bug Fixes: * remove the `as` option ### Improvements: * Add timestamps() attribute (#198) ## [v1.36.4](https://github.com/ash-project/ash/compare/v1.36.3...v1.36.4) (2021-03-13) ### Bug Fixes: * properly validate `allow_nil?: false` on update * properly validate `allow_nil?: false` private attributes ## [v1.36.3](https://github.com/ash-project/ash/compare/v1.36.2...v1.36.3) (2021-03-13) ### Bug Fixes: * set argument default on cast ## [v1.36.2](https://github.com/ash-project/ash/compare/v1.36.1...v1.36.2) (2021-03-12) ### Bug Fixes: * fix pub_sub on update * fix `publish_all` pub_sub notifier ### Improvements: * derive has_one destination_attribute * finalize code API logic * add not_found_message + violation_message for relationships * support `get_by_` in interface * support sublists in pub_sub topics * support `:_tenant` in pub_sub topics ## [v1.36.1](https://github.com/ash-project/ash/compare/v1.36.0...v1.36.1) (2021-03-09) ### Bug Fixes: * properly filter aggregates ### Improvements: * accept `tenant` in `for_read` ## [v1.36.0](https://github.com/ash-project/ash/compare/v1.35.1...v1.36.0) (2021-03-08) ### Features: * functional interface on the Api module * resource aliases ### Improvements: * update interface to accept query/changesets * require completely unique action names ## [v1.35.1](https://github.com/ash-project/ash/compare/v1.35.0...v1.35.1) (2021-03-07) ### Bug Fixes: * don't reverse sub-entities in DSL ## [v1.35.0](https://github.com/ash-project/ash/compare/v1.34.9...v1.35.0) (2021-03-07) ### Features: * support `Ash.Query.select/3` and `Ash.Changeset.select/3` ## [v1.34.9](https://github.com/ash-project/ash/compare/v1.34.8...v1.34.9) (2021-03-05) ### Improvements: * ignore destination field on some relationship inputs ## [v1.34.8](https://github.com/ash-project/ash/compare/v1.34.7...v1.34.8) (2021-03-05) ### Bug Fixes: * various validation lifecycle fixes * don't fetch sideloads for empty data ### Improvements: * various validation lifecycle options ## [v1.34.7](https://github.com/ash-project/ash/compare/v1.34.6...v1.34.7) (2021-02-26) ### Bug Fixes: * fix nested boolean expression optimization ## [v1.34.6](https://github.com/ash-project/ash/compare/v1.34.5...v1.34.6) (2021-02-24) ### Bug Fixes: * manage_relationship fixes, input + option defaults ## [v1.34.5](https://github.com/ash-project/ash/compare/v1.34.4...v1.34.5) (2021-02-24) ### Bug Fixes: * treat empty string as `nil` in `manage_relationship` * be more conservative (and more correct) when optimizing predicates ## [v1.34.4](https://github.com/ash-project/ash/compare/v1.34.3...v1.34.4) (2021-02-24) ### Bug Fixes: * treat empty string as `nil` in `manage_relationship` * be more conservative (and more correct) when optimizing predicates ## [v1.34.3](https://github.com/ash-project/ash/compare/v1.34.2...v1.34.3) (2021-02-23) ### Bug Fixes: * fix builtin `mange_relationship` change ## [v1.34.2](https://github.com/ash-project/ash/compare/v1.34.1...v1.34.2) (2021-02-23) ### Bug Fixes: * support belongs_to relationships properly ## [v1.34.1](https://github.com/ash-project/ash/compare/v1.34.0...v1.34.1) (2021-02-23) ### Bug Fixes: * authorize if actor key is present ## [v1.34.0](https://github.com/ash-project/ash/compare/v1.33.1...v1.34.0) (2021-02-23) ### Features: * refactored manage_relationship options/behavior ### Improvements: * many compile time fixes via code splitting * Guess destination_attribute for has many relationships (#187) * Implement string length validation (#183) ## [v1.33.1](https://github.com/ash-project/ash/compare/v1.33.0...v1.33.1) (2021-02-23) ### Improvements: * many compile time fixes via code splitting * Guess destination_attribute for has many relationships (#187) * Implement string length validation (#183) ## [v1.33.0](https://github.com/ash-project/ash/compare/v1.32.2...v1.33.0) (2021-02-05) ### Features: * add default_context * add `manage_relationship/4` * add relationship specific context (for postgres polymorphism) * add `reject` (opposite of `accept`) ### Bug Fixes: * support `manage_relationship` for `belongs_to` ### Improvements: * set_context change/preparation * set `accept` by default ## [v1.32.2](https://github.com/ash-project/ash/compare/v1.32.1...v1.32.2) (2021-01-28) ### Improvements: * support `{:filter, _}` authorization results for changesets ## [v1.32.1](https://github.com/ash-project/ash/compare/v1.32.0...v1.32.1) (2021-01-27) ### Bug Fixes: * only run authorization once per request * don't error on replacing empty relationship with empty ### Improvements: * support `tenant` option to `get/2` * support `message` option on identities ## [v1.32.0](https://github.com/ash-project/ash/compare/v1.31.1...v1.32.0) (2021-01-25) ### Features: * add `after_action` for queries ### Bug Fixes: * default to calculating filters on `data_layer_query` ## [v1.31.1](https://github.com/ash-project/ash/compare/v1.31.0...v1.31.1) (2021-01-24) ### Bug Fixes: * remove invalid boolean expression optimization ### Improvements: * make form errors work better with phoenix ## [v1.31.0](https://github.com/ash-project/ash/compare/v1.30.2...v1.31.0) (2021-01-24) ### Features: * add `contains/2` query function ### Bug Fixes: * various ci_string improvements ## [v1.30.2](https://github.com/ash-project/ash/compare/v1.30.1...v1.30.2) (2021-01-22) ### Bug Fixes: * add explicit jason dependency ## [v1.30.1](https://github.com/ash-project/ash/compare/v1.30.0...v1.30.1) (2021-01-22) ### Bug Fixes: * update elixir versions in CI ## [v1.30.0](https://github.com/ash-project/ash/compare/v1.29.0-rc1...v1.30.0) (2021-01-22) ### Bug Fixes: * add action filters in `for_read/3` * don't let local runner processes mix up messages * runtime filter filters properly ## [v1.29.0-rc1](https://github.com/ash-project/ash/compare/v1.28.0-rc0...v1.29.0-rc1) (2021-01-21) ## [v1.29.0-rc0](https://github.com/ash-project/ash/compare/v1.28.1...v1.29.0-rc0) (2021-01-21) ### Features: * freeform expressions * validatiosn in actions * query arguments * add `Ash.Query.for_read/3` * return changeset with API errors * add case insensitive string `CiString`/`:ci_string` * support `context/1` and `arg/1` in filter templates * support targeting notifications with the `for` option * add `ago/2` query function * add basic arithmetic operators (+, *, -, /) * `sensitive?` option for attributes * `sensitive?` option for arguments * `private` arguments, which can’t be set using `for_` * add `prevent_change` which will erase changes just before the changeset is committed * add `match?` validation that supports a custom error message * add `interval` type to support `ago/2` function * add `url_encoded_binary` type * add `function` type ### Bug Fixes: * properly expand module aliases for options w/o compile time dependency ### Improvements: * support all string constraints for ci_string * `changing?` is now a validation * add `Transformer.get_persisted/3` * add `api` field to `Notification` * standardize errors, add `to_error_class` * use `Comp` everywhere * use action on changeset if set by `for_` * `action_failed?` field on change sets * remove ability for data layers to add operators (for now at least) * Changeset.apply_attributes/2 now returns an error tuple * add a bunch of new/informative errors * runtime filter now uses left join logic (a naive implementation of it) * support more filter templates in resources * basic/naive type system for operators/functions * Add trim/allow_empty to string type (#171) ## [v1.28.1](https://github.com/ash-project/ash/compare/v1.28.0...v1.28.1) (2021-01-12) ### Improvements: * Improve attribute defaults (#164) ## [v1.28.0](https://github.com/ash-project/ash/compare/v1.27.1...v1.28.0) (2021-01-12) ### Features: * Add Embedded Resources (#170) ### Bug Fixes: * Correct error message (#163) ### Improvements: * Add built in decimal type (#162) ## [v1.27.1](https://github.com/ash-project/ash/compare/v1.27.0...v1.27.1) (2021-01-08) ### Bug Fixes: * fix small sort bugs ### Improvements: * add `Ash.Sort.parse_input/2` ## [v1.27.0](https://github.com/ash-project/ash/compare/v1.26.13...v1.27.0) (2021-01-08) ### Breaking Changes: * Use usec timestamps by default ### Improvements: * Add built in usec datetime type (#160) (#161) ## [v1.26.13](https://github.com/ash-project/ash/compare/v1.26.12...v1.26.13) (2021-01-08) ### Bug Fixes: * only cast public relationships/attributes ## [v1.26.12](https://github.com/ash-project/ash/compare/v1.26.11...v1.26.12) (2021-01-08) ### Bug Fixes: * `allow_nil?: false` for `integer_primary_key` ## [v1.26.11](https://github.com/ash-project/ash/compare/v1.26.10...v1.26.11) (2021-01-08) ### Improvements: * add `for_` helpers ## [v1.26.10](https://github.com/ash-project/ash/compare/v1.26.9...v1.26.10) (2021-01-07) ### Improvements: * Add built in binary type (#156) ## [v1.26.9](https://github.com/ash-project/ash/compare/v1.26.8...v1.26.9) (2021-01-06) ### Bug Fixes: * the `__resource__` change broke some extensions ## [v1.26.8](https://github.com/ash-project/ash/compare/v1.26.7...v1.26.8) (2021-01-06) ### Bug Fixes: * add back `extensions/1` helper to resources ## [v1.26.7](https://github.com/ash-project/ash/compare/v1.26.6...v1.26.7) (2021-01-06) ### Bug Fixes: * lazy loaded module issues (e.g in iex) ### Improvements: * optimize not-in and fix dialyzer * rework filter creation + subset checking ## [v1.26.6](https://github.com/ash-project/ash/compare/v1.26.5...v1.26.6) (2020-12-30) ### Bug Fixes: * validate read action existence ### Improvements: * support autocompletion on Api funcs ## [v1.26.5](https://github.com/ash-project/ash/compare/v1.26.4...v1.26.5) (2020-12-30) ### Improvements: * default actions ## [v1.26.4](https://github.com/ash-project/ash/compare/v1.26.3...v1.26.4) (2020-12-30) ### Bug Fixes: * fix compile issues, add docs ## [v1.26.3](https://github.com/ash-project/ash/compare/v1.26.2...v1.26.3) (2020-12-30) ### Improvements: * add `parse_input/3` to `Ash.Filter` ## [v1.26.2](https://github.com/ash-project/ash/compare/v1.26.1...v1.26.2) (2020-12-29) ### Improvements: * describe operator types ## [v1.26.1](https://github.com/ash-project/ash/compare/v1.26.0...v1.26.1) (2020-12-29) ### Bug Fixes: * only accept kw list in `aggregate/5` ## [v1.26.0](https://github.com/ash-project/ash/compare/v1.25.8...v1.26.0) (2020-12-29) ### Features: * support `:first` aggregate (#153) * support more sort orders ## [v1.25.8](https://github.com/ash-project/ash/compare/v1.25.7...v1.25.8) (2020-12-27) ### Bug Fixes: * separate builders + description in sections ## [v1.25.7](https://github.com/ash-project/ash/compare/v1.25.6...v1.25.7) (2020-12-27) ### Bug Fixes: * support `examples` on dsl sections ## [v1.25.6](https://github.com/ash-project/ash/compare/v1.25.5...v1.25.6) (2020-12-27) ### Bug Fixes: * cast string argument names * uuid/id pkeys should `allow_nil` ## [v1.25.5](https://github.com/ash-project/ash/compare/v1.25.4...v1.25.5) (2020-12-23) ### Bug Fixes: * support operators on both sides for not_eq ## [v1.25.4](https://github.com/ash-project/ash/compare/v1.25.3...v1.25.4) (2020-12-23) ### Bug Fixes: * fix filtering for ets + mnesia data layers ## [v1.25.3](https://github.com/ash-project/ash/compare/v1.25.2...v1.25.3) (2020-12-23) ### Bug Fixes: * various pagination, runtime, and auth bugs * default pagination limit triggers pagination ## [v1.25.2](https://github.com/ash-project/ash/compare/v1.25.1...v1.25.2) (2020-12-06) ### Bug Fixes: * resolve warning from nimbleoptions deprecation ## [v1.25.1](https://github.com/ash-project/ash/compare/v1.25.0...v1.25.1) (2020-12-02) ### Improvements: * support confirming arguments, test allow_nil? ## [v1.25.0](https://github.com/ash-project/ash/compare/v1.24.2...v1.25.0) (2020-12-02) ### Features: * support arguments for actions ## [v1.24.2](https://github.com/ash-project/ash/compare/v1.24.1...v1.24.2) (2020-12-01) ### Bug Fixes: * various build fixes * various small utility fixes * update get-tag ## [v1.24.1](https://github.com/ash-project/ash/compare/v1.24.0...v1.24.1) (2020-11-08) ### Bug Fixes: * do not require private attributes in create api (#143) ## [v1.24.0](https://github.com/ash-project/ash/compare/v1.23.3...v1.24.0) (2020-11-07) ### Features: * add uuid_primary_key/2 and integer_primary_key/2 ## [v1.23.3](https://github.com/ash-project/ash/compare/v1.23.2...v1.23.3) (2020-11-07) ### Bug Fixes: * derived belongs_to attributes are required if their parent is ## [v1.23.2](https://github.com/ash-project/ash/compare/v1.23.1...v1.23.2) (2020-11-06) ### Bug Fixes: * default create/update timestamps to private? ## [v1.23.1](https://github.com/ash-project/ash/compare/v1.23.0...v1.23.1) (2020-11-06) ### Bug Fixes: * set proper pagination defaults ## [v1.23.0](https://github.com/ash-project/ash/compare/v1.22.1...v1.23.0) (2020-11-03) ### Features: * Add property: private? for attributes, relationships, aggregates, and calculations (#140) ## [v1.22.1](https://github.com/ash-project/ash/compare/v1.22.0...v1.22.1) (2020-10-29) ### Improvements: * support specifying that some options are modules ## [v1.22.0](https://github.com/ash-project/ash/compare/v1.21.0...v1.22.0) (2020-10-28) ### Features: * multitenancy! and tons of various fixes (#139) ## [v1.21.0](https://github.com/ash-project/ash/compare/v1.20.1...v1.21.0) (2020-10-28) ### Improvements: * trace $callers through engine genservers ## [v1.20.1](https://github.com/ash-project/ash/compare/v1.20.0...v1.20.1) (2020-10-21) ### Bug Fixes: * better not_found error handling ## [v1.20.0](https://github.com/ash-project/ash/compare/v1.19.1...v1.20.0) (2020-10-21) ### Features: * Optimize relationship records replacement (#135) ### Bug Fixes: * remove unused code * various fixes and improvements ## [v1.19.1](https://github.com/ash-project/ash/compare/v1.19.0...v1.19.1) (2020-10-17) ### Bug Fixes: * invalid function arg parsing w/ ref ## [v1.19.0](https://github.com/ash-project/ash/compare/v1.18.1...v1.19.0) (2020-10-17) ### Features: * pubsub notifier (#134) ## [v1.18.1](https://github.com/ash-project/ash/compare/v1.18.0...v1.18.1) (2020-10-16) ### Bug Fixes: * engine hanging on parallel requests ## [v1.18.0](https://github.com/ash-project/ash/compare/v1.17.1...v1.18.0) (2020-10-15) ### Features: * add notifiers (#133) * Add `:one_of` constraint to the Atom type (#130) ## [v1.17.1](https://github.com/ash-project/ash/compare/v1.17.0...v1.17.1) (2020-10-12) ### Bug Fixes: * bugs with keyset pagination ## [v1.17.0](https://github.com/ash-project/ash/compare/v1.16.2...v1.17.0) (2020-10-12) ### Features: * Add pagination (#131) ## [v1.16.2](https://github.com/ash-project/ash/compare/v1.16.1...v1.16.2) (2020-10-10) ### Bug Fixes: * parse functions properly ## [v1.16.1](https://github.com/ash-project/ash/compare/v1.16.0...v1.16.1) (2020-10-10) ### Bug Fixes: * fix dialyzer * fix certain versions of elixir having issues ## [v1.16.0](https://github.com/ash-project/ash/compare/v1.15.1...v1.16.0) (2020-10-08) ### Features: * expression based filter ## [v1.15.1](https://github.com/ash-project/ash/compare/v1.15.0...v1.15.1) (2020-10-07) ## [v1.15.0](https://github.com/ash-project/ash/compare/v1.14.0...v1.15.0) (2020-10-06) ### Features: * filter rewrite to op/function/ref based structure * added description for missing resources (#117) ### Bug Fixes: * add module name to errors (#127) * Fix composite key in changeset functions (#125) ## [v1.14.0](https://github.com/ash-project/ash/compare/v1.13.4...v1.14.0) (2020-09-24) ### Features: * descriptions for actions and relationships (#116) ### Bug Fixes: * typespec/error message improvements ## [v1.13.4](https://github.com/ash-project/ash/compare/v1.13.3...v1.13.4) (2020-09-21) ### Bug Fixes: * upgrade picosat dependency * correct comment in UUID type (#115) ## [v1.13.3](https://github.com/ash-project/ash/compare/v1.13.2...v1.13.3) (2020-09-19) ### Features: * set_attribute builtin change * (greater_than/less_than)_or_equal predicates * support deletes as updates via "soft" * support base_filters ### Bug Fixes: * less_than predicate was flipped for runtime ## [v1.13.2](https://github.com/ash-project/ash/compare/v1.13.1...v1.13.2) (2020-09-07) ### Bug Fixes: * remove delegate data layer (#112) * delete process/global storage properly ## [v1.13.1](https://github.com/ash-project/ash/compare/v1.13.0...v1.13.1) (2020-09-04) ### Bug Fixes: * Fix identities (#110) ## [v1.13.0](https://github.com/ash-project/ash/compare/v1.12.0...v1.13.0) (2020-09-02) ### Features: * required belongs_to relationships (#107) * support filter templates on read actions * builtin concat calculation * add changes to actions (#106) * add `accept` option to create/update actions (#105) * add `Ash.NotLoaded` back, simpler defaults * improve errors (add stacktraces) ### Bug Fixes: * various delegate data layer improvements * engine halting issues * resolve engine deadlocks * support nested lists of filters ## [v1.12.0](https://github.com/ash-project/ash/compare/v1.11.1...v1.12.0) (2020-08-27) ### Features: - add `one_of` validation - add `simple` data layer, and make it default ### Bug Fixes: - allow anonymous functions in the dsl ## [v1.11.1](https://github.com/ash-project/ash/compare/v1.11.0...v1.11.1) (2020-08-26) ### Bug Fixes: - only update filter when its a filter - set resource in delegation query ## [v1.11.0](https://github.com/ash-project/ash/compare/v1.10.0...v1.11.0) (2020-08-26) ### Features: - support inner lateral joins (#100) - add identities, to enhance `get` calls (#99) - initial calculation support (#98) - initial calculation support ### Bug Fixes: - spec + dialyzer fixes - spec mix task run as no_return ## [v1.10.0](https://github.com/ash-project/ash/compare/v1.9.0...v1.10.0) (2020-08-22) ### Features: - Add delegate data_layer (#97) ## [v1.9.0](https://github.com/ash-project/ash/compare/v1.8.0...v1.9.0) (2020-08-19) ### Features: - various custom data_layer features ## [v1.8.0](https://github.com/ash-project/ash/compare/v1.7.0...v1.8.0) (2020-08-18) ### Features: - streamline `load` by accepting ok/error ### Bug Fixes: - extensions: resolve duplicate nested entities - use Ecto's NotLoaded for assocs for now - create/update typespecs were wrong ## [v1.7.0](https://github.com/ash-project/ash/compare/v1.6.8...v1.7.0) (2020-08-17) ### Features: - add `is_nil` predicate ### Bug Fixes: - add lexical scope to DSL for imports - crash on entity w/ no options specified - convert `eq: nil` into is_nil, fix credo ## [v1.6.8](https://github.com/ash-project/ash/compare/v1.6.7...v1.6.8) (2020-08-15) ### Bug Fixes: - some day tag names will work ## [v1.6.7](https://github.com/ash-project/ash/compare/v1.6.6...v1.6.7) (2020-08-15) ### Bug Fixes: - get the tag name for real this time ## [v1.6.6](https://github.com/ash-project/ash/compare/v1.6.5...v1.6.6) (2020-08-15) ### Bug Fixes: - try again to get the version name in tweets ## [v1.6.5](https://github.com/ash-project/ash/compare/v1.6.4...v1.6.5) (2020-08-15) ### Bug Fixes: - get the version property ## [v1.6.4](https://github.com/ash-project/ash/compare/v1.6.3...v1.6.4) (2020-08-15) ### Bug Fixes: - test out automatic tweeting ## [v1.6.3](https://github.com/ash-project/ash/compare/v1.6.2...v1.6.3) (2020-08-15) ### Bug Fixes: - remove bad package reference from the docs ## [v1.6.2](https://github.com/ash-project/ash/compare/v1.6.1...v1.6.2) (2020-08-13) ### Bug Fixes: - various fixes for graphql extension ## [v1.6.1](https://github.com/ash-project/ash/compare/v1.6.0...v1.6.1) (2020-08-10) ### Bug Fixes: - `load` typespecs ## [v1.6.0](https://github.com/ash-project/ash/compare/v1.5.1...v1.6.0) (2020-08-10) ### Features: - add named aggregates ### Bug Fixes: - various fixes from json:api integration ## [v1.5.1](https://github.com/ash-project/ash/compare/v1.5.0...v1.5.1) (2020-07-24) ### Bug Fixes: - scope data layer feature to aggregate kind ## v1.5.0 (2020-07-24) ### Features: - group metadata by path and async?: false - run aggregates async if not in query - aggregations! ## [v1.4.1](https://github.com/ash-project/ash/compare/1.4.0...v1.4.1) (2020-07-20) ### Bug Fixes: - simplify dsl building using `on_load` ## [v1.4.0](https://github.com/ash-project/ash/compare/1.3.1...v1.4.0) (2020-07-16) ### Features: - allow editing join association attributes ## [v1.3.1](https://github.com/ash-project/ash/compare/1.3.0...v1.3.1) (2020-07-16) ### Bug Fixes: - use proper errors everywhere ## [v1.3.0](https://github.com/ash-project/ash/compare/1.2.1...v1.3.0) (2020-07-15) ### Features: - various small refactors + validations ## [v1.2.1](https://github.com/ash-project/ash/compare/1.2.0...v1.2.1) (2020-07-13) ### Bug Fixes: - changeset + set_state issues ## [v1.2.0](https://github.com/ash-project/ash/compare/1.1.3...v1.2.0) (2020-07-13) ### Features: - refactor changes into changesets ## [v1.1.3](https://github.com/ash-project/ash/compare/1.1.2...v1.1.3) (2020-07-09) ## [v1.1.2](https://github.com/ash-project/ash/compare/1.1.1...v1.1.2) (2020-07-09) ## [v1.1.1](https://github.com/ash-project/ash/compare/1.1.0...v1.1.1) (2020-07-09) ### Bug Fixes: - small fixes ## [v1.1.0](https://github.com/ash-project/ash/compare/1.0.3...v1.1.0) (2020-07-09) ### Features: - lots of docs, simplify query generation - validate relationship keys ## [v1.0.3](https://github.com/ash-project/ash/compare/1.0.2...v1.0.3) (2020-07-08) ## [v1.0.2](https://github.com/ash-project/ash/compare/1.0.1...v1.0.2) (2020-07-07) ## [v1.0.1](https://github.com/ash-project/ash/compare/1.0.0...v1.0.1) (2020-07-07) ## [v1.0.0](https://github.com/ash-project/ash/compare/0.10.0...v1.0.0) (2020-07-07) ### Breaking Changes: - remove initial subscriptions pass ### Features: - general improvements ### Bug Fixes: - in predicate + engine errors ## [v0.10.0](https://github.com/ash-project/ash/compare/0.9.1...v0.10.0) (2020-07-02) ### Breaking Changes: - remove atom type, add docs ### Features: - list types - refactor ash types to modules, add constraints ### Bug Fixes: - remove benchee, ensure mnesia always uses transactions - try clearing cache to fix CI - stop gitignoring the mnesia data layer - try to fix ash.formatter task - test/improve parallelizable requests - require that resources have primary keys ## [v0.9.1](https://github.com/ash-project/ash/compare/0.9.0...v0.9.1) (2020-06-30) ### Bug Fixes: - move to simpler transaction logic ## [v0.9.0](https://github.com/ash-project/ash/compare/0.8.0...v0.9.0) (2020-06-29) ### Features: - add less_than and greater_than filter support - validate all related resources in API ### Bug Fixes: - fix tests/credo - fix tests, add tests for gt/lt filters ## [v0.8.0](https://github.com/ash-project/ash/compare/0.7.0...v0.8.0) (2020-06-29) ### Features: - cross data layer filters - cross data layer filtering ## [v0.7.0](https://github.com/ash-project/ash/compare/0.6.5...v0.7.0) (2020-06-27) ### Features: - section option configuration ### Bug Fixes: - set persistent_term properly ## [v0.6.5](https://github.com/ash-project/ash/compare/0.6.4...v0.6.5) (2020-06-22) ### Bug Fixes: - use authorization filters in side loads ## [v0.6.4](https://github.com/ash-project/ash/compare/0.6.3...v0.6.4) (2020-06-22) ### Bug Fixes: - remove reverse relationships ## [v0.6.3](https://github.com/ash-project/ash/compare/0.6.2...v0.6.3) (2020-06-22) ### Bug Fixes: - many filter/side load fixes/improvements ## [v0.6.2](https://github.com/ash-project/ash/compare/0.6.1...v0.6.2) (2020-06-20) ### Bug Fixes: - allow side_load option on create/update ## [v0.6.1](https://github.com/ash-project/ash/compare/0.6.0...v0.6.1) (2020-06-20) ### Bug Fixes: - raised error message contents - parent error messages - relationship path clause ## [v0.6.0](https://github.com/ash-project/ash/compare/0.5.2...v0.6.0) (2020-06-19) ### Features: - boolean filter refactor (#78) - predicate behaviour ## [v0.5.2](https://github.com/ash-project/ash/compare/0.5.1...v0.5.2) (2020-06-15) ### Bug Fixes: - consider nested entities in ash.formatter ## [v0.5.1](https://github.com/ash-project/ash/compare/0.5.0...v0.5.1) (2020-06-15) ### Bug Fixes: - compile application in ash.formatter task ## [v0.5.0](https://github.com/ash-project/ash/compare/0.4.0...v0.5.0) (2020-06-15) ### Features: - extension section module imports, generated .formatter.exs (#71) ## [v0.4.0](https://github.com/ash-project/ash/compare/0.3.0...v0.4.0) (2020-06-14) ### Features: - rebuild DSL inner workings for extensibility (#70) - add `after_compile` and validate primary key ### Bug Fixes: - dialyzer warnings - honor the `authorize?` flag ### Improvements: - add `date` support (#68) ## [v0.3.0](https://github.com/ash-project/ash/compare/0.2.0...v0.3.0) (2020-06-05) ### Features: - remove name/type from ash core ### Bug Fixes: - account for action/actor args to interface - remove the rest of the deps on name/type - add `resource_module?/1` back to `Ash` ## [v0.2.0](https://github.com/ash-project/ash/compare/0.1.9...v0.2.0) (2020-06-05) ### Features: - use option schemas in the interface (#30) ## [v0.1.9](https://github.com/ash-project/ash/compare/0.1.8...v0.1.9) (2020-06-04) ### Bug Fixes: - references to error handling code - fix empty filter checks ## [v0.1.8](https://github.com/ash-project/ash/compare/0.1.7...v0.1.8) (2020-06-02) This release is a test of our automatic hex.pm package publishing ## [v0.1.7](https://github.com/ash-project/ash/compare/0.1.6...v0.1.7) (2020-06-02) This release is a test of our automatic hex.pm package publishing ## [v0.1.6](https://github.com/ash-project/ash/compare/0.1.5...v0.1.6) (2020-06-02) This release is a test of our automatic hex.pm package publishing ## [v0.1.5](https://github.com/ash-project/ash/compare/0.1.4...v0.1.5) (2020-06-02) This release is a test of our automatic hex.pm package publishing ## [v0.1.4](https://github.com/ash-project/ash/compare/0.1.3...v0.1.4) (2020-06-02) This release covers the initial linting/dialyzing improvements ## (2020-06-01) ### Changelog Begins