Commit graph

2041 commits

Author SHA1 Message Date
Zach Daniel
5c8f96231e docs: finalize initial cheat_sheet/docs pattern 2023-09-26 23:13:40 -04:00
Zach Daniel
df2102501c chore: replace_doc_links now doesn't mess up source urls
chore: replace_doc_links now links to spark generated dsl cheat sheets
2023-09-26 22:25:08 -04:00
Zach Daniel
b0115f5116 fix: don't authorize on identity usage validations 2023-09-26 16:09:51 -04:00
Zach Daniel
d07ca084a5 fix: handle empty batches in bulk create 2023-09-26 15:22:37 -04:00
Zach Daniel
ae3125483c chore: fix trace span type dtypespec 2023-09-26 11:29:37 -04:00
Zach Daniel
27a368660f improvement: expose max/min constraints on Ash.Type.Float 2023-09-26 08:26:34 -04:00
Zach Daniel
728a63b416 chore: default Ash.Type.Datetime storage type
I shouldn't have to do this, though?
2023-09-25 11:19:25 -04:00
Barnabas Jovanovics
9e16109950
feat: expose query or changeset to field policies (#701) 2023-09-25 11:13:36 -04:00
Zach Daniel
93fc4a35b2 improvement: rework utc_datetime to datetime
the old types are now newtypes over the new type

fixes: #704
2023-09-25 11:11:56 -04:00
Zach Daniel
5466c88d58 improvement: explicitly validate manual action return types 2023-09-25 10:49:34 -04:00
Zach Daniel
2d9f9ee362 improvement: deprecate old school manual actions
note: these have been deprecated for a very long time, removing them will not
be considered a breaking change (and there will be clear compile errors)
2023-09-25 09:40:29 -04:00
Zach Daniel
64f134089b improvement: better UX around nimble options errors
improvement: remove old, now-deprecated config

While we *could* call that a breaking change, there is a warning explaining to users what
they would need to do if they have the deprecated value configured, and it has been in a
deprecation state for many months/releases now.
2023-09-25 09:27:03 -04:00
Zach Daniel
b6ef345936 chore: fix transaction call 2023-09-22 17:16:22 -04:00
Zach Daniel
b13c7f0e53 improvement: add Ash.Query.around_transaction/2 2023-09-22 16:46:43 -04:00
Dmitry Maganov
1aa0c9c84c
fix: revert :wrap_list usage for topic in PubSub, needs recursion (#702) 2023-09-22 06:52:53 -04:00
Zach Daniel
1a307385b5 improvement: add sequence generator utility 2023-09-21 18:51:30 -04:00
Dmitry Maganov
ecd7075fbc
fix: more usages of :wrap_list type (#700) 2023-09-21 08:34:46 -04:00
Zach Daniel
6a2f0e41e5 chore: format 2023-09-20 16:59:56 -04:00
Dmitry Maganov
a0ada2ed7d
fix: add missing usage of :default_belongs_to_type (#699) 2023-09-20 16:59:33 -04:00
Zach Daniel
1d43b26127 chore: move validate_relationship_attributes to a verifier 2023-09-20 16:51:38 -04:00
Zach Daniel
3d2c012189 chore: clean up dialyzer errors 2023-09-20 16:39:28 -04:00
Zach Daniel
05b9ac1f86 improvement: make storage_type overridable by new_types 2023-09-20 16:25:09 -04:00
Zach Daniel
17b1a0b2df fix: properly wrap [tracer] in Ash.Flow 2023-09-20 13:31:58 -04:00
Dmitry Maganov
e0d5a63c65
fix: use :wrap_list type where appropriate (#698) 2023-09-20 10:58:47 -04:00
Dmitry Maganov
77eae2954f
fix: get_by option can accept a single atom (#697) 2023-09-20 10:39:58 -04:00
Zach Daniel
c8e796fbcb fix: properly handle nil values in embedded resources 2023-09-18 20:57:32 -04:00
Zach Daniel
b0bd2d23d9 improvement: support map_with_tag storage mode for Ash.Union.
closes #694
2023-09-18 10:13:22 -04:00
Zach Daniel
08f56eddf4 improvement: if no authorizers are set, anyone can do anything 2023-09-17 16:05:02 -04:00
Zach Daniel
38dc478719 fix: ensure that can always returns an error when asked 2023-09-17 16:03:25 -04:00
Zach Daniel
76e744a54a improvement: explicit error on after_action hook mismatch 2023-09-16 12:33:25 -04:00
Stefan Wintermeyer
9617fa6910
Improve example update_timestamp docu (#693) 2023-09-16 06:48:53 -04:00
Zach Daniel
f6f0a3e26f fix: get type for manual action at compile time 2023-09-15 13:25:29 -04:00
Zach Daniel
b900290f0d docs: update custom type docs to handle nil values 2023-09-14 22:36:23 -04:00
Zach Daniel
6a2bb30d1d improvement: add allow_nil? to generic actions, defaults to false 2023-09-14 16:52:08 -04:00
Zach Daniel
e7f59862ab docs: lots of docs improvements 2023-09-13 23:18:14 -04:00
Zach Daniel
654c12cc78 docs: update registry option docs 2023-09-13 22:36:57 -04:00
Zach Daniel
8046bc98b0 docs: remove the registry example from api docs 2023-09-13 22:34:47 -04:00
Zach Daniel
6e2d1fd0ac docs: greatly improved DSL documentation in hex 2023-09-13 22:17:18 -04:00
Zach Daniel
58e7afde1b fix: properly handle bubbled up exceptions from type casting 2023-09-13 14:31:25 -04:00
Zach Daniel
0a35989802 fix: typo in new tracer setting logic 2023-09-13 13:58:40 -04:00
Zach Daniel
4804e8eb87 fix: properly expose nested errors on unions
closes: #692
2023-09-13 10:31:06 -04:00
Zach Daniel
b4221ecc6d improvement: set_handled_error/3 for when errors are returned 2023-09-13 00:05:04 -04:00
Zach Daniel
480d55a852 fix: propertly handle configured list of tracers 2023-09-12 21:47:30 -04:00
Zach Daniel
471bf8228c chore: fix typo properly 2023-09-12 11:56:34 -04:00
Zach Daniel
d1a0108db1 chore: typo 2023-09-12 11:54:55 -04:00
Zach Daniel
1f319faf97 improvement: support trace_type?/2 in tracers 2023-09-12 11:54:04 -04:00
Zach Daniel
91013c2de0 improvement: support stacktraces in set_error 2023-09-12 11:26:11 -04:00
Zach Daniel
47fbf4b35a improvement: support multiple tracers, instead of just one 2023-09-12 10:54:42 -04:00
Zach Daniel
e2855843ca improvement: support vector types 2023-09-11 22:28:51 -04:00
Josh Price
cedcda903f docs(dsl): various doc and formatting improvements
Tried removing all triple backticks to fix https://github.com/ash-project/ash/issues/690 but this didn't remove the warning about unclosed backticks.
2023-09-07 07:03:44 -04:00
Josh Price
08081c09ba docs(changeset): various doc and formatting improvements
Conference training driven development.
2023-09-07 07:03:44 -04:00
Zach Daniel
b45174fc54 fix: fix formatting for policies with conditions 2023-09-06 01:56:36 -04:00
Zach Daniel
1fde073bc1 fix: policy mermaid chart fix forbid_unless behavior 2023-09-06 01:46:22 -04:00
James Harton
5f6920ef92
improvement: Allow resources to opt out of the primary key requirement. (#687)
This is experimental and will likely cause breakages. It's to support time series tables.
2023-09-06 10:21:42 +12:00
Zach Daniel
567dcf6372 fix: better handling for negate error messages 2023-09-04 16:01:48 -04:00
Zach Daniel
427a42d45b improvement: raise runtime error on misuse of negate 2023-09-04 15:42:07 -04:00
Zach Daniel
879b52b900 fix: compile before ash tasks 2023-09-04 13:38:27 -04:00
Zach Daniel
b9e6327d7f improvement: add ash.reset and ash.tear_down 2023-09-04 13:07:14 -04:00
Zach Daniel
c67c77a617 fix: fix no such action error on create changesets
fix: remove policy documentation due to compile time links
2023-09-04 11:48:38 -04:00
Zach Daniel
5cd7194e5e chore: don't explain policy in module docs to test an issue 2023-09-04 11:34:50 -04:00
Zach Daniel
5b5995d783 improvement: show policy mermaid chart in moduledocs 2023-09-04 09:53:55 -04:00
Zach Daniel
967c467f84 chore: only generate for resources w/ policy authorizer 2023-09-04 09:23:22 -04:00
Zach Daniel
655fa42416 chore: clean up flow chart generated Or edges 2023-09-04 09:19:51 -04:00
Zach Daniel
a131dfeb03 fix: show policy conditions, and fix final destination of last policy condition 2023-09-04 09:03:47 -04:00
Zach Daniel
69623a1efe chore: cleanups for new mix task 2023-09-04 01:23:57 -04:00
Zach Daniel
8e2396b0b1 improvement: add mix ash.generate_policy_chart 2023-09-04 01:07:12 -04:00
Zach Daniel
030f240273 fix: include path in unique path for anonymous aggregates 2023-09-01 18:39:38 -04:00
Zach Daniel
e423ec5381 fix: give anonymous aggregates constant names 2023-09-01 17:23:04 -04:00
Barnabas Jovanovics
b661022736
fix: sort operator names in keyset (#684) 2023-09-01 06:53:01 -04:00
Zach Daniel
c5ea541b2d chore: rework atomics to atomic_update change and function
improvement: add `Ash.context_to_opts/1-2`
2023-08-29 14:39:38 -04:00
Zach Daniel
18cb24e7f7
improvement: implement atomics, expression-based changes (#682)
there is still a lot of potential work that needs to be on this front.
1. supporting atomics on create actions.
2. supporting atomics in upserts (this one may actually be much easier than the first one, for postgres specifically, due to ecto implementation details)
3. discovering places atomics can be more nicely integrated into existing changes, validations, policies
2023-08-28 16:05:26 -04:00
Zach Daniel
452ec7df9d chore: format 2023-08-25 13:57:13 -04:00
Zach Daniel
f05bcec2eb improvement: hide __order__ and __lateral_join_source__ on records 2023-08-25 13:21:26 -04:00
Zach Daniel
537d25c68d fix: action.update_default -> field.update_default typo 2023-08-25 12:10:36 -04:00
Zach Daniel
7d5fd04e5c fix: ensure that errors/records return the proper value in bulk creates
closes #681
2023-08-25 08:59:24 -04:00
Zach Daniel
97ab3272db fix: properly optimized nested get_path calls 2023-08-23 12:51:35 -04:00
Zach Daniel
221280f1f5 fix: simplify and fix duplicate detection in embedded resources 2023-08-22 19:02:38 -04:00
Zach Daniel
b3f9a359d7 fix: better handling of runtime maps & lists
fix: properly handle `as` option for calculations in calculation dependencies
2023-08-22 18:26:20 -04:00
Zach Daniel
83b29f7bbd fix: handle inline aggregates in calculation resolver 2023-08-22 15:28:50 -04:00
Zach Daniel
95c5f5f1ac improvement: support in-line aggregates 2023-08-22 14:43:42 -04:00
Zach Daniel
7da453409c chore: credo 2023-08-22 14:31:32 -04:00
Zach Daniel
56a96f04ed fix: init validations at runtime not compile time 2023-08-22 14:29:22 -04:00
James Harton
269889c34b
fix(Ash.Filter): Don't overly constrain related references. (#678)
We now only apply related policies to filter statements based on references
that are explicitly annotated as inputs.  This is the same logic that backs
protecting access in filters for field policies.
2023-08-21 19:39:07 -04:00
Zach Daniel
a37c8b17a8 fix: handle nil constraints in cast_input 2023-08-21 19:26:05 -04:00
Zach Daniel
bd0f89c9dd chore: fix typo 2023-08-21 13:57:10 -04:00
Zach Daniel
34084c52ca fix: properly handle in-line maps in exprs 2023-08-21 13:56:34 -04:00
Zach Daniel
356fa3a780 fix: don't cast notloaded/forbidden values at runtime 2023-08-21 11:35:00 -04:00
Zach Daniel
4adbd47191 fix: add required errors for missing read arguments 2023-08-21 10:14:10 -04:00
Eduardo B. A
3b67313129
improvement: Set api field for ActionInput when running action (#676)
Co-authored-by: Eduardo <sezdocs@dev-distrobox.fedora.local>
2023-08-20 10:06:32 -04:00
Alessio Montagnani
6785e30b68
improvement: make resource's DSL attributes section patchable (#675) 2023-08-19 14:05:19 -04:00
Tchowa Franck A
7e47bfb60f
improvement: validate all actions and accept/reject fields at once. (#674) 2023-08-18 20:47:35 -04:00
Zach Daniel
6136ca693b fix: don't evaluate unknown types in basic operators 2023-08-18 11:37:20 -04:00
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