Zach Daniel
221efb09c9
fix: don't need to check current aggs/calcs in filters anymore
2023-06-07 09:08:29 -04:00
Zach Daniel
cff3c4db91
fix: set query tenant on calc dep loads
...
chore: set some groundwork for `Ash.Type.load/5`
2023-06-06 14:21:34 -04:00
Zach Daniel
85da9eff6f
improvement: properly set tenant from initial data
2023-06-06 11:48:16 -04:00
kernel-io
5b6c81d800
fix: copy tenant to step on flow build ( #603 )
2023-06-06 09:27:02 -04:00
kernel-io
c4bb198d0c
docs: clarify custom.ex async? documentation ( #602 )
2023-06-06 09:25:09 -04:00
kernel-io
45dc97cdb4
fix: ensure add_tenant/1 checks the correctkey ( #601 )
2023-06-06 09:24:30 -04:00
Zach Daniel
c6d1a089a5
fix: properly chain batch to each change in bulk creates
2023-06-05 19:57:36 -04:00
Zach Daniel
aa1f902c50
fix: properly handle failed bulk creates with no errors
2023-06-05 19:07:52 -04:00
Zach Daniel
8e7815388e
improvement: handle nil
s in memory the same way sql would have
2023-06-05 16:50:27 -04:00
Zach Daniel
54569c38e1
improvement: support changeset.load
2023-06-05 13:30:29 -04:00
Barnabas Jovanovics
5477102104
fix: also do not autogenerate values for optional fields that have a generator ( #599 )
2023-06-05 08:57:22 -04:00
Dmitry Maganov
af307f0504
fix: rename few error files to match module names ( #597 )
2023-06-03 07:44:33 -04:00
Dmitry Maganov
23bf59822e
chore: remove class
and stacktrace
from ErrorKind
implementations ( #596 )
2023-06-02 17:57:07 -04:00
Barnabas Jovanovics
1185b615f8
fix: Only create values for attributes that did not get a generator ( #595 )
2023-06-02 08:18:02 -04:00
Zach Daniel
bf6797619b
improvement: verify reserved calc names, support as
input
2023-06-01 13:26:54 -04:00
Dmitry Maganov
adb6cefac1
fix: remove field name from string length error message ( #594 )
...
* fix: remove field name from string length error message
* fix: remove old unused `Error.Changes.UnknownError`
* fix: do not capitalize ash error messages
* fix: change error kind code for `Ash.Error.Forbidden.Policy`
2023-06-01 02:29:19 -04:00
Zach Daniel
5ab0c08f0f
fix: properly load aggregates required for keyset pagination
2023-05-30 22:17:05 -04:00
Zach Daniel
e521048809
fix: properly load depended on source attributes
2023-05-30 21:31:48 -04:00
Zach Daniel
282c8945bb
fix: handle pre-hydrated predicates in expressions
2023-05-29 09:57:10 -04:00
Zach Daniel
f6b14d0030
fix: handle nil
errors on bulk creates
2023-05-27 20:18:45 -04:00
Dmitry Maganov
77310bb1f6
fix: add :forbidden
to error_class
, lowercase code for Forbidden
( #589 )
2023-05-27 11:45:01 -04:00
Zach Daniel
37710af26f
fix: proper required value validations in bulk creates
...
fix: don't use error count in place of errors
2023-05-27 00:22:15 -04:00
Zach Daniel
1ab8d3636e
improvement: make loading?/2
smarter
2023-05-26 23:58:35 -04:00
Zach Daniel
6ae41d58e8
fix: properly manage relationships on bulk creates
...
fix: validations could undo certain changeset changes in bulk creates
2023-05-26 10:25:35 -04:00
Zach Daniel
d2b54fdda9
fix: properly upsert on non batchable rows
2023-05-25 11:34:13 -04:00
Zach Daniel
5af9dc6696
fix: properly honor the return_errors?
option
2023-05-25 09:46:27 -04:00
Zach Daniel
958f977139
improvement: better support for multiple code interfaces w/ same name
2023-05-23 19:10:11 -04:00
Zach Daniel
58329a073d
fix: properly wrap errored changesets in bulk creates
2023-05-23 13:44:48 -04:00
Zach Daniel
35b1278830
fix: don't notify unless notify?: true
in bulk creates
2023-05-23 10:45:31 -04:00
Zach Daniel
d56937aeb6
fix: properly wrap errored changesets in {:error
in bulk creates
2023-05-23 10:42:12 -04:00
Zach Daniel
6fb348c162
improvement: handle bulk transaction errors better
2023-05-22 21:01:46 -04:00
Alan Heywood
62ef8ff19c
fix: swap Exception.exception?
for Kernel.is_exception
( #584 )
2023-05-22 16:11:25 -04:00
Shirish Goyal
13f834ad09
docs: Fix for code_interface generated help ( #583 )
...
"actor" term was duplicated and one of them was supposed to be "tracer"
2023-05-19 09:06:46 +12:00
739dbb89a1
fix: accidental variable shadowing in calculation loading.
2023-05-18 16:33:01 +12:00
Alan Heywood
1653162041
fix: add missing batch_size opt for bulk_create ( #581 )
2023-05-18 00:05:29 -04:00
Zach Daniel
6ec06ca867
chore: release version v2.9.9
2023-05-17 22:37:39 -04:00
Zach Daniel
687723730a
fix: errors on casting arrays of unions in newtypes
2023-05-17 22:36:47 -04:00
Zach Daniel
66ea912f8c
improvement: add unavailable error
2023-05-17 13:15:24 -04:00
Zach Daniel
f7f96bb463
fix: don't require {:data_layer, *}
for custom locks
2023-05-16 15:16:40 -04:00
Zach Daniel
c99c36d8c8
docs: update get_and_lock/1
docs
2023-05-16 15:00:16 -04:00
Zach Daniel
7de83e8bb1
improvement: add get_and_lock/1
builtin change
2023-05-16 14:59:47 -04:00
Zach Daniel
ca1769900f
fix: don't use :map
as storage type for Map
2023-05-15 09:49:30 -04:00
James Harton
7326ca330e
improvement(Ash.Type.Module): Add :module
type. ( #578 )
2023-05-15 07:26:52 -04:00
Zach Daniel
ccacfd78fc
improvement: handle ci strings in cast_stored
2023-05-11 15:51:41 -04:00
Zach Daniel
db715f5153
docs: remove reference to filter
option in Query.aggregate
2023-05-10 23:17:46 -04:00
Zach Daniel
8fdd319697
chore: small fixes around optimistic locking
2023-05-08 16:10:46 -04:00
Zach Daniel
d1a64a66e5
improvement: better default overflow logic
...
improvement: custom stale record error
2023-05-08 15:28:50 -04:00
Zach Daniel
4cd5ae2c02
chore: fix dialyzer
2023-05-08 15:16:44 -04:00
Zach Daniel
b09d8781ca
improvement: optimistic locking via changeset.filters
2023-05-08 15:13:46 -04:00
bcksl
b9569b57c3
docs: bulk_create
does not support automatic upsert_fields
2023-05-08 09:41:21 +12:00
zimt28
7d070e49bb
Correctly map results of inline calculations ( #573 )
2023-05-06 13:03:40 -04:00
Moxley Stratton
84aff5a999
Improve documentation for Ash.Changeset.add_error/3 ( #572 )
2023-05-05 20:23:03 -04:00
Zach Daniel
c174713b70
fix: user proper upsert identity for bulk operations
2023-05-04 11:07:44 -04:00
Zach Daniel
ab3267fdc8
chore: credo
2023-05-03 19:58:09 -04:00
Zach Daniel
b376b7267a
fix: ecto type of map is just :map
2023-05-03 19:56:42 -04:00
Zach Daniel
f04ffd5ebd
improvement: support bulk upserts
2023-05-02 21:56:15 -04:00
Zach Daniel
80820a01fc
fix: unbound variable in schema definition
2023-05-02 20:11:31 -04:00
Zach Daniel
e05b5058dc
docs: bulk actions docs
2023-05-02 20:08:25 -04:00
Zach Daniel
523452cb94
docs: basic actions -> generic actions
2023-05-02 20:00:18 -04:00
Zach Daniel
5d3235dbf9
fix: fix dialyzer
2023-05-02 19:52:03 -04:00
Zach Daniel
3a6d79e1c6
improvement: bulk create improvements, docs
2023-05-02 19:48:29 -04:00
Zach Daniel
1e61ae2d3c
improvement: finishing initial touches on bulk actions
2023-05-02 17:24:24 -04:00
Zach Daniel
0d6a86e54e
fix: proper return value for synthesized bulk creates
2023-05-02 14:28:27 -04:00
Zach Daniel
0ced9c7639
fix: assorted bulk create fixes
2023-05-02 14:04:08 -04:00
Zach Daniel
cb99faf918
fix: set upsert context from action on create changesets
2023-05-02 13:37:53 -04:00
Zach Daniel
80f696417d
improvement: bulk create actions
...
This is not currently supported by any data layer other than ETS
2023-05-02 13:19:00 -04:00
Zach Daniel
2843224f06
fix: handle invalid input in basic actions
2023-05-02 02:07:53 -04:00
Zach Daniel
49949ff58f
improvement: initial support for basic actions
2023-05-02 01:54:53 -04:00
Zach Daniel
ba4e7b40ae
improvement: better messages for missed notifications
2023-05-01 20:39:20 -04:00
Zach Daniel
c6bf1c1fb1
improvement: retain stacktraces from task errors
2023-05-01 13:36:01 -04:00
Zach Daniel
4be823493c
chore: format
2023-05-01 09:45:52 -04:00
Zach Daniel
f05527e459
fix: handle map relationship data in lateral join
2023-05-01 01:05:26 -04:00
Zach Daniel
9b323c84ed
improvement: error if relationship.api is not an Ash.Api
2023-04-30 22:51:12 -04:00
Zach Daniel
7f460009af
fix: proper source path for lateral joined relationships
2023-04-30 22:45:54 -04:00
Zach Daniel
d7aaec7499
feat: attribute_in/2
builtin validation
2023-04-28 16:05:58 -04:00
Zach Daniel
5875496367
improvement: more typespec fixes
2023-04-28 13:46:20 -04:00
Zach Daniel
b28ccf2e3c
improvement: support lock option on read
...
improvement: data layer can? might get a dsl, not a resource
2023-04-28 13:38:03 -04:00
Zach Daniel
a5534397ff
improvement: introduce basic locking
2023-04-27 21:28:50 -04:00
Zach Daniel
c83316e88b
chore: fix credo
2023-04-27 14:01:02 -04:00
Zach Daniel
fbd2b2f50c
fix: set flow argument defaults
2023-04-27 13:42:18 -04:00
Zach Daniel
fbc341b3a0
feat: add Api.stream!/1
2023-04-26 17:12:21 -04:00
Zach Daniel
0398883079
chore: fix error message
2023-04-26 15:19:41 -04:00
Zach Daniel
38ec164e3e
improvement: include resource validations by default
...
improvement: validate explicit api configurations, with good error messages
2023-04-25 21:31:01 -06:00
Zach Daniel
8821736227
fix: handle join relationship in different api
2023-04-25 00:25:09 -06:00
Zach Daniel
97daeeb8fb
fix: don't warn on being managed from attribute changing
2023-04-24 07:04:40 -06:00
Zach Daniel
3d8f988e13
fix: don't initially require attributes for belongs to relationships being managed
2023-04-23 22:24:56 -06:00
Zach Daniel
ba1fa4c6d5
fix: simple equality filter should not traverse or
s
2023-04-22 08:26:21 -06:00
Zach Daniel
4e5913588a
fix: more fixes to optimized boolean filter building
2023-04-21 10:44:22 -06:00
Zach Daniel
b67c2b7f34
fix: don't optimize across or
boundaries
2023-04-20 17:31:06 -06:00
Frank Dugan III
2e5f045f72
feat: add fields/1
and public_fields/1
to Ash.Resource.Info ( #569 )
2023-04-20 12:27:13 -06:00
Zach Daniel
d5074a1dd4
fix: handle calculation deps w/ multiple nested relationship paths
2023-04-20 07:46:42 -06:00
Zach Daniel
84a426c53e
chore: don't require action set in run_query/6
2023-04-19 21:03:57 -06:00
Zach Daniel
d1d8deaab3
fix: only do tenant things in ETS if strategy is :context
2023-04-19 20:19:42 -06:00
Zach Daniel
5005d57b1d
fix: add the spark function version of calculations
2023-04-18 20:22:17 -04:00
Zach Daniel
2cbae1bd9a
fix: proper error message on invalid inline function calculation
2023-04-18 16:42:26 -04:00
Zach Daniel
6b5a1da66d
docs: improve api/interface documentation for aggregates
2023-04-18 12:10:52 -04:00
Mariusz Morawski
ce749072e4
improvement: Add upserts option to flow's create step ( #566 )
2023-04-16 10:46:38 -04:00
Mariusz Morawski
8686cc9417
Fix: Add tenant attribute to identity attributes on upserts ( #565 )
2023-04-16 10:44:20 -04:00
George Anderson
54f65b4d6f
improvement: Change storage type of Ash.Type.Term to :binary ( #561 )
2023-04-13 15:59:34 -04:00
Zach Daniel
13591a4681
chore: docs & deprecations
2023-04-13 09:24:37 -04:00
Zach Daniel
81c9475e2e
chore: fix return_notifications?
behavior
2023-04-13 01:41:19 -04:00
Zach Daniel
911acdef5b
chore: better notification handling
2023-04-12 18:10:17 -04:00
Zach Daniel
dcd8f305b6
chore: only gather notifications if not return_notifications?
2023-04-12 17:38:45 -04:00
Zach Daniel
ba5a7e2cb7
improvement: automatically gather up notifications
2023-04-12 17:35:17 -04:00
Zach Daniel
36d6380c6e
fix: properly require attributes on creates
2023-04-11 09:42:11 -04:00
Zach Daniel
92edb11499
improvement: add build_action_metadata to resource builder
...
improvement: add `Ash.merge_context/1` and `Ash.update_context/1`
2023-04-10 19:03:16 -04:00
Zach Daniel
38cdaa8c88
fix: don't require values if a changeset result has been set
2023-04-08 19:25:26 -04:00
Zach Daniel
29096c27ae
fix: properly return errors on invalid calculation arguments
2023-04-08 03:39:41 -04:00
Barnabas Jovanovics
b5e0cbb3cc
improvement: add constraints to maps ( #556 )
2023-04-07 09:53:41 -04:00
Zach Daniel
be7fa0f898
chore: use unused variable
2023-04-06 12:39:11 -04:00
Zach Daniel
a14d9ab456
fix: user unpaginated_read for read_one
2023-04-06 12:35:30 -04:00
Zach Daniel
f104e155e9
chore: credo
2023-04-06 10:30:58 -04:00
Zach Daniel
a20ee0abf7
chore: fix tests/stacktrace setting
2023-04-06 10:23:17 -04:00
Zach Daniel
80616781d6
Revert "chore: fix tests"
...
This reverts commit 67305a6ec8
.
2023-04-06 09:38:21 -04:00
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
James Harton
2d6762ae61
feat(Ash.PlugHelpers): standardise conn interface for actors/tenants. ( #432 )
2022-10-27 17:52:42 -05:00
Zach Daniel
3c6758fa59
chore: use the tenant from the existing query when reselecting/loading calcs
2022-10-27 07:57:17 -05:00
Zach Daniel
bdb2265196
improvement: pass tenant to calculation query explicitly
2022-10-27 07:51:16 -05:00
James Harton
4917e283cd
fix(DataLayer): incorrect typespec for run_query/2
callback. ( #431 )
2022-10-26 14:36:57 -05:00
Zach Daniel
39ea911d33
docs: various guide/documentation updates
2022-10-25 23:17:49 -05:00
Zach Daniel
f89fd53806
fix: in Ash.Seed, don't try to update a non-loaded record
2022-10-25 22:30:00 -05:00
Zach Daniel
1a1714a37c
docs: add resource builder to doc index
2022-10-24 12:05:41 -06:00
Zach Daniel
6b9cff5d43
feat: add Ash.Resource.Builder
, the start of DSL builder utilities of rextension writing
2022-10-24 12:04:56 -06:00
Zach Daniel
72171da732
docs: update some descriptions
2022-10-24 08:57:22 -06:00
Zach Daniel
8c0e4de6bd
improvement: allow using get_path/2
by name, as well as bracket access
...
prior to this, you had to say `map[:foo][:bar]`, but now you can also say
`get_path(map, [:foo, :bar])`. This makes certain things much clearer, i.e
`^arg(:foo)[:foo]`, which is problematic, would normally need to be written
as `(^arg(:foo))[:foo]` so that the pin only applied to the `arg/1` call.
This looks much nicer as `get_path(^arg(:foo), [:foo])`.
2022-10-24 07:57:21 -06:00
Josh Price
3d05bfa95e
improvement: SVG, PDF, PNG, Markdown and plain mermaid formats ( #428 )
2022-10-24 07:55:05 -06:00
Zach Daniel
3dd16304f7
improvement: optimize nested exists
filter statements
...
i.e `exists(friends, exists(friends, name == ^name))`
will be automatically translated to `exists(friends.friends, name == ^name)`.
2022-10-23 22:16:50 -06:00
Zach Daniel
5e3b71e79b
fix: properly load manual to_one relationships
2022-10-23 22:16:50 -06:00
Zach Daniel
986e08e0c2
fix: properly compare against decimal values
...
improvement: support floats & decimals in the `compare` validation
2022-10-21 10:46:46 -04:00
Zach Daniel
87877e7f87
improvement: when returning a page, choose keyset if before
or after
was supplied
...
This allows for better pagination experiences because you clearly expect
an `Ash.Page.Keyset` if you are using `before/after`
2022-10-21 08:24:51 -04:00
Zach Daniel
d439ac9cbc
improvement: add keysets to records if any action supports keysets
...
feat: add `Ash.Api.Info.depend_on_resources/1` to get the list of resources at compile time
A common desire is to have modules that validate things across Api modules, however `Ash.Api.Info.resources/1`
is not safe to use at compile time. `Ash.Api.Info.depend_on_resources/1` will set up the proper compile
time dependencies, making it safe to use at compile time
2022-10-20 21:57:51 -04:00
Zach Daniel
d1f05b6c42
fix: don't attempt to re-authorize access to already retrieved records in Api.load/2
...
improvement: show conditions in policy breakdowns
2022-10-20 13:00:23 -04:00
Zach Daniel
8092cd899a
docs: remove more experimental warnings
2022-10-20 02:00:56 -04:00
Zach Daniel
d22cf2714b
docs: remove experimental warning from manual relationships
2022-10-20 01:59:52 -04:00
zimt28
9337ed6479
feat: Custom short names for types ( #423 )
...
A compile env can be set to allow customizing the available type short names. This supports two things:
1. Adding custom type short names, like `attribute :price, :money` mapping to `MyApp.Type.Money`
2. Overriding the builtin type short names, like `attribute, :price, :string` mapping to a custom string type implementation (there is likely no reason to do this)
2022-10-19 15:24:40 -04:00
Zach Daniel
235e965627
improvement: sort relationship in order of input when managing it
...
This helps with things like https://github.com/ash-project/ash_phoenix/issues/57
which involve rendering the relationship value after editing it. Retaining
the order allows direct reuse without any gymnastics
2022-10-19 00:39:10 -04:00
Zach Daniel
5a11736931
docs: remove outdated @authorizers
reference
2022-10-18 17:43:33 -05:00
Zach Daniel
f774e60749
fix: set defaults before running changes
2022-10-18 14:27:35 -05:00
Zach Daniel
4915e5d583
improvement: add now()
to expression syntax
2022-10-18 14:19:28 -05:00
Zach Daniel
8474e60828
chore: more livebook cleanup
2022-10-17 11:04:28 -05:00
Zach Daniel
a365103087
clean up livebook/mermaid diagrams
2022-10-17 10:18:47 -05:00
Josh Price
3f572c65a2
feat: basic livebook generator and mix task ( #420 )
2022-10-17 08:52:24 -05:00
Zach Daniel
ce35d41ed1
improvement: don't eager evaluate type/2
2022-10-17 08:27:31 -05:00
Zach Daniel
f3a1ee2364
chore: add back private_vars
for InvalidAttribute
2022-10-17 08:00:29 -05:00
Josh Price
7db6aa049c
feat: mermaid class diagram mix task ( #417 )
2022-10-16 19:37:24 -05:00
Josh Price
bb86a13323
docs: refactor diagram, fix doc typos and formatting ( #419 )
2022-10-16 19:36:37 -05:00
Zach Daniel
6751afc683
improvement: support depending on requests that will be added
...
docs: improve flow docs
closes : #418
improvement: support dynamic action steps in `Ash.Flow`
2022-10-16 14:07:57 -05:00
Zach Daniel
652342c41d
docs: remove the word simply
from the docs
2022-10-15 10:16:38 -05:00
Zach Daniel
1e6be17618
fix: properly lateral join when possible
...
improvement: add `prepend?: true` option to sort
fix: use `prepend?: true` when applying relationship sorts
fix: don't miss dependencies in flow diagrams
improvement: use `simple_equality?/0` to allow for optimized equality checking
2022-10-15 00:03:03 -05:00
Josh Price
5c5ef1976c
refactor: simplify mermaid mix tasks ( #416 )
2022-10-14 09:32:44 -04:00
Zach Daniel
0534518a35
fix: fix deps finding in flow charts & flows
2022-10-14 01:17:52 -04:00
Josh Price
d1a49276b8
improvement: mermaid mix task for ER diagrams ( #415 )
2022-10-14 01:07:05 -04:00
Zach Daniel
362180190c
fix: properly load calcs/aggs on manual relationships
...
It needs to be optimized, but it will do the trick for now.
2022-10-13 00:36:29 -04:00
Zach Daniel
48d96fc417
fix: properly load nested manual relationships
2022-10-12 21:30:48 -04:00
Zach Daniel
bd9660503d
chore: key private ets tables by the table name
2022-10-12 15:52:59 -04:00
Zach Daniel
7f07f0d173
improvement: try to resolve flaky tests by not using named tables for private ets resources
2022-10-12 15:26:43 -04:00
Zach Daniel
7f209495c3
improvement: better unknown error handling
2022-10-12 14:52:55 -04:00
Rebecca Le
491c88cacd
fix: allow overriding validation message on a list of errors ( #412 )
2022-10-12 11:44:32 -04:00
Zach Daniel
bbaae20507
fix: reraise errors on task error
...
chore: remove dead code
2022-10-11 14:31:08 -04:00
Frank Dugan III
62805fcce9
improvement: allow passing query or changeset in can/can?/4 ( #410 )
2022-10-10 11:50:13 -04:00
Zach Daniel
ae8e0e356b
fix: don't show dependencies for run_flow steps in expanded view(they are duplicates)
2022-10-10 01:28:32 -04:00
Zach Daniel
ecd30d944d
fix: handle upsert_identity better with ets/mnesia
2022-10-09 22:01:09 -04:00
Nelson Bassett
8378722244
improvement: Improve error when actions reject and accept keys overlap ( #405 )
...
* Test for overlapping action keys, and initial solution.
* Merged ValidateAcceptRejectpOverlap transformer into existing DefaultAccept transformer.
* Corrected formatting using mix format.
2022-10-09 18:05:54 -04:00
Zach Daniel
e9ca762e34
improvement: update to latest spark
...
chore: clean up tests & remove warnings
2022-10-08 14:00:08 -04:00
Zach Daniel
8d2e9204dd
fix: always set source on attributes
2022-10-07 15:45:39 -04:00
Zach Daniel
06d60a3e4e
improvement: add type
function to ash core
2022-10-07 15:31:39 -04:00
zimt28
fc4c60b125
improvement: Allow a single where
condition for validations ( #407 )
2022-10-07 11:24:04 -04:00
Zach Daniel
b20c4afd9b
improvement: haltable flows, branch step type
...
fix: fix chart links rendering
2022-10-06 17:04:44 -04:00
Ali Ahmed
0b7db5f3fb
feat: list arguments for resource actions in class diagrams ( #399 )
2022-10-06 02:04:21 -04:00
Zach Daniel
41b4b7fdbb
improvement: simplify async task strategy
...
We now only start tasks once the synchronous work is done as anything
synchronous should be fast, generally.
Additionally, if there is only one task that we are about to start,
we can be confident that all we're going to do is wait for it,
so we can simply run it synchronously
2022-10-06 01:54:44 -04:00
Zach Daniel
a93a89a717
fix: make loading?/2
know about calcs and aggs
2022-10-06 00:12:45 -04:00
Zach Daniel
787cbad605
fix: properly set source on attributes
2022-10-05 20:25:18 -04:00
Zach Daniel
c591bf6746
improvement: clean up new create authorization simplification
2022-10-05 20:08:36 -04:00
Zach Daniel
be68aa041b
improvement: remove the need for SetTypes
2022-10-05 19:32:47 -04:00
Frank Dugan III
e805d2a9c4
fix: policy fixes from pair session ( #403 )
2022-10-05 19:25:12 -04:00
Zach Daniel
3dfabb8879
improvement: add some info to policy errors
2022-10-05 17:48:22 -04:00
Zach Daniel
978e3ef6f0
improvement: experimental support for calcualtions accepting expression arguments
2022-10-05 15:02:45 -04:00
Zach Daniel
0efad5ae4e
improvement: various Ash.Flow improvements, including returning the new Ash.Flow.Result
2022-10-04 16:21:38 -04:00
George Rodrigues
1f685a1413
docs: fix typos ( #402 )
2022-10-04 16:01:42 -04:00
Zach Daniel
c24d8e6d21
Revert "fix: switch from no_depend_modules in most places"
...
This reverts commit 650d8920e4
.
2022-10-04 11:22:24 -04:00
Zach Daniel
03803734f3
fix: don't evaluate expressions incorrectly after casting
2022-10-04 04:10:35 -04:00
Zach Daniel
f60cc5b43d
fix: add back in new/2
to Changeset
2022-10-04 01:58:27 -04:00
Zach Daniel
008e3a3751
docs: update docs for Ash.Changeset.new
2022-10-04 01:31:22 -04:00
Zach Daniel
dd6fd1fbc3
improvement: allow select/load callbacks for calcs to return irrelevant keys
...
test: add a test case for nested required calculations
2022-10-04 00:22:40 -04:00
Zach Daniel
e7847501f7
fix: properly load nested calcs
2022-10-04 00:11:54 -04:00
Zach Daniel
650d8920e4
fix: switch from no_depend_modules in most places
2022-10-03 21:47:45 -04:00
Zach Daniel
ab5cffa371
improvement: optimize load equality matching by not using Comp
2022-10-03 16:35:02 -04:00
Juha
fdebbeb242
improvement: Forbid reserved field names ( #388 )
...
Co-authored-by: Juha Lehtonen <juha.lehtonen@relexsolutions.com>
2022-10-03 16:19:16 -04:00
SpaceEEC
ace38cd31f
improvement: validate accepted and rejected attributes in actions ( #395 )
2022-10-03 12:16:53 -04:00
SpaceEEC
14a1b92963
feat: show_private?
option for diagrams ( #396 )
2022-10-03 11:30:10 -04:00
Zach Daniel
2c685a6a2e
fix: properly display compare/2 error message
2022-10-02 20:56:18 -04:00
Zach Daniel
c53eae58cd
improvement: support zero argument functions in compare/2
2022-10-02 20:46:30 -04:00
Zach Daniel
329dfed138
fix: use the short type for aggregate types
2022-10-01 22:33:08 -04:00
Zach Daniel
ade0031081
fix: kind_to_type/2
returns tagged tuple
2022-10-01 22:25:49 -04:00
Josh Price
3d2f8277ad
feat: generate mermaid entity relationship diagrams from a given api ( #376 )
2022-10-01 22:22:00 -04:00
Zach Daniel
95a4aa3708
improvement: optimize for relates_to_actor_via
2022-09-30 15:13:04 -04:00
Zach Daniel
8dca72c49d
chore: fix mix tasks list
2022-09-29 16:26:46 -04:00
Zach Daniel
6f14cf0263
docs: add mix_tasks to doc_index
2022-09-28 20:59:47 -04:00
Zach Daniel
0e13456eb0
improvement: optimize relates_to_actor_via checks
2022-09-28 20:37:19 -04:00
Zach Daniel
6c94e5e578
chore: ensure calc module compiled (shouldn't have to do this)
2022-09-28 18:00:51 -04:00
Zach Daniel
fec01e32fa
chore: log at_path
in exists error message
2022-09-28 16:56:13 -04:00
Zach Daniel
fdbc5faeea
fix: use at_path
when parsing Exists
2022-09-28 16:49:11 -04:00
Zach Daniel
b12b5e34bb
fix: properly require a condition of a following bypasses
2022-09-28 16:38:32 -04:00
Zach Daniel
6a172cce18
fix: don't transform == nil to is_nil automatically
2022-09-28 12:32:02 -04:00
Zach Daniel
68d0e8f55d
fix: pass path down to keyword list errors
2022-09-28 01:52:41 -04:00
Zach Daniel
24bdf9058e
improvement: catch more cases in preflight authorization checks
2022-09-27 14:58:48 -04:00
Zach Daniel
bc6daa56dd
fix: bad pattern in filter.ex
, fix dialyzer
2022-09-27 14:08:29 -04:00
Zach Daniel
8f1a43419b
fix: attempt to evaluate filter checks for strict checks
...
closes : #385
2022-09-26 20:41:53 -04:00
Zach Daniel
f629de6808
fix: only return errors when there actually are errors
2022-09-26 19:18:42 -04:00
Zach Daniel
716fcf7c25
fix: return an error if data_layer_query/2
is given a query with errors
2022-09-26 19:13:08 -04:00
Zach Daniel
dc83e26fd8
chore: remove debugging raise statements
2022-09-26 18:41:39 -04:00
Zach Daniel
dcc6879bc1
chore: better error message for allow_nil? belongs to primary key
2022-09-26 18:09:16 -04:00
Zach Daniel
a8bce0ab23
improvement: lazily set required loads/selects for calcs/sorts
2022-09-26 18:08:18 -04:00
Zach Daniel
fe596db0b8
improvement: reselect any necessary fields when loading calcs
...
docs: tons of new documentation
improvement: set context when creating related filters allowing checks like `filtering_on`
2022-09-25 23:58:05 -04:00
Zach Daniel
3b803d4c55
fix: various fixes with complex policy statements
...
improvement: simplify filter statements further
improvement: don't overconstraint filters on related data
test: get started on some more complex policy tests
2022-09-25 13:21:17 -04:00
Zach Daniel
8f3e388c27
fix: ensure fields selected in-line when loading calcs
2022-09-23 10:44:29 -04:00
Zach Daniel
8031f1b698
improvement: any filter being statically true means :authorized
2022-09-22 21:06:57 -04:00
Zach Daniel
fbcd745401
improvement: properly mark conditions w/ access_type
...
fix: handle statically false conditions in filter logic
2022-09-22 21:03:33 -04:00
Zach Daniel
ac30194601
improvement: use IsNil
instead of Eq
when either side is nil
2022-09-22 18:27:05 -04:00
Zach Daniel
621cb6854e
improvement: handle string dates for embeds
2022-09-22 09:42:16 -04:00
Zach Daniel
d4a6feb589
fix: cast embedded datetimes properly
2022-09-22 03:00:06 -04:00
James Harton
479b09951c
fix(Ash.Calculation): fix return type for load/3
callback. ( #384 )
2022-09-22 00:44:09 -04:00
Zach Daniel
7ef2f4884c
improvement: remove __timestamps__ in favor of simpler macro
...
docs: add extending resources guide
2022-09-21 18:49:59 -04:00
Zach Daniel
739bf52309
fix: warn instead of raise on :replace
usage
...
fix: handle var_args expression with literal args
2022-09-21 13:00:12 -04:00
Zach Daniel
5994c1b51f
chore: fix dialyzer, add embedded resources guide back
2022-09-21 12:20:00 -04:00
Zach Daniel
48bcf1ca1f
chore: relate_and_unrelate -> append_and_remove everywhere
2022-09-20 22:50:03 -04:00
Zach Daniel
980779fa7d
fix: fix replace_relationship
type
2022-09-20 22:38:08 -04:00
Zach Daniel
b4766d1ccc
chore: set typespec to proper return value
2022-09-20 20:00:30 -04:00
Zach Daniel
39b143e19e
chore: undo typespec that is complaining for some reason
2022-09-20 19:48:45 -04:00
Zach Daniel
1f6fb8d7af
chore: fix tests
2022-09-20 19:44:04 -04:00
Zach Daniel
3903e36d29
improvement: update to latest spark, support dsls in resource info
2022-09-20 16:09:40 -04:00
Zach Daniel
87f20369bc
improvement: deprecate :replace
in favor of :relate_and_unrelate
2022-09-19 15:44:06 -04:00
Zach Daniel
2ca0f09444
improvement: add loading?/1
query helper
...
improvement: add `loading/1` built in check
2022-09-19 10:14:08 -04:00
Zach Daniel
bee3a6ea09
fix: properly handle args/nested expression for tuple calcs
2022-09-16 03:54:17 -04:00
Zach Daniel
003ba3246b
fix: add a case for calculations as tuples in expr filters
2022-09-16 03:47:12 -04:00
Zach Daniel
cc5c1b69c0
fix: return count, not {:ok, count}
2022-09-15 17:12:40 -04:00
Zach Daniel
301d5b56d9
fix: bad return value when async fetching counts
2022-09-15 17:06:56 -04:00
Zach Daniel
405019d33b
fix: remove dbg() call
2022-09-15 16:54:58 -04:00
Zach Daniel
da282d1193
docs: hide a function from docs
2022-09-15 16:52:06 -04:00
Zach Daniel
266ecc8249
fix: nil
casts as any type (sort of)
2022-09-15 02:15:23 -04:00
Zach Daniel
1b2d351721
fix: return nil
on nil
inputs for length/1
2022-09-15 02:12:51 -04:00
Zach Daniel
d7b446bc7f
fix: properly reraise errors raised in tasks
2022-09-15 02:08:30 -04:00
Zach Daniel
f084d346ad
fix: properly return errors from tasks
2022-09-15 01:09:12 -04:00
Zach Daniel
2c2c207e68
fix: use Comp.equal?/2
when finding loaded data matches
2022-09-15 00:55:04 -04:00
Darren Black
865d028667
chore: Guard length function for invalid input ( #380 )
2022-09-15 00:10:01 -04:00
Zach Daniel
a5f51e8f1b
fix: properly error on types when evaluating expressions at runtime
2022-09-14 22:31:32 -04:00
Zach Daniel
4b88300e00
fix: properly surface errors all the way from runtime filters
2022-09-14 20:05:51 -04:00
Zach Daniel
3baf2b8c97
fix: properly catch errors when running expressions at runtime
2022-09-14 19:50:07 -04:00
Darren Black
a572099e24
improvement: Implement length function ( #379 )
2022-09-14 13:28:42 -04:00
Zach Daniel
08642b9123
chore: update typespec for attribute
2022-09-14 13:20:24 -04:00
Zach Daniel
2dae8ffa44
improvement: validate aggregate paths supported
2022-09-13 16:24:55 -04:00
Zach Daniel
e36f8c3e59
improvement: add filterable?
option to relationships
...
improvement: add data layer capability for aggregate relationships & filter relationships
improvement: add guide on manual relationships
2022-09-13 13:53:05 -04:00
Zach Daniel
4260b9a1c9
fix: inspect the match for default message
2022-09-13 13:53:05 -04:00
Zach Daniel
827548f737
chore: fix typespec for aggregate_type/2
2022-09-12 13:43:18 -04:00
Zach Daniel
f583ababbc
fix: fix keyset pagination ordering bug
...
fix: short names are snake cased
2022-09-12 11:17:44 -04:00
Zach Daniel
d32efadb62
improvement: add aggregate_type/2
helper
2022-09-12 11:17:44 -04:00
Zach Daniel
5c81d2b4a7
fix: properly do pagination
...
docs: fix some docs, add some guides
2022-09-11 22:19:37 -04:00
Zach Daniel
3644d05cd6
Revert "improvement: make two queries for full keyset pagination support"
...
This reverts commit 64b3312cb9
.
2022-09-11 18:35:02 -04:00
Zach Daniel
8c7ddf703c
chore: warnings
2022-09-11 16:10:11 -04:00
Zach Daniel
64b3312cb9
improvement: make two queries for full keyset pagination support
...
docs: add store context in process guide
2022-09-11 16:07:21 -04:00
Zach Daniel
fbebcf6670
fix: handle pins in exists
2022-09-07 17:53:18 -04:00
Zach Daniel
1c1c375d66
fix: add better error for exists/2
2022-09-07 17:15:18 -04:00
Zach Daniel
f381014fd1
fix: use root_resource for related
path in filter
2022-09-07 17:00:16 -04:00
Zach Daniel
9ddc2aeb0d
fix: set root_resource in exists
parsing
2022-09-07 16:26:49 -04:00
Zach Daniel
ac60cda9ac
docs: add docs for all builtins
2022-09-07 15:03:09 -04:00
Zach Daniel
0368c1a8da
fix: error fetching relationships in filter expressions
...
docs: more docs on upgrade/policies guide
2022-09-07 12:53:29 -04:00
Zach Daniel
12c46a8da9
fix: filter check typespecs
...
docs: add docs on `expr/1` policies and using `exists/2`
2022-09-06 22:38:56 -04:00
Zach Daniel
171b7bbdf3
fix: runtime filter handle new relationship shape
2022-09-06 18:17:36 -04:00
Zach Daniel
619adcee93
improvement: add exists/2
expression
2022-09-06 18:02:01 -04:00
Zach Daniel
b98dc5ffd5
docs: update moduledocs and types
2022-09-04 00:56:41 -06:00
Zach Daniel
9ac4eafb87
fix: the semantics of forbid_unless
were not wrong
...
docs: remove some formatting
2022-09-04 00:53:52 -06:00
Zach Daniel
31d1d925ef
fix: forbid_unless
expression compilation
...
docs: add some more expression template docs
fix: fix runtime filter join simulation for multiple rows
2022-09-03 21:34:55 -06:00
Zach Daniel
5134673fed
chore: fix tests
2022-08-31 10:51:12 -06:00
Zach Daniel
4c90ab5d1f
chore: fix ets test
2022-08-30 17:00:45 -06:00
Zach Daniel
c380cc1a14
docs: sanitize things for docs
2022-08-30 16:45:55 -06:00
Zach Daniel
bf67aef99f
chore: bump pre version
...
fix: typo in dsl
2022-08-30 12:37:43 -06:00
Zach Daniel
1ff91f303d
improvement: update ash docs
2022-08-30 12:27:03 -06:00
Zach Daniel
696f7ca82a
fix: small fix to get_path
...
improvement: support `read_action` in embeddable types, and optimize loading
docs: more documentation
2022-08-30 11:18:10 -06:00
Zach Daniel
85b2d0d50c
chore: fix lint
2022-08-30 02:23:13 -06:00
Zach Daniel
ae3f4290d2
docs: update pub_sub example
2022-08-30 02:22:46 -06:00
Zach Daniel
834d99c57e
fix: runtime filter checking is unknown for non-selected values
...
docs: tons of work on docs/guides
2022-08-30 02:22:15 -06:00
Zach Daniel
005bb3ea3c
fix: typo on private
-> private?
2022-08-29 08:57:52 -06:00
Zach Daniel
54deb28d2e
fix: make private:0 overridable
2022-08-29 08:57:25 -06:00
Zach Daniel
89c7f15b85
fix: always select always_select?
fields
...
improvement: add `private?/0` callback to functions
docs: reword some docs
2022-08-29 08:54:11 -06:00
Zach Daniel
7930e3efa1
fix: don't fail to build Phoenix.Socket.Broadcast
2022-08-29 08:05:12 -06:00
Zach Daniel
5924833c1d
fix: use ensure_compiled/1
to detect Phoenix.Socket.Broadcast
2022-08-28 22:39:51 -06:00
Zach Daniel
6c40747320
improvement: options for prepending/appending hooks
...
docs: guides improvements
2022-08-28 19:27:44 -06:00
Zach Daniel
b181a8d4cf
improvement: add flow chart generator
2022-08-28 19:27:44 -06:00
Zach Daniel
a262e58ffb
fix: validate args in the proper order
2022-08-28 19:27:44 -06:00
Zach Daniel
1bb3468851
improvement: add tracing and telemetry
2022-08-28 19:27:44 -06:00
Zach Daniel
caf9a2340e
fix: various issues w/ over/under-selecting data
2022-08-28 19:27:44 -06:00
Zach Daniel
2e6ec5b8b4
docs: total docs reorg
2022-08-28 19:27:44 -06:00
Zach Daniel
603f845952
chore: update spark
2022-08-28 19:27:44 -06:00
Zach Daniel
e37f62284b
chore: update doc links
2022-08-28 19:27:44 -06:00
Zach Daniel
0b7f48b7c2
fix: string goes before ci_string in function typings always
2022-08-28 19:27:44 -06:00
Zach Daniel
c7640abfef
improvement: better scope simple data layer context
...
docs: better language around simple data layer in getting started guide
2022-08-28 19:27:44 -06:00
Zach Daniel
feee4516bc
fix: properly halt in ets dump_to_native reducer
2022-08-28 19:27:44 -06:00
Zach Daniel
d7a9ff7996
improvement: move docs out of priv, update spark
2022-08-28 19:27:44 -06:00
Zach Daniel
f678c585d6
WIP: on guides
2022-08-28 19:27:44 -06:00
Zach Daniel
87eca9fdcd
fix: use proper link identifier
2022-08-28 19:27:44 -06:00
Zach Daniel
edb0887d19
fix: section link format error
2022-08-28 19:27:44 -06:00
Zach Daniel
8786df69f3
fix: fix section docs format
2022-08-28 19:27:44 -06:00
Zach Daniel
a806cac2e2
fix: properly list entries for ensuring no embeds
2022-08-28 19:27:44 -06:00
Zach Daniel
f50484cf98
fix: properly get entries registry DSL structure
2022-08-28 19:27:44 -06:00
Zach Daniel
b5796ff65b
fix: typo in rebase
2022-08-28 19:27:44 -06:00
Zach Daniel
6d98b78227
improvement: unlock flow
...
improvement: pagination as a DSL
improvement: don't block engine on async tasks
2022-08-28 19:27:44 -06:00
Zach Daniel
f9941a6c75
improvement: update spark, use new transformer style
2022-08-28 19:27:44 -06:00
Zach Daniel
656bd22085
docs: docs and links for everything
2022-08-28 19:27:44 -06:00
Zach Daniel
8f2c74da74
docs: fix docs for check/4
2022-08-28 19:27:44 -06:00
Zach Daniel
04744f395f
improvement: move functions to more conventional places
...
improvement: move ash.formatter task to `spark.formatter`
2022-08-28 19:27:44 -06:00
Zach Daniel
6c79519b6c
improvement: make long-awaited DSL name changes
2022-08-28 19:27:44 -06:00
Zach Daniel
44adc9a1b8
improvement: upgrade spark, move to its formatter
2022-08-28 19:27:44 -06:00
Zach Daniel
a5f616812b
improvement: replace Ash DSL underpinnings with Spark
2022-08-28 19:27:44 -06:00
Zach Daniel
8a87e7c891
fix: don't try to use record as input when updating embed
2022-08-28 18:51:43 -06:00
Zach Daniel
bb4a3b34b3
fix: fix read!
typespec
2022-08-24 12:50:26 -04:00
Zach Daniel
18515dd82a
fix: don't raise random error :|
2022-08-24 12:00:17 -04:00
Zach Daniel
91d3bf314a
fix: properly handle "bare" references, and track it for potential later use
2022-08-24 11:54:12 -04:00
Zach Daniel
80833c3f58
improvement: handle the case where managed relationship input is an embed
2022-08-22 19:48:22 -04:00
Zach Daniel
584a927776
improvement: add value_is_key
option for managed relationships
2022-08-22 12:26:31 -04:00
Darren Black
548247a8b7
fix: False default value for argument is nil in changeset ( #364 )
2022-08-22 10:41:25 -04:00
Zach Daniel
3a69b3104e
fix: ignore belongs_to in preflight attribute check
2022-08-17 20:58:11 -04:00
Mike Buhot
150f7178b8
improvement: Replace usage of Timex.shift with builtin Calendar functions ( #362 )
2022-08-17 19:18:03 -04:00
Zach Daniel
86e171bae9
fix: clean up relationship validation logic
2022-08-17 14:40:20 -04:00
Zach Daniel
91129aac8a
fix: clean up logic around preflight belongs_to validation
2022-08-17 14:12:53 -04:00
Zach Daniel
917131c21f
improvement: handle required but not accepted values better
2022-08-17 12:58:43 -04:00
Darren Black
c21c5e6ae7
docs: Fix little documentation typo ( #361 )
2022-08-15 12:29:38 -04:00
Zach Daniel
73124c43fd
docs: more DSL docs, create shell guides
2022-08-14 12:49:21 -04:00
Zach Daniel
3bcf731eea
fix: persist a nil actor properly
2022-08-09 21:32:32 -04:00
Zach Daniel
b9675295e6
improvement: support authorize?
as a changeset option
2022-08-09 20:25:43 -04:00
Zach Daniel
a4770e35fd
fix: propery set authorize?: false on runtime filter
2022-08-08 09:56:17 -04:00
Zach Daniel
6f233cd905
chore: remove IO.inspect
2022-08-08 09:47:11 -04:00
Zach Daniel
817336eefc
fix: explicitly don't authorize the runtime filter authorization logic
2022-08-08 09:30:44 -04:00
Zach Daniel
dff0c6fc45
fix: fix eager function/operator evaluation
2022-08-07 21:46:35 -04:00
Zach Daniel
234cdc2517
fix: scrub values properly, same as last bug
2022-08-07 20:23:50 -04:00
Zach Daniel
d03915b194
fix: map update bug when sanitizing boolean expressions
2022-08-07 19:46:01 -04:00
Zach Daniel
8a2208601c
improvement: add actor_present
policy
2022-08-07 01:16:50 -04:00
Zach Daniel
fe12f40056
fix: fixs runtime filter fallbacks
...
improvement: add `error?` option to get
2022-08-05 11:58:01 -04:00
Zach Daniel
6aaab781e0
chore: remove debug logs
2022-08-04 16:55:53 -04:00
Zach Daniel
10f2b14d97
improvement: fix various operator evaluators
...
docs: improve docs
2022-08-04 16:50:56 -04:00
Zach Daniel
c8628066de
fix: (attempt) to fix calc loading issue
2022-08-03 11:13:02 -04:00
Zach Daniel
f823e35f7d
fix: actually use warn_on_empty?
config
2022-08-01 19:23:16 -04:00
Zach Daniel
32bab0959d
chore: add moduledocs for WarnOnEmpty
2022-08-01 14:52:56 -04:00
Zach Daniel
c0404af740
improvement: add warnings to DSL transformer returns
...
improvement: warn on empty registries
closes #359
2022-08-01 14:43:38 -04:00
Zach Daniel
285c7db5be
docs: small docs updates
2022-07-26 02:46:01 -04:00
Zach Daniel
d94ebf8883
docs: fix guide links
2022-07-25 21:14:32 -04:00
Zach Daniel
a07b8bb2f6
docs: properly format links
2022-07-25 18:53:37 -04:00
Zach Daniel
ca9c80b6b0
improvement: better sanitization around sensitive attributes in filters
...
docs: general doc improvements
2022-07-25 18:47:30 -04:00
Zach Daniel
0b18be167e
docs: improve docs/small error message tweak
2022-07-25 15:56:52 -04:00
Zach Daniel
951c3051b9
fix: check for actor on query/changeset for actor context
2022-07-22 15:21:11 -04:00
zimt28
d24888b0eb
docs: update authorization section examples.
2022-07-22 14:26:26 -04:00
Zach Daniel
026ac43493
fix: pass actor opt down
2022-07-22 00:59:34 -04:00
Zach Daniel
347907029b
improvement: change always_authorize?
to authorize
for multiple options
2022-07-21 22:23:18 -04:00
Zach Daniel
22a598d6d6
fix: don't skip setting tenant when actor is present
2022-07-21 18:24:57 -04:00
Zach Daniel
6c277a1a59
fix: don't use apply/3
on kernel macros
2022-07-21 14:02:56 -04:00
Zach Daniel
552af4b665
fix: small bug in DSL transformer manipulation.
2022-07-21 14:01:44 -04:00
Zach Daniel
331d0cf66c
fix: && and || don't short-circuit to nil
2022-07-20 15:46:14 -04:00
Zach Daniel
7b9861dc2c
fix: {:ok, _}
-> {:known, _}
when evaluating operators
2022-07-20 15:44:03 -04:00
Zach Daniel
8036c268d6
fix: fix bad evaluation case for operators
2022-07-20 15:12:37 -04:00
Zach Daniel
ebef8057c8
improvement: add error message for manual action missed
2022-07-20 13:38:26 -04:00
Zach Daniel
75ca760c9f
fix: ensure we only take unique related records when lazy loading
2022-07-20 01:12:53 -04:00
Zach Daniel
98a64577d9
improvement: add || and && operators
...
improvement: sort parsing helpers
test: fix flaky test
2022-07-19 19:15:23 -04:00
Zach Daniel
8f23cc71fb
improvement: add Ash.Sort.parse_input!/2
2022-07-19 13:34:01 -04:00
zimt28
81c085b9a3
improvemtn: Add accept_default option ( #351 )
...
* Add accept_default option
2022-07-19 10:03:23 -04:00
Zach Daniel
fe27a7f61b
improvement: add transfer_context/1
and get_context_for_transfer/0
2022-07-19 09:59:57 -04:00
Zach Daniel
c9f20f1488
improvement: add process-based actor, tenant and query/changeset context
...
improvement: add `always_authorize?` and `require_actor?` to api config
2022-07-19 00:49:05 -04:00
zimt28
bc05fb5b47
Deprecate option type helper ( #352 )
2022-07-18 15:22:17 -04:00
Zach Daniel
e83fcf13fb
fix: use Map.get/2
when getting paths if the value is a struct
2022-07-15 22:02:59 -04:00
Zach Daniel
594698986e
improvement: support paths in actor/1
2022-07-15 21:42:30 -04:00
Zach Daniel
e86887b8b8
improvement: add default guide to doc_index
2022-07-14 11:41:20 -04:00
Zach Daniel
611603c7d3
docs: add info for can/4
2022-07-14 10:45:55 -04:00
Frank Dugan III
3776af9f85
feat: add can?/4 policy utility ( #349 )
...
* feat: add can?/4 policy utility
* refactor: change defaults and add can/4
* refactor: add typespecs, rename test
2022-07-14 10:05:51 -04:00
Zach Daniel
a023aaff95
fix: make mnesia and ets work properly when sharing tables
...
fix: make updates properly merge with mnesia and ets
fix: `attribute_writable?` also makes it public
2022-07-13 15:05:55 -04:00
Zach Daniel
5a4a3009d9
docs: update seed docs on __keep_nil__
2022-07-12 01:26:13 -04:00
Zach Daniel
ba559936d8
improvement: code_interface optional arguments
...
test: add some load tests
2022-07-11 22:59:51 -04:00
Zach Daniel
0f3521b2f4
improvement: improve behavior of lazy?: true
option
...
before, any calculation that determined that it needed to load
would always load its dependencies, but now if they are already loaded
then dependencies won't be reloaded
2022-07-11 21:31:50 -04:00
Zach Daniel
a9f93c1ca3
chore: ignore unnecessary sobelow error
2022-07-10 23:45:26 -04:00
Zach Daniel
4d3c393342
docs: small docs tweaks, more modules
2022-07-10 23:39:57 -04:00
Zach Daniel
b7a9cd33ac
chore: typo in doc index
2022-07-10 17:05:03 -04:00
Zach Daniel
46a6bb407d
chore: docs in priv/
2022-07-10 16:06:22 -04:00
Zach Daniel
0b158ca487
docs: work on DSL documentation
2022-07-10 15:05:09 -04:00
Maciej Malecki
9707b4b7fe
Use a proper operator in the attribute_does_not_equal
validation ( #348 )
...
Previously, it was using `if current != expected do raise` while it
needs to do the opposite. Also, simplify the logic by making `update`
work in the same way as `create` (compare upcoming value - not the
original one).
2022-07-07 14:12:32 -04:00
Zach Daniel
f2bf8bccac
improvement: add back in DSL docs
2022-07-06 08:37:00 -04:00
Zach Daniel
40904cae80
fix: add back in writable?
option to relationships, and add attribute_writable?
to belongs_to
2022-07-06 08:30:13 -04:00
Zach Daniel
394e2d089a
improvement: add match_other_defaults?
to attribute
2022-07-05 10:18:50 -04:00
Zach Daniel
b71aa3ddeb
fix: don't rescue arbitrary exception/exits
2022-07-05 09:32:06 -04:00
Zach Daniel
ac4590a0ca
improvement: remove relationship writability, as it all happens through arguments now
...
improvement: repurpose `writable?` on `belongs_to` to make the attribute writable
2022-07-05 08:16:38 -04:00
Zach Daniel
15cd3fb7bc
fix: fix return type for dump/3
ecto type
2022-06-30 22:10:37 -04:00
Zach Daniel
dd3b261a69
chore: update error types in Ash.Type
2022-06-30 22:00:24 -04:00
Zach Daniel
8cc6d014e7
fix: load/3
returns {:ok, value} | :error
2022-06-30 13:31:57 -04:00
Zach Daniel
0d9f075c0d
fix: ensure type is always set on attributes
...
docs: add more policy docs
2022-06-28 15:16:29 -04:00
Zach Daniel
f718ee94e7
improvement: new timeout error message and test it
2022-06-27 15:57:30 -04:00
Zach Daniel
5d269d046e
fix: don't try to read files that don't exist
2022-06-27 13:36:58 -04:00
Zach Daniel
ef3d1ea398
improvement: Ash.Generator
2022-06-21 21:00:47 -04:00
Zach Daniel
1d50c7aa79
improvement: add Ash.Seed
module with seed helpers
2022-06-20 17:01:28 -04:00
Zach Daniel
118f62b55e
fix: bad return value for destroy!
+ return_notifications?: true
2022-06-18 22:46:08 -04:00
Zach Daniel
19fe132717
improvement: add basic type handling for non embedded resources
2022-06-17 15:12:14 -04:00
Zach Daniel
70c6bd64ee
improvement: better transformer ordering error
...
chore: docs
2022-06-17 10:00:04 -04:00
Zach Daniel
1df97999f4
fix: use digraph to order transformers
2022-06-16 04:10:32 -04:00
Zach Daniel
1b6fc035af
chore: remove unnecessary change
2022-06-16 02:51:48 -04:00
Zach Daniel
6aa0c0b591
fix: things breaking due to stricter expectations on type function inputs
2022-06-16 01:57:04 -04:00
Zach Daniel
9a60877f22
chore: simplify is?/2
2022-06-16 00:55:07 -04:00
Zach Daniel
0804ad6e85
improvement: don't pay massive costs of a function undefined error
2022-06-16 00:50:02 -04:00
Zach Daniel
abf25dafbb
fix: depend on all entries in registry
2022-06-14 20:30:13 -04:00
Zach Daniel
329accd565
improvement: optimize related resource inclusion check
2022-06-14 15:42:38 -04:00
Zach Daniel
5b0a5d238b
fix: don't disable lexical tracker for extensions
2022-06-14 14:39:17 -04:00
Zach Daniel
56656deda4
fix: properly set the changed?
context
2022-06-10 10:09:49 -04:00
Zach Daniel
4b57bcc8c7
improvement: add resource to notification warning
2022-06-10 09:52:07 -04:00
Zach Daniel
e19ca1ec66
fix: always return all notifications if return_notifications?: true
2022-06-09 13:52:32 -04:00
Zach Daniel
084b998cab
improvement: add config :ash, :pub_sub, debug?: true
2022-06-09 11:00:53 -04:00
Zach Daniel
ae823e3539
improvement: add from
to notification, and notification_metadata
to api
2022-06-08 13:16:42 -04:00
Zach Daniel
74dc200c01
docs: more work on docs
2022-06-07 15:31:09 -04:00
Zach Daniel
dd3b212008
chore: try escaping html
2022-06-07 15:07:11 -04:00
Zach Daniel
df14b30a8a
docs: add Ash.DocIndex
to doc index
2022-06-07 15:04:42 -04:00
Zach Daniel
ff890e4654
docs: more work on doc replacements/info
2022-06-07 14:57:30 -04:00
Zach Daniel
b0e58ab57d
docs: fix route for overview
2022-06-05 15:06:01 -04:00
Zach Daniel
dc2f57423b
fix: read file at compile time for doc index
2022-06-05 14:42:03 -04:00
Zach Daniel
091251869f
chore: reorder overview
2022-06-05 14:28:51 -04:00
Zach Daniel
dc14f4016a
chore: fix guide reference
2022-06-05 13:45:54 -04:00
Zach Daniel
74a1a6c97c
docs: work on docs + link structure
2022-06-05 13:05:10 -04:00
Zach Daniel
ae65d09373
docs: work on docs structure
2022-06-05 12:13:29 -04:00
Zach Daniel
0d7eac7829
chore: fix typespec
2022-06-04 17:05:49 -04:00
Zach Daniel
a626f8d92d
fix: when casting atom -> string, stringify it first
...
*duh*
2022-06-03 20:35:36 -04:00
Zach Daniel
bdfdc778e0
fix: move preparation init to runtime
2022-06-02 23:53:38 -04:00
Zach Daniel
571c138140
improvement: add identity_priority
and use_identities
option to manage_relationship
2022-06-02 02:08:36 -04:00
Zach Daniel
f8164f6745
improvement: support limit in simple data layer
2022-06-01 23:54:01 -04:00
Zach Daniel
393dd7326f
fix: don't automatically url encode keyset values
2022-05-31 12:18:52 -04:00
Simon Bergström
71884dfa5f
fix: fixed bug wher embedded resources would always provide defaults, not allowing you to declare your own (primary?) actions ( #339 )
2022-05-31 11:58:56 -04:00
Zach Daniel
93424fd16a
fix: keyset pagination counts all rows
2022-05-31 11:56:15 -04:00
Zach Daniel
6d0cbec244
fix: fetch items closest to cursor by reversing keyset sort
2022-05-31 11:17:14 -04:00
Zach Daniel
669c98b379
fix: keyset + before results must be reversed
2022-05-31 10:34:35 -04:00
Theo Harris
021d859990
docs: Fix code block that wrapped non-code text ( #341 )
2022-05-31 10:19:10 -04:00
Theo Harris
4aac381cb1
docs: Add clarifying language around the use of the Enum module ( #340 )
2022-05-31 10:18:42 -04:00
Zach Daniel
067228980e
improvement: add key
to InvalidKeyset
error
2022-05-30 16:41:49 -04:00
Zach Daniel
7a0cfd3ab1
improvement: better error message on invalid keyset
...
closes #336
2022-05-30 16:32:17 -04:00
Zach Daniel
cc82a1a0cb
chore: WIP on documentation push
2022-05-30 15:57:56 -04:00
Zach Daniel
225d4289f6
chore: format
2022-05-28 21:21:36 -04:00
Simon Bergström
4273a5d23a
improvement: added options to the built-in function relate_actor/1
( #332 )
2022-05-28 21:21:14 -04:00
Zach Daniel
02b1194062
chore: fix tests/transformers
2022-05-28 11:22:43 -04:00
Zach Daniel
8b10b892ef
improvement: add :_pkey
shortcut in pub_sub
...
improvement: validate `pre_check_with` is set for ets/mnesia identities
improvement: clearer and raised error message on changeset action mismatch
2022-05-28 11:12:08 -04:00
Zach Daniel
915209da8f
improvement: accept atoms when casting strings
2022-05-25 17:49:48 -04:00
Zach Daniel
3f85d019de
chore: some options helper improvements/docs
2022-05-25 12:23:16 -04:00
Zach Daniel
129c3d33e9
fix: rename interval
to duration_name
2022-05-23 16:20:02 -04:00
Theo Harris
9b5c713bcd
docs: Spelling fixes, add :upsert_identity example ( #327 )
...
* Minor spelling fixes, :upsert_identity example
* Grammatical tweaks in API docs
* Adjust phrasing, consistent formatting
2022-05-20 10:25:23 -04:00
Zach Daniel
ddde776fd0
improvement: specify that upserts could be related at creation
2022-05-20 09:55:17 -04:00
Darren Black
430e6676bd
fix: Fix concat ( #326 )
2022-05-19 10:24:53 -04:00
Darren Black
35a19f800d
fix: Make get and get! consistent with what they raise when no record found ( #325 )
2022-05-18 21:37:04 -04:00
Zach Daniel
574e06b583
fix: add resource/action to policy error context
2022-05-18 15:20:05 -04:00
Zach Daniel
44a72226da
fix: don't ignore lazy load option
2022-05-18 13:11:30 -04:00
Zach Daniel
64e9ecb0bc
fix: return {:ok, nil}
on nil cast for strings
2022-05-17 20:00:55 -04:00
Zach Daniel
d3cb202a12
chore: add ash_phoenix to sub-project tests
...
docs: add `Ash.Policy.Authorizer` to doc index
2022-05-17 16:34:14 -04:00
Zach Daniel
b3e0632792
improvement: move ash_policy_authorizer into core as Ash.Policy.Authorizer
2022-05-17 15:56:40 -04:00
Zach Daniel
0ec5a6d7b0
fix: run after_action in create properly
2022-05-17 12:28:15 -04:00
Zach Daniel
5e270288e6
fix: require calculations specified on resource load
2022-05-17 11:54:02 -04:00
Zach Daniel
f152b4ad36
fix: ensure that the default accept is used
2022-05-12 18:51:05 -04:00
Zach Daniel
5a674c1409
fix: distinct before limit and offset
2022-05-10 16:30:36 -04:00
Zach Daniel
f38b9b8859
improvement: work on module dependencies
2022-05-10 11:33:24 -04:00
Zach Daniel
734f2e0ac6
fix: add distinct in data_layer_query
2022-05-10 10:17:50 -04:00
Zach Daniel
7af5c3c59e
chore: take distinct
out where necessary
2022-05-10 10:17:02 -04:00
Zach Daniel
c71587642d
chore: QoL improvements
2022-05-09 17:48:50 -04:00
Zach Daniel
92609b33ea
fix: merge calculations when merging loads
...
closes #309
2022-05-09 17:47:17 -04:00
Zach Daniel
a39ebd5646
improvement: use new no_depend_modules
everywhere
2022-05-08 23:58:06 -04:00
Zach Daniel
d29cc54725
fix: add no_depend_modules
for changes/validations
2022-05-08 23:38:01 -04:00
Zach Daniel
904968b936
improvement: add no_fields?
relationships
2022-05-03 18:56:37 -04:00
Zach Daniel
98a7ac06b8
fix: match on :unknown
not {:ok, :unknown}
2022-04-28 20:19:23 -04:00
Zach Daniel
6e4ecc62e3
fix: run calc in data layer if it returns :unknown
2022-04-28 20:12:54 -04:00
Zach Daniel
74cc7c4ad5
fix: don't ignore lexical tracker on modules in DSL
...
improvement: add manual read actions
fix: don't treat single actions of a type as primary
2022-04-28 18:08:00 -04:00
Zach Daniel
f6ea11c10f
fix: go back to old method of checking for resource
2022-04-27 09:49:18 -04:00
Zach Daniel
e502f51470
fix: properly load from load
statement in calculations
2022-04-26 22:57:07 -04:00
Zach Daniel
989cb5d22e
improvement: calculation values from requests
2022-04-26 13:02:46 -04:00
Zach Daniel
d3da724422
fix: send notifications in all cases
...
improvement: small optimizations
2022-04-26 00:16:28 -04:00
Zach Daniel
7a1e32908a
improvement: more flow features/fixes, debug step
2022-04-25 17:01:23 -04:00
Zach Daniel
d16432750f
fix: use unpaginated read when loading
2022-04-20 19:43:41 -04:00
Zach Daniel
3fc088d1fc
fix: properly handle errors in mnesia transactions
...
improvement: work on transaction flow steps
2022-04-20 14:38:35 -04:00
Frank Dugan III
f291680622
Chore: Fix typo ( #318 )
2022-04-20 10:17:59 -04:00
Zach Daniel
49929de5a1
fix: default custom steps to be async?: false
2022-04-19 12:04:25 -04:00
Zach Daniel
e7c6ac0f4f
fix: get tests/dialyzer passing
2022-04-19 11:29:28 -04:00
Zach Daniel
6f9f0137ec
chore: release version v1.52.0-rc.1
2022-04-18 23:50:26 -04:00
Zach Daniel
0de8b7bc2c
chore: add flow descriptions
2022-04-18 21:13:36 -04:00
Zach Daniel
61f250d620
improvement: load
on cast_stored
in embedded type
2022-04-18 17:45:10 -04:00
Zach Daniel
7dc5e54af0
improvement: add descriptions to mermaid charts/flow
2022-04-18 13:39:54 -04:00
Zach Daniel
4e19223173
improvement: tons of engine/timeout improvements
2022-04-17 23:56:01 -04:00
Josh Price
c03c3d6175
improvement: implement NaiveDateTime type ( #312 )
2022-04-16 22:09:44 -04:00
Josh Price
21eca98530
improvement: Improve usability of finding by primary key (ID) ( #294 )
2022-04-16 13:25:34 -04:00
Josh Price
6ac4a84ec9
fix: Handle date type cast_input with nil value ( #311 )
2022-04-16 11:12:20 -04:00
Josh Price
cf314d5a6b
improvement: Add time type matching existing date type ( #310 )
2022-04-16 09:31:31 -04:00
Zach Daniel
e452c40919
chore: handle non-boolean values from runtime filter
2022-04-10 20:21:36 -04:00
Zach Daniel
9f21435dbf
fix: fix expression logic
...
improvement: flow -> mermaid chart
improvement: flow tenants
improvement: fix nested map statements in flow
2022-04-10 20:00:57 -04:00
Zach Daniel
ea1adcf230
fix: remove IO.inspect
2022-04-08 02:15:46 -04:00
Zach Daniel
25f5a27525
fix: don't throw away timeout exit
2022-04-08 02:12:41 -04:00
Zach Daniel
20a9f76c8d
fix: timeouts @ the engine, not the parent process
2022-04-08 02:04:26 -04:00
Zach Daniel
24d9948ddb
fix: timeout logic was timing out after the fact
2022-04-08 01:48:45 -04:00
Zach Daniel
868bb9a6e7
fix: uniqueify list_refs
even further
2022-04-07 22:53:56 -04:00
Zach Daniel
c98910add6
improvement: add dynamic allow list
...
improvement: uniqify list_references
2022-04-07 22:33:48 -04:00
Zach Daniel
5bf8c39975
improvement: set default timeout to 30_000
2022-04-07 02:13:41 -04:00
Joe Cole
6dcbe26abe
fix: Enforce unique action names ( #308 )
...
Co-authored-by: Joe Cole <{ID}+{username}@users.noreply.github.com>
2022-04-07 01:14:07 -04:00
Zach Daniel
e23f2a705d
fix: pass tenant option to requests properly
...
docs: work on docs
2022-04-06 23:13:21 -04:00
Zach Daniel
0309f7131e
improvement: fully deprecate the resource
entity
2022-04-06 13:12:22 -04:00
Zach Daniel
be9e564d57
chore: fix identity docs/tests
2022-04-06 12:22:34 -04:00
Zach Daniel
4fc53baf5f
improvement: add eager validate identities
...
improvement: percolate `nil` values in operators in ash expresion language (like SQL)
chore: more docs work
2022-04-06 12:00:32 -04:00
Damir Vandic
3ea7dc2ec0
fix: Fix typespecs in Ash.Api ( #307 )
2022-04-05 18:11:40 -04:00
Zach Daniel
7c13322aa4
improvement: add return_destroyed?
option
2022-04-05 12:42:50 -04:00
Zach Daniel
84ed398980
chore: docs/ci work
2022-04-05 03:59:34 -04:00
Zach Daniel
a012287c3b
fix: fix resource relationship validation
2022-04-04 15:18:53 -04:00
Zach Daniel
6c523b9752
continue working on docs
2022-04-04 14:55:05 -04:00
Zach Daniel
022708c6b5
improvement: add api
option to relationships
...
improvement: make default actions and primary actions far more explicit
this begins the official 2.0.0 work
2022-04-04 01:48:37 -04:00
Zach Daniel
8aa71c1e2c
fix: fix paths for load in flow
...
improvement: better error messages on unknown
2022-04-02 02:39:55 -04:00
Zach Daniel
59075efa03
fix: aggregate/calculation filter issues
2022-04-01 19:08:06 -04:00
Zach Daniel
ae630581ea
improvement: better loading behavior for managed relationships
...
improvement: add lazy? option for loading
2022-04-01 15:17:01 -04:00
Zach Daniel
e017722868
improvement: show value in atom error list
2022-03-31 20:54:06 -04:00
Zach Daniel
0db42cb76a
chore: update doc index
2022-03-31 20:37:40 -04:00
Zach Daniel
9bdd496688
improvements: remove no_modify?
from read
2022-03-30 17:42:07 -04:00
Zach Daniel
c7ff13c2ef
chore: build/lint
2022-03-30 11:37:44 -04:00
Zach Daniel
b7c6005acb
improvement: add modify_query
callback
2022-03-30 11:36:10 -04:00
tlietz
da5306c773
improve: Provide api read error message on no data set ( #302 )
2022-03-29 21:07:44 -04:00
Zach Daniel
b645b04c1d
chore: add code_modules to doc index
2022-03-29 20:43:11 -04:00
Zach Daniel
5ba6439810
fix: show error message in NoSuchResource
...
improvement: add overview
2022-03-29 11:59:59 -04:00
Zach Daniel
2094c37272
chore: clear documentation out for a fresh start
2022-03-28 20:20:08 -04:00
Zach Daniel
49727a0447
improvement: add build_entity!
...
improvement: properly parse `{:_ref, path, name}`
improvement: add `deselect` to build
fix: import builtin preparations in global preparations block
2022-03-28 01:14:50 -04:00
tlietz
12cfe0d848
improvement: validates attributes and relationships have unique names ( #300 )
2022-03-27 20:00:19 -04:00
Zach Daniel
592daaad3f
chore: WIP on doc index
2022-03-27 14:32:33 -04:00
Zach Daniel
e83c54a949
chore: add back guides
2022-03-27 13:08:27 -04:00
Zach Daniel
fed4ca7bb2
chore: fix doc index
2022-03-27 12:15:00 -04:00
Zach Daniel
8a5f7b3f84
chore: remove guides
2022-03-27 12:14:28 -04:00
Zach Daniel
d358f4dc49
chore: get started on guides
2022-03-27 00:49:41 -04:00
Zach Daniel
3c8636bc0b
chore: update doc index
2022-03-25 16:08:51 -04:00
Zach Daniel
29b9569d15
chore: remove duplicate item from doc index
2022-03-25 00:37:08 -04:00
Zach Daniel
a5106c6095
improvement: validate no embeds in api
2022-03-25 00:18:56 -04:00
Zach Daniel
f9734af48c
chore: get final tests passing
2022-03-24 23:36:43 -04:00
Zach Daniel
77bc84194a
chore: set proper module for registry docs
2022-03-24 22:38:30 -04:00
Zach Daniel
cc58d7c9ba
chore: separate ash doc index from doc index
2022-03-24 22:29:18 -04:00
Zach Daniel
e7f9bfe88c
chore: move to a DocIndex
pattern
2022-03-24 22:25:14 -04:00
Zach Daniel
90be7959b5
chore: fix syntax error from docs change
2022-03-24 10:02:28 -04:00
Zach Daniel
6ffd216892
chore: more docs tweaks
2022-03-24 01:01:43 -04:00
Zach Daniel
7b02117531
chore: more extension docs for new docs site
2022-03-24 00:27:21 -04:00
Zach Daniel
27df3f0ba8
chore: begin work on extension auto-doc features
2022-03-24 00:02:29 -04:00
Zach Daniel
e10112113c
fix: add load
option convenience for reads/code interface
...
fix: handle errors in all action types where `changeset` wasn't resolved
2022-03-23 23:22:03 -04:00
Zach Daniel
b12f12be49
improvement: properly attach authorization_filters to loaded items
2022-03-22 23:19:07 -04:00
Zach Daniel
f5502ff8ff
fix: always sanitize requests before we spawn them
2022-03-22 18:40:10 -04:00
Zach Daniel
b5b0067880
fix: context name in loading manual relationships
...
chore: try setting authorizer? explicitly on engine opts to resolve a bug
2022-03-22 18:34:58 -04:00
Maciej Malecki
e1250b419a
Fix the typespec for the Ash.Changeset.get_data/2
function ( #295 )
2022-03-22 10:01:19 -04:00
Zach Daniel
880a17f197
fix: get aggregate query from proper engine path
2022-03-20 21:16:46 -04:00
Zach Daniel
23ea0ee056
fix: handle error case in create
...
improvement: add `ref` template helper
fix: don't require attributes if an argument overrides them
2022-03-20 20:39:47 -04:00
Zach Daniel
7ba9715f27
fix: fix hanging issue when adding engine requests
2022-03-20 01:08:39 -04:00
Zach Daniel
96c45e1a58
improvement: add transaction steps to flow
...
fix: don't require `writable?: false` attributes
2022-03-19 23:51:45 -04:00
Zach Daniel
920dff7f00
fix: pull aggregate values properly
2022-03-15 19:55:23 -04:00
Zach Daniel
81dcbf1bdf
fix: fix nested section configs having wrong path
2022-03-15 18:58:21 -04:00
Zach Daniel
a53b61ddf4
feat: add Ash.Flow
...
feat: support recursive DSL entities.
improvement: unimport to avoid name collisions in nested DSLs
2022-03-15 17:42:29 -04:00
Zach Daniel
335fa523f2
improvement: disable lexical tracker when expanding aliases
2022-03-02 01:04:57 -05:00
Zach Daniel
b6c16897f3
improvement: temporarily move init to runtime for changes
2022-03-01 21:50:36 -05:00
Zach Daniel
f50cf32b7b
fix: don't rescue errors in resource_formatter
...
fix: add `input/2` to resource modules
2022-02-23 10:37:15 -05:00
Zach Daniel
d38320b00d
fix: move back to more efficient formatter
...
However, we now only format the topmost module of a file, due to
unresolved bugs that happened with multiple nested resources
2022-02-20 23:16:23 -05:00
Zach Daniel
ba1b39536e
feat: manual relationships
...
fix: make the formatter safer, again
2022-02-20 22:46:39 -05:00
kernel-io
7121c56b70
fix: typo in changeset.ex ( #291 )
2022-02-17 12:55:12 -05:00
Zach Daniel
ab4e724af6
fix: don't blow away sections when formatting
2022-02-17 12:51:21 -05:00
Zach Daniel
f6b71e6b5b
fix: properly reorder sections in the formatter
2022-02-17 12:44:30 -05:00
Zach Daniel
268bc39a4c
fix: solve reorder bugs in formatter
2022-02-17 02:48:03 -05:00
Zach Daniel
15bdae0d99
feat: add source
option to attributes
2022-02-14 11:38:45 -05:00
Zach Daniel
da04a883d9
improvement: add cast_in_query?/0
to Ash.Type
2022-02-14 10:23:17 -05:00
Zach Daniel
ca6a79c360
improvement: small data layer improvements
2022-02-11 15:52:23 -05:00
Zach Daniel
334a73984c
improvements: add is_expr?, allow aggregates in aggregates
2022-02-09 12:13:51 -05:00
Zach Daniel
0268c06c63
fix: include a missing module
...
fix: properly set filterability on attributes
2022-02-07 16:36:51 -05:00
Zach Daniel
079b941e90
chore: release version v1.50.18
2022-02-07 15:39:12 -05:00
Zach Daniel
1b2d28eb90
fix: no IO.inspect, and log errors from formatting
2022-02-02 17:14:29 -05:00
Zach Daniel
4138bd4934
improvement: initial implementation of ash resource formatter
2022-02-02 17:02:43 -05:00
Zach Daniel
9eff65758c
improvement: ensure no reserved names can be used as constraints
2022-02-02 17:02:43 -05:00
Zach Daniel
9143cf2359
chore: release version v1.50.17
2022-01-31 15:05:43 -05:00
Zach Daniel
5ba1cf5a1e
improvement: optimize if
and is_nil
functions
...
chore: change alpha -> beta
2022-01-27 15:17:21 -05:00
Zach Daniel
7a7cb12de7
fix: use ash_struct_fields
to accumulate schema struct field defaults
2022-01-24 14:36:08 -05:00
Zach Daniel
7174fa8583
improvement: add where
to change
2022-01-19 16:33:01 -05:00
Zach Daniel
501f375e60
fix: don't call add_aggregates w/ a map
2022-01-19 16:32:44 -05:00
Zach Daniel
101628471e
improvement: support data layers bulk adding aggregates
2022-01-12 13:47:01 -05:00
Zach Daniel
ef81843240
fix: allow new filter
pattern in typespec
2021-12-21 13:06:19 -05:00
Zach Daniel
ce3ae44a4c
improvement: add more authorizer state management
...
Added more opportunities for authorizers to pass back state.
This is being used to ensure that ash policy authorizer errors
can always have enough information to provide a policy breakdown
2021-12-21 12:24:12 -05:00
Zach Daniel
6b95dec339
improvement: customizable exception for authorizers
2021-12-21 01:07:06 -05:00
Zach Daniel
77f5e69c8c
fix: fix recursion in do_reverse_relationship_path/3
2021-12-20 22:13:52 -05:00
Zach Daniel
f0870461a4
fix: properly construct reverse relationship paths
2021-12-20 21:13:14 -05:00
Zach Daniel
e40806e021
improvement: cover more potential cases in filter parsing
2021-12-19 15:39:31 -05:00
Zach Daniel
2986838a19
fix: support new versions of ecto's struct fields
...
fix: fixes for elixir_sense plugin
2021-12-19 00:12:10 -05:00
Zach Daniel
6c5198eea4
improvement: add elixir_sense extension, to be merged when ready ( #275 )
2021-12-13 18:17:34 -05:00
Zach Daniel
88168de320
improvement: add Ash.DataLayer.Simple.set_data/2
...
docs: add data-layer-less resource guide
2021-12-07 21:39:07 -05:00
Zach Daniel
3ee5b059b0
improvement: complete mutually_exclusive_and_collectively_exhaustive logic
2021-12-07 15:08:50 -05:00
Zach Daniel
4448a4eeb7
improvement: catch more equivalencey cases around is_nil in sat solver
2021-12-06 16:50:33 -05:00
Zach Daniel
e1cd19950e
fix: undo an unnecessary contains
change
2021-12-06 00:33:25 -05:00
Zach Daniel
9fdb56587c
fix: WIP attempt to resolve ci_string typing errors
2021-12-06 00:25:07 -05:00
Zach Daniel
d9ce401bb4
fix: case clause error in Query.equivalent_to?
2021-12-01 14:59:23 -05:00
Zach Daniel
48d88151ba
fix: missing rename on refactor
2021-12-01 14:04:14 -05:00
Zach Daniel
6fcff37659
fix: typo in unquote
2021-12-01 14:03:48 -05:00
Zach Daniel
a5b130e5f4
improvement: expose small filter helpers
2021-12-01 14:02:44 -05:00
Zach Daniel
a46b5268d1
fix: mark contains
as a predicate
...
improvement: make to_simple_filter fail better, add failure option
2021-11-29 14:06:31 -05:00
Zach Daniel
df306ef2ad
improvement: add Transformer.eval/3
(for special use cases only)
2021-11-26 14:59:37 -05:00
Zach Daniel
83b2d13910
improvement: track defaults being set
2021-11-24 19:09:39 -05:00
Zach Daniel
2dbdc06536
improvement: add Ash.Query.equivalent_to/2
...
docs: small documentation tweaks
2021-11-16 22:46:14 -05:00
Zach Daniel
b6094b1e9c
improvement: add subset_of?
and superset_of?
query macros
2021-11-16 19:17:57 -05:00
Zach Daniel
b26e272bb4
fix: run calculations inline by default
2021-11-13 14:43:51 -05:00
Michael St Clair
f9b7223d91
fix: use Date.add when using LessThanOrEqual with date value ( #281 )
2021-11-13 14:11:32 -05:00
Zach Daniel
7cb4401d8e
improvement: support do/else blocks in if
...
improvement: support `cond`
2021-11-13 13:48:25 -05:00
Zach Daniel
f124e9bf7c
fix: cast nil input on strings
...
docs: add line on multitenancy
2021-11-11 14:27:57 -05:00
Zach Daniel
034ed97efe
fix: simplify and improve allow_nil checking
2021-11-09 03:26:50 -05:00
Zach Daniel
f16ffb3782
improvement!: breaking!: explicitly setting a value to nil on create no longer falls back to the default value
...
This behavior is more expected than silently switching back to the default, but it does have the potential
to cause issues for those relying on the old behavior. To get the *old* behavior, you'd want to add a change
that does something like `if is_nil(Ash.Changeset.get_attribute(changeset, :attribute)) do` to check if
it should set the value, and then uses `Ash.Changeset.change_attribute/2` to make the change
2021-11-09 00:39:19 -05:00
Zach Daniel
1d68df5cd3
improvement: add set_new_attribute/2
2021-11-09 00:01:59 -05:00
Zach Daniel
23dfebc59f
chore: add code interface docs
2021-11-07 01:24:45 -04:00
Zach Daniel
629708eecc
improvement: still filter in cases w/o a lateral join on load
...
fix: don't ask the data layer to sort if no sort is applied
2021-11-03 17:21:29 -04:00
kernel-io
3b06998df5
fix: set tenant at start of query build ( #278 )
2021-11-02 16:59:55 -04:00
Zach Daniel
ca631d27da
improvement: only_when_valid?
on changes
...
fix: set storage_type to `:uuid` for Ash.Type.UUID
2021-11-01 04:39:13 -04:00
Zach Daniel
68d7d10877
fix: remove IO.inspect
2021-10-29 19:53:24 -04:00
Zach Daniel
cd70686a4e
fix: add changes from last release that I forgot
2021-10-29 18:39:13 -04:00
Zach Daniel
ea73432ff1
improvement: compile time optimizations via configuration
...
improvement: breaking change! if you were previously relying on the undocumented
ability to configure resources using application config, you will no longer configure
them as `config :ash, DslEntity`, but rather you will set an otp_app on the entity,
e.g `use Ash.Resource, otp_app: :otp_app`, and then you'll configure that via
`config :otp_app, MyApp.Resource, ...`
2021-10-29 17:21:05 -04:00
kernel-io
4113595f69
fix: correctly handle errors in validate_required_belongs_to ( #276 )
2021-10-28 17:38:14 -04:00
Zach Daniel
9613ab812c
fix: set actor when loading to manage belongs_to
...
improvement: set `action` into data layer context
2021-10-28 16:11:11 -04:00
Zach Daniel
dc25e9d7e4
fix: cast to string before concatenating
2021-10-26 11:54:44 -04:00
Zach Daniel
13cffc852c
fix: always lateral join for many to many relationships
...
improvement: add `default` option for aggregates
2021-10-25 18:48:35 -04:00
Zach Daniel
05d8eb1741
improvement: add allow_async?
to calculations, default to false
...
improvement: add elixir evaluation step to expression calculations
2021-10-25 17:53:51 -04:00
Zach Daniel
e17daf6b02
improvement: global resource preparations
...
fix: unset `load` when running calculation queries
2021-10-25 16:59:11 -04:00
Zach Daniel
358a1b5cae
fix: breaking change! disambiguating functions in keyword filter syntax
...
it was possible to call functions in the form of `[function_name: [...args]]`,
but if you had relationships that overlapped w/ the function name that would cause problems.
To disambiguate, function arguments must now be provided as a tuple, e.g
`[function_name: {...args}]`.
2021-10-24 14:19:38 -04:00
Zach Daniel
e765eb5e10
fix: use correct typespec for Ash.Sort.parse_input/2
2021-10-23 02:51:49 -04:00
Zach Daniel
8683ca46c9
chore: set default for get?
2021-10-21 22:13:10 -04:00
Zach Daniel
0e66801ebe
improvement: add get? metadata
2021-10-21 22:12:28 -04:00
Zach Daniel
f0ab170b5d
chore: remove IO.inspect
2021-10-21 18:11:35 -04:00
Zach Daniel
1805c21075
improvement: custom error paths for managed relationships
2021-10-21 18:09:13 -04:00
Zach Daniel
d8f6aaedf2
fix: honor get_by
and get_by_identity
on bang (!) interfaces
2021-10-20 01:43:31 -04:00
Zach Daniel
5e6442c3e4
improvement: add get_by
and get_by_identity
to code interface
...
improvement: compile time validations for managed relationships
2021-10-19 21:39:30 -04:00
Zach Daniel
a4fef11c6e
fix: don't require primary actions if disabled
2021-10-19 05:25:33 -04:00
Zach Daniel
3bad25c1e0
improvement: add primary_actions?
option
2021-10-19 04:42:35 -04:00
Zach Daniel
38b357ade9
fix: don't validate allow_nil in attribute casting
2021-10-15 17:13:01 -04:00
Zach Daniel
1f2f9802a3
fix: fix code interface on resources
...
improvement: breaking change! api level code interface *removed*, contact me on discord if you want a way to avoid changing to resource-based interface, but otherwise
switch to the resource based one by specifying `define_for YourApp.YourApi` in the `code_interface` block of each resource.
improvement: use proper equality checking in places where we were using simple elixir equality checking
2021-10-13 18:42:42 -04:00
Zach Daniel
863ed1520f
fix: honor base query still when removing filters
2021-10-11 20:06:13 -04:00
Zach Daniel
922c87ea85
improvement: add resource registry validation
...
fix: move related field validations to resource
fix: remove join_attributes, which didn't do anything anyway
2021-10-11 15:14:33 -04:00
Zach Daniel
028c0c6c32
improvement: support module_prefix
for dsl extensions
...
fix: handle errors when validation calculation constraints
2021-10-08 15:59:15 -04:00
Zach Daniel
9fbc2921f9
fix: remove certain modules from avoiding recompilation
2021-10-07 13:37:37 -04:00
Zach Daniel
ff756b72a7
improvement: deprecation!
...
A deprecation warning will be shown at compile time to illustrate
a change from listing all of your resources in an api to listing
them in a registry and connecting that registry to the api
2021-10-07 02:41:02 -04:00
Zach Daniel
87627993b8
improvement: breaking change! don't define code interface by default
...
In an effort to improve compile times in general, and remove unnecessary
compile time dependencies, the code interface is not defined by default.
It is also now possible to define the code interface directly in the resource module,
via
```elixir
code_interface do
define_for ApiModule
end
```
If you need to reenable the code interface, simply add the following to your api module:
```elixir
resources do
define_interfaces? true
...
end
```
2021-10-06 17:43:22 -04:00
Zach Daniel
a955d89b8f
fix: make arrays default to nil_items?: false
2021-10-04 13:23:23 -04:00
Michael St Clair
8af32a0053
chore: Bring over changes committed to master branch ( #271 )
...
Co-authored-by: kernel-io <git@omnium.co>
Co-authored-by: Zach Daniel <zach@zachdaniel.dev>
Co-authored-by: kernel-io <kernel-io@users.noreply.github.com>
2021-10-01 23:27:35 -04:00
Zach Daniel
c19acf767c
fix: support on
for global changes
...
improvement: skip resource action if no changes have been made
improvement: add `changing_attributes?/1` to determine if any attributes are chaning
2021-09-20 16:30:30 -04:00
Zach Daniel
61dcd56d0e
fix: return proper result when input is struct
2021-09-19 14:17:14 -04:00
Zach Daniel
bead3f528e
improvement: add global changes
2021-09-18 21:57:44 -04:00
Zach Daniel
63b141a0b8
fix: remove File.read! from docs
2021-09-17 17:51:31 -04:00
Zach Daniel
1f47e63c0c
improvement: upgrade docs/tooling for elixir_sense
2021-09-17 17:44:11 -04:00
Zach Daniel
b2fea24a25
improvement: set docs statically
2021-09-17 01:43:18 -04:00
Zach Daniel
294130e3f3
improvement: improvements for elixirsense integration
2021-09-17 01:22:55 -04:00
Zach Daniel
3aaba3f340
improvement: transformer/extension improvements
...
improvement: add path to errors
2021-09-16 03:41:33 -04:00
Zach Daniel
3a284bb644
improvement: remove IO.inspect :*( and fix sobelow
2021-09-15 13:51:46 -04:00
Zach Daniel
c2bd76cba2
fix: set tenant properly on create interface
2021-09-15 13:50:11 -04:00
Zach Daniel
4e23e63428
improvement: support non-endpoint pubsub adapters
2021-09-14 17:17:56 -04:00
kernel-io
63a16be5de
fix: update type spec for Ash.Sort to include single atom instead of only list. ( #263 )
2021-09-13 21:52:48 -04:00
Zach Daniel
78aabebc38
fix: check action type properly in attribute validations
2021-09-13 16:18:17 -04:00
Zach Daniel
05b279a029
improvement: use paramaterized types under the hood
...
improvement!: update ecto version
fix: pass constraints to sub-fields loaded in embeddable resources
2021-09-13 11:46:11 -04:00
Zach Daniel
3ce4e68c80
fix: take creates into account w/ attribute_equals and attribute_does_not_equal
2021-09-12 22:31:11 -04:00
Zach Daniel
86e2648c91
fix: set changeset in destroy authorization request
2021-09-12 16:55:31 -04:00
Zach Daniel
a55696ef57
improvement: add after_action
option to create/update
2021-09-12 02:03:41 -04:00
Zach Daniel
bb0dda0f11
fix: return not found in all cases on get
2021-09-09 00:10:15 -04:00
Zach Daniel
97e08f7b92
fix: don't allow get! to return nil
...
fix: don't do db filters on creation
2021-09-08 23:57:45 -04:00
Zach Daniel
64ec412e5d
improvement: add config :ash, disable_async?: true
2021-09-08 22:55:22 -04:00
Zach Daniel
c7cfa878e7
docs: update description of allow_nil_input
2021-09-08 22:52:18 -04:00
Zach Daniel
d200d354e7
fix: honor allow_nil_input
in required validations
2021-09-08 22:51:22 -04:00
Zach Daniel
008ee84ddb
improvement: add meta[:order]
option for managed relationships
2021-09-02 12:45:38 -04:00
Zach Daniel
541545baa3
fix: hydrate metadata types
2021-08-29 15:14:29 -04:00
Zach Daniel
f4899a72f4
improvement: remove metadata from read actions
2021-08-29 14:20:02 -04:00
Zach Daniel
47bacbfe84
chore: fix lint/format
2021-08-27 20:35:25 -04:00
Zach Daniel
a22b689b07
improvement: support action level metadata
2021-08-27 20:34:20 -04:00
Zach Daniel
d786aadec7
improvement: add on_match: :destroy
option
2021-08-27 01:45:13 -04:00
Zach Daniel
fed720bb59
fix: cast nil
enum values propertly
...
improvement: if a map is given for a list, take it's keys
2021-08-22 03:54:11 -04:00
Zach Daniel
c6cafd94cc
fix: set api in destroy action hooks
...
improvement: set better error paths for invalid relationships
improvement: include api in changeset inspect
2021-08-16 10:55:15 -04:00
Zach Daniel
ad2f678b7e
fix: set argument defaults early
...
fix: don't add indices to non-list inputs in managed relationships
2021-08-11 10:43:21 -04:00
Zach Daniel
7ae048ac9d
fix: stop managed relationships from sourcing wrong data
...
This one took a while to finally figure out! Because belongs_to
relationships are managed *before* the action, and the data coming
into the calls to `manage_relationship` already has the new related
value, we need to use the original data from `changeset.data`. But
when I "fixed" it the first time, I made *everything* do that, which
is not correct, because the original data for the rest of the
relationships has not been loaded at that point yet. So belongs_to
gets its original data from `changeset.data` and the rest gets it
from the result of running the action.
2021-08-05 01:43:40 -04:00
Zach Daniel
1d6d5c8542
fix: redact fields in the resource struct as well
2021-08-04 19:16:49 -04:00
Zach Daniel
1c83f96d27
fix: allow before_action
to manage belongs_to
relationships
2021-08-04 11:35:32 -04:00
Zach Daniel
8e11a63e83
fix: load belongs to relationships before managing them
2021-08-03 03:26:01 -04:00
Zach Daniel
4e11e3f0ac
fix: don't lookup nil input
2021-08-03 00:50:45 -04:00
Zach Daniel
202c3344dc
chore: proper case clause syntax
2021-08-03 00:34:26 -04:00
Zach Daniel
e81028170d
fix: don't look for matches for nil
2021-08-03 00:17:36 -04:00
Zach Daniel
d82ea58dbe
fix: don't accept list inputs for managed belongs_to
2021-08-03 00:12:05 -04:00
Zach Daniel
a382a8ae20
fix: don't use list inputs in belongs_to managed
2021-08-03 00:00:37 -04:00
Zach Daniel
80cedce2a2
fix: remove belongs to related after action
2021-08-02 11:02:38 -04:00
Zach Daniel
a3ee29c433
fix: fix more cases where belongs_to isn't replaced
2021-08-01 18:48:12 -04:00
Zach Daniel
4872e357ed
chore: format code
2021-08-01 14:08:03 -04:00
Zach Daniel
288cf49153
fix: honor on_missing:
behavior for belongs_to relationships
2021-07-31 16:07:51 -04:00
Zach Daniel
9e5e958feb
fix: properly remove old belongs_to records
2021-07-30 12:42:24 -04:00
Zach Daniel
73578f6806
chore: remove IO.inspect
2021-07-27 23:04:22 -04:00
Zach Daniel
1f5538c7f0
fix: set source_query tenant in lateral join
2021-07-27 22:58:45 -04:00
Zach Daniel
13e06524a7
improvement: add belongs_to
attributes *after* the others
2021-07-26 20:55:44 -04:00
Zach Daniel
8f88cca020
improvement: pull relationship paths out of functions
2021-07-25 17:58:27 -04:00
Zach Daniel
dd7f5a8e8b
fix: no need to trap exits anymore
2021-07-23 13:16:42 -04:00
Zach Daniel
80e64ee4ad
fix: don't match on explicitly :exit
2021-07-23 12:12:37 -04:00
Zach Daniel
e0605f2bf0
fix: catch normal exit message from engine
2021-07-23 09:53:25 -04:00
Zach Daniel
b2ae6dc3ea
fix: flush engine state always
2021-07-23 09:45:47 -04:00
Zach Daniel
4ea0e62a79
chore: ensure compiled in a different place
...
chore: credo
2021-07-22 16:26:02 -04:00
Frank Dugan III
8ba1a9a4c8
feat(Ash.Resource.Info): add &public_field/2 helper ( #254 )
...
feat(Ash.Resource.Info): add &sortable?/3 helper
2021-07-22 16:23:54 -04:00
Zach Daniel
d95a0e1662
fix: load calculations from sorts properly
2021-07-22 15:22:53 -04:00
Zach Daniel
11c1762f82
fix: fix complex attribute check
2021-07-22 13:20:42 -04:00
Zach Daniel
579c83e20c
fix: disallow aggregate/calculation sorting w/ keyset pagination
...
This can be fixed by configuring pagination to fetch the resource by keyset
(so keyset is only ever primary key), but will perform worse because
we have to fetch the record. If someone would like to implement this,
let me know.
2021-07-22 12:47:43 -04:00
Zach Daniel
64568e5526
imrovement: handle sorts w/o an order in keyset pagination
2021-07-22 11:24:42 -04:00
Zach Daniel
0b8b704e2c
fix: ensure calculation compiled
2021-07-21 00:07:35 -04:00
Zach Daniel
247abbb833
fix: don't limit/offset aggregate queries
2021-07-19 22:07:00 -04:00
Zach Daniel
857b0d0a12
fix: call get_type
in cast_stored again
2021-07-19 20:58:18 -04:00
Zach Daniel
42aa56237b
improvement: speed up type loading
...
improvement: add `__order__` field to be used by data layers
chore: fix typespec for aggregates
2021-07-19 13:52:49 -04:00
Zach Daniel
1df33b7efd
improvement: add force?
option to apply_attributes/2
2021-07-18 19:25:54 -04:00
Zach Daniel
e306e1d7fc
fix: missing apply_attributes clause
2021-07-18 18:22:59 -04:00
Zach Daniel
2d9d96e699
fix: demonitor engine pid after run
2021-07-18 03:26:57 -04:00
Zach Daniel
0427a7a7c4
fix: on_lookup read is always on destination
2021-07-18 02:30:04 -04:00
Zach Daniel
e6010816c3
chore: fix dialyzer
2021-07-16 20:09:40 -04:00