Tags: jlgeering/ash
Tags
release v3.0.0-rc.36 [v3.0.0-rc.36](ash-project/ash@v3.0.0-rc.35...v3.0.0-rc.36) (2024-04-28) Bug Fixes: * set `resource` option in bulk interfaces * check resource match below checking query input
release v3.0.0-rc.35 [v3.0.0-rc.35](ash-project/ash@v3.0.0-rc.34...v3.0.0-rc.35) (2024-04-28) Bug Fixes: * only use `Map.new` for inputs if input is keyword in code interface * properly set action type on changeset * set `changed?` context on bulk actions
release v3.0.0-rc.34 [v3.0.0-rc.34](ash-project/ash@v3.0.0-rc.33...v3.0.0-rc.34) (2024-04-27) Improvements: * simplifications and clarifications around bulk callback behavior * don't add `autogenerated_id` to embeds by default * allow skipping primary keys on embedded resources
release v3.0.0-rc.33 [v3.0.0-rc.33](ash-project/ash@v3.0.0-rc.32...v3.0.0-rc.33) (2024-04-27) Improvements: * support changeset filters in ets
release v3.0.0-rc.32 [v3.0.0-rc.32](ash-project/ash@v3.0.0-rc.31...v3.0.0-rc.32) (2024-04-27) Bug Fixes: * properly handle atomic upgrade when policies can't be strict checked
release v3.0.0-rc.31 [v3.0.0-rc.31](ash-project/ash@v3.0.0-rc.30...v3.0.0-rc.31) (2024-04-26) Features: * Ash.create and Ash.update oneliner (ash-project#1055) * Ash.create and Ash.update oneliner Bug Fixes: * various fixes around bulk action upgrades, atomics * handle resource being passed as query code_interface.ex (ash-project#1057) * do not use Enum.map_join (ash-project#1058) * opts dispatch for create and update Improvements: * Treat asterisk as a single arguemnt in accept (ash-project#1062) * support atomics, update_query, destroy_query in ETS data layer
release v3.0.0-rc.30 [v3.0.0-rc.30](ash-project/ash@v3.0.0-rc.29...v3.0.0-rc.30) (2024-04-24) Bug Fixes: * use Splode.ErrorClass for error classes (ash-project#1054) Improvements: * remove `after_atomic` and instead support `after_batch` * Add attributes_present, attributes_absent. (ash-project#1046)
release v3.0.0-rc.29 [v3.0.0-rc.29](ash-project/ash@v3.0.0-rc.28...v3.0.0-rc.29) (2024-04-23) Breaking Changes: * 3.0 (ash-project#955) * use `%Ash.NotSelected{}` for unselected values * default `require_atomic?` to `true` * raise errors on unknown generic action arguments * default bulk strategy to `:atomic` * warnings on `require_atomic?` `true` actions * revise `Ash.NotSelected` to `Ash.NotLoaded` * errors on unknown action inputs across the board * default `api.authorization.authorize` to `:by_default` * require the api when constructing changesets * code_interface.define_for -> code_interface.api * remove registries * pubsub notifier default to `previous_values?: false` * requires_original_data? callback defaults to false * rename Ash.Calculation -> Ash.Resource.Calculation * improve `Ash.Query.Calculation.new` signature * anonymous function calculations now take lists and return lists * make callback contexts into structs * pass context to builtin lifecycle hook changes * calculation arguments are now in the `arguments` key of the context * remove `aggregates` and `calculations` from `Filter.parse` and `Filter.parse_input` * make picosat_elixir optional with `simple_sat` * rename api to domain * remove `Ash.Changeset.new!` * deprecate `private?: false` in favor of `public?: true` * default `default_accept` is now `[]` * `Ash.CiString.new/1` returns `nil` on `nil` input * clean up and reorganize `Ash` functions * remove context-based functionality * Deprecate calling functions on (domain) api in favor of `Ash` * add `attribute_public?` and update `attribute_writable?` behavior * update atomic behaviors, default to invalid * changeset.filters -> changeset.filter * remove deprecated functions * remove and simplify `Ash.Filter.TemplateHelpers` * keyword lists are no longer special cased in ash expressions * introduce strict mode to calculations * reverse order of before action & before transaction hooks * default read actions are now paginatable * require explicit accept lists in default actions * remove Ash.Flow and Ash.Engine * standardize various exception keys and names * use `Splode` for errors * move simple_notifiers to an option instead of a DSL builder * update spark for better autocomplete, configure autocomplete for key functions * swap position of sort order and arguments in calculation sorting * add `include_nil?` aggregate option, and default it to `false` * errors on unknown inputs for calculations Features: * leverage resource domain for eager/pre checking (ash-project#1040) * configurable multitenancy on read actions (ash-project#1030) * Ash.Reactor: Add new `change` step type which can be used to modify changesets. * add `update_change` function and builtin change (ash-project#976) * code interface on the domain Bug Fixes: * ensure that errors for nested forms are transformed * Set tenant for managed relationship changeset (ash-project#1044) * don't carry over all changes during atomic upgrade * properly pin `Enum.join` in atomic for enum types * ensure actor is set when building queries in filter * don't eager evaluate type because it breaks data layers * ensure `__union_tag__` is set when calling sub-union types * handle more `&Mod.fun/n` variations in fragments * ensure validations are considered atomic * ensure tenant and actor are properly set in `Ash.can?` * ensure changeset filter is parsed for templates * properly parse additional changeset expression * properly parse changeset template for filters * properly parse changeset filter * ensure changeset filters are applied on bulk destroy/update * fix typo in load test (ash-project#1031) * support all calculate opts in code interface methods (ash-project#1026) * ensure `to_tenant` is copied to aggregate query * compilation time improvements (hopefully) * `code_interface` actions accept `@context` (ash-project#1016) * ensure tenant is set to `opts` in action helpers * ensure more consistent use of `Ash.Tenant.to_tenant/2` * ensure that strict loads are applied at all nesting levels * properly load depended on fields for relationships even if `public?: false` * fix date_add query function (ash-project#1010) * pass name through to underlying tasks * Validate all conditions in a `numericality` validation instead of only the last (ash-project#997) * swap the parameters in Ash.ToTenant.to_tenant/2 (ash-project#1003) * Ash.Reactor: crash when calling an ash reactor for the first time. * add context argument to `before_action` and `after_action` for read actions * add base case for Ash.Resource.Info.public_relationship/2 (ash-project#1000) * honor new calcualtion sort format in sort parser * don't raise error on keyword input to create interface * action is an atom in erroor case for bulk update * undo adding primary key argument for methods with `get?` (ash-project#989) * remove `internal?` and `stacktraces?` from common opts (ash-project#988) * pattern match error in managed relationships * include options for generic action code interfaces * logic errors around arguments/changing attributes in validations * handle partially atomic validations in run_action_changes * more improvements to resource matching in `can?` * detect more cases for domain extraction from resources * properly dispatch managed relationships to proper domain * check target resource's domain before assuming it is the same as current domain * return {:error, query} for invalid query in Aggregate.run/4 (ash-project#982) * allow strings in Ash.Type.Enum again * set tenant in bulk creates after setting up changeset * use the resource's domain above option domain * properly cast identity keys before comparison * properly handle multiple paths for checking sortable relationships * multi-line DSL doc options in `Ash.Reactor`. (ash-project#974) * don't call domain at compile time if its not loaded * ensure that generic action arguments have proper default for public? * ensure we don't double-query values after manual actions * properly handle lists of errors added by validations * honor `only_when_valid?` on validations in bulk actions * fix typespec for bulk_create * ending a policy w/ `authorize_if` had flipped conditional * handle `sensitive?` option in query aggregate/calculation (ash-project#963) * properly retain input order for embedded attributes * fix `changing_attributes` check implementation * properly handle transaction errors from bulk creates * set tenant on query so that root calles to Api.aggreagte work as expected (ash-project#929) * properly construct new query in `build/3` * make bang variant of field aggregates work correctly (ash-project#954) * enforce multitenancy on aggregates (ash-project#952) * fix missing tenant in some bulk contexts (ash-project#951) * Fix places where tenant is not passed along (ash-project#950) Improvements: * make extension discovery faster * add `mix deps.audit` task to shared CI * better eager expression parsing and atomic error anticipation * add `Ash.read_first` * helpful output in mix tasks helper * use explicit read actions when reading relationships (ash-project#1029) * use cached to_tenant when setting tenant attribute (ash-project#1021) * support `require_reference?: false` on code interfaces * support `:filter` option on bulk create/destroy * make `match/1` overridable in Ash.Type.Enum (ash-project#1020) * adding domain to embedded resource is an error * raise more sensible error on unsupported pagination * support builder options in `read` code interfaces * support omitting generic action return types * call ToTenant protocol when setting tenant in actions (ash-project#1004) * add `ash.rollback` mix task * add `ash.rollback` task * add `config :ash, require_atomic_by_default?, false`, for upgrading * support `skip_unknown_inputs` in `Ash.bulk_create` * Ash.Reactor: Allow `create` to be provided an initial value. * Allow Reactor modules to be run directly from generic actions. (ash-project#993) * add `Ash.Query.apply_to/3` * synthesize attributes from atomics for better notifications * make Ash.Resource.Validation.Match partially atomic (ash-project#979) * make Ash.Resource.Validation.Match partially atomic * add `skip_unknown_inputs` for generic actions * support `allow_nil_input` dsl option in update/destroy (ash-project#964) * allow accepting private attributes * allow adding non-public attributes to explicit accept lists * better error messages for private attribute accepting * use resource api when verifying its presence in a known api * change `type` argument position in `Ash.Query.calculate` (ash-project#959) * allow simple check to return error tuple (ash-project#956) * skip unknown inputs when managing relationships * ignore unknown string-keyed inputs beginning with `_` * support requesting to ignore additional keys * add `skip_unknown_inputs` option, use it for embeds in unions * ensure that update defaults are set * update spark to 2.0 * update reactor to 3.0 * import Ash.Expr in modules where it is used * require Ash.QUery in modules where it makes sense * add structs for more context implementations * ensure selects are applied on destroys * support custom expressions * update upgrade guide to include Splode * only require primary key if resource has actions or fields * only build schema if resource has actions or fields * verify primary key in its own verifier * add `resource/1` builtin check * better code interface documentation * support notifiers within actions * support specifying multiple filters * add `sortable?` flags to all fields * support multiple filters on relationships * support sensitive? on calculations and arguments * validate resources in inputs to code interface * update reactor and tests * don't require domain on relationships if destination has domain * always choose to cast atomic * support casting some embeds atomically * various 3.0 updates, documented in upgrade.md * ensure non-static dynamic domains works * add Ash.ToTenant protocol * use `Keyword.put_new` in `Ash.Context.to_opts` (ash-project#953) * support bulk and atomic operations in code interfaces
release v3.0.0-rc.28 [v3.0.0-rc.28](ash-project/ash@v3.0.0-rc.27...v3.0.0-rc.28) (2024-04-23) Features: * leverage resource domain for eager/pre checking (ash-project#1040) Bug Fixes: * don't carry over all changes during atomic upgrade * properly pin `Enum.join` in atomic for enum types * ensure actor is set when building queries in filter Improvements: * make extension discovery faster * add `mix deps.audit` task to shared CI
release v2.21.13 [v2.21.13](ash-project/ash@v2.21.12...v2.21.13) (2024-04-23) Bug Fixes: * disable atomic upgrade for 2.0 * ensure actor is set when calling `for_read` * `code_interface` actions accept `@context` for `Ash 2.0` (ash-project#1017) * `code_interface` actions accept `@context` for `Ash 2.0` * ensure opts properly contain the `tenant` * properly set tenant on aggregate query * properly set action_type when preparing changesets (ash-project#1012) * types: can and can? types were only addressing create when using the tuple method, the code also accepts the record for update & destroy * allow strings in Ash.Type.Enum again * set tenant in bulk creates after setting up changeset * properly cast identity keys before comparison * properly handle lists of errors added by validations * honor only_when_valid? in bulk actions * policy ending with authorize_unless had flipped conditional * properly handle transaction errors from bulk creates Improvements: * support `allow_nil_input` dsl option in update/destroy (ash-project#965) * allow simple check to return error tuple (ash-project#958) * ensure that update defaults are set
PreviousNext