Commit graph

1539 commits

Author SHA1 Message Date
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