Zach Daniel
cb3facb519
fix: we cannot assume that after_action/1
can be done atomically
...
The reason for this is that a given change may access `changeset.data`
which will not be available. This may introduce compile errors for some users
unfortunately, there is nothing we can do about this. They will need to change
to writing custom changes w/ the `atomic/3` callback that adds an after action
hook
improvement: honor a `_union_type` type param when casting unions
2024-09-11 09:57:22 -04:00
Zach Daniel
e29897e1aa
improvement: add system for action_select
, which can limit selects from mutations
2024-09-10 15:08:08 -04:00
Zach Daniel
e33dc23a07
improvement: support select_by_default?
flag on attributes
2024-09-10 13:24:56 -04:00
Zach Daniel
0f31d463d9
docs: update docs to expand PII term
2024-09-09 13:34:37 -04:00
Zach Daniel
c0d1ccb2a8
docs: some helpful text and links for aggregate docs
2024-09-09 10:28:08 -04:00
Zach Daniel
cee0fc990a
docs: add more docs for aggregates
2024-09-09 10:22:32 -04:00
Zach Daniel
ec12332e95
fix: properly leverage atomic upgrade read action for an update action
2024-09-05 15:04:38 -04:00
e6a7006c30
feat(Ash.Reactor): Add load
option to existing actions, and add new step type. ( #1435 )
2024-09-05 13:59:22 +12:00
Zach Daniel
a2cfaa5fe0
chore: use a better config name
2024-09-03 22:24:24 -04:00
Zach Daniel
06cd509e1f
chore: make the new policy behavior opt-in with config
2024-09-03 22:22:46 -04:00
Zach Daniel
1002d8178e
improvement: make read policies more consistent, always preferring to filter over raise
...
docs: document access type
2024-09-02 14:11:09 -04:00
Zach Daniel
6f2a14715d
improvement: show an explanation when no policies apply
2024-09-02 12:48:36 -04:00
Zach Liss
f1874a708d
docs: Fix typo in authorize-access-to-resources howto ( #1431 )
2024-09-02 10:58:33 -04:00
Barnabas Jovanovics
0dc3a75aaf
use Ash instead of Domain module for read in docs ( #1430 )
2024-09-02 10:58:04 -04:00
Zach Daniel
b99ff3b3a0
chore: update docs
2024-08-30 18:27:48 -04:00
Zach Daniel
f4dc9620ae
improvement: make default page type configurable, defaulting to :offset
...
The getting started guide and ash installer set it to `:keyset`
closes #1413
2024-08-30 17:18:50 -04:00
Andreas Donig
bc400929fb
docs: Make sure there is a caret in front of each atomic_ref occurence ( #1403 )
2024-08-22 14:27:47 -04:00
Zach Daniel
b841eaf54c
chore: add tests for accept & some opts improvements
2024-08-21 11:58:11 -04:00
Zach Daniel
5fc5d32508
improvement: cache action known inputs individually
...
improvement: cache action required inputs all together
2024-08-19 21:49:34 -04:00
Rebecca Le
4b42ef2e41
docs: Replace incorrect attribute
policy check in Policies guide with an expr
( #1393 )
...
There is no built-in check for `attribute` - but the same logic can be expressed readably with a call to `expr`.
2024-08-17 11:00:42 -04:00
Rebecca Le
707de0d664
docs: Fix code typo in Policies guide ( #1392 )
2024-08-16 08:15:33 -04:00
Zach Daniel
87d8263abb
improvement: support expr
and expr_type
options when building aggregates
...
for example:
```elixir
calculate(
:max_comment_similarity,
:float,
expr(max(comments, expr_type: :float, expr: fragment("similarity(?, ?)", title, ^arg(:to))))
) do
argument(:to, :string, allow_nil?: false)
end
```
2024-08-14 20:11:58 -04:00
Alex Slade
61387e6ba0
docs: using multitenancy with code interfaces ( #1388 )
...
---------
Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2024-08-14 18:42:56 -04:00
Jonatan Männchen
93775109c7
improvement: Implement condition for upsert ( #1386 )
...
Resolves #1385
2024-08-13 19:19:13 -04:00
Zach Daniel
f0c6e86d45
chore: remove unnecessary line in docs
2024-08-12 16:01:58 -04:00
Zach Daniel
dc73c3a3d5
feat: add policy groups
...
Policy groups allow you to group policies by shared conditions.
This can help simplify the mental overhead of large sets of policies.
For example:
```elixir
policies do
policy_group actor_attribute_equals(:role, :owner) do
policy action_type(:read) do
authorize_if expr(owner_id == ^actor(:id))
end
policy action_type([:create, :update, :destroy]) do
forbid_if
authorize_if expr(owner_id == ^actor(:id))
end
end
end
```
2024-08-09 16:48:54 -04:00
Jinkyou Son
b9a094dddd
docs: Fix typo ( #1381 )
2024-08-08 20:15:43 -04:00
Zach Daniel
e4dcd1c397
improvement: implement Comp
for atoms & strings, comparing atoms as strings
2024-08-08 11:38:16 -04:00
Zach Daniel
a719c791ba
improvement: add optimized path for casting embeds when they are simple
...
improvement: add `include_embedded_source_by_default?` config to optimize embeds
improvement: support `:fields` constraint on `:struct` type, enabling persistence
2024-08-07 16:47:01 -04:00
Zach Daniel
17feea7a14
chore: update docs on atomics
2024-08-04 08:56:36 -04:00
Torkild Gundersen Kjevik
77d12dc689
docs: Add section regarding strict-loading for manual relationships. ( #1359 )
...
* Add section about strict-loading for manual relationships.
* Remove comment.
2024-07-31 09:03:10 -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
0301009073
docs: add code interface to generic actions guide
2024-07-23 17:42:32 -04:00
Jonatan Männchen
9e155e55c2
docs: document how to call a Generic Action ( #1334 )
2024-07-23 17:40:53 -04:00
Zach Daniel
2d6a3cc35d
chore: set action before determining opts on changeset
2024-07-23 13:15:09 -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
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
Zach Daniel
3c2f51224a
chore: get build passing
2024-07-19 12:40:09 -04:00
Jesse Williams
1ad425bd84
docs: update relationships docs so source_attribute is not required to be unique ( #1320 )
2024-07-18 16:38:43 -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
5215c4e124
chore: fix build
2024-07-15 08:18:01 -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
ec367e8941
chore: update docs to show installers
2024-07-09 21:11:41 -04:00
Zach Daniel
60da2eed21
docs: capitalize a letter
2024-07-09 19:27:36 -04:00
Zach Daniel
b801203069
docs: add info on using the --with
option in installers
2024-07-09 17:09:12 -04:00
Zach Daniel
d04e846f2c
docs: update getting started guide
2024-07-09 07:03:28 -04:00
Zach Daniel
6048900e74
chore: use tabs for installer
2024-07-08 19:34:11 -04:00
Zach Daniel
4bba656f09
docs: add ash_postgres
in igniter install
2024-07-08 19:30:30 -04:00
Zach Daniel
28eeca1510
docs: use info admonition for tutorial
2024-07-08 18:42:29 -04:00