Commit graph

2955 commits

Author SHA1 Message Date
Brian
69c77acedd
fix: mix igniter.install ash --example case clause error (#1317) 2024-07-17 18:53:21 -04:00
Zach Daniel
5c095d0e6d fix: only use attribute for filtering when multitenancy strategy == :attribute 2024-07-17 15:54:54 -04:00
Zach Daniel
6632f599bc chore: keep only correct changes from earlier reverts 2024-07-17 15:08:19 -04:00
Zach Daniel
05cdaa04c5 Revert "fix: honor atomic validations in destroy actions using filter"
This reverts commit a6a9961c0d.
2024-07-17 15:06:39 -04:00
Zach Daniel
1db2b0f9d6 Revert "chore: undo change to bulk destroy omitting changeset.filter"
This reverts commit 6484881290.
2024-07-17 15:06:33 -04:00
Zach Daniel
6484881290 chore: undo change to bulk destroy omitting changeset.filter 2024-07-17 14:48:25 -04:00
Zach Daniel
a6a9961c0d fix: honor atomic validations in destroy actions using filter
test: add tests for atomic validations in destroy actions
2024-07-17 14:32:57 -04:00
Hannes Wüthrich
dad0bfd1c4
fix: handle casting nil vectors (#1316) 2024-07-17 09:52:12 -04:00
Zach Daniel
dd5bf4a0c0 improvement: update spark for docs fixes, hide aggregate kind 2024-07-17 08:04:17 -04:00
Rebecca Le
a49d99b67f
docs: Set default value for include_nil? aggregate option (#1315)
* docs: Note that the `kind` option is pre-set for aggregates when using the DSL
2024-07-17 07:45:01 -04:00
Zach Daniel
15655e06ef fix: don't handle nil in Ash.Type.cast_input/3 2024-07-17 06:44:50 -04:00
Torkild Gundersen Kjevik
b3a7c44be0
feat: Add ash_step wrapper. (#1311)
Adds `ash_step` to `Ash.Reactor` which collects notifications.
2024-07-17 20:01:41 +12:00
Zach Daniel
ba869426d6 fix: properly honor the include_nil? option 2024-07-16 22:24:16 -04:00
Zach Daniel
fd26fd895a Revert "fix: don't use type/3 in string interpolation"
This reverts commit 570fc50565.
2024-07-16 22:24:08 -04:00
Zach Daniel
8d3a4c3e46 fix: store after_action hooks added outside of changes for atomic upgrade 2024-07-16 10:07:51 -04:00
Zach Daniel
570fc50565 fix: don't use type/3 in string interpolation 2024-07-16 07:20:55 -04:00
Zach Daniel
e407d7ca44 fix: properly pass include_nil? from when building query aggregates 2024-07-16 06:09:26 -04:00
Zach Daniel
297c916d11 improvement: allow skipping initialization of types in unions 2024-07-16 05:54:04 -04:00
Zach Daniel
fe00d22a25 chore: the function was deprecated the other way 🤦 2024-07-15 14:12:50 -04:00
Zach Daniel
3bc730bfcf chore: update deprecated call 2024-07-15 14:10:34 -04:00
Zach Daniel
97a37a4bf8 improvement: update spark for newest composable igniters 2024-07-15 13:33:05 -04:00
Zach Daniel
5215c4e124 chore: fix build 2024-07-15 08:18:01 -04:00
Zach Daniel
de9b5575eb improvement: add Ash.Domain.Igniter.list_domains/1
improvement: add `Ash.Resource.Igniter.list_resources/1`
2024-07-15 08:17:26 -04:00
Tore Pettersen
37755a870b
feat: Allow field policies to hide private fields (#1289)
* Allow field policies to hide private fields

* Create option for how to handle private fields

* Improve docs
2024-07-15 08:16:52 -04:00
Zach Daniel
d70da28536 chore: second arg to unpaginated_read is action not opts 2024-07-14 11:57:04 -04:00
Zach Daniel
47a796789a fix: use unpaginated_read when simulating streaming for low limit queries 2024-07-14 11:50:11 -04:00
Zach Daniel
56b98e88d8 chore: don't use :any as default basis type 2024-07-14 11:32:21 -04:00
Zach Daniel
c5b118a37c fix: don't use :same return type for most operators
fix: don't use returns as basis type unless explicitly allowed
2024-07-14 11:22:20 -04:00
Zach Daniel
a665a17c59 chore: format 2024-07-14 10:47:43 -04:00
Zach Daniel
84d76b3b28 fix: ensure today has properly configured returns type 2024-07-14 10:45:34 -04:00
Roberts Guļāns
2c37e71d46
fix: module type apply_constraints for nil fix (#1313) 2024-07-14 09:51:21 -04:00
Zach Daniel
0fe27ba670 chore: more compile dependency removals 2024-07-14 09:10:48 -04:00
Zach Daniel
7c6631636b chore: remove compile dependency issues in Ash.Expr 2024-07-14 09:09:52 -04:00
Zach Daniel
ed7a6daa34 improvement: add Ash.Expr.determine_type(mod, children) 2024-07-14 08:59:05 -04:00
Zach Daniel
46033427f4 chore: get build passing 2024-07-14 08:43:49 -04:00
Zach Daniel
f6a9fc3db3 improvement: add return typing to functions 2024-07-14 08:14:49 -04:00
Zach Daniel
4026c2686d fix: don't specify that get_path is a predicate function
chore: remove newly added atomic type casting code
2024-07-13 16:04:25 -04:00
Zach Daniel
a7730bdbb9 improvement: improve type signature for if/3
improvement: support returning a list of atomics from atomic change callbacks
2024-07-13 15:39:19 -04:00
Zach Daniel
476dfede63 improvement: add cast_atomic_constraints callback and use it in core typest 2024-07-12 23:12:59 -04:00
Zach Daniel
67044646c1 improvement: simpler and/or short circuiting 2024-07-12 19:17:27 -04:00
Zach Daniel
cafacee02b fix: properly omit destroyed result in code interfaces 2024-07-12 08:22:12 -04:00
Zach Daniel
40ba1140e0 fix: properly compare expr to min with min integer constraint 2024-07-12 08:18:56 -04:00
Torkild Gundersen Kjevik
e9d8928bb6
fix: Make action ctx-values from reactor-ctx take precedence if set. (#1308) 2024-07-11 19:39:58 -04:00
Zach Daniel
9d4341ce9f chore: fix read_opts setting for previous change 2024-07-11 10:39:26 -04:00
Zach Daniel
d2f25d7ac5 fix: ensure that errors in queries do not raise in atomic upgrades/single atomics 2024-07-11 10:30:31 -04:00
Torkild Gundersen Kjevik
ad6954aca8
improvement: add strict? option to Ash.Query.load (#1302)
---------

Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2024-07-11 09:34:30 -04:00
Franklin Rakotomalala
9f695aaae4
docs: Improve documentation example (#1299) 2024-07-10 15:52:33 -04:00
Robin Chowdhury
be91d777f1
fix: use correct contraint when validating min int (#1298) 2024-07-10 12:57:17 -04:00
Zach Daniel
6606b64855 chore: use public? context in add_expression_part/3 2024-07-10 12:45:52 -04:00
Andreas Donig
28c1aa4f30
improvement: don't refer to private attributes when parsing filter inputs that refer to relationships (#1280)
---------

Co-authored-by: Andreas Donig <git@innwiese.de>
2024-07-10 12:14:27 -04:00
Zach Daniel
426ee6671d fix: ensure that manual action configurations are honored for bulk actions 2024-07-10 11:24:48 -04:00
Zach Daniel
ebdf8eca46 fix: installer doesn't need to add spark as a dependency, just run its installer 2024-07-10 09:04:04 -04:00
Zach Daniel
cdb3ddc5e4 chore: accept value and ignore it in Ash.Error.Unknown.UnknownError 2024-07-09 20:46:54 -04:00
Zach Daniel
ab793e030a improvement: allow overriding cast_stored/2 and dump_to_native/2 2024-07-09 11:42:50 -04:00
Zach Daniel
b94b34d3dc improvement: specify info/2 callbacks for tasks w/ options 2024-07-09 09:08:33 -04:00
Zach Daniel
0129285340 improvement: update getting started guide and document generators 2024-07-08 17:15:52 -04:00
Zach Daniel
885727fb87 improvement: add Ash.Igniter.codegen/2 2024-07-08 15:58:47 -04:00
Zach Daniel
57d11f65a7 fix: sort primary key changes ahead of others in atomic changes 2024-07-08 11:50:06 -04:00
Zach Daniel
55a5d5572b Revert "fix: reverse list of atomic validations before adding to query"
This reverts commit 8a2cb3146f.
2024-07-08 11:19:09 -04:00
Zach Daniel
8a2cb3146f fix: reverse list of atomic validations before adding to query 2024-07-08 11:15:13 -04:00
Hannes Wüthrich
2da5fe3395
fix: add callback to Changeset.around_transaction/2 spec (#1292) 2024-07-08 09:51:12 -04:00
Hannes Wüthrich
0c10cacb34
chore: fix formatting (#1293) 2024-07-08 09:50:27 -04:00
Zach Daniel
e1dffc0c0c fix: properly enforce tenancy on all mutative actions 2024-07-06 13:41:58 -04:00
Zach Daniel
9de400de9c fix: lateral join on from_many? true relationships 2024-07-06 06:32:59 -04:00
Riccardo Binetti
ecb5e0a4fd
fix: generate a MapSet, not a list, when creating calculation deps (#1284)
add_calculation_dependency expects a MapSet
2024-07-05 06:45:07 -04:00
Zach Daniel
1823374880 chore: add context to query properly with calculation dependencies 2024-07-04 13:32:39 -04:00
Zach Daniel
25faa93a83 chore: thread calc & relationship paths through calculation dependency loader 2024-07-04 10:39:22 -04:00
Zach Daniel
5a4fdcc362 fix: don't reuse calculations/aggregates if authorize? is true 2024-07-04 09:46:38 -04:00
Zach Daniel
920f52ff27 chore: fix build 2024-07-04 08:55:39 -04:00
Zach Daniel
3ef92b47ee fix: less heavy-handed fix of reverted change to fix calculation dependencies 2024-07-04 08:50:16 -04:00
Zach Daniel
fa94e76855 Revert "fix: don't reuse requested relationship loads for calculations"
This reverts commit 49da3638f1.
2024-07-04 07:09:56 -04:00
Zach Daniel
49da3638f1 fix: don't reuse requested relationship loads for calculations
this is less efficient, and there are still some cases where
we could combine queries, but we need to first solve the behavioral
issues where relationships loaded for calculations could sometimes be loaded
in an "authorized" state when they should not be. We can improve the
speed/efficiency later, correctness is more important.
2024-07-03 18:32:20 -04:00
Zach Daniel
00405aeb9e fix: ensure aggregate context is fully fleshed out in Ash.aggregate
closes #1277
2024-07-03 12:35:15 -04:00
Zach Daniel
a06b161591 fix: properly set context on streamed batch changesets 2024-07-03 11:34:05 -04:00
Hannes Wüthrich
0e5587552c
fix: invert logic for lazy-loading calculations/aggregates (#1275) 2024-07-03 07:06:11 -04:00
Zach Daniel
dd7dad60d8 chore: install/4 -> install/5 2024-07-02 16:56:44 -04:00
Zach Daniel
bb73544e09 chore: leverage latest from igniter 2024-07-02 16:55:05 -04:00
Zach Daniel
6db94e810c chore: authorized aggregate refs must retain ref path information 2024-07-02 15:42:52 -04:00
Zach Daniel
d997902a6c chore: raise explicit error on missing last_relationship/2 2024-07-02 15:19:33 -04:00
Zach Daniel
56b04aa13e chore: ensure query has context from subject in Ash.can 2024-07-02 14:53:17 -04:00
Zach Daniel
fd907cd260 chore: properly halt on exception 2024-07-02 14:37:38 -04:00
Zach Daniel
a3b026404e test: add passing test for bulk update code interface policies
fix: properly match on async task exceptions
2024-07-02 14:33:13 -04:00
Zach Daniel
f42c78ff8c fix: ensure context is available when filling policy templates 2024-07-02 13:06:41 -04:00
Zach Daniel
25a0615d49 chore: properly concat notifications lists 2024-07-02 12:52:42 -04:00
Zach Daniel
a0178205b4 fix: simplify and ensure context is threaded from opts->context 2024-07-02 12:30:41 -04:00
Zach Daniel
f13895b0f2 fix: override authorize?: nil context
fix: ensure forbidden errors behave the same on `id` provided to code interfaces
2024-07-02 11:05:13 -04:00
Zach Daniel
894e958c98 chore: format 2024-07-02 10:41:48 -04:00
Zach Daniel
b1d9c81725 chore: more list.wrapping of notifications 2024-07-02 10:41:15 -04:00
Zach Daniel
76775b40d4 chore: wrap lists before adding in notifications 2024-07-02 10:30:36 -04:00
Zach Daniel
17c92bdf3d fix: pass entire private context to related query in lazy?: true 2024-07-02 10:24:49 -04:00
Barnabas Jovanovics
f7397160b2
fix: use action from changeset (#1273) 2024-07-02 07:22:25 -04:00
Zach Daniel
e991575eb5 chore: use latest igniter features 2024-07-01 21:32:56 -04:00
Zach Daniel
d53ad508cd test: update non-simple-equality manual relationship tests 2024-07-01 17:32:32 -04:00
Zach Daniel
6bf4945228 chore: properly match on single pkey and multi pkey in manual relationship matching 2024-07-01 17:25:56 -04:00
kernel-io
3265b36589
fix: compare keys in manual relationships when using 'complex' types (#1270)
Signed-off-by: kernel-io <kernel-io@users.noreply.github.com>
2024-07-01 17:21:01 -04:00
Zach Daniel
90b3f9455a chore: properly wrap notifications list in changeset 2024-07-01 10:19:23 -04:00
Zach Daniel
3e1b15eae4 improvement: remove non-simple equality check for uuidv7 type 2024-07-01 09:38:23 -04:00
Andreas Donig
d436278616
fix: filter parsing cases (#1261)
* Fix the issue with the order of cases

* Make it pass all tests

* Add a test case for the new feature

---------

Co-authored-by: Andreas Donig <git@innwiese.de>
2024-06-30 07:26:25 -04:00
Zach Daniel
659a061b16 fix: ensure notifications are dispatched from bulk actions 2024-06-28 17:10:29 -04:00
Zach Daniel
f5232aa929 chore: do a transaction for after action hooks 2024-06-28 13:40:54 -04:00
Zach Daniel
4c0faabbec Revert "fix: gather up process notifications from atomic transaction"
This reverts commit 62c832a6b3.
2024-06-28 12:53:37 -04:00
Zach Daniel
62c832a6b3 fix: gather up process notifications from atomic transaction 2024-06-28 11:40:44 -04:00
Zach Daniel
2d29dab90b fix: set tenant context when calling data layers
fix: set `from_many?` if a `has_one` has a `sort` applied

(because there is no other reason to apply a `sort`)
2024-06-28 11:13:34 -04:00
Zach Daniel
675e5b3e41 fix: don't set tenant on query unless context multitenancy is set 2024-06-27 21:14:40 -04:00
Zach Daniel
6898bde0a4 fix: proper return value from synthesized joins
fix: properly support multitenancy in joins in ets
2024-06-27 20:53:35 -04:00
Zach Daniel
30d73d5307 fix: ensure that calculation options are expanded 2024-06-26 14:18:27 -04:00
Ryan
a117327c0c
test: assert that notifications are sent for bulk updates and destroys using the :stream strategy (#1266) 2024-06-25 12:39:18 -04:00
Matheus Cardoso
fc0ff54744
docs: Fix typo in Ash.Type constraint (#1264) 2024-06-25 09:21:50 -04:00
Zach Daniel
e4c3f825bb chore: only show values of errors from single known unions 2024-06-24 22:16:15 -04:00
Zach Daniel
c2a57c6e61 chore: don't use error_message on errors when casting single known union 2024-06-24 22:10:26 -04:00
Zach Daniel
14470bfd96 fix: properly return notifications on bulk code interface actions 2024-06-24 21:56:46 -04:00
Zach Daniel
6549fed3dd fix: properly send notifications for transaction: :all 2024-06-24 21:46:10 -04:00
Zach Daniel
dcfd53f22f chore: add back in and improve tmp_ref logic 2024-06-24 21:33:55 -04:00
Zach Daniel
daf4b08ab1 chore: more fixes for ash_started_transaction? 2024-06-24 19:55:38 -04:00
Zach Daniel
1d45802d32 fix: ensure we reset ash_started_transaction process flag 2024-06-24 19:51:20 -04:00
Zach Daniel
fb5e7e7e74 fix: ensure we always set ash_started_transaction? back to false 2024-06-24 19:47:24 -04:00
kernel-io
7ac9d9bdb2
fix: gather notifications in main ref not tmp ref. (#1263)
Signed-off-by: kernel-io <kernel-io@users.noreply.github.com>
2024-06-24 18:51:03 -04:00
Zach Daniel
83434b0d1a improvement: bulk destroy for handling array changes in embeds
improvement: set `__union_tag__` constraint in array handlers for unions
fix: sleep to avoid uuidv7 specifity flaky test
test: remove unused variable in tests
2024-06-24 09:48:08 -04:00
Zach Daniel
ec4ff55529 fix: ensure that we notify on code-interface id synthesized bulk operations 2024-06-24 08:38:45 -04:00
Zach Daniel
60630f23a6 fix: initialize subtypes of unions
fix: properly apply load-through behavior for arrays
2024-06-23 21:12:12 -04:00
Zach Daniel
eb5490fe6f improvement: support offset in the simple data layer
closes #1257
2024-06-23 20:22:21 -04:00
Zach Daniel
ced91af39f chore: avoid trying nil loads 2024-06-23 18:58:39 -04:00
Andreas Donig
23d504e151
Handle relationship filter on primary key (#1254)
Co-authored-by: Andreas Donig <git@innwiese.de>
2024-06-23 18:20:28 -04:00
Alessio Montagnani
7f2e7d3ec1
improvement: bring uuid version 7 into the core (#1253) 2024-06-23 18:16:20 -04:00
Zach Daniel
e17fa8a1c5 chore: get build passing 2024-06-23 17:44:02 -04:00
Zach Daniel
85b928b0d9 chore: remove IO.inspect 🤦🏻 2024-06-23 17:42:46 -04:00
Zach Daniel
9421dbe535 improvement: properly handle after_action hooks in fully atomic changesets 2024-06-23 17:41:11 -04:00
Zach Daniel
78114226a6 improvement: yes, we can in fact do after action hooks atomically 2024-06-23 16:30:10 -04:00
Zach Daniel
abb28cae4a improvement: make after_action change builtin atomic 2024-06-23 16:09:18 -04:00
Zach Daniel
04707aafd7 chore: elixir 1.17 warning 2024-06-21 19:41:08 -04:00
Zach Daniel
5727cc273f improvement: add mix ash.install
improvement: add `mix ash.gen.resource`
improvement: add `mix ash.gen.base_resource`
improvement: add `mix ash.gen.domain`
improvement: add `mix ash.extend`
2024-06-21 19:09:35 -04:00
Zach Daniel
af1fa5eca3 fix: use the proper opts when calling manual updates in bulk updates 2024-06-21 15:01:14 -04:00
Davide Briani
b256e1d8a3
test: Test loading paginated relationship when tenant is in primary key (#1252)
* Chore: test loading paginated relationship when tenant is in primary key

Ash is already able to load paginated relationships on multitenant
resources after a create or update action.
However this change specifically test the case of a many to many
relationship where the tenant is included in the primary key of the
joined resources.

Signed-off-by: Davide Briani <davide@briani.dev>

* fix: apply pagination at runtime for non lateral join queries
fix: consider multitenancy when checking if through-join is unique

---------

Signed-off-by: Davide Briani <davide@briani.dev>
Co-authored-by: Zach Daniel <zach@zachdaniel.dev>
2024-06-21 15:00:50 -04:00
Zach Daniel
2bdc6efde3 fix: don't run any before_action hooks if changeset is invalidated in prior hook 2024-06-21 11:04:26 -04:00
Zach Daniel
cb29738927 chore: fix credo/build 2024-06-20 18:43:51 -04:00
Davide Briani
71d871b54a
Test loading relationships on multitenant resources after create or update (#1249)
* Chore: add tests on loading relationship on multitenant resource

Add tests to verify that relationships can be loaded on multitenant
resources after a create or update action.

Signed-off-by: Davide Briani <davide@briani.dev>

* fix: set tenant in ets data layer when generating aggregates

---------

Signed-off-by: Davide Briani <davide@briani.dev>
Co-authored-by: Zach Daniel <zach@zachdaniel.dev>
2024-06-20 16:46:29 -04:00
Zach Daniel
0eea01d21b chore: consider MapSet as valid for {:array type in matches_type?/2 2024-06-19 19:50:03 -04:00
Zach Daniel
62e06532f1 chore: fix typo in dirty hook checking 2024-06-19 11:29:22 -04:00
Zach Daniel
b32990df3a chore: support after_action hooks in atomic upgrade 2024-06-19 11:27:34 -04:00
Zach Daniel
97df7e714a fix: only prevent atomic upgrade when hooks were explicitly added 2024-06-19 11:23:52 -04:00
Dmitry Maganov
c0f1e2a622
fix: use right argument name in query set_result/clear_result (#1247) 2024-06-19 10:18:27 -04:00
Zach Daniel
2a2f20ade0 improvement: retain error context on overridden messages 2024-06-18 18:20:30 -04:00
Zach Daniel
29032725fb improvement: add optional matches_type?/2 callback to Ash.Type 2024-06-18 16:17:32 -04:00
Zach Daniel
91d4d86656 improvement: add backwards_compatible_interface? option to use Ash.Domain
use this to turn off inclusion of the old 2.0-based interface functions, i.e
`Domain.read`, `Domain.destroy`, `Domain.get` etc.
2024-06-18 11:56:32 -04:00
Zach Daniel
23973dc36e fix: apply join relationship filter when loading many_to_many relationships 2024-06-18 09:08:13 -04:00
Zach Daniel
154d43f6cc fix: ensure we honor any computed select changes when loading through attributes 2024-06-18 07:08:40 -04:00
Zach Daniel
54770a061f improvement: add subject and context keys to policy context 2024-06-17 22:01:00 -04:00
Zach Daniel
fa5d4a1a96 fix: don't start async limiter tasks if async is disabled
fix: properly set default timeout to `:infinity`

this avoids unnecessary processes starting when in the vast majority of cases some external thing is imposing a timeout.

fix: pass down `identity` when doing upserts, for new feature support
2024-06-17 10:56:48 -04:00
Zach Daniel
1fe799c7bb chore: fix match eror in changeset hook runner 2024-06-15 11:31:39 -04:00
Zach Daniel
2316b7b056 fix: ensure that before_transaction hook errors fail the operation
fix: ensure that `before_transaction` hook errors still trigger `after_transaction` hooks
2024-06-15 11:27:47 -04:00
Zach Daniel
f3943acdba fix: abort bulk updates on before transaction hook errors 2024-06-15 11:13:42 -04:00
Zach Daniel
05c51505f2 fix: fix expression interpolation for cast_atomic for integer, decimal, float 2024-06-14 14:16:20 -04:00
Barnabas Jovanovics
c3e02f7b9d
do not lose constraints context (#1242) 2024-06-14 10:48:19 -04:00
Zach Daniel
9882037780 fix: set default argument values on generic actions
fixes #1220
2024-06-13 10:25:25 -04:00
Jechol Lee
c5d96e1a0a
chore: Fix warning: using map.field notation (#1238) 2024-06-13 08:02:35 -04:00
Zach Daniel
731fe30330 improvement: set a module when validating accepts 2024-06-12 09:37:24 -04:00
Zach Daniel
00e294e050 fix: support ^arg/1 and similar constructions in filter policies on generic actions
closes #1221
2024-06-11 13:31:13 -04:00
Davide Briani
cd06f919c0
fix: load relationships on bulk operations (#1234)
This change validates that the `load` statement of bulk operations is
respected when specified, and correctly loads relationships.

Loading relationships with pagination on results for bulk destroys is
still not supported. Indeed, relationships are currently queried using a
lateral join but after the resource deletion has happened, so it looks
like nothing is related.

Signed-off-by: Davide Briani <davide@briani.dev>
2024-06-10 20:14:37 -04:00
Zach Daniel
e3706c2552 improvement: use IO.warn for allow_nil_inputs error 2024-06-10 17:53:35 -04:00
Zach Daniel
d5d0b04bb6 improvement: validate require_attributes and allow_nil_input at compile time 2024-06-10 17:43:15 -04:00
Zach Daniel
22b5c644b8 chore: select -> query.select 2024-06-10 15:27:10 -04:00
Zach Daniel
5d4c51015e fix: only apply load through for attributes that are being selected directly
fix: ensure we lateral join with `from_many?: true` or any `:many` cardinality relationships
2024-06-10 15:23:26 -04:00
Zach Daniel
8dc0c2cb05 chore: remove ancient adapter code 2024-06-10 11:30:01 -04:00
Davide Briani
ae9671158f
fix: correctly load paginated relationships after create, update, delete (#1229)
Ensure that relationships can be correctly loaded, even with pagination,
on the resources resulting from create, update and delete actions.

Signed-off-by: Davide Briani <davide.briani@secomind.com>
2024-06-10 10:46:49 -04:00
Zach Daniel
46450f75e3 fix: return proper {:ok, value} from Ash.Type.Atom.apply_constraints/2 2024-06-10 10:43:14 -04:00
Andreas Donig
4153ba7ef3
fix: fix the compare/2 implementations (#1232)
Co-authored-by: Andreas Donig <git@innwiese.de>
2024-06-10 08:15:51 -04:00
Robert Timis
6b964b9384
improvement: add tenant option to Ash.Seed.seed! (#1230) 2024-06-10 07:47:43 -04:00
Zach Daniel
7f1849ca5c fix: return proper value from short-circuit filter hydration 2024-06-07 10:44:10 -04:00
Robert Timis
9c32eab87e
fix: fix seed not working when :__keep_nil__ is generated using seed_input (#1228) 2024-06-07 08:14:39 -04:00
Robert Timis
4d35117649
fix: add resource to Ash.Seed.seed! in Ash.Generator.seed! (#1227) 2024-06-07 07:31:29 -04:00
Zach Daniel
17e34a2a27 fix: ensure that union types w/ explicit tags have constraints applied 2024-06-06 13:58:21 -04:00
Zach Daniel
e4980d55ba fix: don't update tenant on update, instead enforce it
the attribute strategy allowed for overwriting the multitenant attribute
on update. In practice, this can't really happen using any standard pattern
because any record to be updated is read with the tenant context, but it still
represents a small risk (and `schema` based multitenancy would enforce it in this
way anyway, so this is more consistent).
2024-06-05 10:43:38 -04:00
Zach Daniel
51be60cb4b improvement: detect invalid resources placed in relationships on domains verifier 2024-06-05 09:48:32 -04:00
Andreas Donig
7d10c781d4
fix: Do not compare nil values in compare validation (#1223)
Co-authored-by: Andreas Donig <git@innwiese.de>
2024-06-05 09:23:33 -04:00
Zach Daniel
c9a7ac7ba9 improvement: warn at compile time on types that don't define atomic_update/2 2024-06-04 21:38:42 -04:00
Zach Daniel
3726f9b8b0 chore: List.wrap .load call on calculations 2024-06-03 19:30:10 -04:00
Zach Daniel
a3e3e8701f fix: ensure context is properly set on bulk manual action invocations
closes #1217
2024-06-02 11:44:15 -04:00
Riccardo Binetti
d71718c691
fix: use correct boolean operation names in Filter.find/4 (#1214) 2024-05-30 07:59:11 -05:00
Zach Daniel
fbcafa1bfa fix: when hydrating nested aggregates, use correct related resource/path pair
closes #1213
2024-05-30 00:12:12 -05:00
Zach Daniel
4ab37a18f5 chore: fix 1.17 warning 2024-05-29 17:07:30 -04:00
Zach Daniel
2a304a581b fix: check if in transaction before trying to roll it back 2024-05-29 15:21:08 -04:00
Zach Daniel
1c21e390be fix: retain ref_path when authorizing aggregates 2024-05-29 14:03:33 -04:00
Zach Daniel
e9897eb50f fix: ensure that belongs_to relationships are properly not reloaded with lazy?: true
closes #1208
2024-05-29 12:59:10 -04:00
Zach Daniel
49b69628f8 improvement: compatibility with elixir 1.17 2024-05-29 09:20:44 -04:00
Jechol Lee
99cc10a9c7
Ash.can? to be boolean | no_return (#1210) 2024-05-29 07:32:32 -04:00
Jechol Lee
5dbf8fc0ed
fix get_domain (#1209) 2024-05-29 07:31:18 -04:00
Zach Daniel
2d9ffe7fab fix: implement rollback on after hooks for bulk actions 2024-05-28 14:57:49 -04:00
Zach Daniel
bfdb8f9bab chore: format 2024-05-28 14:32:30 -04:00
Zach Daniel
4b873438dd fix: missing else caused manual updates not to work with bulk_update
closes #1205
2024-05-28 14:30:41 -04:00
Zach Daniel
6de8e765a9 improvement: verify notifiers all use the Ash.Notifier behaviour 2024-05-26 13:00:15 -04:00
Zach Daniel
b5dce2494a chore: optimize strict check fact checking 2024-05-24 23:07:46 -04:00
Zach Daniel
adda85297c fix: multiple filter-checks in policy conditions were not composing properly 2024-05-24 22:58:05 -04:00
Zach Daniel
c45ecbfa49 fix: properly honor trailing policies that are constantly false 2024-05-24 21:03:06 -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
Joel Kociolek
d0ffc55924
fix: mixup between atomic upsert vs update capability of datalayers (#1198) 2024-05-23 12:19:20 -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
73a2ef4852 fix: only use Mix.deps_tree if defined
fixes #1197
2024-05-23 10:00:46 -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