Zach Daniel
adda85297c
fix: multiple filter-checks in policy conditions were not composing properly
2024-05-24 22:58:05 -04:00
Zach Daniel
3057c4d936
chore: make credo happy
2024-05-24 21:57:54 -04:00
Zach Daniel
c45ecbfa49
fix: properly honor trailing policies that are constantly false
2024-05-24 21:03:06 -04:00
Zach Daniel
3510cd48f4
chore: clean up changelog and format
2024-05-24 00:35:13 -04:00
Zach Daniel
dc94f3a743
improvement: support nils_distinct?
on identities
...
improvement: support `where` option on `identities`
improvement: allow calculations in identity keys
closes #1001
closes #1182
2024-05-24 00:24:42 -04:00
Zach Daniel
808692bbd7
fix: improve non-atomic-upgrade policy handling
...
fix: ensure we have a primary key for certain kinds of calculations:
2024-05-23 18:34:15 -04:00
Zach Daniel
e63d80e645
fix: handle subquery-requiring calculations in calculate/2
2024-05-23 17:33:29 -04:00
Zach Daniel
feb187bdf6
improvement: add atomic_upgrade?
flag to update/destroy actions
...
improvement: do not do atomic upgrade by default unless `require_atomic?` is `true`
improvement: allow configuring the read action used by atomic upgrades
2024-05-23 11:05:17 -04:00
Zach Daniel
67c6e5e22a
fix: ensure that all notifications are sent for bulk destroy/update
...
closes #1186
2024-05-22 18:42:19 -04:00
danielatdpg
05379e15b2
fix: handle list of atomic conditions ( #1194 ) ( #1195 )
2024-05-22 11:38:15 -04:00
ab3786ebf6
feat(Ash.Reactor): Add bulk_update
step type. ( #1185 )
2024-05-22 15:26:51 +12:00
Riccardo Binetti
86676cd0fc
feat: allow retrieving the count of paginated relationships ( #1183 )
2024-05-21 08:48:11 -04:00
Jinkyou Son
aae679f50e
improvement: Implement show_sensitive?
config ( #1180 )
...
* Refactor with Ash.Helpers.redact/1
* Implement show_sensitive? config
* Use Application.compile_env/3 instead of Application.get_env/3
* Update sensitive-data.md
2024-05-21 08:47:51 -04:00
807ed72e89
chore: run formatter.
2024-05-21 09:17:58 +12:00
1d5d247d7a
feat(Ash.Reactor): Add bulk_create
step type.
2024-05-21 09:14:02 +12:00
Zach Daniel
a162b52b7f
fix: use Ash.Sort.parse_input/3
in Ash.Query.sort_input/2
2024-05-20 09:52:52 -04:00
Riccardo Binetti
9fc5ddfe2b
fix: make Ash.Resource.Validation.Changing work correctly in atomics ( #1178 )
...
- Use the correct option key to select the field
- Fail without hitting the data layer if the attribute is not changing
- Allow checking relationships like the non-atomic counterpart
2024-05-16 18:15:35 -05:00
Riccardo Binetti
16b7ea7693
fix: check the where condition before checking validation atomicity ( #1177 )
...
:not_atomic was returned for a non-atomic validation even if the where condition
evaluated to false
2024-05-16 15:49:08 -05:00
Zach Daniel
23d7479417
fix: handle nil
notification results better
...
fix: don't emit after batch notifications if `notify?: false`
2024-05-16 11:19:24 -05:00
Riccardo Binetti
65e9f51907
fix: don't require domain for empty stream bulk update and destroy ( #1175 )
...
It can't be extracted from an empty list, but it's not actually needed
2024-05-16 09:57:10 -05:00
Rebecca Le
619a0d61ad
bug: Add more failing tests around cascade_destroy functionality ( #1173 )
...
Issues occur when there is no data to cascade destroy, or notifications are requested but none are returned
2024-05-16 09:54:22 -05:00
Zach Daniel
7f7c1377cf
fix: properly validate input action on bulk destroy
...
fix: allow setting `authorize?: false`
2024-05-16 00:02:18 -05:00
Rebecca Le
48b458c4fd
bug: Add failing test for verifying bulk destroy actions ( #1172 )
...
* bug: Add failing test for verifying bulk destroy actions
* bug: Add failing test for skipping authorization checks on a bulk destroy
2024-05-15 23:24:44 -05:00
Zach Daniel
7ec98ef8ab
fix: properly persist simple_notifiers
2024-05-15 16:46:16 -04:00
Zach Daniel
5b18e71738
fix: accept ids in code interfaces again
2024-05-15 15:45:58 -04:00
Zach Daniel
ad0274b0a3
improvement: add pattern matching for clarity on ref/1
and ref/2
...
chore: remove debug logger configuration from test
2024-05-15 11:25:54 -04:00
Zach Daniel
2681684922
improvement: add can_return_nil?/1
callback to Ash expressions
2024-05-14 17:58:13 -04:00
Zach Daniel
3263ec2ee9
fix: don't show a type error on nil
for lists
...
closes #1166
2024-05-14 17:09:34 -04:00
Davide Briani
449da541e2
Fix: keep data's metadata in atomic update ( #1165 )
2024-05-14 13:17:51 -04:00
Zach Daniel
23d78ec43f
improvement: use the source
configuration for attributes in embedded resources
...
closes #1143
2024-05-14 12:32:25 -04:00
12de8d19a5
fix(cascade_destroy): Always return and explicitly dispatch notifications.
...
**note** `notify?` option is now `return_notifications?`.
2024-05-13 09:28:20 +12:00
70c1a688f8
feat: Add cascade_destroy
to builtin changes.
2024-05-13 09:28:20 +12:00
Zach Daniel
11f0f9aa03
fix: ensure that changeset filters are honored in ETS destroy/update_query
...
fix: in simulated bulk actions, a stale record should be ignored
fix: don't rollback transactions on stale records
2024-05-12 16:16:39 -04:00
Riccardo Binetti
1f8c27225f
chore: add failing tests for filter on stream bulk update/destroy ( #1151 )
2024-05-12 15:32:13 -04:00
Zach Daniel
b48c989b15
fix: don't check required belongs to fields until after setting them in bulk creation
...
docs: fix doc links for code interface guide
fixes #1154
2024-05-12 14:12:24 -04:00
Zach Daniel
32446b0b2e
chore: fixes around policy exceptions
...
docs: add policy how-to guide
2024-05-10 15:26:23 -04:00
Riccardo Binetti
d5ae3f37b6
fix: ignore required pagination for relationships ( #1147 )
...
Maintain backwards compatibility
2024-05-10 11:48:10 -04:00
Zach Daniel
b6c8b1c2ec
fix: allow calculations to access what would forbidden fields of related items
...
context for this change:
this requires a potentially risky modification to how field policies are
applied for nested queries and embedded types, which is that we now
apply field policies for nested queries in a post-processing pass.
Bugs in this code could lead to forbidden fields being displayed
when they shouldn't be. Luckily we have tests for this kind of thing :)
2024-05-08 16:22:48 -04:00
Riccardo Binetti
0e899dbbb3
improvement: add tenant to data earlier in read ( #1137 )
2024-05-08 09:21:01 -04:00
Zach Daniel
0e004ead7a
fix: support empty lists as bulk arguments to code interface options
...
fixes #1126
2024-05-07 16:46:41 -04:00
Zach Daniel
ce559bc018
fix: temporarily disable field policy deselection optimization
...
also added a test for related field calc dependencies,
commented out until I fix it later
2024-05-07 16:08:56 -04:00
Barnabas Jovanovics
d2bfaff377
test: add test for calc deps that are forbidden ( #1128 )
2024-05-07 15:39:04 -04:00
Zach Daniel
f5ab6a6bd8
fix: ensure that reuse_values?
is honored all the way down the chain
2024-05-07 15:38:03 -04:00
Riccardo Binetti
7f701cfb57
chore: add failing test for calculation reuse across loads ( #1127 )
2024-05-07 12:28:22 -04:00
Zach Daniel
64ecdad657
fix: properly deduplicate calculations
2024-05-06 20:32:41 -04:00
Riccardo Binetti
c3c330224d
chore: add failing test for calculation loaded twice in Ash.load/3 ( #1122 )
2024-05-06 19:25:17 -04:00
Pierre Cavin
3cf9fcd8e5
feat: add new remove_nil_items? array type constraint ( #1116 )
2024-05-05 12:05:04 -04:00
Pierre Cavin
c05544663e
fix: run array type nil check after item constraints ( #1115 )
2024-05-05 11:49:23 -04:00
Riccardo Binetti
5dfea1df9b
feat: add relationship pagination ( #1050 )
2024-05-04 05:56:46 -04:00
Riccardo Binetti
7507cdd731
fix: make lateral join filtering in ETS data layer work ( #1111 )
...
One of the two branches was using the non-bang version of a function, which
returned `{:ok, filter}`. That value was then directly put in the Query struct,
resulting in an invalid filter that was never applied.
2024-05-03 16:56:18 -04:00