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
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
b99ff3b3a0
chore: update docs
2024-08-30 18:27:48 -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
Jonatan Männchen
93775109c7
improvement: Implement condition for upsert ( #1386 )
...
Resolves #1385
2024-08-13 19:19:13 -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
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
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
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
Alessio Montagnani
7f2e7d3ec1
improvement: bring uuid version 7 into the core ( #1253 )
2024-06-23 18:16:20 -04:00
Zach Daniel
dc94f3a743
improvement: support nils_distinct?
on identities
...
improvement: support `where` option on `identities`
improvement: allow calculations in identity keys
closes #1001
closes #1182
2024-05-24 00:24:42 -04:00
Zach Daniel
e63d80e645
fix: handle subquery-requiring calculations in calculate/2
2024-05-23 17:33:29 -04:00
Zach Daniel
feb187bdf6
improvement: add atomic_upgrade?
flag to update/destroy actions
...
improvement: do not do atomic upgrade by default unless `require_atomic?` is `true`
improvement: allow configuring the read action used by atomic upgrades
2024-05-23 11:05:17 -04:00
ab3786ebf6
feat(Ash.Reactor): Add bulk_update
step type. ( #1185 )
2024-05-22 15:26:51 +12:00
1d5d247d7a
feat(Ash.Reactor): Add bulk_create
step type.
2024-05-21 09:14:02 +12:00
Zach Daniel
751153990b
docs: add alternatives guide
2024-05-16 09:38:31 -05:00
Zach Daniel
124a3c734e
improvement: better types for checks, for spark autocomplete
...
chore: update spark
2024-05-14 11:38:33 -04:00
Zach Daniel
b48c989b15
fix: don't check required belongs to fields until after setting them in bulk creation
...
docs: fix doc links for code interface guide
fixes #1154
2024-05-12 14:12:24 -04:00
Zach Daniel
48c6438212
improvement: change default timeout to :infinity
, for efficiency
2024-05-07 17:01:11 -04:00
Moxley Stratton
65ad0c6039
docs: Add doc text to the default
option ( #1077 )
...
* Add doc text to option
* Second version of the change
* Adjust docs for `:default`, and generate .md files
* Fix type
2024-05-01 16:03:09 -04:00
Sergey Moiseev
417d39e7de
Add documentation on disabling pagination ( #1076 )
2024-04-29 20:40:19 -04:00
Zach Daniel
28c75df7b8
improvement: support new data layer capability calculate/3
...
fix: solve for custom expressions and one-off calculations
2024-04-29 16:58:37 -04:00
Zach Daniel
69b5bd3d3c
chore: update cheat sheets
2024-04-29 07:54:50 -04:00
Frank Dugan III
35961a793d
feat: leverage resource domain for eager/pre checking ( #1040 )
...
closes #1022
2024-04-22 17:15:27 -04:00
Riccardo Binetti
6d209e8836
feat: configurable multitenancy on read actions ( #1030 )
...
Allow making specific read actions able to optionally or totally bypass
multitenancy
2024-04-16 12:09:13 +01:00
Zach Daniel
bc69f904e2
improvement: support require_reference?: false
on code interfaces
...
improvement: support `:filter` option on bulk create/destroy
2024-04-13 17:21:43 -04:00
Zach Daniel
bae263ca12
improvement: support omitting generic action return types
2024-04-10 13:46:44 -04:00
321f43bd05
feat(Ash.Reactor): Add new change
step type which can be used to modify changesets.
2024-04-09 09:03:04 +12:00
2973c0db94
improvement(Ash.Reactor): Allow create
to be provided an initial value.
...
The initial value can be either a resource or a changeset.
2024-04-09 09:03:04 +12:00
c67295de6e
improvement: Allow Reactor modules to be run directly from generic actions. ( #993 )
...
- Extends the generic action runner to detect when the `run` module is a Reactor and automatically executes it in the correct way.
- Adds a verifier that detects said actions and ensures that action arguments are present for all expected inputs.
2024-04-08 16:48:58 -04:00
Zach Daniel
4cbf2d3e14
docs: more restructuring, reviewing of guides
2024-04-08 13:39:45 -04:00
Zach Daniel
e91da15564
docs: moved around some documentation
...
docs: added changes guide
docs: moved around validations guide, removed extra one
2024-04-08 12:05:36 -04:00
Zach Daniel
d153b40dea
docs: consolidate guides into relationships.md
...
improvement: add `Ash.Query.apply_to/3`
2024-04-07 15:31:26 -04:00
Zach Daniel
773e9cea91
docs: move identities guide
2024-04-07 14:50:18 -04:00
Zach Daniel
d2612a9ed8
docs: doc fixes, move code interface docs
2024-04-07 12:33:59 -04:00
Zach Daniel
49958975a1
chore: remove dedicated constraints
guide, put it in Ash.Type
2024-04-07 10:52:18 -04:00
Zach Daniel
2226b00ca5
docs: more condensation/relocation of docs
2024-04-07 10:11:19 -04:00
Zach Daniel
f9eff8810f
docs: refactor security guides
2024-04-06 17:40:05 -04:00
7721dc1c61
fix: multi-line DSL doc options in Ash.Reactor
. ( #974 )
...
Closes #973 .
2024-04-03 22:56:42 -04:00
Dmitry Maganov
43d2246530
improvement: support allow_nil_input
dsl option in update/destroy ( #964 )
2024-04-01 17:26:21 -04:00