Commit graph

2899 commits

Author SHA1 Message Date
Zach Daniel
303da2a97f improvement: better positional argument handling with igniter 2024-07-26 13:43:51 -04:00
Zach Daniel
dc4a63c86c fix: ensure that statuses are set correctly on bulk actions
fix: properly transfer process context(tracers) for bulk actions

closes #1332
2024-07-26 11:38:41 -04:00
Jonatan Männchen
3de985ccc5
feat: Add Ash.Type.File (#1337) 2024-07-26 07:57:23 -04:00
Zach Daniel
de2b3d0d4e improvement: use :utc_datetime_usec for now() return type
fix: fix typespecs for `Ash.can?`
2024-07-25 16:26:11 -04:00
Zach Daniel
8d60e0518e fix: properly display identity/primary key mismatch error on lists of embeds 2024-07-25 10:44:35 -04:00
Riccardo Binetti
df7adce976
fix: apply constraints to NewType even when casting an array (#1341)
The previous implementation was behaving differently when dealing with single
values and arrays.
Close #1342
2024-07-25 10:17:18 -04:00
Zach Daniel
0bdb3acfe2 fix: properly handle non-domain modules or modules w/ no resources
closes #1345
2024-07-25 09:32:16 -04:00
Zach Daniel
99966d0e57 fix: fix enum typespec generation for strings/mixed types 2024-07-25 09:30:04 -04:00
Zach Daniel
b46e172627 fix: properly generate types for string & mixed enums 2024-07-25 07:34:53 -04:00
Riccardo Binetti
d199f701ac
fix: pass reuse_values? true when loading in Ash.Query.apply_to/2 (#1346)
The function is meant to be used to act on data that is in-memory, so it makes
sense to not read data again. Moreover this caused an infinite loop if using
this at the end of a manual read.
Add a regression test for the manual read case.
2024-07-25 07:21:08 -04:00
Riccardo Binetti
79dd76e466
fix: add :ok to Ash.Resource.Actions.Implementation.run/3 callback (#1340)
This was causing a Dialyzer error
2024-07-24 16:46:49 -04:00
Zach Daniel
381870ac3e improvement: don't install sat solver in initial installation
improvement: ask user to install sat solver when extending with policies
improvement: validate that a solver exists at compile time when using policies
2024-07-24 16:08:39 -04:00
Zach Daniel
62bda80b38 fix: honor skip_unknown_inputs in code interfaces 2024-07-24 12:45:58 -04:00
Zach Daniel
228eda86ff fix: don't gather notifications except for in the top level transaction starter
chore: format
2024-07-24 12:02:55 -04:00
Zach Daniel
ed30dcf1dd fix: support skip_unknown_inputs on generic actions 2024-07-24 10:31:44 -04:00
Jonatan Männchen
8d3b0b7246
improvement: Expose type t() on Ash.Type.Enum implementations (#1338) 2024-07-24 07:06:11 -04:00
Zach Daniel
c96a95bcbf fix: ensure changed? context is set on atomic changesets 2024-07-24 06:21:47 -04:00
Rebecca Le
912fcf99de
docs: Format default options for special attributes as code, in Ash.Resource DSL (#1336) 2024-07-24 06:15:31 -04:00
Zach Daniel
516ff8ef8e improvement: automatically fall back to a default domain when working with embeds 2024-07-23 19:14:16 -04:00
Jefferson Queiroz Venerando
98528c9c5a
fix: Update string/ci_string generators to ensure min_length (#1335)
* use :alphanumeric instead of :printable to avoid length issues

* revert to printable and ensure min_length
2024-07-23 17:38:55 -04:00
Zach Daniel
2d6a3cc35d chore: set action before determining opts on changeset 2024-07-23 13:15:09 -04:00
Zach Daniel
7630a23f89 chore: set global option properly 2024-07-23 12:55:52 -04:00
Zach Daniel
32c8da1f8d improvement: add :* as a valid value in skip_unknown_inputs
improvement: add `skip_unknown_inputs` to individual actions
improvement: add `skip_unknown_inputs` constraint to embedded resources
2024-07-23 12:51:11 -04:00
Zach Daniel
4763181ff9 improvement: handle 3 tuple in Ash.can? 2024-07-23 09:59:24 -04:00
Zach Daniel
98dec63998 fix: handle {record, action, input} types in Ash.can? 2024-07-23 09:32:48 -04:00
Zach Daniel
bfb67a4800 improvement: add Ash.Error.error_descriptions 2024-07-23 09:03:27 -04:00
Zach Daniel
828bd9c560 fix: ensure we never call change if batch_change is defined (on bulk actions) 2024-07-22 14:45:39 -04:00
Zach Daniel
be542cf880 fix: only call batch_change if it is defined, never change in bulk create 2024-07-22 14:32:27 -04:00
Zach Daniel
dcb69882df fix: fallback to authorize_with when authorizing bulk destroy actions 2024-07-22 14:05:21 -04:00
Torkild Gundersen Kjevik
c2ac47e21e
improvement: Replace incorrect function_exported?-checks in bulk-actions, add has-defs for change modules (#1330)
fix: don't refer to non-existent `batch_change/4`
2024-07-22 12:32:24 -04:00
Zach Daniel
c65f0c851c fix: apply atomic validations on non-bulk destroy actions
chore: don't put atomic changes into attributes to simplify
2024-07-22 11:35:11 -04:00
Zach Daniel
5be7a56976 chore: move_attributes_to_atomics before handle_allow_nil_atomics 2024-07-22 10:15:56 -04:00
Barnabas Jovanovics
e6d52f2d07
fix: add default to private_fields_policy in Ash.Policy.Info (#1329) 2024-07-22 10:07:03 -04:00
Zach Daniel
bad62c1e8a improvement: add authorize_with fallback option to bulk actions
improvement: store non-expr atomic changes in attributes for simplicity
fix: make `relating_to_actor` built-in-check aware of atomics

closes #1327
2024-07-22 10:03:14 -04:00
Dmitry Maganov
b8029e3171
fix: remove redundant overload of Ash.Expr.get_path (#1328) 2024-07-22 07:39:13 -04:00
Zach Daniel
34d6f229c5 improvement: allow policy conditions to be applied inside their block
```elixir
policy do
  condition [...]
  authorize_if ...
end
```
2024-07-22 07:10:09 -04:00
Zach Daniel
3c2f51224a chore: get build passing 2024-07-19 12:40:09 -04:00
Barnabas Jovanovics
912cc58d83
docs: fix function arity in description (#1326) 2024-07-19 06:43:05 -04:00
721e3e7fe9
chore: fix typespecs for accepts key in action entity structs. (#1323) 2024-07-18 23:10:14 -04:00
Jinkyou Son
063e654405
fix: cast_input/2 of Ash.Type.NewType returning :ok (#1324) 2024-07-18 23:07:14 -04:00
d5aa1d7c9f
fix: warnings emitted by removed reactor behaviour function. (#1325) 2024-07-18 23:06:34 -04:00
Zach Daniel
d7f2f18ae0 fix: fix warning on transaction hooks violating their semantics 2024-07-18 18:16:18 -04:00
Zach Daniel
8a18365d71 chore: fix type signature for domain/2 2024-07-18 13:16:01 -04:00
Zach Daniel
eb2f5f40f1 improvement: Add Ash.Resource.Igniter.domain to get the domain of a resource
fix: properly convert extension string into a module

fix: only display available to extend
2024-07-18 13:00:56 -04:00
Brian
69c77acedd
fix: mix igniter.install ash --example case clause error (#1317) 2024-07-17 18:53:21 -04:00
Zach Daniel
5c095d0e6d fix: only use attribute for filtering when multitenancy strategy == :attribute 2024-07-17 15:54:54 -04:00
Zach Daniel
6632f599bc chore: keep only correct changes from earlier reverts 2024-07-17 15:08:19 -04:00
Zach Daniel
05cdaa04c5 Revert "fix: honor atomic validations in destroy actions using filter"
This reverts commit a6a9961c0d.
2024-07-17 15:06:39 -04:00
Zach Daniel
1db2b0f9d6 Revert "chore: undo change to bulk destroy omitting changeset.filter"
This reverts commit 6484881290.
2024-07-17 15:06:33 -04:00
Zach Daniel
6484881290 chore: undo change to bulk destroy omitting changeset.filter 2024-07-17 14:48:25 -04:00
Zach Daniel
a6a9961c0d fix: honor atomic validations in destroy actions using filter
test: add tests for atomic validations in destroy actions
2024-07-17 14:32:57 -04:00
Hannes Wüthrich
dad0bfd1c4
fix: handle casting nil vectors (#1316) 2024-07-17 09:52:12 -04:00
Zach Daniel
dd5bf4a0c0 improvement: update spark for docs fixes, hide aggregate kind 2024-07-17 08:04:17 -04:00
Rebecca Le
a49d99b67f
docs: Set default value for include_nil? aggregate option (#1315)
* docs: Note that the `kind` option is pre-set for aggregates when using the DSL
2024-07-17 07:45:01 -04:00
Zach Daniel
15655e06ef fix: don't handle nil in Ash.Type.cast_input/3 2024-07-17 06:44:50 -04:00
Torkild Gundersen Kjevik
b3a7c44be0
feat: Add ash_step wrapper. (#1311)
Adds `ash_step` to `Ash.Reactor` which collects notifications.
2024-07-17 20:01:41 +12:00
Zach Daniel
ba869426d6 fix: properly honor the include_nil? option 2024-07-16 22:24:16 -04:00
Zach Daniel
fd26fd895a Revert "fix: don't use type/3 in string interpolation"
This reverts commit 570fc50565.
2024-07-16 22:24:08 -04:00
Zach Daniel
8d3a4c3e46 fix: store after_action hooks added outside of changes for atomic upgrade 2024-07-16 10:07:51 -04:00
Zach Daniel
570fc50565 fix: don't use type/3 in string interpolation 2024-07-16 07:20:55 -04:00
Zach Daniel
e407d7ca44 fix: properly pass include_nil? from when building query aggregates 2024-07-16 06:09:26 -04:00
Zach Daniel
297c916d11 improvement: allow skipping initialization of types in unions 2024-07-16 05:54:04 -04:00
Zach Daniel
fe00d22a25 chore: the function was deprecated the other way 🤦 2024-07-15 14:12:50 -04:00
Zach Daniel
3bc730bfcf chore: update deprecated call 2024-07-15 14:10:34 -04:00
Zach Daniel
97a37a4bf8 improvement: update spark for newest composable igniters 2024-07-15 13:33:05 -04:00
Zach Daniel
5215c4e124 chore: fix build 2024-07-15 08:18:01 -04:00
Zach Daniel
de9b5575eb improvement: add Ash.Domain.Igniter.list_domains/1
improvement: add `Ash.Resource.Igniter.list_resources/1`
2024-07-15 08:17:26 -04:00
Tore Pettersen
37755a870b
feat: Allow field policies to hide private fields (#1289)
* Allow field policies to hide private fields

* Create option for how to handle private fields

* Improve docs
2024-07-15 08:16:52 -04:00
Zach Daniel
d70da28536 chore: second arg to unpaginated_read is action not opts 2024-07-14 11:57:04 -04:00
Zach Daniel
47a796789a fix: use unpaginated_read when simulating streaming for low limit queries 2024-07-14 11:50:11 -04:00
Zach Daniel
56b98e88d8 chore: don't use :any as default basis type 2024-07-14 11:32:21 -04:00
Zach Daniel
c5b118a37c fix: don't use :same return type for most operators
fix: don't use returns as basis type unless explicitly allowed
2024-07-14 11:22:20 -04:00
Zach Daniel
a665a17c59 chore: format 2024-07-14 10:47:43 -04:00
Zach Daniel
84d76b3b28 fix: ensure today has properly configured returns type 2024-07-14 10:45:34 -04:00
Roberts Guļāns
2c37e71d46
fix: module type apply_constraints for nil fix (#1313) 2024-07-14 09:51:21 -04:00
Zach Daniel
0fe27ba670 chore: more compile dependency removals 2024-07-14 09:10:48 -04:00
Zach Daniel
7c6631636b chore: remove compile dependency issues in Ash.Expr 2024-07-14 09:09:52 -04:00
Zach Daniel
ed7a6daa34 improvement: add Ash.Expr.determine_type(mod, children) 2024-07-14 08:59:05 -04:00
Zach Daniel
46033427f4 chore: get build passing 2024-07-14 08:43:49 -04:00
Zach Daniel
f6a9fc3db3 improvement: add return typing to functions 2024-07-14 08:14:49 -04:00
Zach Daniel
4026c2686d fix: don't specify that get_path is a predicate function
chore: remove newly added atomic type casting code
2024-07-13 16:04:25 -04:00
Zach Daniel
a7730bdbb9 improvement: improve type signature for if/3
improvement: support returning a list of atomics from atomic change callbacks
2024-07-13 15:39:19 -04:00
Zach Daniel
476dfede63 improvement: add cast_atomic_constraints callback and use it in core typest 2024-07-12 23:12:59 -04:00
Zach Daniel
67044646c1 improvement: simpler and/or short circuiting 2024-07-12 19:17:27 -04:00
Zach Daniel
cafacee02b fix: properly omit destroyed result in code interfaces 2024-07-12 08:22:12 -04:00
Zach Daniel
40ba1140e0 fix: properly compare expr to min with min integer constraint 2024-07-12 08:18:56 -04:00
Torkild Gundersen Kjevik
e9d8928bb6
fix: Make action ctx-values from reactor-ctx take precedence if set. (#1308) 2024-07-11 19:39:58 -04:00
Zach Daniel
9d4341ce9f chore: fix read_opts setting for previous change 2024-07-11 10:39:26 -04:00
Zach Daniel
d2f25d7ac5 fix: ensure that errors in queries do not raise in atomic upgrades/single atomics 2024-07-11 10:30:31 -04:00
Torkild Gundersen Kjevik
ad6954aca8
improvement: add strict? option to Ash.Query.load (#1302)
---------

Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2024-07-11 09:34:30 -04:00
Franklin Rakotomalala
9f695aaae4
docs: Improve documentation example (#1299) 2024-07-10 15:52:33 -04:00
Robin Chowdhury
be91d777f1
fix: use correct contraint when validating min int (#1298) 2024-07-10 12:57:17 -04:00
Zach Daniel
6606b64855 chore: use public? context in add_expression_part/3 2024-07-10 12:45:52 -04:00
Andreas Donig
28c1aa4f30
improvement: don't refer to private attributes when parsing filter inputs that refer to relationships (#1280)
---------

Co-authored-by: Andreas Donig <git@innwiese.de>
2024-07-10 12:14:27 -04:00
Zach Daniel
426ee6671d fix: ensure that manual action configurations are honored for bulk actions 2024-07-10 11:24:48 -04:00
Zach Daniel
ebdf8eca46 fix: installer doesn't need to add spark as a dependency, just run its installer 2024-07-10 09:04:04 -04:00
Zach Daniel
cdb3ddc5e4 chore: accept value and ignore it in Ash.Error.Unknown.UnknownError 2024-07-09 20:46:54 -04:00
Zach Daniel
ab793e030a improvement: allow overriding cast_stored/2 and dump_to_native/2 2024-07-09 11:42:50 -04:00
Zach Daniel
b94b34d3dc improvement: specify info/2 callbacks for tasks w/ options 2024-07-09 09:08:33 -04:00
Zach Daniel
0129285340 improvement: update getting started guide and document generators 2024-07-08 17:15:52 -04:00