Commit graph

1880 commits

Author SHA1 Message Date
Zach Daniel
102522adf7 fix: select attributes in load statement 2023-07-03 22:44:11 -04:00
Zach Daniel
60c96c7a1d fix: don't loan unless we need to for runtime filters 2023-07-03 12:23:35 -04:00
Zach Daniel
835515ecc6 fix: load after all hooks have completed 2023-06-28 21:04:31 -04:00
Zach Daniel
b86c66b505 fix: don't allow is_nil as an expression operator 2023-06-28 16:41:34 -04:00
Zach Daniel
692dae153d fix: proper source field loading on related data 2023-06-28 14:32:05 -04:00
Zach Daniel
4efa2a8ab1 fix: reselect all selected attributes on action loading 2023-06-28 13:31:47 -04:00
Zach Daniel
5abe51070a improvement: better behavior for invalid filter value errors
fix: don't deselect fields on loading for changesets
2023-06-28 13:27:49 -04:00
Zach Daniel
2c129a7ab7 fix: select after setting notification data
resolves a bug where attributes were not selected for create notifications

docs: add validations guide

closes #631
2023-06-28 11:03:51 -04:00
Eduardo B. A
5fe72d4703
feat: Adds Ash.Changeset around_transaction (#632) 2023-06-27 22:13:50 -04:00
Robert Ellen
924b62130d
docs: add missing argument to calculate example (#633) 2023-06-27 21:46:28 -04:00
Zach Daniel
5d20af82c3 improvement: support partial eager evaluation of functions 2023-06-27 19:11:03 -04:00
Zach Daniel
25f899d6f4 improvement: support specifying calculation as an option 2023-06-24 06:55:38 -05:00
Zach Daniel
51a86cd58d fix: fix field policy expressions
fix: handle various inconsistencies in runtime expression runner
2023-06-22 16:26:03 -04:00
Zach Daniel
c93c4b88f7 chore: fix credo/dialyzer 2023-06-22 14:19:40 -04:00
Zach Daniel
0b6d93c7c4 feat: add field_policies
see included documentation for more information on how field policies
work.
2023-06-22 14:00:11 -04:00
Zach Daniel
1a9b2c8406 improvement: fix loading w/ only nil values 2023-06-22 10:37:25 -04:00
Spark Kim
843f561bd5
docs: add question mark (#630) 2023-06-21 22:49:59 -04:00
Abhishek Tripathi
06329b97cf
improvement: add verifier for identity fields. (#626)
* improvement: adds verifier for identity fields.
---------

Co-authored-by: abhishek <abhishek.tripathi@tinymesh.in>
2023-06-20 01:05:41 -04:00
kernel-io
4b08e9865f
updated api functions to use changeset (#628) 2023-06-19 00:11:40 -04:00
Zach Daniel
44be22fa73 improvement: fix problems w/ nested loads using relationship load calcs 2023-06-16 15:07:44 -04:00
Zach Daniel
bb7c2d3b48 fix: check paginability before streaming 2023-06-15 16:56:23 -04:00
Zach Daniel
ae430d0b38 docs: update docs for calculate function 2023-06-15 11:00:55 -04:00
Zach Daniel
a7d069ae30 fix: properly set notification_data from loaded record 2023-06-14 20:40:04 -04:00
Zach Daniel
3f3a588df8 fix: properly handle lazy loaded many to many relationships 2023-06-14 19:52:05 -04:00
Dmitry Maganov
bf293a63c3
docs: :maybe means true in can? by default, not false (#624) 2023-06-14 19:38:03 -04:00
Dmitry Maganov
28dfd0d71c
fix: remove duplicate doc for authorize? in Query.for_read_opts (#623) 2023-06-14 18:37:49 -04:00
Zach Daniel
a451fb9e6b fix: set notification data with loaded result 2023-06-14 18:25:13 -04:00
Dmitry Maganov
1ca4d9870a
fix: honor not_found_error?: true opt in code interface get actions (#620) 2023-06-14 09:43:51 -04:00
Zach Daniel
11404d896d fix: typo on keyset refactor 2023-06-14 07:51:13 -04:00
Zach Daniel
0e12686c61 fix: ensure attributes for keyset pagination are selected 2023-06-14 07:38:43 -04:00
Zach Daniel
b3592aecfd docs: document select and ensure_selected to build/2 docs
closes #510
2023-06-13 12:06:11 -04:00
Dmitry Maganov
984968d8ba
improvement: add support for generic actions in api.can (#617) 2023-06-13 09:35:27 -04:00
Dmitry Maganov
939b25d727
feat: generate some action helpers with code interface (#614) 2023-06-12 22:59:17 -04:00
Zach Daniel
6c4b2fb5ed fix: can_load?/1 -> can_load?/2 2023-06-12 16:57:12 -04:00
Zach Daniel
0eddcda355 fix: handle new load calculations in nested loading? checks 2023-06-12 14:46:36 -04:00
Zach Daniel
0a677ccde1 fix: don't load nil values for runtime types 2023-06-12 12:44:54 -04:00
Zach Daniel
d47dbe239c improvement: properly pass calculation args in keyset filters 2023-06-11 20:48:42 -04:00
Zach Daniel
4ef5911696 fix: properly set upsert_keys on bulk upserts 2023-06-11 20:30:13 -04:00
Dmitry Maganov
b68b816cc7
fix: continue refactor in code interface (#611) 2023-06-11 08:56:23 -04:00
RaspberryLambda
ffaf6d57df
* improvement: add data layer introspection to Ash.Resource.Info (#610)
---------

Co-authored-by: Daniel Stewart <mgdog1@googlemail.com>
2023-06-10 13:17:17 -04:00
Zach Daniel
be57b909b5 fix: honor query limit when streaming 2023-06-10 13:09:45 -04:00
Dmitry Maganov
ab981a79a5
fix: refactor out some repetition in code interface (#609) 2023-06-10 00:02:03 -04:00
Zach Daniel
e804f3c9f9 fix: properly handle loading through list types 2023-06-09 18:21:46 -04:00
Zach Daniel
25acc2d793 improvement: better keyset pagination behavior on first and last pages 2023-06-09 15:08:49 -04:00
Zach Daniel
1442daa667 chore: fix dialyzer 2023-06-09 12:19:02 -04:00
Zach Daniel
f3703f9ebe fix: handle api missing in code interface calls 2023-06-09 12:03:31 -04:00
Zach Daniel
0d32560651 fix: pass empty select statement when loading on changesets
fix: fixes for loading through attributes
2023-06-09 10:18:17 -04:00
Dmitry Maganov
f5238674a4
fix: drop proper opts keys when calling api in code interface (#608) 2023-06-09 10:16:15 -04:00
Zach Daniel
dc58cf8c2e fix: remove validation that was breaking real design patterns 2023-06-09 02:22:56 -04:00
Zach Daniel
d526996669 improvement: optimize LoadRelationship calculation 2023-06-09 00:28:09 -04:00
Zach Daniel
6320dad188 fix: various fixes to data loading
improvement: `Ash.Query.accessing/2` to get a list of fields being accessed
improvement: builting `LoadAttribute` and `LoadRelationship` calculations
2023-06-09 00:16:27 -04:00
Zach Daniel
a52a0a2554 improvement: warn on invalid/impossible policies 2023-06-07 22:35:55 -04:00
Zach Daniel
907aec5e82 improvement: support loading through types
Will document this in a separate PR. The broad strokes are this:

1. to load through an attribtue, `load(attribute: [:nested: :stuff])`
2. to load through a calculation, `load(calculation: {:%{...input}, nested: :stuff})`
3. union types support loading through them, and is done first by keying by the type name, i.e: `load(union: [type_name: [nested: :stuff])`.
4. union types support specifying a load statement for all types with `load(union: [*: [nested: :stuff]])`
2023-06-07 21:54:17 -04:00
Zach Daniel
dfe8bbf5f0 fix: properly set tenant on nested calculation loads 2023-06-07 10:41:33 -04:00
Zach Daniel
0381072c6b fix: properly set calc_name to resource calculation name on aliased calc loads 2023-06-07 10:24:09 -04:00
Zach Daniel
f223855e28 chore: credo/compiler warnings 2023-06-07 10:22:30 -04:00
Zach Daniel
c23cd40ccb chore: continue work on loading through attributes 2023-06-07 10:22:30 -04:00
Zach Daniel
1d6e5b2827 fix: check correct calculation dependency for relationship 2023-06-07 10:11:33 -04:00
Zach Daniel
1e52079416 fix: don't use to_string on the calculation names 2023-06-07 10:05:34 -04:00
Zach Daniel
ffc4ebcff1 chore: output both dependencies in relationship dependency error 2023-06-07 09:33:53 -04:00
Zach Daniel
2eedbdf934 chore: fix debug output from raised error 2023-06-07 09:22:34 -04:00
Zach Daniel
221efb09c9 fix: don't need to check current aggs/calcs in filters anymore 2023-06-07 09:08:29 -04:00
Zach Daniel
cff3c4db91 fix: set query tenant on calc dep loads
chore: set some groundwork for `Ash.Type.load/5`
2023-06-06 14:21:34 -04:00
Zach Daniel
85da9eff6f improvement: properly set tenant from initial data 2023-06-06 11:48:16 -04:00
kernel-io
5b6c81d800
fix: copy tenant to step on flow build (#603) 2023-06-06 09:27:02 -04:00
kernel-io
c4bb198d0c
docs: clarify custom.ex async? documentation (#602) 2023-06-06 09:25:09 -04:00
kernel-io
45dc97cdb4
fix: ensure add_tenant/1 checks the correctkey (#601) 2023-06-06 09:24:30 -04:00
Zach Daniel
c6d1a089a5 fix: properly chain batch to each change in bulk creates 2023-06-05 19:57:36 -04:00
Zach Daniel
aa1f902c50 fix: properly handle failed bulk creates with no errors 2023-06-05 19:07:52 -04:00
Zach Daniel
8e7815388e improvement: handle nils in memory the same way sql would have 2023-06-05 16:50:27 -04:00
Zach Daniel
54569c38e1 improvement: support changeset.load 2023-06-05 13:30:29 -04:00
Barnabas Jovanovics
5477102104
fix: also do not autogenerate values for optional fields that have a generator (#599) 2023-06-05 08:57:22 -04:00
Dmitry Maganov
af307f0504
fix: rename few error files to match module names (#597) 2023-06-03 07:44:33 -04:00
Dmitry Maganov
23bf59822e
chore: remove class and stacktrace from ErrorKind implementations (#596) 2023-06-02 17:57:07 -04:00
Barnabas Jovanovics
1185b615f8
fix: Only create values for attributes that did not get a generator (#595) 2023-06-02 08:18:02 -04:00
Zach Daniel
bf6797619b improvement: verify reserved calc names, support as input 2023-06-01 13:26:54 -04:00
Dmitry Maganov
adb6cefac1
fix: remove field name from string length error message (#594)
* fix: remove field name from string length error message

* fix: remove old unused `Error.Changes.UnknownError`

* fix: do not capitalize ash error messages

* fix: change error kind code for `Ash.Error.Forbidden.Policy`
2023-06-01 02:29:19 -04:00
Zach Daniel
5ab0c08f0f fix: properly load aggregates required for keyset pagination 2023-05-30 22:17:05 -04:00
Zach Daniel
e521048809 fix: properly load depended on source attributes 2023-05-30 21:31:48 -04:00
Zach Daniel
282c8945bb fix: handle pre-hydrated predicates in expressions 2023-05-29 09:57:10 -04:00
Zach Daniel
f6b14d0030 fix: handle nil errors on bulk creates 2023-05-27 20:18:45 -04:00
Dmitry Maganov
77310bb1f6
fix: add :forbidden to error_class, lowercase code for Forbidden (#589) 2023-05-27 11:45:01 -04:00
Zach Daniel
37710af26f fix: proper required value validations in bulk creates
fix: don't use error count in place of errors
2023-05-27 00:22:15 -04:00
Zach Daniel
1ab8d3636e improvement: make loading?/2 smarter 2023-05-26 23:58:35 -04:00
Zach Daniel
6ae41d58e8 fix: properly manage relationships on bulk creates
fix: validations could undo certain changeset changes in bulk creates
2023-05-26 10:25:35 -04:00
Zach Daniel
d2b54fdda9 fix: properly upsert on non batchable rows 2023-05-25 11:34:13 -04:00
Zach Daniel
5af9dc6696 fix: properly honor the return_errors? option 2023-05-25 09:46:27 -04:00
Zach Daniel
958f977139 improvement: better support for multiple code interfaces w/ same name 2023-05-23 19:10:11 -04:00
Zach Daniel
58329a073d fix: properly wrap errored changesets in bulk creates 2023-05-23 13:44:48 -04:00
Zach Daniel
35b1278830 fix: don't notify unless notify?: true in bulk creates 2023-05-23 10:45:31 -04:00
Zach Daniel
d56937aeb6 fix: properly wrap errored changesets in {:error in bulk creates 2023-05-23 10:42:12 -04:00
Zach Daniel
6fb348c162 improvement: handle bulk transaction errors better 2023-05-22 21:01:46 -04:00
Alan Heywood
62ef8ff19c
fix: swap Exception.exception? for Kernel.is_exception (#584) 2023-05-22 16:11:25 -04:00
Shirish Goyal
13f834ad09
docs: Fix for code_interface generated help (#583)
"actor" term was duplicated and one of them was supposed to be "tracer"
2023-05-19 09:06:46 +12:00
739dbb89a1 fix: accidental variable shadowing in calculation loading. 2023-05-18 16:33:01 +12:00
Alan Heywood
1653162041
fix: add missing batch_size opt for bulk_create (#581) 2023-05-18 00:05:29 -04:00
Zach Daniel
6ec06ca867 chore: release version v2.9.9 2023-05-17 22:37:39 -04:00
Zach Daniel
687723730a fix: errors on casting arrays of unions in newtypes 2023-05-17 22:36:47 -04:00
Zach Daniel
66ea912f8c improvement: add unavailable error 2023-05-17 13:15:24 -04:00
Zach Daniel
f7f96bb463 fix: don't require {:data_layer, *} for custom locks 2023-05-16 15:16:40 -04:00
Zach Daniel
c99c36d8c8 docs: update get_and_lock/1 docs 2023-05-16 15:00:16 -04:00
Zach Daniel
7de83e8bb1 improvement: add get_and_lock/1 builtin change 2023-05-16 14:59:47 -04:00
Zach Daniel
ca1769900f fix: don't use :map as storage type for Map 2023-05-15 09:49:30 -04:00
James Harton
7326ca330e
improvement(Ash.Type.Module): Add :module type. (#578) 2023-05-15 07:26:52 -04:00
Zach Daniel
ccacfd78fc improvement: handle ci strings in cast_stored 2023-05-11 15:51:41 -04:00
Zach Daniel
db715f5153 docs: remove reference to filter option in Query.aggregate 2023-05-10 23:17:46 -04:00
Zach Daniel
8fdd319697 chore: small fixes around optimistic locking 2023-05-08 16:10:46 -04:00
Zach Daniel
d1a64a66e5 improvement: better default overflow logic
improvement: custom stale record error
2023-05-08 15:28:50 -04:00
Zach Daniel
4cd5ae2c02 chore: fix dialyzer 2023-05-08 15:16:44 -04:00
Zach Daniel
b09d8781ca improvement: optimistic locking via changeset.filters 2023-05-08 15:13:46 -04:00
bcksl
b9569b57c3 docs: bulk_create does not support automatic upsert_fields 2023-05-08 09:41:21 +12:00
zimt28
7d070e49bb
Correctly map results of inline calculations (#573) 2023-05-06 13:03:40 -04:00
Moxley Stratton
84aff5a999
Improve documentation for Ash.Changeset.add_error/3 (#572) 2023-05-05 20:23:03 -04:00
Zach Daniel
c174713b70 fix: user proper upsert identity for bulk operations 2023-05-04 11:07:44 -04:00
Zach Daniel
ab3267fdc8 chore: credo 2023-05-03 19:58:09 -04:00
Zach Daniel
b376b7267a fix: ecto type of map is just :map 2023-05-03 19:56:42 -04:00
Zach Daniel
f04ffd5ebd improvement: support bulk upserts 2023-05-02 21:56:15 -04:00
Zach Daniel
80820a01fc fix: unbound variable in schema definition 2023-05-02 20:11:31 -04:00
Zach Daniel
e05b5058dc docs: bulk actions docs 2023-05-02 20:08:25 -04:00
Zach Daniel
523452cb94 docs: basic actions -> generic actions 2023-05-02 20:00:18 -04:00
Zach Daniel
5d3235dbf9 fix: fix dialyzer 2023-05-02 19:52:03 -04:00
Zach Daniel
3a6d79e1c6 improvement: bulk create improvements, docs 2023-05-02 19:48:29 -04:00
Zach Daniel
1e61ae2d3c improvement: finishing initial touches on bulk actions 2023-05-02 17:24:24 -04:00
Zach Daniel
0d6a86e54e fix: proper return value for synthesized bulk creates 2023-05-02 14:28:27 -04:00
Zach Daniel
0ced9c7639 fix: assorted bulk create fixes 2023-05-02 14:04:08 -04:00
Zach Daniel
cb99faf918 fix: set upsert context from action on create changesets 2023-05-02 13:37:53 -04:00
Zach Daniel
80f696417d improvement: bulk create actions
This is not currently supported by any data layer other than ETS
2023-05-02 13:19:00 -04:00
Zach Daniel
2843224f06 fix: handle invalid input in basic actions 2023-05-02 02:07:53 -04:00
Zach Daniel
49949ff58f improvement: initial support for basic actions 2023-05-02 01:54:53 -04:00
Zach Daniel
ba4e7b40ae improvement: better messages for missed notifications 2023-05-01 20:39:20 -04:00
Zach Daniel
c6bf1c1fb1 improvement: retain stacktraces from task errors 2023-05-01 13:36:01 -04:00
Zach Daniel
4be823493c chore: format 2023-05-01 09:45:52 -04:00
Zach Daniel
f05527e459
fix: handle map relationship data in lateral join 2023-05-01 01:05:26 -04:00
Zach Daniel
9b323c84ed improvement: error if relationship.api is not an Ash.Api 2023-04-30 22:51:12 -04:00
Zach Daniel
7f460009af fix: proper source path for lateral joined relationships 2023-04-30 22:45:54 -04:00
Zach Daniel
d7aaec7499 feat: attribute_in/2 builtin validation 2023-04-28 16:05:58 -04:00
Zach Daniel
5875496367 improvement: more typespec fixes 2023-04-28 13:46:20 -04:00
Zach Daniel
b28ccf2e3c improvement: support lock option on read
improvement: data layer can? might get a dsl, not a resource
2023-04-28 13:38:03 -04:00
Zach Daniel
a5534397ff improvement: introduce basic locking 2023-04-27 21:28:50 -04:00
Zach Daniel
c83316e88b chore: fix credo 2023-04-27 14:01:02 -04:00
Zach Daniel
fbd2b2f50c fix: set flow argument defaults 2023-04-27 13:42:18 -04:00
Zach Daniel
fbc341b3a0 feat: add Api.stream!/1 2023-04-26 17:12:21 -04:00
Zach Daniel
0398883079 chore: fix error message 2023-04-26 15:19:41 -04:00
Zach Daniel
38ec164e3e improvement: include resource validations by default
improvement: validate explicit api configurations, with good error messages
2023-04-25 21:31:01 -06:00
Zach Daniel
8821736227 fix: handle join relationship in different api 2023-04-25 00:25:09 -06:00
Zach Daniel
97daeeb8fb fix: don't warn on being managed from attribute changing 2023-04-24 07:04:40 -06:00
Zach Daniel
3d8f988e13 fix: don't initially require attributes for belongs to relationships being managed 2023-04-23 22:24:56 -06:00
Zach Daniel
ba1fa4c6d5 fix: simple equality filter should not traverse ors 2023-04-22 08:26:21 -06:00
Zach Daniel
4e5913588a fix: more fixes to optimized boolean filter building 2023-04-21 10:44:22 -06:00
Zach Daniel
b67c2b7f34 fix: don't optimize across or boundaries 2023-04-20 17:31:06 -06:00
Frank Dugan III
2e5f045f72
feat: add fields/1 and public_fields/1 to Ash.Resource.Info (#569) 2023-04-20 12:27:13 -06:00
Zach Daniel
d5074a1dd4 fix: handle calculation deps w/ multiple nested relationship paths 2023-04-20 07:46:42 -06:00
Zach Daniel
84a426c53e chore: don't require action set in run_query/6 2023-04-19 21:03:57 -06:00
Zach Daniel
d1d8deaab3 fix: only do tenant things in ETS if strategy is :context 2023-04-19 20:19:42 -06:00
Zach Daniel
5005d57b1d fix: add the spark function version of calculations 2023-04-18 20:22:17 -04:00
Zach Daniel
2cbae1bd9a fix: proper error message on invalid inline function calculation 2023-04-18 16:42:26 -04:00
Zach Daniel
6b5a1da66d docs: improve api/interface documentation for aggregates 2023-04-18 12:10:52 -04:00
Mariusz Morawski
ce749072e4
improvement: Add upserts option to flow's create step (#566) 2023-04-16 10:46:38 -04:00
Mariusz Morawski
8686cc9417
Fix: Add tenant attribute to identity attributes on upserts (#565) 2023-04-16 10:44:20 -04:00
George Anderson
54f65b4d6f
improvement: Change storage type of Ash.Type.Term to :binary (#561) 2023-04-13 15:59:34 -04:00
Zach Daniel
13591a4681 chore: docs & deprecations 2023-04-13 09:24:37 -04:00
Zach Daniel
81c9475e2e chore: fix return_notifications? behavior 2023-04-13 01:41:19 -04:00
Zach Daniel
911acdef5b chore: better notification handling 2023-04-12 18:10:17 -04:00
Zach Daniel
dcd8f305b6 chore: only gather notifications if not return_notifications? 2023-04-12 17:38:45 -04:00
Zach Daniel
ba5a7e2cb7 improvement: automatically gather up notifications 2023-04-12 17:35:17 -04:00
Zach Daniel
36d6380c6e fix: properly require attributes on creates 2023-04-11 09:42:11 -04:00
Zach Daniel
92edb11499 improvement: add build_action_metadata to resource builder
improvement: add `Ash.merge_context/1` and `Ash.update_context/1`
2023-04-10 19:03:16 -04:00
Zach Daniel
38cdaa8c88 fix: don't require values if a changeset result has been set 2023-04-08 19:25:26 -04:00
Zach Daniel
29096c27ae fix: properly return errors on invalid calculation arguments 2023-04-08 03:39:41 -04:00
Barnabas Jovanovics
b5e0cbb3cc
improvement: add constraints to maps (#556) 2023-04-07 09:53:41 -04:00
Zach Daniel
be7fa0f898 chore: use unused variable 2023-04-06 12:39:11 -04:00
Zach Daniel
a14d9ab456 fix: user unpaginated_read for read_one 2023-04-06 12:35:30 -04:00
Zach Daniel
f104e155e9 chore: credo 2023-04-06 10:30:58 -04:00
Zach Daniel
a20ee0abf7 chore: fix tests/stacktrace setting 2023-04-06 10:23:17 -04:00
Zach Daniel
80616781d6 Revert "chore: fix tests"
This reverts commit 67305a6ec8.
2023-04-06 09:38:21 -04:00
Zach Daniel
67305a6ec8 chore: fix tests 2023-04-06 09:32:10 -04:00
Zach Daniel
92208d8f84 chore: fix tests and add_expression_part 2023-04-05 20:49:28 -04:00
Zach Daniel
4afe87159b fix: handle strings better in refs 2023-04-05 18:44:24 -04:00
Zach Daniel
66bb01f3bb fix: consider strings in ref 2023-04-05 18:40:00 -04:00
Zach Daniel
cc01bd9b04 chore: fix invalid guard 2023-04-05 18:38:34 -04:00
Zach Daniel
1ecde072f0 chore: consider strings in ref 2023-04-05 18:37:42 -04:00
Zach Daniel
11771c8b02 chore: don't overwrite stacktraces 2023-04-05 18:33:09 -04:00
Zach Daniel
018ecca89e chore: inspect invalid return result 2023-04-05 18:26:12 -04:00
Zach Daniel
a41841940c chore: add error message on return format 2023-04-05 18:25:35 -04:00
Zach Daniel
db508f7038 chore: credo 2023-04-04 16:41:14 -04:00
Zach Daniel
72158a8c9a chore: always raise class errors 2023-04-04 15:53:55 -04:00
Zach Daniel
f177c1cda0 improvement: validate returnable steps in flow returns 2023-04-04 15:46:28 -04:00
Zach Daniel
a6e3ff233e fix: various ash flow return value fixes 2023-04-04 15:36:08 -04:00
Mariusz Morawski
a0287f96a0
fix: Fix set_new_attribute by adding missing option to set_attribute (#553) 2023-04-04 10:35:30 -04:00
Zach Daniel
152a0b185c chore: better error context on resolvers 2023-04-03 23:45:49 -04:00
Zach Daniel
6ba7c76aea fix: show context on all errors 2023-04-03 23:44:16 -04:00
Zach Daniel
30309dac1d fix: include error context in top level of errors 2023-04-03 23:28:55 -04:00
Zach Daniel
6a13903673 chore: add context to resolver errors 2023-04-03 23:16:48 -04:00
James Harton
882747adef
chore: fix various incorrect "context" typespecs. (#547) 2023-04-04 10:49:37 +12:00
Zach Daniel
ff98fe7ed1 improvement: update touched_resources logic 2023-04-03 18:46:16 -04:00
Alan Heywood
698cbd1f4c
improvement: Add :field option to relate_actor change (#546) 2023-04-02 21:50:32 -04:00
Zach Daniel
fd7854acc1 chore: fix build 2023-04-02 21:49:53 -04:00
Zach Daniel
e29ad1fcb1 improvement: thread context through when loading data 2023-04-02 21:42:01 -04:00
kernel-io
3a4b82a41e
remove deprecation warning on aggregate/5 in query.ex (#545) 2023-04-01 18:46:19 -04:00
Zach Daniel
4fd4055e21 chore: fix small lint issue 2023-04-01 18:26:39 -04:00
Zach Daniel
eb2c2de528 chore: a few small error case improvements 2023-04-01 18:19:08 -04:00
Zach Daniel
f832ab3624 improvment: loading data shouldn't call before action hooks
by this, I mean that loading data shouldn't call before action
hooks on the root resource you're loading data on
2023-04-01 01:35:12 -04:00
Zach Daniel
a9db35e79f fix: properly handle nested calculation selects 2023-03-31 12:36:20 -04:00
Zach Daniel
7f1ee67dde improvement: update spark to fix deeply nested DSLs 2023-03-31 11:54:44 -04:00
b8484710bb improvement(read_uses_flow?): Build stub for Ash.Actions.Flows.Read.
Returns an empty result, but at least it returns a result so now we have failing tests with this feature flag, rather than a compile error.
2023-03-31 15:32:47 +13:00
Zach Daniel
9baf9d21ea fix: fix typespecs and not_found_error? code interface option 2023-03-30 16:51:54 -04:00
Zach Daniel
a745939913 fix: typespec support Expr.t() in calculation builder 2023-03-30 12:50:17 -04:00
Zach Daniel
cbc9703cc7 chore: fix NewType dialyzer error 2023-03-30 09:01:59 -04:00
Zach Daniel
648572386a improvement: properly set related resource 2023-03-30 08:27:37 -04:00
Zach Daniel
47468391c2 improvement: simpler required attributes behavior 2023-03-30 01:47:58 -04:00
Zach Daniel
1db7025b41 test: add a test for calc -> calc -> attribute chain
chore: simplify some code
2023-03-29 21:34:50 -04:00
Zach Daniel
bacd54a01b fix: remove bad default for struct constraint 2023-03-29 20:24:45 -04:00
Alan Heywood
6e76a91215
improvement: add :subfield option to relates_to_actor_via (#540) 2023-03-29 12:11:23 -04:00
Zach Daniel
b4163127f9 improvement: add accessing_from/2 builtin check 2023-03-29 09:19:49 -04:00
Zach Daniel
24d802cd4b fix: use values when already loading aggregates 2023-03-29 08:02:10 -04:00
9c5119d8c8 chore: add read_uses_flow? feature flag. 2023-03-29 16:15:59 +13:00
557f60b03b chore: fix dialyzer error in Ash.Query.select_and_load_calc/3 2023-03-29 16:15:59 +13:00
Zach Daniel
ad347ca38b improvement: rewrite calculation loader
Calculation loading is complex because different calculations can
depend on differently parameterized things. FOr example:

```elixir
def load(_, _, _), do: [foo: %{arg: 1}]
def load(_, _, _), do: [foo: %{arg: 2}]
```

The previous naive implementation would simply merge all of the calculation loads, which naturally would not work. Now we ensure that we load each requirement in isolation.
2023-03-28 20:34:15 -04:00
bcksl
de943509f7
improvement: add {set,update,get}_context to Ash.PlugHelpers (#534) 2023-03-23 23:01:27 -04:00
Zach Daniel
5bfc1aeb0c improvement: improve compile times with 🪄 2023-03-23 22:39:56 -04:00
Zach Daniel
de550e7bac improvement: fix action typespecs 2023-03-23 19:13:26 -04:00
bcksl
53c99a0705
improvement: add option set_when_nil? to builtin change set_attribute (#528) 2023-03-22 22:48:06 -04:00
Zach Daniel
e60f255ac9 chore: fix typespec for subtype_constraints/1 2023-03-22 19:40:54 -04:00
bcksl
dc2cb7b86f
improvement: add update_actor to Ash.Plughelpers (#532) 2023-03-22 12:59:54 -04:00
Zach Daniel
d777f2924d fix: use proper arguments for aggregating queries 2023-03-21 15:54:02 -04:00
Zach Daniel
678497b263 chore: fix dialyzer typespec 2023-03-21 15:15:08 -04:00
Zach Daniel
ed45a72ea6 improvement: add skip_global_validations? option for actions 2023-03-21 13:33:48 -04:00
Zach Daniel
65f21e76be fix: datetime_add was actually datetime_subtract in elixir 2023-03-21 09:37:10 -04:00
Alan Heywood
9966274678
fix: prevent exception when describing some checks (#531) 2023-03-21 08:59:05 -04:00
James Harton
171967d6de
improvement: Add get_by option to read actions. (#530) 2023-03-21 18:03:06 +13:00
Zach Daniel
3c464b863f improvement: builder & typespec improvements 2023-03-20 23:11:17 -04:00
James Harton
9dc202ca44
chore: fix incorrect typespec for SimpleCheck.context. (#529) 2023-03-20 13:38:46 +13:00
Zach Daniel
3a82204c8f improvement: better resource detection of transactions in Ash.Flow
fix: properly handle multi-resource transaction return values
improvement: better formatting for branches in flow charts
2023-03-17 18:42:17 -04:00
Zach Daniel
8b722e6460 fix: various fixes in aggregate authorization behavior
improvement: add `:read_action` and `:authorize?` configurations for resource aggregates
2023-03-17 12:02:37 -04:00
Rebecca Le
22cad90ae7
docs: format code blocks appropriately (#527) 2023-03-16 09:42:01 -04:00
Zach Daniel
700b577cb2 fix: use builtin short names for builtin type helper 2023-03-14 13:47:15 -04:00
James Harton
a8346907c1
improvement: Add before_action/1 and after_action/1 to Ash.Resource.Preparations.Builtins. (#526) 2023-03-13 19:20:41 -04:00
Zach Daniel
1f2e8f7a09 fix: properly set builtin types 2023-03-13 18:29:53 -04:00
Zach Daniel
a559a0cd3f improvement: add Ash.Type.NewType 2023-03-13 17:44:27 -04:00
Zach Daniel
15657f3e51 improvement: add :unknown for all potential facts 2023-03-10 20:24:36 -05:00
Zach Daniel
b899a6ecf3 improvement: optimize policy check running with laziness
Implemented lazy evaluation of individual checks, so that checks that
are demonstrably irrelevant when building policies are not checked at all.
This will often mean no need to visit the sat solver at all, or only with
a very minimal set of filter checks.
2023-03-10 13:29:29 -05:00
Zach Daniel
3233129682 improvement: don't select when running policy queries 2023-03-10 00:17:44 -05:00
Zach Daniel
5723b0447f fix: remove pre_flight expression checking 2023-03-09 20:57:53 -05:00
James Harton
ee99bf367f
improvement: Add builtin changes for lifecycle hooks. (#523) 2023-03-09 19:59:39 -05:00
Zach Daniel
979b4e648d fix: properly return false on forbidden errors 2023-03-09 07:55:27 -05:00
Zach Daniel
2fcacc4be6 chore: support data option for can? with updates/destroys 2023-03-08 16:41:25 -05:00
Zach Daniel
c643e9a88f improvement: add Api.can? and Api.can 2023-03-08 16:34:44 -05:00
Zach Daniel
785af56002 fix: add actor back to transaction metadata 2023-03-06 08:59:20 -05:00
Juha
2db5de0be7
Fix typo in Ash.Flow moduledoc (#520) 2023-03-06 08:05:35 -05:00
Zach Daniel
0715da0aad improvement: add delay_global_validations? action option 2023-03-03 13:07:14 -05:00