feat: support recursive DSL entities. improvement: unimport to avoid name collisions in nested DSLs
66 KiB
Change Log
All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
v1.51.2 (2022-02-17)
Bug Fixes:
-
don't blow away sections when formatting
-
properly reorder sections in the formatter
v1.51.1 (2022-02-17)
Bug Fixes:
- solve reorder bugs in formatter
v1.51.0 (2022-02-14)
Features:
- add
source
option to attributes
v1.50.21 (2022-02-14)
Improvements:
- add
cast_in_query?/0
toAsh.Type
v1.50.20 (2022-02-11)
Improvements:
- small data layer improvements
v1.50.19 (2022-02-07)
Bug Fixes:
-
include a missing module
-
properly set filterability on attributes
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 (2022-01-31)
Improvements:
- optimize
if
andis_nil
functions
v1.50.16 (2022-01-24)
Bug Fixes:
- use
ash_struct_fields
to accumulate schema struct field defaults
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
tochange
-
support data layers bulk adding aggregates
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 (2021-12-21)
Bug Fixes:
- properly construct reverse relationship paths
Improvements:
- cover more potential cases in filter parsing
v1.50.12 (2021-12-19)
Bug Fixes:
-
support new versions of ecto's struct fields
-
fixes for elixir_sense plugin
v1.50.11 (2021-12-13)
Improvements:
- add elixir_sense extension, to be merged when ready (#275)
v1.50.10 (2021-12-08)
Improvements:
-
add
Ash.DataLayer.Simple.set_data/2
-
complete mutually_exclusive_and_collectively_exhaustive logic
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 (2021-12-01)
Bug Fixes:
- case clause error in
Query.equivalent_to?
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 (2021-11-26)
Improvements:
- add
Transformer.eval/3
(for special use cases only)
v1.50.5 (2021-11-25)
Improvements:
- track defaults being set
v1.50.4 (2021-11-17)
Improvements:
- add
Ash.Query.equivalent_to/2
v1.50.3 (2021-11-17)
Improvements:
- add
subset_of?
andsuperset_of?
query macros
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 (2021-11-09)
Bug Fixes:
- simplify and improve allow_nil checking
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 (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 (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 (2021-10-29)
Bug Fixes:
v1.48.0-rc.28 (2021-10-29)
Bug Fixes:
- add changes from last release that I forgot
v1.48.0-rc.27 (2021-10-29)
Improvements:
- compile time optimizations via configuration
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 (2021-10-25)
Bug Fixes:
- always lateral join for many to many relationships
Improvements:
- add
default
option for aggregates
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 (2021-10-24)
Bug Fixes:
- breaking change! disambiguating functions in keyword filter syntax
v1.48.0-rc.22 (2021-10-23)
Bug Fixes:
- use correct typespec for
Ash.Sort.parse_input/2
v1.48.0-rc.21 (2021-10-22)
Improvements:
- add get? metadata
v1.48.0-rc.20 (2021-10-21)
Improvements:
- custom error paths for managed relationships
v1.48.0-rc.19 (2021-10-20)
Bug Fixes:
- honor
get_by
andget_by_identity
on bang (!) interfaces
v1.48.0-rc.18 (2021-10-20)
Improvements:
-
add
get_by
andget_by_identity
to code interface -
compile time validations for managed relationships
v1.48.0-rc.17 (2021-10-19)
Bug Fixes:
- don't require primary actions if disabled
v1.48.0-rc.16 (2021-10-19)
Improvements:
- add
primary_actions?
option
v1.48.0-rc.15 (2021-10-15)
Bug Fixes:
- don't validate allow_nil in attribute casting
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 (2021-10-12)
Bug Fixes:
- honor base query still when removing filters
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 (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 (2021-10-07)
Bug Fixes:
- remove certain modules from avoiding recompilation
v1.48.0-rc.9 (2021-10-07)
Improvements:
- deprecation!
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 (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 (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 chaning -
add global changes
v1.48.0-rc.5 (2021-09-17)
Improvements:
-
upgrade docs/tooling for elixir_sense
-
set docs statically
v1.48.0-rc.4 (2021-09-17)
Improvements:
- improvements for elixirsense integration
v1.48.0-rc.3 (2021-09-16)
Improvements:
-
transformer/extension improvements
-
add path to errors
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 (2021-09-13)
Bug Fixes:
- check action type properly in attribute validations
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 (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 (2021-08-29)
Bug Fixes:
- hydrate metadata types
Improvements:
- remove metadata from read actions
v1.47.10 (2021-08-29)
Bug Fixes:
-
update to latest picosat_elixir for releases
-
cast
nil
enum values propertly -
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 (2021-08-11)
Bug Fixes:
-
set argument defaults early
-
don't add indices to non-list inputs in managed relationships
v1.47.8 (2021-08-05)
Bug Fixes:
- stop managed relationships from sourcing wrong data
v1.47.7 (2021-08-04)
Bug Fixes:
-
redact fields in the resource struct as well
-
allow
before_action
to managebelongs_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 (2021-08-01)
Bug Fixes:
-
honor
on_missing:
behavior for belongs_to relationships -
properly remove old belongs_to records
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 (2021-07-25)
Improvements:
- pull relationship paths out of functions
v1.47.3 (2021-07-23)
Bug Fixes:
- no need to trap exits anymore
v1.47.2 (2021-07-23)
Bug Fixes:
- don't match on explicitly
:exit
v1.47.1 (2021-07-23)
Bug Fixes:
-
catch normal exit message from engine
-
flush engine state always
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 (2021-07-21)
Bug Fixes:
-
ensure calculation compiled
-
don't limit/offset aggregate queries
v1.46.12 (2021-07-20)
Bug Fixes:
- call
get_type
in cast_stored again
v1.46.11 (2021-07-19)
Improvements:
-
speed up type loading
-
add
__order__
field to be used by data layers
v1.46.10 (2021-07-18)
Bug Fixes:
- missing apply_attributes clause
Improvements:
- add
force?
option toapply_attributes/2
v1.46.9 (2021-07-18)
Bug Fixes:
- demonitor engine pid after run
v1.46.8 (2021-07-18)
Bug Fixes:
- on_lookup read is always on destination
v1.46.7 (2021-07-17)
Bug Fixes:
- set item constraints properly
Improvements:
- add on_lookup_read_action
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 (2021-07-09)
Improvements:
-
always replace error message vars
-
minimize relationship source changeset context inspect size
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 (2021-07-05)
Bug Fixes:
- build aggregate paths properly
v1.46.2 (2021-07-04)
Improvements:
- info only
required?
flag forhas_one
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 (2021-07-02)
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
onnil
-
add
{:arg, :name}
input forset_attribute
-
revamp ci_string
-
add
Ash.Type.type/1
-
more optimized types
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
onnil
-
add
{:arg, :name}
input forset_attribute
-
revamp ci_string
-
add
Ash.Type.type/1
-
more optimized types
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
onnil
-
add
{:arg, :name}
input forset_attribute
-
revamp ci_string
-
add
Ash.Type.type/1
-
more optimized types
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
onnil
-
add
{:arg, :name}
input forset_attribute
-
revamp ci_string
-
add
Ash.Type.type/1
-
more optimized types
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 forset_attribute
-
revamp ci_string
-
add
Ash.Type.type/1
-
more optimized types
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 (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 (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 (2021-06-24)
Bug Fixes:
- optimize ash type loading
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 (2021-06-23)
Bug Fixes:
- properly encode ci string to json
Improvements:
- more engine logging
v1.45.0-rc7 (2021-06-22)
Bug Fixes:
:infinity
on engine genserver calls
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 (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 (2021-06-05)
Improvements:
- support calculation sorts
v1.45.0-rc3 (2021-06-05)
Bug Fixes:
- always wait on the engine if it hasn't completed
v1.45.0-rc2 (2021-06-04)
Bug Fixes:
- always wait for engine
Improvements:
- spawn async requests where possible
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 (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 (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 (2021-05-23)
Improvements:
- define embedded schemas where appropriate
v1.44.11 (2021-05-20)
Improvements:
- calculation.select/2 +
select
calculation option
v1.44.10 (2021-05-20)
Bug Fixes:
- run after_action hooks in the proper order
Improvements:
-
add
validate_destination_field?
-
add builtin
select
change
v1.44.9 (2021-05-20)
Improvements:
- set moduledoc to description if one is not set
v1.44.8 (2021-05-19)
Bug Fixes:
- fix dialyzer errors for enum + code interface
v1.44.7 (2021-05-19)
Bug Fixes:
- fix code interface +
args
combo error
Improvements:
- support specifying the
upsert_identity
option
v1.44.6 (2021-05-18)
Bug Fixes:
-
ignore?: true
still accumulates changes -
properly require_attributes before setting defaults
v1.44.5 (2021-05-18)
Bug Fixes:
- set default values before calling resource changes
Improvements:
ignore?
option formanage_relationship
change
v1.44.4 (2021-05-17)
Bug Fixes:
- reverse-reverse relationship detection
v1.44.3 (2021-05-17)
Bug Fixes:
- support non-predicates in satsolver
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 (2021-05-14)
Bug Fixes:
- handle error return in code_interface getter
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 (2021-05-11)
Improvements:
-
set
__source__
context for embeds -
utility
manage_relationship_source
context
v1.43.11 (2021-05-09)
Bug Fixes:
- internal rename (requires version bump for other packages)
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 (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 (2021-05-07)
Bug Fixes:
- don't raise unnecessary side load error
v1.43.7 (2021-05-07)
Improvements:
- fix data-based side loads
v1.43.6 (2021-05-07)
Bug Fixes:
-
IsNil function to IsNil operator
-
function clause match error in not expression
v1.43.5 (2021-05-07)
Bug Fixes:
- limit 1 on to one side load queries
v1.43.4 (2021-05-07)
Improvements:
- support sorted relationships
v1.43.3 (2021-05-06)
Bug Fixes:
-
don't consider contextual relationships as reverse relationships
-
support
not
in query expressions
v1.43.2 (2021-05-04)
Bug Fixes:
- include aggregates in count request for aggregate filters
v1.43.1 (2021-05-04)
Bug Fixes:
- use base_query for aritifical limit/offset when loading
v1.43.0 (2021-05-03)
Features:
- rework lateral joins for many to many performance boost
Improvements:
- add
read_action
option
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 (2021-04-27)
Improvements:
- add
has
filter predicate
v1.41.11 (2021-04-26)
Improvements:
- add
:list
aggregate kind
v1.41.10 (2021-04-25)
Bug Fixes:
- don't include
NotLoaded
inmanage_relationship
v1.41.9 (2021-04-23)
Bug Fixes:
- compile time fixes
Improvements:
- add
require_attributes
to create/update/destroy
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 (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 (2021-04-16)
Bug Fixes:
- use items for single constraints
v1.41.5 (2021-04-15)
Bug Fixes:
- don't overwrite select in side_load
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 (2021-04-14)
Bug Fixes:
- handle no key provided to
NotFound
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 (2021-04-13)
Bug Fixes:
get!
should raise onnil
not{:ok, nil}
v1.41.0 (2021-04-13)
Features:
- change
get?: true
interface functions to raise onnil
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 (2021-04-13)
Features:
- change
get?: true
interface functions to raise onnil
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 (2021-04-12)
Bug Fixes:
- always select necessary load fields for nested loads
v1.39.6 (2021-04-10)
Bug Fixes:
- always select necessary fields for side loading
v1.39.5 (2021-04-09)
Bug Fixes:
- logic bug in selecting specific fields
v1.39.4 (2021-04-09)
Improvements:
- support the datalayer selecting fields in reads
v1.39.3 (2021-04-04)
Improvements:
- add sum aggregate (#221)
v1.39.2 (2021-04-04)
Improvements:
- allow specifying that calculation can't be nil (#220)
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 (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?
onvalidate
, validate inline
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 (2021-03-29)
Bug Fixes:
-
don't overwrite managed
belongs_to
relationships -
handle
on_lookup
+on_no_match
forbelongs_to
-
fix required relationships and add test
-
fix required relationships
-
various managed_relationship fixes
v1.37.1 (2021-03-28)
Bug Fixes:
-
fix required relationships and add test
-
fix required relationships
-
various managed_relationship fixes
v1.37.0 (2021-03-25)
Features:
- add manage relationship types
Improvements:
-
don't accept relationships on actions anymore
-
require arguments
v1.36.22 (2021-03-24)
Bug Fixes:
- add tenant metadata before after action hooks
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 (2021-03-24)
Bug Fixes:
- support
tenant
option in read interface
v1.36.19 (2021-03-22)
Bug Fixes:
- always return changeset when runner failed
v1.36.18 (2021-03-22)
Improvements:
- docs + dialyzer + error improvements
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 (2021-03-22)
Bug Fixes:
- force_change_attributes before passing to action
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 (2021-03-21)
Improvements:
- Add float type (#204)
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 (2021-03-19)
Improvements:
- make
Ash.Error
a public module
v1.36.11 (2021-03-19)
Improvements:
- docs/default value for params
v1.36.10 (2021-03-19)
Bug Fixes:
-
set
source_field
when replacingbelongs_to
relationship -
don't consider
false
as absent value -
set argument name in
manage_relationship
Improvements:
- trim whitespace in uuid
v1.36.9 (2021-03-18)
Improvements:
- improve the behavior of defaults
v1.36.8 (2021-03-17)
Bug Fixes:
- validate required attributes after before_action hooks
v1.36.7 (2021-03-17)
Improvements:
- discard certain empty values for embed input
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 (2021-03-14)
Bug Fixes:
- remove the
as
option
Improvements:
- Add timestamps() attribute (#198)
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 (2021-03-13)
Bug Fixes:
- set argument default on cast
v1.36.2 (2021-03-12)
Bug Fixes:
-
fix pub_sub on update
-
fix
publish_all
pub_sub notifier
Improvements:
-
derive has_one destination_field
-
finalize code API logic
-
add not_found_message + violation_message for relationships
-
support
get_by_<identity>
in interface -
support sublists in pub_sub topics
-
support
:_tenant
in pub_sub topics
v1.36.1 (2021-03-09)
Bug Fixes:
- properly filter aggregates
Improvements:
- accept
tenant
infor_read
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 (2021-03-07)
Bug Fixes:
- don't reverse sub-entities in DSL
v1.35.0 (2021-03-07)
Features:
- support
Ash.Query.select/3
andAsh.Changeset.select/3
v1.34.9 (2021-03-05)
Improvements:
- ignore destination field on some relationship inputs
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 (2021-02-26)
Bug Fixes:
- fix nested boolean expression optimization
v1.34.6 (2021-02-24)
Bug Fixes:
- manage_relationship fixes, input + option defaults
v1.34.5 (2021-02-24)
Bug Fixes:
-
treat empty string as
nil
inmanage_relationship
-
be more conservative (and more correct) when optimizing predicates
v1.34.4 (2021-02-24)
Bug Fixes:
-
treat empty string as
nil
inmanage_relationship
-
be more conservative (and more correct) when optimizing predicates
v1.34.3 (2021-02-23)
Bug Fixes:
- fix builtin
mange_relationship
change
v1.34.2 (2021-02-23)
Bug Fixes:
- support belongs_to relationships properly
v1.34.1 (2021-02-23)
Bug Fixes:
- authorize if actor key is present
v1.34.0 (2021-02-23)
Features:
- refactored manage_relationship options/behavior
Improvements:
-
many compile time fixes via code splitting
-
Guess destination_field for has many relationships (#187)
-
Implement string length validation (#183)
v1.33.1 (2021-02-23)
Improvements:
-
many compile time fixes via code splitting
-
Guess destination_field for has many relationships (#187)
-
Implement string length validation (#183)
v1.33.0 (2021-02-05)
Features:
-
add default_context
-
add
manage_relationship/4
-
add relationship specific context (for postgres polymorphism)
-
add
reject
(opposite ofaccept
)
Bug Fixes:
- support
manage_relationship
forbelongs_to
Improvements:
-
set_context change/preparation
-
set
accept
by default
v1.32.2 (2021-01-28)
Improvements:
- support
{:filter, _}
authorization results for changesets
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 toget/2
-
support
message
option on identities
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 (2021-01-24)
Bug Fixes:
- remove invalid boolean expression optimization
Improvements:
- make form errors work better with phoenix
v1.31.0 (2021-01-24)
Features:
- add
contains/2
query function
Bug Fixes:
- various ci_string improvements
v1.30.2 (2021-01-22)
Bug Fixes:
- add explicit jason dependency
v1.30.1 (2021-01-22)
Bug Fixes:
- update elixir versions in CI
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 (2021-01-21)
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
andarg/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 usingfor_<action>
-
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 supportago/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 toNotification
-
standardize errors, add
to_error_class
-
use
Comp
everywhere -
use action on changeset if set by
for_<action_type>
-
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 (2021-01-12)
Improvements:
- Improve attribute defaults (#164)
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 (2021-01-08)
Bug Fixes:
- fix small sort bugs
Improvements:
- add
Ash.Sort.parse_input/2
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 (2021-01-08)
Bug Fixes:
- only cast public relationships/attributes
v1.26.12 (2021-01-08)
Bug Fixes:
allow_nil?: false
forinteger_primary_key
v1.26.11 (2021-01-08)
Improvements:
- add
for_<action>
helpers
v1.26.10 (2021-01-07)
Improvements:
- Add built in binary type (#156)
v1.26.9 (2021-01-06)
Bug Fixes:
- the
__resource__
change broke some extensions
v1.26.8 (2021-01-06)
Bug Fixes:
- add back
extensions/1
helper to resources
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 (2020-12-30)
Bug Fixes:
- validate read action existence
Improvements:
- support autocompletion on Api funcs
v1.26.5 (2020-12-30)
Improvements:
- default actions
v1.26.4 (2020-12-30)
Bug Fixes:
- fix compile issues, add docs
v1.26.3 (2020-12-30)
Improvements:
- add
parse_input/3
toAsh.Filter
v1.26.2 (2020-12-29)
Improvements:
- describe operator types
v1.26.1 (2020-12-29)
Bug Fixes:
- only accept kw list in
aggregate/5
v1.26.0 (2020-12-29)
Features:
-
support
:first
aggregate (#153) -
support more sort orders
v1.25.8 (2020-12-27)
Bug Fixes:
- separate builders + description in sections
v1.25.7 (2020-12-27)
Bug Fixes:
- support
examples
on dsl sections
v1.25.6 (2020-12-27)
Bug Fixes:
-
cast string argument names
-
uuid/id pkeys should
allow_nil
v1.25.5 (2020-12-23)
Bug Fixes:
- support operators on both sides for not_eq
v1.25.4 (2020-12-23)
Bug Fixes:
- fix filtering for ets + mnesia data layers
v1.25.3 (2020-12-23)
Bug Fixes:
-
various pagination, runtime, and auth bugs
-
default pagination limit triggers pagination
v1.25.2 (2020-12-06)
Bug Fixes:
- resolve warning from nimbleoptions deprecation
v1.25.1 (2020-12-02)
Improvements:
- support confirming arguments, test allow_nil?
v1.25.0 (2020-12-02)
Features:
- support arguments for actions
v1.24.2 (2020-12-01)
Bug Fixes:
-
various build fixes
-
various small utility fixes
-
update get-tag
v1.24.1 (2020-11-08)
Bug Fixes:
- do not require private attributes in create api (#143)
v1.24.0 (2020-11-07)
Features:
- add uuid_primary_key/2 and integer_primary_key/2
v1.23.3 (2020-11-07)
Bug Fixes:
- derived belongs_to attributes are required if their parent is
v1.23.2 (2020-11-06)
Bug Fixes:
- default create/update timestamps to private?
v1.23.1 (2020-11-06)
Bug Fixes:
- set proper pagination defaults
v1.23.0 (2020-11-03)
Features:
- Add property: private? for attributes, relationships, aggregates, and calculations (#140)
v1.22.1 (2020-10-29)
Improvements:
- support specifying that some options are modules
v1.22.0 (2020-10-28)
Features:
- multitenancy! and tons of various fixes (#139)
v1.21.0 (2020-10-28)
Improvements:
- trace $callers through engine genservers
v1.20.1 (2020-10-21)
Bug Fixes:
- better not_found error handling
v1.20.0 (2020-10-21)
Features:
- Optimize relashionship records replacement (#135)
Bug Fixes:
-
remove unused code
-
various fixes and improvements
v1.19.1 (2020-10-17)
Bug Fixes:
- invalid function arg parsing w/ ref
v1.19.0 (2020-10-17)
Features:
- pubsub notifier (#134)
v1.18.1 (2020-10-16)
Bug Fixes:
- engine hanging on parallel requests
v1.18.0 (2020-10-15)
Features:
-
add notifiers (#133)
-
Add
:one_of
constraint to the Atom type (#130)
v1.17.1 (2020-10-12)
Bug Fixes:
- bugs with keyset pagination
v1.17.0 (2020-10-12)
Features:
- Add pagination (#131)
v1.16.2 (2020-10-10)
Bug Fixes:
- parse functions properly
v1.16.1 (2020-10-10)
Bug Fixes:
-
fix dialyzer
-
fix certain versions of elixir having issues
v1.16.0 (2020-10-08)
Features:
- expression based filter
v1.15.1 (2020-10-07)
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 (2020-09-24)
Features:
- descriptions for actions and relationships (#116)
Bug Fixes:
- typespec/error message improvements
v1.13.4 (2020-09-21)
Bug Fixes:
-
upgrade picosat dependency
-
correct comment in UUID type (#115)
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 (2020-09-07)
Bug Fixes:
-
remove delegate data layer (#112)
-
delete process/global storage properly
v1.13.1 (2020-09-04)
Bug Fixes:
- Fix identities (#110)
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 (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 (2020-08-26)
Bug Fixes:
-
only update filter when its a filter
-
set resource in delegation query
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 (2020-08-22)
Features:
- Add delegate data_layer (#97)
v1.9.0 (2020-08-19)
Features:
- various custom data_layer features
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 (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 (2020-08-15)
Bug Fixes:
- some day tag names will work
v1.6.7 (2020-08-15)
Bug Fixes:
- get the tag name for real this time
v1.6.6 (2020-08-15)
Bug Fixes:
- try again to get the version name in tweets
v1.6.5 (2020-08-15)
Bug Fixes:
- get the version property
v1.6.4 (2020-08-15)
Bug Fixes:
- test out automatic tweeting
v1.6.3 (2020-08-15)
Bug Fixes:
- remove bad package reference from the docs
v1.6.2 (2020-08-13)
Bug Fixes:
- various fixes for graphql extension
v1.6.1 (2020-08-10)
Bug Fixes:
load
typespecs
v1.6.0 (2020-08-10)
Features:
- add named aggregates
Bug Fixes:
- various fixes from json:api integration
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 (2020-07-20)
Bug Fixes:
- simplify dsl building using
on_load
v1.4.0 (2020-07-16)
Features:
- allow editing join association attributes
v1.3.1 (2020-07-16)
Bug Fixes:
- use proper errors everywhere
v1.3.0 (2020-07-15)
Features:
- various small refactors + validations
v1.2.1 (2020-07-13)
Bug Fixes:
- changeset + set_state issues
v1.2.0 (2020-07-13)
Features:
- refactor changes into changesets
v1.1.3 (2020-07-09)
v1.1.2 (2020-07-09)
v1.1.1 (2020-07-09)
Bug Fixes:
- small fixes
v1.1.0 (2020-07-09)
Features:
-
lots of docs, simplify query generation
-
validate relationship keys
v1.0.3 (2020-07-08)
v1.0.2 (2020-07-07)
v1.0.1 (2020-07-07)
v1.0.0 (2020-07-07)
Breaking Changes:
- remove initial subscriptions pass
Features:
- general improvements
Bug Fixes:
- in predicate + engine errors
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 (2020-06-30)
Bug Fixes:
- move to simpler transaction logic
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 (2020-06-29)
Features:
-
cross data layer filters
-
cross data layer filtering
v0.7.0 (2020-06-27)
Features:
- section option configuration
Bug Fixes:
- set persistent_term properly
v0.6.5 (2020-06-22)
Bug Fixes:
- use authorization filters in side loads
v0.6.4 (2020-06-22)
Bug Fixes:
- remove reverse relationships
v0.6.3 (2020-06-22)
Bug Fixes:
- many filter/side load fixes/improvements
v0.6.2 (2020-06-20)
Bug Fixes:
- allow side_load option on create/update
v0.6.1 (2020-06-20)
Bug Fixes:
-
raised error message contents
-
parent error messages
-
relationship path clause
v0.6.0 (2020-06-19)
Features:
-
boolean filter refactor (#78)
-
predicate behaviour
v0.5.2 (2020-06-15)
Bug Fixes:
- consider nested entities in ash.formatter
v0.5.1 (2020-06-15)
Bug Fixes:
- compile application in ash.formatter task
v0.5.0 (2020-06-15)
Features:
- extension section module imports, generated .formatter.exs (#71)
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 (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 toAsh
v0.2.0 (2020-06-05)
Features:
- use option schemas in the interface (#30)
v0.1.9 (2020-06-04)
Bug Fixes:
-
references to error handling code
-
fix empty filter checks
v0.1.8 (2020-06-02)
This release is a test of our automatic hex.pm package publishing
v0.1.7 (2020-06-02)
This release is a test of our automatic hex.pm package publishing
v0.1.6 (2020-06-02)
This release is a test of our automatic hex.pm package publishing
v0.1.5 (2020-06-02)
This release is a test of our automatic hex.pm package publishing
v0.1.4 (2020-06-02)
This release covers the initial linting/dialyzing improvements