Commit graph

2569 commits

Author SHA1 Message Date
Zach Daniel
fa172b3be2 fix: don't eager evaluate exists erroneously 2024-05-14 10:11:27 -04:00
Barnabas Jovanovics
0dfad7c228
fix: handle nil case (#1163) 2024-05-14 06:16:07 -04:00
Zach Daniel
7b1b26943c fix: don't attempt to traverse not loaded and forbidden values when rewriting policies 2024-05-13 15:56:47 -04:00
Barnabas Jovanovics
de0bd815e8
fix: add __source__ to union inner_constraints (#1160) 2024-05-13 18:45:31 +02:00
Barnabas Jovanovics
3e27ca9df5
fix: copy context for the other destroy calls too (#1159) 2024-05-13 09:43:43 -04:00
Barnabas Jovanovics
f755af2228
fix: inifite recursion if query is empty (#1158) 2024-05-13 09:20:27 -04:00
Simon Nyström
f69e946a7d
docs: Fix incorrect documentation for Ash.create (#1157) 2024-05-13 09:11:13 -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
e7c8edc8f3 fix: Seems like we shouldn't just throw away notifications without being upset about it. 2024-05-13 09:28:20 +12:00
55e625e63a chore: code gardening. 2024-05-13 09:28:20 +12:00
89db4ac154 fix: incorrect result matching in bulk destroy.
Transactions return an ok/error tuple, so we need to handle it and simulate an bulk result error on error.
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
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
Riccardo Binetti
69ba0f7ce3
fix: check require_reference? when generating update code interface (#1152) 2024-05-11 20:11:44 -04:00
Zach Daniel
32446b0b2e chore: fixes around policy exceptions
docs: add policy how-to guide
2024-05-10 15:26:23 -04:00
Zach Daniel
334dc2dc04 chore: don't apply policy verifier to domains 2024-05-10 12:36:46 -04:00
Zach Daniel
7bcf64f879 improvement: warn on authorizer being added to extensions list, not authorizers
improvement: make type generator handle allow_nil? properly
docs: add testing resources how to guide

closes #968
2024-05-10 12:08:42 -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
dbf848e264 fix: property tests should allow private attributes that are accepted 2024-05-10 10:39:26 -04:00
Zach Daniel
bc3463e135 docs: document Ash.can 2024-05-09 20:43:49 -04:00
Zach Daniel
b3a34d0d65 fix: ensure source_context is a map
fixes #1141
2024-05-09 08:49:39 -04:00
Zach Daniel
7bb914444e fix: get underlying type before calling rewrite on it 2024-05-08 21:03:44 -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
Barnabas Jovanovics
aecd421a29
fix: access to change context in get_and_lock(_for_update) changes (#1135) 2024-05-08 09:22:12 -04:00
Riccardo Binetti
0e899dbbb3
improvement: add tenant to data earlier in read (#1137) 2024-05-08 09:21:01 -04:00
Zach Daniel
078cc4f28b improvement: reintroduce deslection of known forbidden fields
this was an optimization that was temporarily removed, but can now
safely be added because we track depended on fields
2024-05-07 22:42:23 -04:00
Zach Daniel
797a0bf50b fix: properly upgrade static expression calculations to literal calculations 2024-05-07 22:33:05 -04:00
Zach Daniel
04b4769e87 improvement: always reselect positionally on embedded resources 2024-05-07 22:05:50 -04:00
Zach Daniel
48c6438212 improvement: change default timeout to :infinity, for efficiency 2024-05-07 17:01:11 -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
Zach Daniel
f5ab6a6bd8 fix: ensure that reuse_values? is honored all the way down the chain 2024-05-07 15:38:03 -04:00
Barnabas Jovanovics
9d16ca07dc
feat: check global changes and validations for atomicity during compile time (#1129) 2024-05-07 12:09:12 -04:00
Zach Daniel
09cff72d03 chore: ensure changeset is set on atomic upgraded errors
docs: update livebook
2024-05-06 21:57:11 -04:00
Zach Daniel
1d519e37e0 chore: better inspecting for error classes 2024-05-06 20:58:39 -04:00
Zach Daniel
64ecdad657 fix: properly deduplicate calculations 2024-05-06 20:32:41 -04:00
Zach Daniel
b810e2e55b fix: better performance and ability to add a stream to runtime sort logic 2024-05-06 13:05:34 -04:00
Zach Daniel
36308a9e4f chore: reword some docs 2024-05-06 10:52:17 -04:00
Moxley Stratton
aa09589fbd
docs: Add documentation for Ash.Filter, linking to Expressions guide (#1114)
* Add documentation for Ash.Filter, linking to Ash.Filter.Functions.*

* Update PR: Rename section to "Expressions"
2024-05-06 07:47:35 -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
Zach Daniel
a802e04a93 docs: rework ash state machine cook book, clean up both cookbooks 2024-05-05 09:30:42 -04:00
Zach Daniel
6882d15098 chore: fixes around inspect logic and cookbook 2024-05-04 07:03:03 -04:00
Riccardo Binetti
5dfea1df9b
feat: add relationship pagination (#1050) 2024-05-04 05:56:46 -04:00
Zach Daniel
e03e4379a9 fix: small logic fixes for optimistic locking error case
chore: a bunch of QoL fixes around inspecting expressions
2024-05-04 01:10:04 -04:00
Zach Daniel
3b85451289 fix: more fixes for atomic changeset context setting 2024-05-03 20:39:10 -04:00
Jechol Lee
70f5264f17
Fix: missing tenant for many_to_many read (#1107)
* Fix missing tenant for many_to_many read

* Set tenant earlier
2024-05-03 18:51:52 -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
Zach Daniel
28c8c6565a chore: fix typo 2024-05-03 12:45:50 -04:00