Commit graph

1999 commits

Author SHA1 Message Date
Tchowa Franck A
f302dca003
Feature: Ensure aggregate field is attribute or calculation. (#671) 2023-08-17 18:02:05 -04:00
Zach Daniel
50164049df fix: Enum types only have storage_type/0 still 2023-08-17 17:57:50 -04:00
Zach Daniel
b51dbe49c9 improvement: storage_type/0 -> storage_type/1 2023-08-17 17:52:00 -04:00
James Harton
025f75a1aa
improvement(Ash.Resource.Calculation): set struct defaults. (#673) 2023-08-17 18:17:09 +12:00
Zach Daniel
bb8f3334cd improvement: track invalid keys, don't add required errors for them 2023-08-15 22:25:20 -07:00
Zach Daniel
453655326c chore: fix dialyzer 2023-08-15 17:10:07 -07:00
Zach Daniel
46e8dd43bd fix: inspecting a query now only shows arguments explicitly set 2023-08-15 16:52:53 -07:00
Zach Daniel
8233634bb1 improvement: properly set path into error instead of on error messages
TBD: this may break some people's tests, and so may need to be
reverted or released as part of 3.0
2023-08-15 16:23:06 -07:00
Zach Daniel
8c1f334075 improvement: expose union errors with path when tag is set 2023-08-15 14:07:28 -07:00
Zach Daniel
5549bbf290 fix: don't set attributes or arguments to invalid values 2023-08-15 11:00:49 -07:00
Zach Daniel
140a1c9ca3 chore: remove all_loaded 2023-08-14 16:57:08 -07:00
Zach Daniel
72fada1bec improvement: find all installed extensions by default 2023-08-14 16:18:45 -07:00
Zach Daniel
cf9c92f158 improvement: add initial implementation of new mix tasks 2023-08-14 15:30:35 -07:00
Zach Daniel
376ac3889f improvement: add plural_name
fix: handle atomic/string union type identifiers better
2023-08-14 14:09:08 -07:00
Zach Daniel
1291e226c8 fix: handle empty field policy lists better internally 2023-08-11 01:25:50 -07:00
Barnabas Jovanovics
f85bc95ff5
chore: release version v2.14.0 (#669) 2023-08-09 19:43:55 +02:00
Zach Daniel
b1acd6b2f8
fix: optimized boolean expression building typo 2023-08-09 09:46:45 -07:00
Zach Daniel
7ae9244d01 fix: don't optimized in/== predicates across incorrect boolean expressions 2023-08-08 12:17:07 -07:00
Zach Daniel
6daae630f4 fix: various fixes with runtime evaluation of aggregates
fix: handle mnesia transaction errors properly
2023-08-06 00:41:29 -04:00
Zach Daniel
f22a07d613 improvement: add from_many? option to has_one 2023-08-04 18:35:56 -04:00
Zach Daniel
32f8224fba fix: fix badly formatted error message 2023-08-03 20:16:17 -04:00
Zach Daniel
cf99929230 improvement: initialize change opts in bulk actions
fix: better error message in `validate_related_resource_inclusion`
test: add test for arguments in bulk create actions
2023-08-02 12:41:54 -04:00
Zach Daniel
d16e290077 improvement: validate resourcesin apis 2023-07-28 11:51:51 -04:00
Zach Daniel
1871e19fa9 improvement: added round/1 and round/2 to expressions 2023-07-27 11:49:02 -04:00
Zach Daniel
7bbc7ba4e3 improvement: add new/1 to all ash errors, because its nicer 2023-07-26 23:01:29 -04:00
Zach Daniel
f1f1aa8a6e improvement: allow for parent/1 expressions to be resolved "later" 2023-07-26 18:50:20 -04:00
Zach Daniel
bda7c56543 improvement: support parent/1 in relationships 2023-07-26 16:46:22 -04:00
Zach Daniel
b9abe2aa72 fix: handle changeset errors in mnesia transactions 2023-07-24 12:17:06 -04:00
Zach Daniel
78a62feb89 improvement: enrich mnesdia data layer
fix: fix builder for action preparations
2023-07-24 10:23:34 -04:00
Zach Daniel
da73502a2f fix: before/after batch callbacks are no longer broken
test: add tests for those callbacks being executed
2023-07-22 19:51:27 -04:00
Zach Daniel
2fe810f3fc improvement: remove ecto after compile hook
chore: file name typo
2023-07-21 09:11:42 -04:00
Zach Daniel
a85809f634 improvement: add aggregate context when adding aggregates 2023-07-20 21:58:13 -04:00
Zach Daniel
751a718925 fix: try to cast_stored expression calculation results 2023-07-20 20:41:24 -04:00
Minsub Kim
f789bde709
feat: validate arg (#662)
* feat: validate argument unequality

* feat: validate argument in
2023-07-20 08:24:15 -04:00
Rebecca Le
b5edc6fba1
fix: read argument value in ArgumentEquals validation (#664) 2023-07-20 08:04:21 -04:00
Zach Daniel
0d0abf4fda improvement: support distinct_sort in Query.build/2 2023-07-19 12:51:37 -04:00
Zach Daniel
20877f18b5 improvement: inspect distinct_sort 2023-07-19 12:27:22 -04:00
Zach Daniel
e5563ce664 fix: Keyword.fetch on keywords, fix test name 2023-07-19 11:18:20 -04:00
Zach Daniel
7f3ec1b8bf improvement: support distinct_sort 2023-07-19 11:06:01 -04:00
Spark Kim
3a827c85e4
feat: validate argument equality (#659) 2023-07-19 09:49:46 -04:00
Mariusz Morawski
7f165ce99f
chore: Remove leftover commented out debug code (#658) 2023-07-19 09:48:59 -04:00
Zach Daniel
ac4d803cc0 chore: fix typo 2023-07-18 15:54:38 -04:00
Zach Daniel
c0eec23abb improvement: use Comp.equal? for actor_attribute_equals check 2023-07-18 15:54:03 -04:00
Zach Daniel
3c42062861 fix: allow the query & related fields to be read before authorization status is complete 2023-07-18 15:23:27 -04:00
Zach Daniel
5b2efe5e5c improvement: support distincting on calculations
improvement: support distinct in ets data layer for testing
2023-07-18 14:35:25 -04:00
Zach Daniel
bae2aa2ad2 fix: only depend on calcs in runtime calcs 2023-07-18 13:02:38 -04:00
Zach Daniel
d98f66da6f fix: handle manual relationships where source field doesn't exist 2023-07-18 07:49:00 -04:00
Zach Daniel
4508d1d469 improvement: support the - unary operator
yknow, because numbers are negative sometimes
2023-07-17 22:22:09 -04:00
Zach Daniel
3af1b8a994 fix: only error on incorrect destination managed relationships when they are resources 2023-07-14 15:33:54 -04:00
Eliel Gordon
216755b275
fix set_tenant spec (#655) 2023-07-14 12:38:56 -04:00
Zach Daniel
fcc319d965 improvement: add ForbiddenField exception 2023-07-13 09:05:04 -04:00
Zach Daniel
94815605b9 improvement: warn on api missing from config 2023-07-13 08:42:52 -04:00
Zach Daniel
9987cb05e8 chore: better error message on resource in no apis 2023-07-13 08:23:13 -04:00
Zach Daniel
c0d8a86987 improvement: support resources directly in API modules
improvement: compile time warning on resources not detected in any apis
2023-07-13 01:38:21 -04:00
Zach Daniel
7114b5efbb improvement: exists type aggregate 2023-07-13 00:08:51 -04:00
Zach Daniel
2634d3d830 improvement: add at/2 function 2023-07-12 16:53:43 -04:00
Zach Daniel
d27e871b8f improvement: add string_split expression 2023-07-12 15:11:21 -04:00
skanderm
925f5c1f9a
fix: incorrect error for casting binary UUID (#653) 2023-07-11 20:35:01 -04:00
Zach Daniel
8e12a14b25 improvement: add field_policy_bypass
fix: fix and improve policy breakdown logs
improvement: optimize field selection/loading when possible
2023-07-11 10:28:07 -04:00
Zach Daniel
07d7dd5491 improvement: deselect fields we know statically are not visible 2023-07-11 09:23:25 -04:00
James Harton
ebbbcca301
fix: incorrect typespec for bulk_create/5. (#646) 2023-07-10 19:31:07 -04:00
Zach Daniel
1d2a04d972 chore: optimize replace_dynamic_loads/4 2023-07-10 09:02:53 -04:00
Barnabas Jovanovics
c442d83534
test: add test for aggregate field policy (#644) 2023-07-10 09:00:55 -04:00
James Harton
13a14674d0
fix: add handle_change/3 and prepare_change/3 to Ash.Type.Union (#642) 2023-07-10 11:55:53 +12:00
Zach Daniel
be75743b13 fix: properly detect selected attributes for changeset field policies 2023-07-06 10:58:09 -04:00
Mariusz Morawski
5ed2109e33
improvement: Add Negate validation (#636)
* Add `Negate` validation
---------

Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2023-07-05 16:25:51 -04:00
Zach Daniel
93d4f1fd26 fix: run before_action after authorization 2023-07-05 11:51:54 -04:00
Zach Daniel
d9687c7b1f fix: return accumulator to correct state after altering exists 2023-07-04 09:39:12 -04:00
Alan Heywood
4ab7e84e4f
fix: typo in at_most validation message (#640) 2023-07-04 08:59:12 -04:00
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