Commit graph

1755 commits

Author SHA1 Message Date
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
Zach Daniel
c770e28aa2 improvement: add union short name 2023-02-13 20:40:10 -05:00
Zach Daniel
cbde118903 improvement: add union type 2023-02-13 20:39:45 -05:00
Zach Daniel
d18448f78a improvement: better operator type casting and expression fixes 2023-02-12 19:14:06 -05:00
Zach Daniel
2c8b07fd0b docs: add load/3 to calculation docs 2023-02-12 10:52:27 -05:00
Zach Daniel
27e91c4fa4 fix: use load/3 for builtin concat calc 2023-02-12 10:38:13 -05:00
Zach Daniel
f1d61a601b fix: fix non-optional pagination 2023-02-11 19:33:54 -05:00
Zach Daniel
ef26b122c8 docs: fix unnecessary section in the getting started guide
improvement: add warning on usage of transaction hooks when in a surrounding transaction
2023-02-11 16:57:52 -05:00
Zach Daniel
85a66b1d85 improvement: add before_transaction and after_transaction 2023-02-10 14:12:19 -05:00
Zach Daniel
8ad1778763 fix: pagination behavior is incorrect 2023-02-09 21:21:58 -05:00
Zach Daniel
d72e00fc9c chore: remove bad deprecation warning
fix: `nil` as page_opts is acceptable
2023-02-09 17:50:06 -05:00
Zach Daniel
732728236e fix: fix aggregate.uniq? 2023-02-09 16:04:13 -05:00
Zach Daniel
e4004de15e improvement: support uniq? for count/list attributes 2023-02-09 15:42:43 -05:00
zimt28
91c9b2219f
fix: Type error: Suggest custom short type names as well (#508) 2023-02-09 09:21:52 -05:00
Zach Daniel
b425b243f5 improvement: update spark for latest doc improvements 2023-02-05 18:08:01 -05:00
Zach Daniel
ae46b27f04 fix: handle {:ref, ...} tuple in static syntax 2023-02-05 17:16:59 -05:00
Zach Daniel
2dd54324af chore: sobelow 2023-02-04 01:54:42 -05:00
Zach Daniel
0eca30fb32 chore: more Api.aggregate fixes 2023-02-04 01:53:33 -05:00
Zach Daniel
4f4bd4a436 fix: various fast follows to api aggregate functions 2023-02-04 01:24:58 -05:00
Zach Daniel
8835924901 fix: pattern match problem in aggregate action 2023-02-04 00:55:10 -05:00
Zach Daniel
30eaf1c6e8 feat: initial (and slightly experimental) Api.aggregate support 2023-02-04 00:47:15 -05:00
Zach Daniel
a043e26116 fix: properly handle nested array type constraint validation 2023-02-03 10:32:05 -05:00
Zach Daniel
33bb4a2861 fixs: don't persist calculations in the db 2023-02-02 11:35:47 -05:00
Zach Daniel
54f3a47326 improvement: better description of action_type check 2023-02-01 11:37:37 -05:00
Zach Daniel
850b543cc9 improvement: add more builders
improvement: stop running preparations if one of them returns an error
2023-02-01 02:02:10 -05:00
Zach Daniel
d51d26a472 chore: fix dsl builder typespecs 2023-02-01 00:30:09 -05:00
Zach Daniel
7bbd5a2162 fix: load lazily after action when results are set
When using `Ash.Query.set_result/2` to preempt the data layer action,
we can end up in a position where the action has decided that some number
of aggregates & calculations would be attached to the query. But its
extremely unlikely that the data set with `set_result/2` would actually
have handled loading/calculating things from the query, so we lazily load
it after we get the data if that happens.
2023-01-31 23:43:45 -05:00
Rebecca Le
e8563a03eb
docs: Render api_short_name visibly in the Monitoring guide (#500) 2023-01-31 23:20:51 -05:00
Zach Daniel
bd46571762 docs: remove old documented limitation 2023-01-31 14:42:51 -05:00
Zach Daniel
820d445631 fix: fix typespec for Ash.set_tenant/1 2023-01-31 12:12:04 -05:00
Zach Daniel
e900d00de8 ci: remove tweets/switch to standardized CI pipeline 2023-01-31 11:15:09 -05:00
Zach Daniel
d101c05918 fix: set proper query aggregate when fetching aggregate values 2023-01-30 21:31:16 -05:00
Zach Daniel
ce6b44525f improvement: registry resource validations transformers -> verifiers
improvement: better error message on unknown relationship
2023-01-30 16:10:15 -05:00
Zach Daniel
9f057c057d fix: use destination query for aggregates, join auth to come later 2023-01-30 13:26:50 -05:00
Zach Daniel
c9d63d2936 fix: check changeset.valid? properly on destroys 2023-01-30 13:23:35 -05:00
Zach Daniel
dbb9dd4c98 fix: properly halt on action errors in before_action hooks 2023-01-30 11:52:35 -05:00
Zach Daniel
28b7def5c9 improvement: no async loads except when loading on initial data 2023-01-30 00:06:34 -05:00
Zach Daniel
d7841a90db improvement: support length constraints on array embeds 2023-01-29 20:46:56 -05:00
Zach Daniel
20a2ed8c1f improvement: simplify aggregate loading, fix bug with auth query resource 2023-01-29 18:12:05 -05:00
Rebecca Le
2dfff4476a
docs: Policy tweaks (#490) 2023-01-28 13:12:23 -05:00
Zach Daniel
7dfcd2d3dd improvement: support {:ignore, changeset} from error handlers
improvement: add read action metadata
2023-01-28 09:02:21 -05:00
Zach Daniel
167dba67ca improvement: upgrade to latest spark for compile time improvements
improvement: improve compile times by reorienting some compile deps
2023-01-27 15:32:28 -05:00
Zach Daniel
2787b5074b improvement: add relationships to underlying ecto schemas for better escape hatches 2023-01-27 11:20:08 -05:00
Zach Daniel
eeeab08d32 improvement: reselect explicitly selected queries on reload 2023-01-26 22:13:11 -05:00
Zach Daniel
71dcb17e8b fix: properly surface errors from embedded attributes 2023-01-22 10:40:38 -05:00
Zach Daniel
0a76ee77da fix: use original pkey for ets upsert lookup
we might be changing the primary key, and that would make
the ets upsert logic fail, this resolves that issue
2023-01-21 21:16:33 -05:00
Zach Daniel
45ad1c6afa docs: document pub_sub debug option
fix: properly prepend the prefix to the topic
2023-01-20 11:31:31 -05:00
Zach Daniel
dc51a961c1 improvement: include value in invalid error messages 2023-01-19 18:04:48 -05:00
Zach Daniel
5b918a0a08 fix: properly load depended on aggregates
improvement: cleaner inspect for calculations
2023-01-18 21:58:58 -05:00
James Harton
c142afde5a
docs: fix syntax highlighting in the "Why Ash?" guide. (#485) 2023-01-18 17:16:42 -05:00
Zach Daniel
1c6f007368 fix: properly handle functional manual creates 2023-01-18 11:09:14 -05:00
Zach Daniel
e3a4f51d67 improvement: add set_result for conditional manual actions/caching 2023-01-18 09:57:11 -05:00
Zach Daniel
897308ba3a
improvement: update docs to new links formats for ash_hq (#483) 2023-01-18 00:34:20 -05:00
Alessandro Tagliapietra
5bddd175f3
improvement: add nil return type to api get/3, read_one/2 and read_one!/2 (#482) 2023-01-17 08:02:40 -05:00
Zach Daniel
22e07c06b5 improvement: don't load dependencies for calcs in query 2023-01-17 01:46:33 -05:00
Zach Daniel
36948d5047
test: created minimal test for the issue (#481)
Co-authored-by: Tommaso Patrizi <tommasop@gmail.com>
2023-01-16 10:04:09 -05:00
KingdomCoder
64602ad55a
fix: Use proper options in confirm change. 2023-01-16 09:21:16 -05:00
Zach Daniel
1eaeacc748 docs: add moduledocs 2023-01-12 09:25:43 -05:00
Barnabas Jovanovics
0e2dcd5771
fix: only pass action name in Ash.Changeset.for_action (#476) 2023-01-12 09:20:46 -05:00
Zach Daniel
d471a94ccc fix: properly set the context option on changesets
docs: add section on `Ash.CodeInterface.define_interface/2`
improvement: add `action_is/1` builtin validation
2023-01-12 09:18:49 -05:00
Zach Daniel
7202509581 improvement: more compile time optimizations 2023-01-11 15:16:41 -05:00
Zach Daniel
f86ebf8f2b chore: fix validate condition again 2023-01-10 22:32:13 -05:00
Zach Daniel
9a94e187a9 fix: return proper value from validation 2023-01-10 22:27:12 -05:00
Zach Daniel
78eb069c45 fix: don't depend on check modules at compile time 2023-01-10 21:51:38 -05:00
Zach Daniel
1acd5b05e2 chore: fix docs issue 2023-01-09 14:54:30 -05:00
Zach Daniel
292450bf82 fix: set interface args to empty list by default 2023-01-09 14:46:55 -05:00
Zach Daniel
70bc983b17 improvement: add Api.calculate/3 and define_calculation code interface builder 2023-01-08 23:39:12 -05:00
Zach Daniel
2770c544a5 fix: properly zip calculation results with primary keys 2023-01-08 18:09:19 -05:00
Zach Daniel
1e49ef12a4 fix: more fixes for synonymous relationship paths 2023-01-06 17:14:24 -05:00
Zach Daniel
aa49bdcb64 fix: stop seeing incorrect relationships as synonymous 2023-01-06 15:21:35 -05:00
Zach Daniel
a234f0b6bf fix: various filter & expression fixes 2023-01-05 18:18:59 -05:00
Zach Daniel
936dac8627 fix: handle aggregate defaults when evaluating expressions 2023-01-05 13:15:51 -05:00
Zach Daniel
c28138cbce chore: remove debugging code 2023-01-05 12:33:04 -05:00
Zach Daniel
e804566cbf improvement: rename this to parent for clarity 2023-01-05 12:25:55 -05:00
Zach Daniel
84d9b60290 fix: remove all URI encoding/decoding from core for keysets 2023-01-05 10:25:25 -05:00
Zach Daniel
c962bc7aa7 feat: add this/1 for use inside exists/2 (and other places eventually)
fix: various fixes to expression syntax
2023-01-04 12:17:40 -05:00
Zach Daniel
da11749a11 fix: encode the keyset for display in a URI automatically 2023-01-03 19:33:15 -05:00
Zach Daniel
c32d3cc49a improvement: warn on potentially incompatible relationship attributes
improvement: add `default_belongs_to_type` configuration
2023-01-03 10:52:19 -05:00
Zach Daniel
d6348dd825 chore: fix typespec for code_modules/0 again 2023-01-03 10:11:26 -05:00
Zach Daniel
5902d9fdf5 chore: fix typespec 2023-01-03 09:20:40 -05:00
Zach Daniel
569449ce02 docs: add missing modules to docs 2023-01-03 09:10:53 -05:00
kernel-io
21f0088074
fix: fix authorize? method (#472) 2022-12-30 17:19:26 -05:00
Zach Daniel
aedad5eae2 improvement: loading an attribute is now equivalent to ensure_selected
fix: calculations depending on aggregates were not including those dependencies properly
2022-12-30 14:40:36 -05:00
Zach Daniel
b095e410a4 improvement: support module attributes in exprs 2022-12-29 23:49:05 -05:00
Maxim Martynov
7841075f35
improvement: Add Ash.Error.Invalid.TenantRequired error (#471) 2022-12-29 23:05:41 -05:00
Zach Daniel
0f88402224 fix: load types marked with cast_in_query? false at runtime
fix: proper support for nested expressions in calculations
2022-12-29 15:07:56 -05:00
Zach Daniel
11db0aab65 fix: typo in cast_in_query? 2022-12-29 01:52:12 -05:00
Zach Daniel
a8fe63f0a0 chore: always set authorize? to a boolean when managing relationships 2022-12-29 01:25:52 -05:00
Zach Daniel
093184bb3b improvement: add constraints to query calculations 2022-12-28 23:10:47 -05:00
Zach Daniel
d577812093 improvement: cast_in_query? takes constraints 2022-12-28 22:38:25 -05:00
Zach Daniel
8cf068d508 improvement: support for calculations in aggregate fields
Still must be implemented in respective data layers
2022-12-28 21:59:57 -05:00
Zach Daniel
11956fd62c fix: allow lists in expr syntax 2022-12-28 16:45:47 -05:00
Zach Daniel
d41d195941 improvement: add simple_notifiers as a compile time optimization 2022-12-27 18:25:24 -05:00
Zach Daniel
5f3c8dea4a fix: calculation builder using wrong builder 2022-12-27 17:19:59 -05:00
Zach Daniel
85d346e255 improvement: add calculations to builder
fix: handle `nil` constraints in array
2022-12-27 17:07:14 -05:00
Zach Daniel
ded3f67a68 fix: only start transactions for resources not already in one 2022-12-22 23:33:27 -05:00
Zach Daniel
f9ed91953b fix: import builtins at the action level, not the section level 2022-12-22 19:09:47 -05:00
Zach Daniel
1ccec692cb chore: docs & info on new deprecation 2022-12-22 01:39:33 -05:00
Zach Daniel
d6f1361979 improvement: fix tests to handle new defaults 2022-12-22 01:28:50 -05:00
Zach Daniel
b515bb258b fix: fix broken default behavior around managing relationships.
Read more: https://github.com/ash-project/ash/issues/469
2022-12-22 01:03:13 -05:00
Zach Daniel
65e9ab70bb improvement: optimize strict checks
by not checking strict checks for policies who's conditions we can
statically confirm don't apply
2022-12-21 14:54:22 -05:00
Zach Daniel
4af5c41cb1 fix: properly include module in doc links 2022-12-20 22:45:48 -05:00
Zach Daniel
8c0102db86 improvement: fix decimal generator to only compare with floats at generation 2022-12-20 22:01:47 -05:00
Zach Daniel
5da64349c6 fix: add test for string generator, and fix it 2022-12-20 20:42:41 -05:00
Zach Daniel
ad2392be99 improvement: filter min_length strings in generators 2022-12-20 20:34:06 -05:00
Zach Daniel
c8eb27050d fix: only allow nil in appropriate circumstances in generator 2022-12-20 03:18:22 -05:00
Barnabas Jovanovics
7689e8e531
fix: respect selects in related_query (#464) 2022-12-20 03:12:40 -05:00
Zach Daniel
e4f30f368e fix: use action name not struct for embedded generators 2022-12-19 12:21:31 -05:00
Zach Daniel
6a5543e291 fix: use create generators for embedded types 2022-12-19 11:06:53 -05:00
Zach Daniel
c4b2701d65 fix: support dependencies on pruned branch steps 2022-12-19 01:49:36 -05:00
Zach Daniel
eb1dd2663b fix: ensure type compiled for generator 2022-12-15 12:25:37 -05:00
Zach Daniel
b73d3a27d4 improvement: better expression detection 2022-12-14 21:20:39 -05:00
Zach Daniel
52fcd4e06d fix: transaction steps use failure_mode: :stop 2022-12-11 02:50:45 -05:00
Zach Daniel
96409416cf improvement: more dependable notifications, support custom notifications better 2022-12-09 22:55:51 -05:00
Zach Daniel
9bc7933482 improvement: add more transaction types 2022-12-08 14:40:07 -05:00
Zach Daniel
b94a57d1bd improvement: add :struct (Ash.Type.struct) type 2022-12-08 01:49:05 -05:00
Zach Daniel
d582bcbe07 fix: different formats for extensions 2022-12-07 23:53:33 -05:00
Zach Daniel
ce64fda1e9 improvement: replace doc links in sidebar also 2022-12-07 23:35:00 -05:00
Zach Daniel
f21428ce4d improvement: better doc replacement behavior 2022-12-07 22:38:47 -05:00
Zach Daniel
34c33c7247 improvement: dep updates & new aggregate types avg/min/max/custom 2022-12-07 20:35:32 -05:00
Zach Daniel
98a7485a32 chore: don't use list_of syntax 2022-12-07 17:00:06 -05:00
Zach Daniel
55b3590f42 fix: more matching fixes on manual relationships 2022-12-07 01:10:34 -05:00
Zach Daniel
8173f640f0 fix: handle manual relationship load results when building query 2022-12-07 01:03:29 -05:00
Zach Daniel
3614fce456 improvement: only set defaults when attribute is actually set 2022-12-06 23:20:41 -05:00
James Harton
a5e5db672d
improvement: Pass context into query and changeset for_... functions. (#460) 2022-12-05 20:29:33 -05:00
Zach Daniel
e0cbe591ee improvement: set context once, early 2022-12-04 13:36:08 -05:00
Zach Daniel
a6ca9511c7 fix: set proper types in transaction reasons 2022-12-01 12:06:51 -05:00
Zach Daniel
6f6ff4f318 improvement: support data layers implementing transaction level hooks
we now pass down additional metadata about what is happening in a transaction
2022-11-30 19:07:31 -05:00
Zach Daniel
edcef5eea1 improvement: don't run calculation queries if no records were returned 2022-11-30 02:20:54 -05:00
Zach Daniel
e403728cf4 fix: properly authorize manage relationship calls
improvement: don't run queries with `limit: 0`
2022-11-30 02:18:13 -05:00
Zach Daniel
f2bf99e478 improvement: more readable flow charts
improvement: `not_found_error?` option on `get?: true` `read` flow steps
2022-11-29 23:36:07 -05:00
Zach Daniel
82d3ec3946 improvement: add not_found_error? option to interface builder and when calling 2022-11-29 17:18:57 -05:00
Zach Daniel
113b8740d4 chore: hotfix code_interface change 2022-11-29 16:21:53 -05:00
Zach Daniel
f4b6a43918 fix: properly handle arguments with default values in code interface 2022-11-29 15:52:09 -05:00
Zach Daniel
f0b0accd10 fix: don't raise a backwards incompatible error message on certian changeset functions
now we warn, instead

fix: properly apply managed relationships on manual actions

fix: properly pass `resource` option in filter policies
2022-11-29 14:23:49 -05:00
Zach Daniel
52e7c133a6 fix: don't revisit nodes in the ash engine
fix: properly map to `:destroy` step names
2022-11-25 14:09:30 -05:00
Zach Daniel
49693669dd fix: handle Ash.Flow.Step.Destroy in path matchers 2022-11-25 11:01:31 -05:00
Zach Daniel
2f3fcbad13 improvement: optimize various solver boolean optimizations
improvement: more comprehensively remove unnecessary clauses
fix: resolve issue with `authorize_unless` and filter checks
improvement: prevent changing attributes and arguments after action validation

We allow for these changes inside of `before_action` calls, but otherwise
require that `force_change_attribute` is used, for example. This prevents
accidentally validating a changeset and then changing an attribute.
2022-11-23 03:39:00 -05:00
Zach Daniel
dd1614962b fix: fix pattern match error in manage relationship reduce 2022-11-23 03:39:00 -05:00
Josh Price
23fae2ee67
docs: fix typo (#455) 2022-11-22 22:06:03 -05:00
Josh Price
692552d09b
docs(policy): fix built_in_checks typo, formatting (#454) 2022-11-22 19:52:19 -05:00
Zach Daniel
3e5b0a8096 fix: fix typespec for Api.Info.trace_name/3
docs: add context to monitoring guide
2022-11-22 13:24:16 -05:00
Robert Ellen
59ddb5f5af
improvement: add error context to error creation / normalisation (#440) 2022-11-21 18:32:25 -05:00
Zach Daniel
d91c3b6d15 improvement: update hexdocs processor to link guides on hexdocs 2022-11-21 18:27:35 -05:00
Zach Daniel
865f9aa253 improvement: return invalid primary key errors for Api.get when the input can't be cast 2022-11-21 02:51:37 -05:00
Zach Daniel
a479970e23 improvement: much more readable errors when building loads 2022-11-21 01:37:58 -05:00
Zach Daniel
d16b7057a3 improvement: better check module validation
docs: add more context to security and policy guides
2022-11-21 00:29:45 -05:00
Zach Daniel
4a6676ffcd fix: reselect relationship source fields when loading relationships 2022-11-20 19:27:45 -05:00
Zach Daniel
5eb051722a fix: fix where and or_where implementation 2022-11-19 14:26:56 -05:00
Zach Daniel
9047fbd2ee improvement: add where and or_where to expr 2022-11-19 13:19:26 -05:00
Zach Daniel
4afc20a274 improvement: mark manual action modules as modules 2022-11-19 03:16:05 -05:00
Zach Daniel
3f95481294 fix: properly pass a map to manual action context 2022-11-19 01:30:48 -05:00
Frank Dugan III
e691222af0
fix: destroy action types default to accepts [] (#453) 2022-11-18 18:40:56 -05:00
Zach Daniel
1fd1d6c82a improvement: improve runtime expression running
fix: various typespec/build fixes
2022-11-18 14:42:53 -05:00
Zach Daniel
2ef7bc6273 docs: improve policy writing guide
improvement: add default description for filter checks
2022-11-17 01:33:38 -05:00
Zach Daniel
c8d08a3265 fix: handle tuples properly in some cases in expression syntax 2022-11-16 12:00:43 -05:00
Rebecca Le
91bb426e7e
fix: Add missing [:ash, :query] telemetry (#451) 2022-11-16 11:41:52 -05:00
Zach Daniel
a2fc21a218 chore: fix dialyzer 2022-11-15 21:39:57 -05:00
Zach Daniel
5090deb202 improvement: validate that modules exist and are documented when referenced 2022-11-15 21:26:25 -05:00
Zach Daniel
b7f4425265 docs: add Ash.Tracer to doc_index 2022-11-15 16:46:40 -05:00
Zach Daniel
d8ae4da1b3 docs: use new spark doc index guide order 2022-11-15 14:47:25 -05:00
Zach Daniel
e62d8e4a13 fix: don't incur compile time dependency for resources used as types 2022-11-15 10:03:34 -05:00
Zach Daniel
43362c7656 fix: allow for not-yet-compiled resources as Ash types 2022-11-15 09:59:04 -05:00
Zach Daniel
665a9fb5c4 improvement: optimize sat solving
1. only convert to CNF once
2. group predicates that only appear in specific combinations to limit amount of variables provided to the sat solver

Number 2 above does technically slow down all cases a bit, but the optimization is really important when it matters. And cases that don't need this optimization still happen on the order microseconds anyway.
2022-11-15 01:45:55 -05:00
Zach Daniel
27ca1d2f3c fix: properly raise error on invalid type.
closes #422
2022-11-03 16:06:26 -07:00
Zach Daniel
1dcb9dd8c4 docs: library links 2022-11-03 08:19:35 -07:00
Zach Daniel
399e6f4a9e docs: fix policies link 2022-11-03 07:29:56 -07:00
Zach Daniel
6840cc4870 chore: fix docs link 2022-11-03 00:51:48 -07:00
Zach Daniel
a0e5b2cb7d docs: small docs tweaks
improvement: update to latest spark
2022-11-03 00:47:24 -07:00
Zach Daniel
a31da97d4c chore: properly set error vars and run spark.formatter 2022-11-02 21:29:12 -07:00
Zach Daniel
ef0407299b improvement: support statically configured upsert actions 2022-11-01 03:13:56 -04:00
Zach Daniel
d23be5e49b improvement: add more builders
docs: fix typo in docs
2022-10-31 21:23:07 -04:00
Zach Daniel
3407d1e2e3 fix: properly set error vars with list constraints
fix: when creating changesets/queries that already have arguments, revalidate arguments
2022-10-31 14:20:13 -04:00
Zach Daniel
6f2c685ae6 fix: fix depend on resources to depend on each resource 2022-10-31 12:30:41 -04:00
Zach Daniel
cb192517c7 fix: allow references on both sides of in 2022-10-31 12:08:24 -04:00
Zach Daniel
6994295a8f fix: properly upsert all explicitly changed fields
fix: traverse maps for `template_references_actor?/1`
docs: various doc fixes
2022-10-31 11:33:51 -04:00
Zach Daniel
113d2452d2 improvement: replace templates in change/preparation/validation opts
Previously, only a few specific changes supported using `arg/1` or `context/1`
in their options. Now, those templates can be used in any change options,
built-in or not.
2022-10-31 02:25:01 -04:00
Zach Daniel
e18a8782c7 chore: remove empty file 2022-10-30 22:20:02 -04:00
Zach Daniel
d41c510f68 improvement: support anonymous functions for various behaviour based options
These include:

- custom create/read/update/destroy actions
- changes
- preparations
- validations
- calculations
- manual relationships

See the respective DSL guides for more.
2022-10-30 21:31:48 -04:00
Zach Daniel
d1c5c32e3f WIP 2022-10-30 21:00:57 -04:00
Zach Daniel
8cbd766172 feat: support anonymous functions in DSL
improvement: add more ergonomic manual action definitions.

The old method will likely be deprecated some time in the future (there is no rush really, they both work).
2022-10-30 21:00:57 -04:00
Michael St Clair
5626c8be2c
fix: don't add required belongs_to error if changeset is invalid (#437) 2022-10-30 17:40:10 -04:00
Zach Daniel
d70a05c805 fix: don't lazy load when managing relationships
if a relationship was loaded previously we were just using that relationship value.
However, this has a chance to cause incorrect behavior in edge cases. One such
edge case is illustrated here: https://github.com/ash-project/ash/pull/434 We can return to the
more optimized behavior when lazy loading is improved via https://github.com/ash-project/ash/issues/438
2022-10-30 10:36:26 -04:00
Zach Daniel
1718314f40 chore: update spark 2022-10-28 10:34:43 -05:00
Zach Daniel
e52d7187d8 improvement: more additions to the resource builder, update spark
test: add a test for loading many to many relationships on code interface actions
2022-10-28 10:18:01 -05:00