Commit graph

3632 commits

Author SHA1 Message Date
Zach Daniel
f15427e03d chore: release version v2.20.2 2024-03-19 00:05:31 -04:00
Zach Daniel
aafeab5e94 fix: use proper logic for atomic present validations
improvement: cast atomic reference types, makes life easier for data layers
2024-03-19 00:04:57 -04:00
Jechol Lee
096542f352
fix: Set tenant correctly when reading many_to_many relationship. (#928) 2024-03-14 20:30:10 -04:00
Zach Daniel
d62faaa0a5 fix: properly match no_rollback error 2024-03-14 14:35:45 -04:00
Dmitry Maganov
c485e714b0
fix: load with right module in get_rewrites of Ash.Type.Struct (#927) 2024-03-13 14:41:53 -04:00
Zach Daniel
54bbcc3057 chore: I was wrong 2024-03-12 20:32:12 -04:00
Tun Cham Roeun
7d7bcaa3d7
fi: fetch_count/4 use the query after applying before_action hooks (#922)
---------

Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2024-03-12 20:28:52 -04:00
Dmitry Maganov
b75327445c
improvement: use wrap_list for where in changes.change (#926) 2024-03-12 13:02:43 -04:00
Zach Daniel
8df5d5fd92 improvement: don't require Mix to compile an Ash resource 2024-03-11 21:43:04 -04:00
Zach Daniel
b89120ff15 fix: ensure that calculation dependency loader combines selects 2024-03-11 21:37:40 -04:00
Zach Daniel
74080f8043 chore: reorder case statements 2024-03-11 21:30:08 -04:00
Zach Daniel
ea9ec7dfef fix: properly handle raised errors from async calculations
fix: ensure depended on attributes are selected in calculations
2024-03-11 21:28:59 -04:00
Zach Daniel
2c432bb193 fix: properly merge related selects when merging loads 2024-03-11 21:12:11 -04:00
Zach Daniel
a1b3105e8b chore: properly set indexed map values in casted_attributes 2024-03-11 12:34:21 -04:00
Zach Daniel
b7cb89c481 chore: ensure constrainted attributes appear in casted_*
chore: update dsl docs
2024-03-11 12:18:17 -04:00
Zach Daniel
e63b8f3b39 chore: release version v2.20.1 2024-03-11 11:35:05 -04:00
Zach Daniel
40977bce4f improvement: store casted values even if they are nil 2024-03-11 11:05:10 -04:00
Dmitrii Maganov
57a99cbc76 chore: remove unneeded persist call 2024-03-11 16:14:21 +13:00
Dmitry Maganov
19c33397aa
fix: typespec for action policy check supports list of action names (#924) 2024-03-10 21:06:11 -04:00
Dmitry Maganov
ecaef99ddf
docs: uuid_primary_key does not have generated?: true by default (#923) 2024-03-10 21:05:42 -04:00
Simon Bergström
a24e1d9bdf
docs: Improvements to the bulk_update and bulk_destroy functions (#910)
* docs: corrections after discussions of what the input is.
2024-03-09 14:55:35 -05:00
e5f01bbd59
improvement(Ash.Reactor): Backport improvements from 3.0 branch. 2024-03-08 10:51:40 +13:00
Zach Daniel
18cc9c9b26 fix: ensure that message is honored in atomic validations
fix: don't require actor when constructing aggregate query
2024-03-07 10:47:43 -05:00
Zach Daniel
bbaabc8bc5 chore: release version v2.20.0 2024-03-05 00:02:01 -05:00
Zach Daniel
f19fa6c6c0 improvement: do not perform atomic upgrade on destroy actions
fix: correct atomic implementation of `present` validation
fix: track keys that are set to `nil` in changesets, for use in atomic upgrade
2024-03-05 00:01:02 -05:00
9b88628b07
improvement: Make undo actions for update and destroy actions more explicit. (#920)
* chore(Ash.Reactor): Follow on from `get` -> `read_one` rename.

* improvement(Ash.Reactor): Make undo actions for `update` and `destroy` more explicit.
2024-03-05 11:30:35 +13:00
Zach Daniel
b3889d6f94 fix: properly cast atomic constraints for integer 2024-03-04 11:09:58 -05:00
Zach Daniel
7d8375308d fix: more fixes for atomic length validations 2024-03-04 11:08:02 -05:00
Zach Daniel
f1b523ee54 fix: fix atomic error for string length type validation 2024-03-04 11:01:46 -05:00
Zach Daniel
7f0e2d8037 improvement: rename get to read_one in Ash.Reactor 2024-03-02 16:51:00 -05:00
86d74ed789
feat(Ash.Reactor): Add a Reactor extension that makes working with resources easy. (#683)
* feat: Add `Ash.Reactor` with create support.

* improvement: Add `Ash.Reactor` update support.

* improvement: Add `Ash.Reactor` destroy support.

* improvement(Ash.Reactor): Support for transactional handling of notifications.

* improvement(Ash.Reactor): Add `read` and `get` steps.

* docs: Add the beginnings of a Reactor topic.

* improvement(Ash.Reactor): add support for generic actions.

* improvement: Add `undo` capability to `create` step.

* improvement: transaction and undo working.

* docs: Start documenting undo behaviour.

* chore: Update to Reactor 0.6.

* improvement: Automatically thread Ash tracers through Reactor.

* improvement(Ash.Reactor): Add undo to generic actions.

* docs: Improve reactor documentation.

* fix: Mimic copying `Ash.Notifier` seems to break the compiler for some reason.
2024-03-02 10:26:25 +13:00
Zach Daniel
e328653867 chore: release version v2.19.14 2024-03-01 15:45:08 -05:00
Zach Daniel
75d975ea3a fix: properly match return type of Type.new in expr expansion 2024-03-01 15:44:32 -05:00
Zach Daniel
91742c20c2 chore: release version v2.19.13 2024-03-01 13:07:05 -05:00
Zach Daniel
96113c20dc improvement: cast expression calculations if they don't do it 2024-03-01 13:05:49 -05:00
Zach Daniel
93948f8bcb chore: release version v2.19.12 2024-02-29 15:03:49 -05:00
Zach Daniel
7d6ad64e0e fix: properly scope expanded calculations
improvement: aggregate sort replaces query sort
2024-02-29 15:02:20 -05:00
Zach Daniel
b98b39ec89 fix: properly scope expanded calculations 2024-02-29 14:40:59 -05:00
Zach Daniel
692a236d68 chore: release version v2.19.11 2024-02-29 13:29:16 -05:00
Zach Daniel
9a91937c88 fix: properly add aggregate authorization everywhere 2024-02-29 13:29:01 -05:00
Zach Daniel
650205a9bc fix: ensure calculation arguments are not ignored when parsing filters
fixes #917
2024-02-29 00:41:24 -05:00
Zach Daniel
582e983152 fix: properly authorize aggregates 2024-02-28 22:27:30 -05:00
Zach Daniel
9bdf597b1d chore: release version v2.19.10 2024-02-28 21:33:14 -05:00
Zach Daniel
e1c5130adb fix: bad reference in atomic validations 2024-02-27 12:57:36 -05:00
Tw
5ce0ed4d05
fix: prevent leakage of stale async_limiter's pid (#916)
the pid of async_limiter in the query's context will be invalid because we stop it
at the end of reading. So clear it up from query's context before returning back.

BTW, I found this issue according to the following crash:

```
[error] GenServer #PID<0.647.0> terminating
** (stop) exited in: GenServer.call(#PID<0.648.0>, {:get_and_update, #Function<0.21809672/1 in Ash.Actions.Read.AsyncLimiter.async_or_inline/3>}, 5000)
    ** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started
    (elixir 1.16.0) lib/gen_server.ex:1114: GenServer.call/3
    (ash 2.19.3) lib/ash/actions/read/async_limiter.ex:26: Ash.Actions.Read.AsyncLimiter.async_or_inline/3
    (elixir 1.16.0) lib/enum.ex:1708: anonymous fn/3 in Enum.map/2
    (elixir 1.16.0) lib/enum.ex:4399: anonymous fn/3 in Enum.map/2
    (elixir 1.16.0) lib/stream.ex:1816: anonymous fn/3 in Enumerable.Stream.reduce/3
    (elixir 1.16.0) lib/enum.ex:4842: Enumerable.List.reduce/3
    (elixir 1.16.0) lib/stream.ex:1828: Enumerable.Stream.do_each/4
    (elixir 1.16.0) lib/enum.ex:4399: Enum.map/2
    (ash 2.19.3) lib/ash/actions/read/relationships.ex:39: Ash.Actions.Read.Relationships.fetch_related_records/2
    (ash 2.19.3) lib/ash/actions/read/relationships.ex:23: Ash.Actions.Read.Relationships.load/3
    (ash 2.19.3) lib/ash/actions/read/read.ex:237: Ash.Actions.Read.do_run/3
    (ash 2.19.3) lib/ash/actions/read/read.ex:49: anonymous fn/3 in Ash.Actions.Read.run/3
    (ash 2.19.3) lib/ash/actions/read/read.ex:48: Ash.Actions.Read.run/3
    (ash 2.19.3) lib/ash/api/api.ex:2301: Ash.Api.page/3
    (ash 2.19.3) lib/ash/api/api.ex:2258: Ash.Api.page!/3
...
```

Signed-off-by: Tw <tw19881113@gmail.com>
2024-02-27 09:03:46 -05:00
Zach Daniel
f9af1307a1 chore: release version v2.19.9 2024-02-26 13:07:55 -05:00
Zach Daniel
3b89f8fbaa chore: fix dialyzer 2024-02-26 13:04:43 -05:00
Zach Daniel
1a99098f52 fix: ensure that policies are applied to aggregates referenced in calculations 2024-02-26 13:00:12 -05:00
Zach Daniel
e238804b46 fix: ensure records are returned from bulk actions in atomic upgrades 2024-02-25 21:06:10 -05:00
Zach Daniel
93ae8f17a5 fix: handle small logic error in notification sending for bulk actions 2024-02-25 16:13:41 -05:00