Zach Daniel
8481873ed5
fix: allow for inferred domains when authorizing join queries
...
closes #1167
2024-05-15 09:48:24 -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
576c729bba
improvement: raise argument error on unknown options in Ash.Type.NewType
...
closes #1142
2024-05-14 12:34:25 -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
Zach Daniel
124a3c734e
improvement: better types for checks, for spark autocomplete
...
chore: update spark
2024-05-14 11:38:33 -04:00
Zach Daniel
5392a3ae78
improvement: added a did_you_mean
field and error message for NoSuchInput
2024-05-14 10:36:46 -04:00
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
Zach Daniel
2ab788fd35
fix: properly retain context from initial changeset in fully atomic changeset
2024-05-03 12:14:26 -04:00
Rebecca Le
9d7bb3b184
docs: Fix syntax error in builtin change documentation ( #1108 )
2024-05-03 10:41:48 -04:00
Zach Daniel
a49b951d32
fix: ensure transaction is rolled back on data layer errors during streaming
2024-05-03 10:33:36 -04:00
Zach Daniel
6a1359c3d8
fix: various fixes around bulk actions, types, error handling
2024-05-02 23:48:10 -04:00
Zach Daniel
1bdc095b04
fix: fix match validation when performed atomically
2024-05-02 20:30:37 -04:00
Sergey Moiseev
0efa1a0a10
fix: trim spaces from codegen name ( #1106 )
2024-05-02 19:14:10 -04:00
Zach Daniel
7fd063239f
fix: set notify?: true
when return_notifications?: true
is set
...
closes #1100
2024-05-02 14:51:35 -04:00
Dmitry Maganov
e1188aa552
improvement: normalise List.wrap
usage for policy checks ( #1103 )
2024-05-02 14:11:47 -04:00
Dmitry Maganov
712078877c
fix: fix changing_attributes
for multiple attributes ( #1101 )
2024-05-02 11:42:18 -04:00
Frank Dugan III
09af174e4c
docs: clarify functionality of notify?
and return_notifications?
( #1099 )
2024-05-02 11:36:28 -04:00
Zach Daniel
245ee998b4
fix: use InvalidReturnType
, not AssumptionFailed
for callback returns
2024-05-02 09:27:08 -04:00
Zach Daniel
5ad47c10cf
fix: enforce that transaction hooks are not added from other hooks
...
closes #1096
2024-05-02 09:23:41 -04:00
Dmitry Maganov
1e2baf7809
fix: fixes to some atomic validations ( #1094 )
2024-05-02 08:59:01 -04:00
Zach Daniel
b8c01596cb
fix: multiple small bugs when loading for calculate
...
closes 1091
2024-05-02 00:29:01 -04:00
Zach Daniel
c1354d503e
fix: run changesets w/ after_transaction
hooks through standard logic
2024-05-02 00:06:31 -04:00
Zach Daniel
0273b7d949
chore: fix remove after_transaction hooks after processing them
2024-05-01 20:29:58 -04:00
Zach Daniel
ec7e6905da
fix: properly hydrate refs in related query
2024-05-01 17:18:24 -04:00
Frank Dugan III
718adb4891
feat: add read_action option to bulk actions ( #1088 )
2024-05-01 16:26:33 -04:00
Moxley Stratton
65ad0c6039
docs: Add doc text to the default
option ( #1077 )
...
* Add doc text to option
* Second version of the change
* Adjust docs for `:default`, and generate .md files
* Fix type
2024-05-01 16:03:09 -04:00
Zach Daniel
1f32fad9a8
chore: update data layer docs tagline
2024-05-01 14:16:34 -04:00
Zach Daniel
b224cc1134
chore: remove an unnecessary note
2024-05-01 14:14:11 -04:00
Zach Daniel
34ab8d4082
fix: properly express not atomic reason in bulk updates
2024-05-01 11:27:23 -04:00
Zach Daniel
ccd2043d4e
fix: properly set actor on query in bulk update
2024-05-01 10:21:27 -04:00
Zach Daniel
be2caade74
fix: no need to restrict sorting on arrays
2024-05-01 09:35:26 -04:00
Zach Daniel
65395c37c6
fix: properly execute before_batch callbacks in bulk actions
2024-05-01 08:59:03 -04:00
Zach Daniel
6f0524d67d
fix: missing pattern match on error query in read
...
closes #1084
2024-05-01 08:00:22 -04:00
Zach Daniel
fa7cfe5488
improvement: add pre_flight option for Ash.can
2024-04-30 22:55:32 -04:00
Zach Daniel
723276f41a
fix: remove debugging code
...
improvement: make `Ash.Filter.map` more consistent
improvement: better inspect behavior for calculations
improvement: better inspect behavior for fragments
fix: don't call `Keyword` functions on maps in unions
2024-04-30 13:31:33 -04:00
Riccardo Binetti
c50d047614
fix: streaming with limit/offset and no pagination ( #1080 )
...
If there were 0 results, it just kept reading and reading forever
2024-04-30 13:03:49 -04:00
Pierre Le Gall
4ddc91be51
improvement: better create/update first argument ( #1060 )
...
* improvement: better create/update first argument
First argument of Ash.create (with a resource)
and Ash.update (with a record) no longer are in a tuple
with its arguments.
Arguments are moved in the input option.
* improvement: create/update params no more an opts
`Ash.create(User, %{name: "Yasmine"})` 🎉
* improvement: raise if changeset already validated
Raise an argument error for already validated changeset
when params are given.
2024-04-30 13:02:27 -04:00
Riccardo Binetti
09238490c4
fix: don't pass an error tuple to rollback in bulk update ( #1079 )
2024-04-30 06:40:42 -04:00
Jeremy Grant
45b76c209d
fix: union array argument/attribute handling when current attribute is ( #1023 )
2024-04-29 22:24:44 -04:00
Sergey Moiseev
417d39e7de
Add documentation on disabling pagination ( #1076 )
2024-04-29 20:40:19 -04:00
Zach Daniel
28c75df7b8
improvement: support new data layer capability calculate/3
...
fix: solve for custom expressions and one-off calculations
2024-04-29 16:58:37 -04:00
Zach Daniel
0fa257e7ea
chore: don't add atomic allow nil hooks to primary key attributes
...
improvement: add debug logging for ets data layer
2024-04-29 15:43:47 -04:00
Dmitry Maganov
3ee24da7eb
improvement: pass context to anonymous validate functions ( #1070 )
2024-04-29 12:53:45 -04:00
Jechol Lee
ae3f632157
Fix is_belongs_to_rel_being_managed? to match list with more than 2 elements ( #1072 )
2024-04-29 12:49:26 -04:00
Zach Daniel
ca7b0824d7
fix: properly intercept thrown errors in Ash.bulk_create
2024-04-29 09:12:03 -04:00
Zach Daniel
a24fdcfe59
docs: fix code interface example
2024-04-29 07:49:25 -04:00
Jechol Lee
856ac698b7
fix: Changeset.present? to be false when belongs_to is set to nil ( #1067 )
...
* Changeset.present? to be false when belongs_to is set to nil
* match empty list
* match empty list 2
2024-04-29 07:38:06 -04:00
Jechol Lee
caf1c5ee2a
Improvement: Changeset.attributes_present? to attribute_present? ( #1066 )
2024-04-29 06:51:14 -04:00
Zach Daniel
5ef8de03f3
fix: fix simple_equality in attribute type
2024-04-28 00:41:57 -04:00