Commit graph

3615 commits

Author SHA1 Message Date
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
Zach Daniel
26871fa552 chore: release version v2.19.8 2024-02-25 08:27:12 -05:00
Zach Daniel
0e1fe24f46 fix: ensure actor context is set in filter 2024-02-25 08:24:19 -05:00
Zach Daniel
eab194fac5 fix: properly handle limit/offset for aggregates 2024-02-24 20:21:13 -05:00
Zach Daniel
adbac1b7da improvement: don't duplicate base filter in aggregates 2024-02-24 19:24:51 -05:00
Zach Daniel
993355f938 fix: don't use Aggregate.new for builtin aggregates 2024-02-24 19:17:35 -05:00
Zach Daniel
4d39ab8a80 fix: merge root query into aggregate queries, don't apply both 2024-02-24 18:10:26 -05:00
Zach Daniel
75e873fc0a chore: release version v2.19.7 2024-02-24 09:31:16 -05:00
Zach Daniel
240e809437 fix: return proper pattern from select builtin change 2024-02-24 09:27:12 -05:00
Zach Daniel
02bf419124 chore: release version v2.19.6 2024-02-23 19:21:12 -05:00
Zach Daniel
80be80c151 fix: properly catch errors in atomic changeset casting 2024-02-23 19:16:31 -05:00
Zach Daniel
0fd4e36b2e add test for read_one and limit 2024-02-23 08:46:17 -05:00
Zach Daniel
81fee97306 fix: use Ash.Changeset.set_context on changesets 2024-02-22 17:39:52 -05:00
Zach Daniel
4d3cdd8dec chore: release version v2.19.5 2024-02-22 10:58:45 -05:00
Zach Daniel
825a3a945d fix: properly fail early on missing actor in policies
fix: handle `:continue` case in authorizer
fix: validations run regardless of if the relevant fields are changing
2024-02-22 10:53:32 -05:00
Zach Daniel
c08aa2507b chore: detect a resource given as a module 2024-02-22 08:11:49 -05:00
Zach Daniel
723aab0f6f chore: release version v2.19.4 2024-02-22 08:02:21 -05:00
Zach Daniel
701f9b4cc6 fix: honor soft destroys for atomic bulk destroys 2024-02-22 08:02:01 -05:00