Commit graph

2939 commits

Author SHA1 Message Date
Zach Daniel
5c26975eb2 fix: don't consider primary key matches with nil values
fixes #876
2024-02-08 11:13:09 -05:00
Zach Daniel
2074cbe997 improvement: don't call telemetry when compiling 2024-02-08 10:48:22 -05:00
Dmitry Maganov
d47eb086a2
fix: continue cleanup in ManagedRelationshipHelpers (#873) 2024-02-07 14:56:04 -05:00
Zach Daniel
2cd6360379 fix: fix pattern match error on certain policy conditions
improvement: various policy behavior cleanups
2024-02-06 19:30:18 -05:00
Dmitry Maganov
b428fb8995
chore: continue update validate_related_resource_inclusion.ex (#871) 2024-02-06 19:29:20 -05:00
Bryan Bryce
974acdf5b9
chore: Update validate_related_resource_inclusion.ex (#870)
The error message had an error because it referred to a option name that doesn't exist
2024-02-06 12:46:34 -05:00
Zach Daniel
5b10d6f292 fix: use primary key for lateral join source in ets 2024-02-06 11:55:05 -05:00
Dmitry Maganov
0cc0e142a6
fix: set right accessing_from name in many to many managed create (#868) 2024-02-06 09:48:49 -05:00
Robert Graff
e331e24c7b
Pass the tenant to full_atomic_changeset call (#867) 2024-02-03 20:33:43 -05:00
Dmitry Maganov
e1efea81bf
improvement: add join_keys option to manage_relationship (#866) 2024-02-03 15:02:25 -05:00
Zach Daniel
89a8f59e18 fix: set_tenant on fully atomic changesets 2024-02-03 14:56:13 -05:00
Zach Daniel
dd3f4766ec fix: handle api.can case in authorize_changeset
fix: properly bypass authorization in atomic update switch-over
2024-02-02 04:25:07 -05:00
Zach Daniel
c5ef834b5b improvement: don't run check in cases that require strict checks 2024-02-01 17:09:34 -05:00
Zach Daniel
94ffeaa057 fix: properly set action_type on atomic changesets 2024-02-01 14:32:01 -05:00
Zach Daniel
1cd73e2ec7 chore: also properly process opts for destroy atomic changesets 2024-02-01 14:29:26 -05:00
Zach Daniel
618ae4459a chore: properly process opts for atomic changesets 2024-02-01 14:29:01 -05:00
Zach Daniel
3baa9c5951 fix: extract relationship filters from pre-authorization query 2024-02-01 13:06:43 -05:00
Zach Daniel
57654d3df4 improvement: atomic_batches behavior for bulk destroys
improvement: allow strategy selection for bulk actions
2024-02-01 13:00:52 -05:00
Zach Daniel
e707758c93 fix: retain metadata on updates, atomic and otherwise
fix: properly load expression -> runtime calculation deps
2024-02-01 10:21:22 -05:00
Barnabas Jovanovics
60c10e9af4
feat: support returning streams from mod calc (#864) 2024-02-01 09:06:51 -05:00
Zach Daniel
3b3e3a06f2 fix: ignore input? when considering refs equal in filter subset checking 2024-01-31 15:57:47 -05:00
Zach Daniel
b3977817bb chore: add sobelow skip statement 2024-01-31 15:47:38 -05:00
Dmitry Maganov
51990bd784
fix: change names of code interface methods for calculations (#863) 2024-01-31 15:42:22 -05:00
Zach Daniel
fc3cbc4e2c improvement: change nested field filtering to be done with at_path 2024-01-31 15:41:10 -05:00
Zach Daniel
9efe456e16 fix: properly mark manuall created input refs with input?: true 2024-01-31 12:12:06 -05:00
Zach Daniel
f7716c5222 improvement: support referencing non-array embeds in input filters 2024-01-31 12:11:36 -05:00
Zach Daniel
107e6c53f5 improvement: bulk update in batches if not given a query 2024-01-31 10:26:08 -05:00
Zach Daniel
9749b75e3b fix: clean vars should handle map vars 2024-01-31 09:46:11 -05:00
Zach Daniel
f8ef4529c1 fix: properly merge union loads 2024-01-31 08:29:02 -05:00
Zach Daniel
7811dfaa11 improvement: update action should respect load and select 2024-01-30 20:25:49 -05:00
Zach Daniel
6602ae63e6 fix: support expression calculations referencing runtime calculations 2024-01-30 16:34:17 -05:00
Zach Daniel
49ac5a23dd fix: set default access type properly 2024-01-30 13:37:34 -05:00
Zach Daniel
15ab382ee0 chore: remove IO.inspect 2024-01-30 13:17:12 -05:00
Zach Daniel
9f748b5c55 test: update authorizer tests
fix: properly handle the case where all valid scenarios are pruned
2024-01-30 13:11:47 -05:00
Zach Daniel
9e02b0d0c7 improvement: introduce require_atomic?, which defaults to false in 2.0, true in 3.0
fix: properly prevent the atomic handling of manual update actions
improvement: better support around the mixing of atomic and non atomic changes/validations
2024-01-30 12:32:41 -05:00
Zach Daniel
8e82d9588f chore: better handling of atomic validations 2024-01-29 17:55:56 -05:00
Zach Daniel
f4339be426 chore: fix stream option taking (again) 2024-01-29 15:56:48 -05:00
Zach Daniel
248f99ebcf fix: fix passing extra opts to stream
fix: properly check if data layer can update_query
2024-01-29 15:43:21 -05:00
Zach Daniel
210d8d03c7 improvement: more atomic implementations
chore: wrap up load/select support in atomic updates
2024-01-29 15:17:52 -05:00
Zach Daniel
c02bced508 improvement: support loading and selecting in bulk operations 2024-01-29 14:29:50 -05:00
Zach Daniel
cf009476b2 chore: better non-atomic message on updates 2024-01-29 11:15:56 -05:00
Zach Daniel
b01168b597 improvement: use atomic create actions where possible 2024-01-29 10:37:10 -05:00
Tun Cham Roeun
c075d18f33
fix: Ash.Type.Float to support min/max constraints(#856) 2024-01-28 09:11:10 -05:00
Zach Daniel
2549c20105 chore: format 2024-01-27 10:33:17 -05:00
Zach Daniel
c9c2408401 fix: add calculations before distinct is applied in data layer query 2024-01-27 10:20:23 -05:00
Zach Daniel
f1952a5d8b chore: format 2024-01-27 09:55:11 -05:00
Zach Daniel
77c01123f0 fix: properly set index on embedded type array errors
fixes #854
2024-01-27 09:55:04 -05:00
Dmitry Maganov
c40f762eee
fix: use correct option for relationship in atomic relate_actor (#855)
---------

Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2024-01-27 09:53:03 -05:00
Barnabas Jovanovics
fb3e7050a1
fix: only count resources the actor is allowed to see (#853)
* fix: only count resources the actor is allowed to see

* remove specc added by vscode
2024-01-26 13:33:03 -05:00
Zach Daniel
50b186bef9 chore: fix typespec 2024-01-25 14:22:41 -05:00
Zach Daniel
2888fea33b chore: format 2024-01-25 13:55:09 -05:00
Zach Daniel
b494c76a92 fix: deselect known forbidden fields *after* query authorization is complete 2024-01-25 11:19:52 -05:00
Zach Daniel
a68a628839 improvement: always define merge_load/4 2024-01-25 10:45:08 -05:00
Dmitry Maganov
c8b1eaa8f0
fix: soft? in destroy action options is a boolean, not an atom (#851) 2024-01-24 14:52:31 -05:00
Barnabas Jovanovics
cfec396f99
fix: load fails because of empty list instead of query (#847) 2024-01-24 11:18:51 -05:00
Zach Daniel
66295c4efb improvement: derive source_attribute_on_join_resource for many to many 2024-01-23 23:43:02 -05:00
Zach Daniel
13bff0a9cd fix: don't attempt to derive destination_attribute_on_join_resource 2024-01-23 23:38:52 -05:00
Zach Daniel
1f96993e1b chore: fix typo accessing action 2024-01-23 23:22:39 -05:00
Zach Daniel
fe3215cc07 improvement: atomic implementation for relate_actor
improvement: include a message along with the non-atomic signifier
2024-01-23 22:41:15 -05:00
Zach Daniel
3e87e6220f improvement: support transactions on bulk destroys 2024-01-23 22:10:14 -05:00
Zach Daniel
bf81f8c8a5 chore: format 2024-01-23 21:48:38 -05:00
Zach Daniel
1807523ba2 improvement: support transactions in bulk updates 2024-01-23 21:36:17 -05:00
Zach Daniel
878011bd3e improvement: count_nils/1 function
improvement: `present/absent` atomic implementation
improvement: add `atomic_ref/1` template helper
2024-01-23 19:13:14 -05:00
Jinkyou Son
2368fe82b6
improvement: Change typespec of tenant from String.t() to term() (#845) 2024-01-23 13:16:04 -05:00
Dmitry Maganov
91c34c3939
fix: join_relationship in many to many can make through optional (#846) 2024-01-23 13:15:51 -05:00
Barnabas Jovanovics
c60c5111ae
fix: make sure query has action (#844) 2024-01-23 10:42:34 -05:00
Barnabas Jovanovics
f25d7edc2f
fix: pass in actor to api.can call (#843)
* fix: pass in actor to api.can call

* only call api.can if authorize? is true
2024-01-23 09:22:19 -05:00
Nduati Kuria
d229ade9fc
Add :decimal aggregate support to DataLayer.Ets [WIP] (#841)
* Add `:decimal` aggregate support to `DataLayer.Ets`

* Add regression test

* Fix dialyzer

* Handle nils in `:avg` calculation

* Refactor nested ifs

* Refactor test
2024-01-22 16:03:34 -05:00
Barnabas Jovanovics
4ffd3cfa11
fix: do not check primary key fields in filter (#839) 2024-01-22 11:31:20 -05:00
Barnabas Jovanovics
20880691fb
fix: add page opts to context again (#838) 2024-01-22 11:29:13 -05:00
Zach Daniel
7b40917516 fix: return errors with query from read action
closes #837
2024-01-21 13:55:01 -05:00
Zach Daniel
ecf4893b64 fix: properly set defaults on upsert in mnesia 2024-01-21 12:06:16 -05:00
Zach Daniel
45be2a34eb chore: format 2024-01-21 01:27:08 -05:00
Zach Daniel
ce4c3cb2c1 fix: don't load through attributes twice, but also don't miss any 2024-01-21 01:26:22 -05:00
Zach Daniel
d013818c0a improvement: handle pkey-less resources when attaching fields
improvement: set lazy defaults when applying changeset attributes
2024-01-21 00:45:35 -05:00
Zach Daniel
a08582ed0f chore: remove IO.inspect 2024-01-20 21:50:14 -05:00
Zach Daniel
5af5702efb improvement: add prepend?: true option to add_change 2024-01-20 21:48:57 -05:00
Zach Daniel
fc522ff6c5 fix: handle errors properly from invalid loads 2024-01-20 19:39:35 -05:00
Zach Daniel
892cd7c845 fix: handle data layer calculations for missing records 2024-01-20 18:52:36 -05:00
Zach Daniel
7aaea7bd55 fix: only load through calculations in the correct order 2024-01-20 13:53:35 -05:00
Zach Daniel
aa227b8a6a chore: format 2024-01-19 21:17:22 -05:00
Zach Daniel
e646be5393 fix: properly detect cyclic dependencies in calculation runner
fix: properly annotate in-query calculations as complete for dependency calculation
2024-01-19 21:10:48 -05:00
Zach Daniel
e49f42a195 fix: fix present? and load_through bugs 2024-01-19 17:26:13 -05:00
Zach Daniel
21de0fe882 chore: fix typo 2024-01-19 16:27:36 -05:00
Zach Daniel
b654c0cd5c chore: remove IO.inspect 2024-01-19 16:26:51 -05:00
Zach Daniel
70918d42c5 chore: remove unused variables/aliases 2024-01-19 15:51:18 -05:00
Zach Daniel
1140771f74 fix: don't require pagination in incorrect cases 2024-01-19 15:50:35 -05:00
Zach Daniel
e5d78ae074 fix: get tests passing for bulk creates again 2024-01-19 10:49:26 -05:00
Zach Daniel
3db822d775 improvement: optimize embedded resource creation 2024-01-19 09:58:54 -05:00
Zach Daniel
c48cb08026
improvement: rewrite read actions to not use Ash.Engine (#836) 2024-01-19 00:05:42 -05:00
Zach Daniel
fc583b1d1e docs: remove old docs 2024-01-18 09:20:16 -05:00
Zach Daniel
4c96fdd40f fix: don't ignore stream batch size 2024-01-13 21:48:11 -05:00
Zach Daniel
6f56f3c4db chore: use ash_query as base count aggregate query 2024-01-12 14:18:01 -05:00
Zach Daniel
4200b5df50 chore: fix dialyzer/credo 2024-01-12 14:14:08 -05:00
Zach Daniel
072486bebd docs: revamp hexdocs
fix: use current read action for counting
2024-01-12 14:07:35 -05:00
Zach Daniel
0ca7393417 chore: undo typo 2024-01-12 08:40:34 -05:00
Zach Daniel
76cfe55a2a improvement: add all_tenants? option to identities 2024-01-12 08:36:06 -05:00
Zach Daniel
59e50f8dfa fix: set tenant attribute in bulk create
fixes: #830
2024-01-12 08:19:55 -05:00
Zach Daniel
db7e42713c docs: add a docstring for expr_sort 2024-01-12 07:49:58 -05:00
Jechol Lee
250c4ab8c8
improvement: support Ash.CiString in string_join (#832) 2024-01-12 00:21:30 -05:00
Jechol Lee
6b0e9fe1b3
improvement: Add code interface support in Info and Builder. (#828) 2024-01-12 00:19:51 -05:00
Zach Daniel
bbd866956d improvement: authorize each related join using join_filters 2024-01-12 00:17:37 -05:00
Rebecca Le
0a4a7c057d
feat: Allow :self as an option when requesting a relative page from a given page (#833) 2024-01-12 00:16:41 -05:00
Zach Daniel
3fac46e65b chore: fix shadowed variable 2024-01-11 17:08:05 -05:00
Zach Daniel
df94bfe0b6 chore: dialyzer 2024-01-11 16:27:43 -05:00
Zach Daniel
55219a0dfb chore: can't enumerate :unknown 2024-01-11 16:19:36 -05:00
Zach Daniel
f564e47fb8 fix: fix runtime filter parsing & make last arg optional 2024-01-11 15:45:47 -05:00
Zach Daniel
2e2d2c404c fix: undo incorrect behaviour in runtime evaluation 2024-01-11 15:35:49 -05:00
Zach Daniel
6b74072ada chore: formatter, cheat sheets, credo 2024-01-11 15:05:25 -05:00
Zach Daniel
35573a6f4e improvement: support join_filters in aggregates 2024-01-11 14:57:22 -05:00
Jechol Lee
5eaec735f8
fix: fix typespecs and cleanup Ash.Resource.Builder (#827) 2024-01-11 11:44:04 -05:00
Zach Daniel
5b82ce293f fix: authorize aggregate references in calculations 2024-01-10 07:11:02 -05:00
Zach Daniel
63c15bbfe9 improvement: error on using relate_actor with :many cardinality relationships 2024-01-10 05:56:22 -05:00
Robert Graff
fc9132e75b
docs: metadata docs improvement (#823) 2024-01-09 19:27:16 -05:00
Alan Heywood
dbb4a38ea3
fix: only put keywords to be interpolated in message in error vars (#821)
* fix: only put keywords to be interpolated in message in error vars
---------

Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2024-01-08 18:08:17 -05:00
Zach Daniel
d617f42daf improvement: append new entities in Ash.Resource.Builder 2024-01-08 16:19:36 -05:00
Zach Daniel
c1fd67f22c fix: ignore empty relationship paths when authorizing relationships 2024-01-08 15:47:48 -05:00
Zach Daniel
4652a8237e fix: properly build query from opts in aggregates 2024-01-08 15:40:27 -05:00
Zach Daniel
a12131cf70 improvement: simplify aggregate loading, remove Ash.Engine from it
improvement: add atomic implementation for builtin `increment` change
improvement: simplify related path authorization, use same tool as aggregates now use
2024-01-08 15:31:09 -05:00
Robert Graff
b35f30fb6f
docs: Fix typo in page_requires_pagination.ex (#819) 2024-01-05 19:15:52 -05:00
Zach Daniel
80d117ed1e chore: remove IO.inspect 2024-01-05 12:41:58 -05:00
Zach Daniel
16818f1f14 fix: don't consider ash field signals as present 2024-01-05 12:30:59 -05:00
Zach Daniel
c4fd06aea0 improvement: refactor filter requests to not use Ash.Engine 2024-01-04 12:46:38 -05:00
Zach Daniel
af9c78c2f6 chore: fix typo 2024-01-04 01:01:44 -05:00
Zach Daniel
fadecf3ee9 improvement: atomic validation implementations for most validations
improvement: support type operator overloading
2024-01-04 00:52:46 -05:00
Zach Daniel
6061a2a16a improvement: add some atomic implementations 2024-01-03 16:48:15 -05:00
Zach Daniel
746fc5df53 fix: add required check for stream pagination 2024-01-01 01:22:12 -05:00
Zach Daniel
fe2156a9ac imorovement: support bulk action callbacks in the data layer 2023-12-31 00:49:22 -05:00
Zach Daniel
44761e7e3f improvement: support :no_rollback and return_query/2 callback 2023-12-29 21:43:15 -05:00
Zach Daniel
b600b23803 improvement: add a return_query/2 callback for data layers 2023-12-29 17:33:23 -05:00
Zach Daniel
4dfa140ec9 improvement: support {:error, :no_rollback, error} from data layer callbacks 2023-12-29 17:23:13 -05:00
Zach Daniel
c3e192c6d8 improvement: always update the join relationship 2023-12-28 15:04:00 -05:00
Zach Daniel
40aa17eab8 fix: ensure __source__ is set on nested embedded attributes 2023-12-28 14:47:40 -05:00
Zach Daniel
259b48e5ea improvement: use new api option in Ash.Query.for_read/4 2023-12-27 18:15:20 -05:00
Zach Daniel
4ee80297d7 improvement: support using the new api option in actions 2023-12-27 18:14:29 -05:00
Zach Daniel
e90842f141 improvement: accept api option in Ash.Changeset.for_* functions 2023-12-27 17:53:23 -05:00
Zach Daniel
3e296a4bba Revert "chore: comment out test for now
This reverts commit cc21661559.
2023-12-27 17:47:50 -05:00
Zach Daniel
034642ffda improvement: update Ash interface for working with new style resources 2023-12-27 17:35:30 -05:00
Zach Daniel
cc21661559 chore: comment out test for now 2023-12-27 17:28:52 -05:00
Zach Daniel
af3d2b321d chore: use unused variable 2023-12-27 16:38:41 -05:00
Zach Daniel
26160e446b chore: require name for ash.codegen 2023-12-27 10:12:19 -05:00
Zach Daniel
19d18c5fcc improvement: better formatting of nested expressions
improvement: helpful errors when misusing `.` in expressions
2023-12-22 22:22:59 -05:00
Zach Daniel
0f8bb664ab fix: properly move maps & lists to expression paths
fix: set tenant when running authorization queries

closes: #812
2023-12-22 21:09:00 -05:00
Zach Daniel
d390d65146 improvement: simplify used aggregate detection
improvement: add `lazy/1` to expressions
docs: add expression docs
2023-12-22 19:06:13 -05:00
Zach Daniel
3a1923fdeb improvement: support providing an input key in predicate maps 2023-12-21 17:17:43 -05:00
Zach Daniel
eb05e9be63 improvement: support streaming without keyset pagination
use the new `allow_stream_with` and `stream_with` options to control
what strategy may be used to stream query results.
2023-12-21 08:35:49 -05:00
Zach Daniel
0932cf32a7 improvement: add callbacks for bulk actions on manual actions 2023-12-20 21:23:13 -05:00
Zach Daniel
ed887413d7 improvement: base case iterative bulk destroy implemented 2023-12-20 21:08:40 -05:00
Zach Daniel
8c17434803 improvement: add iterative, streaming implementation for bulk updates 2023-12-20 17:33:43 -05:00
Rebecca Le
ba6eb773b8
docs: Fill out shortdoc for generate_policy_charts mix task (#808)
This is the one-liner that is shown when running `mix help` to list tasks
2023-12-19 22:51:13 -05:00
Zach Daniel
ff1a590f46 fix: empty milliseconds for utc datetime must have precision 6
fix: ensure actor & authorize? contexts are set even if not provided
2023-12-18 20:14:36 -05:00
Zach Daniel
867c786388 chore: remove unused variables 2023-12-18 16:02:39 -05:00
Zach Daniel
e3605bd80f improvement: detect impending manage_relationship calls when checking attribute presence 2023-12-18 12:47:49 -05:00
Zach Daniel
3ee3279d2f fix: ignore load/limit/offset in aggregate queries, instead of raising
closes #806
2023-12-18 08:28:52 -05:00
Zach Daniel
5f3556e27f fix: properly set changed? for all changesets 2023-12-16 19:22:52 -05:00
Zach Daniel
ca792548ba chore: properly pin values in attribute_equals atomic validation 2023-12-16 13:46:12 -05:00
Zach Daniel
e7513e6e32 improvement: add stacktrace context to errors better 2023-12-16 13:36:49 -05:00
Zach Daniel
575fe52b06 chore: fix integer atomic update casting 2023-12-16 10:41:21 -05:00
Zach Daniel
2233a33523 improvement: support tenancy on manual actions
docs: update cheat shets
fix: honor tenant option on aggregates

closes #805
2023-12-16 10:33:10 -05:00
Zach Daniel
3be83d6ca4 improvement: lay the groundwork for fully atomic actions 2023-12-16 10:14:02 -05:00
Zach Daniel
1acca3d8e1 chore: return proper authorization errors from actions on failure 2023-12-15 20:12:26 -05:00
Zach Daniel
8e5f628286 fix: pass proper context into manual actions, remove unnecessary changeset code 2023-12-15 18:43:29 -05:00
Zach Daniel
e22c6c7927 fix: ensure actions always raise an error class 2023-12-15 15:33:10 -05:00
Zach Daniel
ad22eeb7e9 improvement: rewrite creates to not use Ash.Engine 2023-12-15 15:10:01 -05:00
Zach Daniel
4cfdb0d635 chore: remove commented out code 2023-12-15 10:15:49 -05:00
Zach Daniel
9103781379 improvement: remove Ash.Engine from update/destroy actions 2023-12-15 10:14:40 -05:00
Zach Daniel
d6ff670e0a chore: fix typespec for Ash.Query.Function 2023-12-15 08:46:18 -05:00
Zach Daniel
5b39ff8e04 improvement: add Ash.Error.from_json/2
improvement: accept expressions in `Ash.Query.calculate`
2023-12-14 16:52:34 -05:00
Thales Grilo
9d2da58fb2
improvement: Adds %Ash.NotSelected{} to ash 3 (!634) (#804)
*  create Ash.NotSelected, add test

*  add ash_three test

* 👌 fix formatting

* 👌 add missing field value

---------

Co-authored-by: thales <thales@uplearn.co.uk>
2023-12-14 16:14:15 -05:00
Zach Daniel
cdb5db9c07 fix: properly unnested union values passed into Ash.Type.Union.prepare_change_array 2023-12-14 09:24:22 -05:00
Zach Daniel
0763335650 docs: update error.ex docs 2023-12-14 09:06:07 -05:00
Zach Daniel
d09c694132 fix: thread context through when setting source constraint on embeds 2023-12-13 17:11:52 -05:00
Zach Daniel
d118d90d51 chore: fix dialyzer issue and corresponding bug from last commit 2023-12-13 15:29:12 -05:00
Zach Daniel
7298a4b51b improvement: honor field policies in sort expressions 2023-12-13 15:08:39 -05:00
Zach Daniel
3b20fba309 fix: don't create invalid datetimes when scrubbing microseconds 2023-12-12 20:35:59 -05:00
Zach Daniel
352e27a153 fix: prepare change with nil old value on union type change 2023-12-12 18:10:34 -05:00
Zach Daniel
839937bf6e fix: properly prepare union value changes when old & new are union structs 2023-12-12 18:07:40 -05:00
Zach Daniel
955ba4987b chore: credo/tasks 2023-12-12 08:51:18 -05:00
Zach Daniel
f790f3a529 improvement: additional atomic callbacks
fix: fix `dump_to_embedded_array`
2023-12-12 08:45:38 -05:00
Zach Daniel
a7c41b2bc8 improvement: add warn_on_transaction_hooks?: false config 2023-12-11 16:27:46 -05:00
Zach Daniel
9bc6370d7d improvement: accept an action input in Ash.Error.to_ash_error/3 2023-12-11 11:43:03 -05:00
Zach Daniel
3800c360ad chore: update typespecs 2023-12-11 08:09:55 -05:00
Zach Daniel
852f27dfb6 improvement: include tenant in change context 2023-12-11 08:08:23 -05:00
Zach Daniel
c38cba51b0 fix: test failures and credo issue 2023-12-10 13:13:06 -05:00
Zach Daniel
22ba69db70 fix: add back in api level verifiers
I have no idea how or why these were removed, but it shouldn't have happened
2023-12-10 12:59:32 -05:00
Zach Daniel
e8da3bfd5c improvement: support nil values in struct type callbacks 2023-12-07 23:28:44 -05:00
Zach Daniel
8ce6e065ce fix: don't apply default limit unless pagination is required 2023-12-06 21:37:43 -05:00
Zach Daniel
618b706e48 fix: properly handle union changes for lists of embeds
at the moment, this only works properly for tagged maps
2023-12-06 13:02:44 -05:00
Zach Daniel
c7e6133317 improvement: support embed_nil_values? for trimming down stored embeds 2023-12-06 10:29:39 -05:00
Zach Daniel
e7d4f29598 fix: honor default_limit option in pagination 2023-12-05 22:59:48 -05:00
Zach Daniel
fa311a936a chore: restore another removed callback 2023-12-05 19:25:35 -05:00
Zach Daniel
9551010adf chore: restore removed predicate 2023-12-05 19:22:51 -05:00
Zach Daniel
2c9bfb187a chore: add comment 2023-12-05 19:15:21 -05:00
Zach Daniel
4641becb9e improvement: use loaded calculation values in expressions 2023-12-05 19:13:16 -05:00
Zach Daniel
095e6c9237 fix: add back in builtin_predicate_operators/0 2023-12-05 01:38:49 -05:00
Jechol Lee
86e171a0c1
test: various test improvements (#795) 2023-12-05 01:34:21 -05:00
Zach Daniel
08a72acc6b fix: various runtime expression evaluation fixes
the issue is that the expression parser didn't support the fact
that some operators accept `nil` values and other operators do not.
2023-12-03 13:43:35 -05:00
Igor Barakaiev
0ae14bdf71
docs: Clarify how to use Enums in attributes (#790) 2023-12-02 22:34:23 -05:00
mrdotb
e9afdcf39f
docs: update example Flow Step transaction (#787) 2023-11-30 10:16:18 -05:00
Zach Daniel
9c0a66b154 fix: honor read action for Api.get calls. 2023-11-29 20:16:04 -05:00
Zach Daniel
92ff66211e fix: various fixes to calculation expansion and execution 2023-11-29 20:09:34 -05:00
Zach Daniel
198b290b10 chore: update docs showing map values for composite types 2023-11-29 10:23:10 -05:00
Zach Daniel
51b02c6459 docs: add docs for composite types 2023-11-29 10:09:12 -05:00
Zach Daniel
a74bba60e0 chore: credo 2023-11-29 09:47:46 -05:00
Zach Daniel
e1193098c8 fix: don't eager evaluate composite type construction 2023-11-29 09:34:26 -05:00
Zach Daniel
3bc0d975a6 chore: fix call to compile_env! 2023-11-28 13:58:11 -05:00
Zach Daniel
27318c32cb improvement: forbid using resources as types 2023-11-28 13:51:50 -05:00
Zach Daniel
4e0566fe0d improvement: add composite_type/2 and composite_type/3 2023-11-27 19:11:52 -05:00
Zach Daniel
fdc2bc9a58 improvement: support key aliases for composite types 2023-11-27 16:20:30 -05:00
Zach Daniel
5703e26adc chore: add Ash.Type functions for new callbacks 2023-11-27 13:14:33 -05:00
Zach Daniel
438331e2e9 chore: move overridable callbacks to correct type 2023-11-27 13:06:17 -05:00
Zach Daniel
d36972ca8b chore: make new Ash.Type callbacks overridable 2023-11-27 13:03:20 -05:00
Zach Daniel
c6a2e56142 fix: ensure NewType honors new composite callbacks 2023-11-27 12:59:56 -05:00
Zach Daniel
e043521625 chore: fix callbcak location 2023-11-27 12:57:18 -05:00
Zach Daniel
c82542ce55 improvement: add composite?/1 and composite_types/1 to Ash.Type 2023-11-27 12:55:39 -05:00
Zach Daniel
83d5bdd55e fix: properly create new vectors from strings 2023-11-26 18:53:23 -05:00
Zach Daniel
be935723d2 fix: properly resolve nested calculation dependencies 2023-11-24 07:23:38 -05:00
Zach Daniel
fcdd35d336 chore: revert change to used_calculations 2023-11-21 09:32:55 -05:00
Zach Daniel
432d65a003 fix: don't apply sort on manage relationship lookup
fix: don't apply filter on manage relationship lookup if it has a parent expr
2023-11-21 09:13:23 -05:00
Jeremy Grant
1ce05562aa
fix: change_attribute failing on a union attribute (#778) 2023-11-20 19:10:35 -05:00
Barnabas Jovanovics
a3a176287d
fix: convert upsert fields before passing to data layer (#777) 2023-11-20 10:21:16 -05:00
Zach Daniel
1b847fc83c fix: use sort and filter to synonymous_relationship checks 2023-11-16 10:48:32 -05:00
Zach Daniel
b9f804db10 fix: properly set actor context on calc expressions in ets data layer 2023-11-16 08:18:39 -05:00
Zach Daniel
2d536e0b95 fix: properly pass authorize? option when loading aggregates 2023-11-15 20:25:59 -05:00
Zach Daniel
db44eaea74 fix: properly associate lateral join records with no_attributes? true 2023-11-15 18:38:13 -05:00
Zach Daniel
a983ddcef6 fix: set aggregate context as well as calculation context in filters 2023-11-15 17:46:13 -05:00
Zach Daniel
4a2563d5ae fix: set actor when computing aggregates that reference calculations 2023-11-15 17:26:57 -05:00
Zach Daniel
c5f59934d4 fix: dialyzer issues on sort 2023-11-14 10:52:32 -05:00
Zach Daniel
bb9b9aea37 fix: properly return constraints in aggregate get_type 2023-11-13 17:11:43 -05:00
Zach Daniel
1a2dc2a14c chore: format 2023-11-13 17:04:53 -05:00
Simon Bergström
b0d5c08f5d
fix: properly include relationship name message when relationship cannot be found (#770) 2023-11-13 17:04:35 -05:00
Zach Daniel
575b1000d1 fix: properly thread constraints through aggregates 2023-11-13 16:47:24 -05:00
Barnabas Jovanovics
abb0854ae9
fix: remove destroyed or unrelated data from the relationship (#767) 2023-11-13 13:58:09 -05:00
Eduardo B. A
1775ab5a14
feat: Expand upsert_fields option (#761)
With this change, upsert_fields accepts the following options:

* `nil`: upsert fields not set;
* `:replace_all`: all fields from resource will be updated;
* `{:replace_all_except, [fields]}`: all fields from resource except fields inside `fields` will be updated;
* `{:replace, [fields]}`: only fields inside `fields` will be updated.
2023-11-13 13:23:16 -05:00
Zach Daniel
1470696a73 fix: properly strip extra record requested to detect more? pages. 2023-11-13 13:18:35 -05:00
James Harton
173f4ae5ad
docs: Spelling fix (wether -> whether). (#764)
Wether: noun
  1. A castrated male sheep or goat.

Whether: conjuction
  1. Used to indirect questions to introduce one alternative.
  2. Used to introduce alternative possibilities.
  3. Either.
2023-11-09 15:52:13 +13:00
Zach Daniel
780eae8d69 improvement: honor authorize?: false option in generic actions 2023-10-27 15:28:51 -04:00
Zach Daniel
291dea3de9 docs: update docs for pub sub 2023-10-27 13:22:33 -04:00
Zach Daniel
5ea570591b fix: don't attempt to key a struct 2023-10-27 11:07:11 -04:00
Zach Daniel
0a0148214a fix: ensure item constraints are passed to array casting 2023-10-27 00:37:28 -04:00
Zach Daniel
f7b2af8bcc fix: handle non-list values in Ash.Actions.Sort.process/4 2023-10-26 23:52:25 -04:00
Zach Daniel
348488e377 chore: fix typo copypasta 2023-10-26 22:07:33 -04:00
Zach Daniel
7b50a401d8 fix: optimize and make Ash.Type more consistent 2023-10-26 22:04:57 -04:00
Riccardo Binetti
f12a73ad88
docs: fix Ash.Resource.Preparation moduledoc (#759)
It mentioned changeset and change instead of query and preparation
2023-10-26 19:27:30 -04:00
Zach Daniel
34a4e416b0 fix: fix typespec for include_source/2 2023-10-26 10:11:54 -04:00
Zach Daniel
0988f31811 chore: fix typespec for error class module 2023-10-26 10:05:20 -04:00
Zach Daniel
8a31284015 chore: process sort before checking for parent exprs 2023-10-26 10:02:17 -04:00
Zach Daniel
4797e148ac improvement: detect more parent expressions 2023-10-26 09:58:08 -04:00
Robert Graff
a48d43e79d
fix more handle change use cases (#757) 2023-10-25 17:47:50 -04:00
Zach Daniel
e680867be9 fix: don't reorder global validations/changes
fix: use latest spark, and new persisters callback
fix: properly validate belongs_to relationships
2023-10-25 17:45:55 -04:00
Zach Daniel
539f5a1727 fix: remove invalid usages of unsafe_change_attribute/3
ci: test against `ash_paper_trail`
2023-10-25 13:06:04 -04:00
Robert Graff
f03b6a4370
fix: handle builtin types in unions (#752) 2023-10-25 08:31:25 -04:00
Zach Daniel
d6c1445974 chore: update docs 2023-10-24 12:42:35 -04:00
Frédérick Capovilla
76783b355b
feat: Add unknown argument error when passing an unknown key to an action. (#750)
* improvement: Add ash_three? feature flag for Ash 3.0 related behaviors.

* test: Add the ash_three test tag to exclude tests targetting Ash 3.0
2023-10-24 12:27:33 -04:00
Zach Daniel
7eac076581 chore: update dialyzer & cleanup dead code 2023-10-21 23:30:33 -04:00
Zach Daniel
9ad876af20 improvement: add Ash.Test.assert_has_error and Ash.Test.refute_has_error 2023-10-21 23:14:45 -04:00
Zach Daniel
dec32f47ee improvement: support to_error_class taking changeset/query/input 2023-10-21 22:55:45 -04:00
Frédérick Capovilla
60d12f86da
fix: Change heading levels in generated livebook to have only one H1 (#747) 2023-10-21 22:32:46 -04:00
Frédérick Capovilla
5fe3cdc26e
improvement: add "filename" parameter to the livebook generator. (#746) 2023-10-21 22:32:05 -04:00
Jordan Hewitt
003d5eb0e3
fix: code gen interfaces check type first argument (#749)
* reproduced reported error message.

* remove path matching from code interface in order to make error error from issue 679 more clear.

---------

Co-authored-by: Jordan <srcrr-gitlab@ipriva.com>
2023-10-21 19:52:37 -04:00
Kevin Schweikert
313ec74152
docs: inset code in set_attrbute docs (#745) 2023-10-21 14:13:45 -04:00
Zach Daniel
799a1d1dd3 fix: properly support get in Ash
fix: add back in accidentally removed transformer
2023-10-20 08:09:14 -04:00
Zach Daniel
2dbebf39e1 fix: properly determine resource from Ash.get!/2 2023-10-20 06:22:32 -04:00
Zach Daniel
1ab5a35d7f
improvement: support an api option to use Ash.Resource (#715)
* improvement: support an `api` option to `use Ash.Resource`
improvement: add functions to `Ash` for resources w/ configured apis
improvement: default code_interface.define_for to resource's ash api
2023-10-20 06:07:34 -04:00
Zach Daniel
0176958ec0 fix: cast functional default values 2023-10-19 12:06:56 -04:00
Zach Daniel
d5621fbc8c improvement: cast_input for default values at compile time 2023-10-19 11:57:07 -04:00
Zach Daniel
60977a4d6c chore: make credo happy 2023-10-19 11:25:33 -04:00
Zach Daniel
b605232f7e chore: comment out more unnecessary code 2023-10-19 11:14:57 -04:00
Zach Daniel
cb8fc298ae fix: temporarily omit overzealous validation 2023-10-19 11:14:08 -04:00
Zach Daniel
7d06d8fa46 fix: properly honor max_concurrency option
chore: remove IO.inspect
2023-10-18 16:53:12 -04:00
Zach Daniel
381d45a3f8 improvement: optimize bulk creates where results are not returned 2023-10-18 16:18:57 -04:00
Zach Daniel
ff88ce68b4
improvement: rewrite bulk creates, optimize changeset functions (#744) 2023-10-18 14:07:44 -04:00
De Wet Blomerus
52214bd2d9
docs: Remove extra trailing close-paran 🔥 (#743) 2023-10-17 21:38:08 -04:00
Zach Daniel
a92a0b4c9b fix: support tenant option in api.can
closes #736
2023-10-17 21:25:53 -04:00
Zach Daniel
b32f2e55ea fix: properly use constraints when casting expression values 2023-10-17 15:08:54 -04:00
Zach Daniel
ccf635e711 improvement: better storage_type handling, undo function change 2023-10-17 14:46:28 -04:00
Zach Daniel
24ae31c6dd fix: don't re-case constraints in the type function 2023-10-17 14:20:56 -04:00
Zach Daniel
c014fc2f0a chore: release version v2.15.19 2023-10-17 14:08:19 -04:00
Zach Daniel
7849541b29 chore: fix typespec 2023-10-17 13:58:17 -04:00
Zach Daniel
5d85c5be14 improvement: properly honor ecto type init callback 2023-10-17 13:39:21 -04:00
Zach Daniel
d9bacc1554 fix: handle new type constraints properly 2023-10-17 12:50:14 -04:00
Zach Daniel
12840ae235 fix: honor max_concurrency option 2023-10-17 12:24:28 -04:00
Zach Daniel
7301e09654 chore: fetch type in include_source/3 2023-10-17 11:11:18 -04:00
Zach Daniel
eca3b84105 chore: generalize embed type __source__ logic 2023-10-17 11:03:50 -04:00
Zach Daniel
c12f24d55d chore: changeset optimizations
ci: test ash-sqlite subproject
2023-10-17 10:49:37 -04:00
Zach Daniel
4900d69a92 chore: optimize upsert update defaults 2023-10-17 10:39:59 -04:00
Zach Daniel
6e2fa036d7 chore: update docs 2023-10-17 10:37:46 -04:00
Zach Daniel
ae147011ea fix: handle generic actions in list_arguments_and_attributes 2023-10-17 10:36:57 -04:00
Zach Daniel
fcc7e3b08a chore: revert recent change to datetime storage type default 2023-10-17 10:26:05 -04:00
Zach Daniel
20cc1cc24e improvement: various optimizations and compile time caching
fix: fix type casting for embedded resources
2023-10-17 10:18:26 -04:00
Pierre Le Gall
e14e1b2e29
improvement: set default many to many options (#737)
Many to many relationship `source_attribute_on_join_resource`
and `destination_attribute_on_join_resource` are now guessed
by there module name if not explicitly set in the relationship.
2023-10-17 10:03:21 -04:00
Zach Daniel
7f7469eb9f improvement: various performance improvements 2023-10-17 01:08:26 -04:00
Zach Daniel
52337b7bff improvement: various optimizations for bulk create actions 2023-10-16 23:50:05 -04:00
Zach Daniel
3dd61a6ff8 fix: ensure after action hooks are run on bulk creates 2023-10-16 17:00:04 -04:00
Zach Daniel
b2c7048359 fix: return records from batches if items have after action hooks 2023-10-16 16:30:15 -04:00
Zach Daniel
f53626e65d improvement: support max_concurrency option on bulk creates
improvement: better error message on missing identities
improvement: better error message on invalid data passed to `YourApi.load`
2023-10-16 14:53:27 -04:00
Zach Daniel
ecdc4c1c64 fix: don't transform errors to changesets when rolling back in with_hooks 2023-10-13 22:04:44 -04:00
Zach Daniel
931ff30641 fix: undo previous changes where transactional actions might not roll back
instead, I've added a `rollback_on_error?` option to allow more fine grained
control over what happens when you call an individual action and it encounters
an error and would roll back.
2023-10-13 18:12:48 -04:00
Zach Daniel
5a462a3ffc fix: undo regression where errors weren't wrapped in a changeset 2023-10-13 16:51:10 -04:00
Zach Daniel
7ff3a96db2 improvement: better handling of nested errors in transactions
If you call a nested action currently, and anything goes wrong, the whole
transaction is aborted. However, we want to be able to *recover* from
internal errors, and that means allowing things to fail without failing
the entire transaction. If something that *starts* a transaction
encounters an error, then it will rollback the transaction.
2023-10-13 14:33:25 -04:00
Zach Daniel
4fe4411286 fix: provide full constraints when determining Ash.Type.NewType storage types 2023-10-12 10:57:10 -04:00
Zach Daniel
b93cbb9577 fix: go back to original default timestamp behavior
fixes #733
2023-10-12 07:25:46 -04:00
Zach Daniel
6e0be43c51 fix: properly authorize access to query aggregates in all cases 2023-10-11 19:44:50 -04:00
Zach Daniel
658f071b81 improvement: move various transformers to be verifiers 2023-10-11 17:58:31 -04:00
Zach Daniel
68ec02a27b chore: update typespec for data layer feature 2023-10-11 15:13:49 -04:00
Zach Daniel
1ab4b6e69a improvement: support atomics on upserts 2023-10-11 15:09:06 -04:00
Zach Daniel
1cfcc296ae improvement: ensure all changesets sent batched to data layer have same set of atomics
this is necessary for upsert atomics
2023-10-11 12:05:17 -04:00
Zach Daniel
2de1e81b3b chore: fix more typespecs 2023-10-11 09:05:56 -04:00
Zach Daniel
c89b680d4b fix: move misplaced file and fix typespecs for Ash.DataLayer.Ets.Info 2023-10-11 09:02:32 -04:00
Zach Daniel
b0a4a23ab2 chore: appease credo 2023-10-10 17:02:11 -04:00
Zach Daniel
05dd361a52 fix: properly set invalid_keys on action inputs 2023-10-10 16:59:28 -04:00
Zach Daniel
be202918ac fix: properly validate required arguments for generic actions 2023-10-10 16:49:47 -04:00
Zach Daniel
c77ad34efb improvement: set storage type for citext to ci_string 2023-10-10 14:12:01 -04:00
Zach Daniel
3782f1cfe2 fix: honor authorize? option for calls to aggregate 2023-10-10 11:10:58 -04:00
Zach Daniel
fbe6b21bf0 improvement: support to-one reference paths in calculations 2023-10-09 18:50:15 -04:00
Zach Daniel
407b09b677 fix: handle false values properly when passed to flows 2023-10-07 16:34:13 -04:00
Zach Daniel
32620dfd52 improvement: add Ash.Sort.expr_sort. In 3.0 sort should be a macro 2023-10-07 09:16:52 -04:00
Zach Daniel
49042b737d fix: properly rollback transactions on returned errors in generic actions 2023-10-06 13:39:05 -04:00
Zach Daniel
b8be1123ba fix: generate keysets immediately after read action 2023-10-05 22:50:15 -04:00
Robert Graff
2ad5d451b0
Fixes: casting an array attribute to nil (#723) 2023-10-04 14:55:30 -04:00
Zach Daniel
c2872b5181 fix: prepare_change_array on embedded types needs to handle nil
fix: handle_change_array on embedded types needs to honor `nil`
2023-10-04 13:59:26 -04:00
Zach Daniel
c691eb022c improvement: allow overriding cast_input/2 on NewType 2023-10-04 11:51:59 -04:00
Zach Daniel
3d72e190b2 fix: don't use || when fetching arguments because false || nil is nil
fixes #722
2023-10-03 16:30:50 -04:00
Zach Daniel
1042ea14fd chore: use uuids instead of unique integer for performance reasons 2023-10-03 13:42:18 -04:00
Zach Daniel
1fb169a73b fix: handle exceptions in generic actions
improvement: massage changesets & queries in `Ash.Error.to_ash_error/3`
2023-10-02 18:54:48 -04:00
Dmitry Maganov
6d94582360
fix: fix types for min/max constraints in Type.Float (#718) 2023-10-02 18:01:55 -04:00
Zach Daniel
2cd0ec5884 fix: lower compile time dependencies 2023-10-02 15:54:57 -04:00
Zach Daniel
ed9f0d4beb chore: fix invalid exception raise 2023-10-02 14:24:28 -04:00
Zach Daniel
290a5efbeb fix: raise cleaner error on missing action in bulk creates 2023-10-02 12:04:37 -04:00
Zach Daniel
b3fdea3e53 fix: allow for ref to contain nested templates 2023-10-02 11:24:17 -04:00
Barnabas Jovanovics
7e4caf043f
fix: return unions as is if load is empty (#714)
* return unions as is if load is empty

* do not load on forbidden fields
2023-09-29 10:21:05 -04:00
Zach Daniel
10b1030f5c chore: remove IO.inspect 2023-09-28 20:22:32 -04:00
Zach Daniel
82b9174afe fix: unions, only load through types when loadable 2023-09-28 20:11:29 -04:00
Zach Daniel
851d5a59d1 chore: remove unnecessary case 2023-09-28 19:58:38 -04:00
Zach Daniel
80812b0ced fix: handle empty list loads 2023-09-28 19:56:38 -04:00
Zach Daniel
c6dc97f17c fix: ensure constraints are properly set in map/new_types 2023-09-28 18:51:58 -04:00
Zach Daniel
4d62505f69 improvement: don't double cast ci strings 2023-09-28 17:25:38 -04:00
Zach Daniel
7581234799 fix: only set non-nil values unless __keep_nil__ in seed creation 2023-09-28 16:53:06 -04:00
Zach Daniel
0ce6909939 fix: Ash.Seed extracts attributes from the struct now 2023-09-28 16:12:13 -04:00
Zach Daniel
04c9249f24 fix: properly perform field authorization on loaded through types 2023-09-28 10:23:16 -04:00
Zach Daniel
e7a734f29b chore: support simple filters in runtime filterer 2023-09-28 08:37:07 -04:00
Dmitry Maganov
dedba7f471
fix: usage of get_by with belongs_to attribute (#712) 2023-09-27 22:20:16 -04:00
Zach Daniel
a00806eeb0 fix: static checks with conditions could be overly or insufficiently restrictive 2023-09-27 14:40:40 -04:00
Zach Daniel
00a582fbc1 chore: fix more syntax errors 2023-09-27 13:00:40 -04:00
Zach Daniel
e23c12c1c1 chore: fix syntax typo 2023-09-27 12:59:29 -04:00
Zach Daniel
9f97569dce improvement: add context option to bulk_create 2023-09-27 12:09:37 -04:00
Zach Daniel
c571625557 fix: set field policy opts on field policy conditions 2023-09-27 10:12:13 -04:00
Dmitry Maganov
972207a6da
fix: move Resource.Transformers.BelongsToSourceField into entity (#709) 2023-09-27 09:06:05 -04:00
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
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
Zach Daniel
a45267441a chore: more fluent datetime type casting 2023-03-03 11:59:15 -05:00
Zach Daniel
ccdbafa730 chore: improve inspect protocol 2023-03-03 11:39:50 -05:00
Zach Daniel
44d744daba improvement: add new date expressions
chore: fix dialyzer
2023-03-03 11:08:38 -05:00
Zach Daniel
5addfb37fb fix: calc loading in keyset pagination 2023-02-28 10:11:48 -05:00
Zach Daniel
5c71e3b6bc fix: properly handle allow_nil fields in keyset pagination 2023-02-27 12:18:18 -05:00
Zach Daniel
7dddbade5c fix: don't reselect fields automatically
it leads to strange/unpredictable behavior

improvement: introduce `reselect_all?` option for loading
2023-02-24 14:31:37 -05:00
Zach Daniel
c8ca9cd3ce fix: ensure data layer is compiled 2023-02-24 11:37:01 -05:00
Zach Daniel
119905e5ad chore: fix call inspects 2023-02-24 11:27:06 -05:00
Zach Daniel
83bd8215b0 fix: only use resource_to_query/2 2023-02-24 11:22:40 -05:00
Zach Daniel
41ea63aed3 improvement: support record's as calculate arguments 2023-02-24 10:54:25 -05:00
Rebecca Le
9105d4f297
docs: Update pubsub docs to be readable on AshHQ (#517) 2023-02-24 06:58:09 -05:00
Zach Daniel
f060a2bdc4 improvement: include actor in all calculation context 2023-02-23 09:45:27 -05:00
Zach Daniel
86d2297018 fix: support nil values in dump_to_native 2023-02-22 22:36:02 -05:00
Zach Daniel
2a6fe49348 fix: properly support calc expansion in policies
fix: support `nil` cast for resource type
2023-02-22 22:28:15 -05:00
Zach Daniel
005c1bc6c1 fix: allow argument references in policies 2023-02-22 20:12:08 -05:00
Zach Daniel
007e0fb081 improvement: don't eager load sort data 2023-02-21 19:05:40 -05:00
Zach Daniel
856bfc67a6 fix: properly handle list args for functions
chore: fix credo
2023-02-21 09:57:36 -05:00
Darren Black
bc1f8382ab
improvement: Implement string_join expr function (#515) 2023-02-21 09:40:58 -05:00
Zach Daniel
f58752353a fix: set query context from before_action hooks into initial query 2023-02-21 09:29:08 -05:00
Zach Daniel
14aae0c45b docs: hide dsl options for special attribute types 2023-02-21 08:51:04 -05:00
Zach Daniel
9d5aaca974 fix: set context into initial_query 2023-02-21 08:15:14 -05:00
Zach Daniel
975d1b3a96 improvement: add force variations of set arguments 2023-02-20 21:57:00 -05:00
Zach Daniel
fa3dcf2277 fix: make resource diagram task recursive 2023-02-20 13:26:17 -05:00
Zach Daniel
4e0917e368 fix: use private.internal? to bypass require_actor?
fixes #513
2023-02-18 10:56:03 -05:00
Zach Daniel
f002c8a7f2 fix: properly call run_aggregate_query_with_lateral_join 2023-02-18 10:22:16 -05:00
Chris Hopkins
78fa58c2b9
docs: Attribute documentation topic (#514) 2023-02-17 10:03:23 -05:00
Zach Daniel
e5df4aefd5 fix: don't overwrite keyset when loading data 2023-02-16 17:29:16 -05:00
Zach Daniel
2abcf14403 fix: properly return {:ok, page} in all cases 2023-02-16 16:34:03 -05:00
Zach Daniel
b89d6ce8f6 fix: authorize?: true by default on flows, pass actor through 2023-02-16 15:07:24 -05:00
Zach Daniel
af3d416877 fix: pass actor into engine 2023-02-16 14:51:54 -05:00
Zach Daniel
1e76e74f4f fix: properly handle optional args in code interface 2023-02-14 23:08:51 -05:00
Zach Daniel
83d0e05bdc fix: handle cases where union type is already atom 2023-02-14 16:26:31 -05:00
Zach Daniel
f53ca78f5c fix: various union fixes 2023-02-14 13:34:35 -05:00
Zach Daniel
b7c720fb3f fix: make depend_on_resources more reliable 2023-02-14 12:30:27 -05:00
Zach Daniel
2342126a2d chore: fix dialyzer for union types 2023-02-13 23:57:36 -05:00
Zach Daniel
46b509def4 docs: add moduledocs 2023-02-13 23:50:56 -05:00
Zach Daniel
0c767d0fa1 chore: allow page: [] in new pagination error 2023-02-13 23:44:58 -05:00
Zach Daniel
9924cfc7c0 chore: fix page detection error 2023-02-13 23:38:02 -05:00
Zach Daniel
b911d3a334 chore: just check if page is set to non nil/false value 2023-02-13 23:32:15 -05:00
Kevin Mathew
0e6763d8cc
improvement: Add error message when page is added but pagination is not enabled (#511) 2023-02-13 23:20:40 -05:00
Zach Daniel
0de50e132b improvement: add union type and some tests around it 2023-02-13 22:59:39 -05:00