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
Zach Daniel
03e5ae4a7a
fix: set item constraints properly
...
improvement: add on_lookup_read_action
2021-07-16 20:01:36 -04:00
Zach Daniel
19199f5b00
improvement: add in error paths for managed relationships
2021-07-14 20:14:40 -04:00
Zach Daniel
38a08bf2a6
improvement: set error paths on managed rels
2021-07-14 01:47:45 -04:00
Zach Daniel
409e47e02c
fix: fix simple data layer filtering
2021-07-11 19:18:43 -04:00
Zach Daniel
50b23a1656
improvement: always replace error message vars
...
improvement: minimize relationship source changeset context inspect size
2021-07-09 13:07:49 -04:00
Darren Black
6b6062ace6
Fix atom casting more ( #253 )
2021-07-08 00:39:01 -04:00
Darren Black
57da53a7bc
Fix atom casting when empty string ( #252 )
2021-07-08 00:24:05 -04:00
Zach Daniel
678533a8cb
chore: remove unused variable
2021-07-07 23:52:33 -04:00
Zach Daniel
c9a19a7c2c
fix: cast empty string to nil in atom
2021-07-07 23:51:54 -04:00
Zach Daniel
e2cd33fac3
fix: accept strings for atom types again
2021-07-07 22:25:41 -04:00
Zach Daniel
a8b137c1bb
fix: don't turn strings to atoms in :atom
type
2021-07-07 16:31:52 -04:00
Darren Black
1d2befc6c9
docs: Fix atom constraint documentation ( #251 )
2021-07-07 00:29:35 -04:00
Zach Daniel
cc9efeee14
fix: don't do unnecessary validation in type
2021-07-06 19:57:58 -04:00
Zach Daniel
65113a075f
fix: build aggregate paths properly
2021-07-05 14:25:04 -04:00
Zach Daniel
da77b2e824
improvement: info only required?
flag for has_one
2021-07-04 16:42:47 -04:00
Zach Daniel
5f05f683c2
fix: properly determine reverse aggregate relationship
...
fix: ensure calculation modules are compiled
2021-07-02 12:37:58 -04:00
Zach Daniel
382d39175b
fix: attempt to fix calculation compile time issues
2021-07-02 01:13:07 -04:00
Zach Daniel
6c285c05f8
chore: fix calculate example
2021-07-01 22:11:31 -04:00
Zach Daniel
3aa6b6f49f
docs: document expressions
2021-07-01 22:07:31 -04:00
Zach Daniel
4b23dd179f
fix: allow sorting on aggs, w/o loading
2021-07-01 15:22:48 -04:00
Zach Daniel
1f53644070
fix: ensure query in ensure_selected
2021-06-29 12:16:11 -04:00
Zach Daniel
414119116a
chore: fix warnings/compiler errors
2021-06-28 13:27:31 -04:00
Zach Daniel
602ba78e9c
fix: handle sorting empty data properly
...
fix: manage ets tables properly
for context, we had a problem where `RequestHandlers`
would live forever, but were tiny. A change to the internal
engine caused request handlers to be less tiny, which exposed
the process leak. When we fixed the process leak, it became apparent
that the ets table creation was incorrect, as the owning process for
a non-private table could be the request handler, meaning it was
transient. We solve this by having a `TableManager` for each resource/
tenant combo, which owns the ets table in question
2021-06-28 13:20:37 -04:00
Zach Daniel
294480ee34
fix: link request handler to engine and runner, solve mem leak
2021-06-28 12:05:03 -04:00
Zach Daniel
ad0af9831c
improvement: if "" fails to cast, cast it as nil
instead
...
improvement: ReadActionRequiresActor error
improvement: `ensure_selected` change
2021-06-28 01:33:31 -04:00
Zach Daniel
ff0de75138
improvement: don't perform match
on nil
2021-06-27 13:29:36 -04:00
Zach Daniel
9477f0e82a
improvement: add {:arg, :name}
input for set_attribute
2021-06-25 13:51:17 -04:00
Zach Daniel
69967099e3
fix: ensure ci_strings casted after constraints
2021-06-25 13:41:05 -04:00
Zach Daniel
01abe80a04
improvement: revamp ci_string
...
previously, ci_string would downcase all input/output automatically,
throwing away the "representation" of the original input. Now, that
is an option provided as a constraint, for example:
`attribute :email, :ci_string, constraints: [casing: :lower]`
or
`attribute :serial, :ci_string, constraints: [casing: :upper]`
All comparison logic remains the same, so the only thing that is affected
is the `to_string(value)` logic, which now returns based on the configured casing.
By default its just the value, but with `lower`/`upper` it will downcase/upcase the
value accordingly.
2021-06-25 13:19:14 -04:00
Zach Daniel
cb315db44d
fix: Revert "more optimized types"
...
This reverts commit 3d7f3db85d
.
2021-06-24 18:25:24 -04:00
Zach Daniel
21e52bebbd
Revert "chore: fix compiling embedded types (why??)"
...
This reverts commit d7ef5efbb2
.
2021-06-24 18:19:46 -04:00
Zach Daniel
28a4429b9e
Revert "fix: don't call type()
on :string
"
...
This reverts commit 27c8bcb5bc
.
2021-06-24 18:19:45 -04:00
Zach Daniel
e64d0a9791
Revert "improvement: add Ash.Type.type/1
"
...
This reverts commit a0f6cd9219
.
2021-06-24 18:19:43 -04:00
Zach Daniel
a0f6cd9219
improvement: add Ash.Type.type/1
2021-06-24 17:51:56 -04:00
Zach Daniel
27c8bcb5bc
fix: don't call type()
on :string
2021-06-24 16:42:03 -04:00
Zach Daniel
d7ef5efbb2
chore: fix compiling embedded types (why??)
2021-06-24 16:33:38 -04:00
Zach Daniel
3d7f3db85d
improvement: more optimized types
2021-06-24 16:05:50 -04:00
Zach Daniel
114de0af4e
fix: optimize ash type loading
2021-06-24 01:11:54 -04:00
Zach Daniel
dc56376d80
improvement: add error_handler
for create/update/destroy actions
2021-06-23 17:19:59 -04:00
Zach Daniel
b9db67e47e
fix: pass opts through to Jason.Encode.string/2
2021-06-23 12:51:47 -04:00
Zach Daniel
a484006596
fix: properly encode ci string to json
2021-06-23 12:50:13 -04:00
Zach Daniel
8f84d5b4d4
improvement: more engine logging
2021-06-23 12:11:14 -04:00
Zach Daniel
13981d5aa0
fix: :infinity
on engine genserver calls
2021-06-22 13:57:56 -04:00
Zach Daniel
786047c3e7
fix: hide __metadata__ field on inspect
...
fix: load relationships required for calculations (optimize later)
2021-06-08 16:37:47 -04:00
Zach Daniel
a0b0e633d5
fix: don't halt on request handler failure
...
fix: properly error when more than 2 requests of the same type are primary
fix: properly process sort when the sort is an atom
fix: properly calculate reverse relationship paths
2021-06-08 14:42:17 -04:00
Zach Daniel
d45a9dbbfa
improvement: support calculation sorts
2021-06-05 18:11:09 -04:00
Zach Daniel
30af25ba74
fix: always wait on the engine if it hasn't completed
2021-06-05 02:42:40 -04:00
Zach Daniel
3f1f31694d
fix: always wait for engine
...
improvement: spawn async requests where possible
2021-06-04 18:32:08 -04:00
Zach Daniel
9719d0dce5
fix: constraints on calculations
...
fix: better calculation inspect
fix: allow supplying stacktraces when building errors
2021-06-04 14:33:22 -04:00
Zach Daniel
d247004610
feat: expression based calculations for filterable/sortable calculations
...
fix: aggregate authorization issues
improvement: tons of improvements across the board
2021-06-04 01:40:11 -04:00
Zach Daniel
231eeafd30
feat: expression calculations for sorting/filtering
...
improvement: small improvements/fixes across the board
2021-06-04 01:37:11 -04:00
Darren Black
42cc8b9711
docs: Minor documentation tweaks ( #246 )
2021-06-02 10:38:15 -04:00
kernel-io
dd1474a4f6
improvement: Update remaining builtin validators ( #244 )
...
Co-authored-by: David Culina <git@omnium.co>
2021-06-01 20:57:13 -04:00
kernel-io
35af220d9d
feat: add compare validator ( #242 )
...
Co-authored-by: David Culina <git@omnium.co>
2021-06-01 13:32:22 -04:00
kernel-io
42895c50f7
fix: ensure create functions generated by code_interface accept tenant in the opts list ( #243 )
2021-05-31 18:34:54 -04:00
Zach Daniel
d9debc07f1
fix: properly process managed belongs to relationships
2021-05-28 03:12:14 -04:00
Zach Daniel
f895f3ddd8
fix: cast nil -> {:ok, nil} in all cases
2021-05-28 01:47:38 -04:00
kernel-io
0fbf7eab6a
fix: set tenant even on non-tenant resources where relevant ( #241 )
2021-05-27 02:22:24 -04:00
Zach Daniel
86f6719390
improvement: define embedded schemas where appropriate
2021-05-22 23:48:10 -04:00
Zach Daniel
4662c23f68
improvement: calculation.select/2 + select
calculation option
2021-05-20 16:42:26 -04:00
Zach Daniel
584d628047
fix: run after_action hooks in the proper order
...
improvement: add `validate_destination_field?`
improvement: add builtin `select` change
2021-05-20 12:17:56 -04:00
Zach Daniel
d87969ad1b
improvement: set moduledoc to description if one is not set
...
chore: fix some dialyzer typing issues
2021-05-20 01:36:45 -04:00
Zach Daniel
41aaeeed47
fix: fix dialyzer errors for enum + code interface
2021-05-19 01:32:06 -04:00
Zach Daniel
4b028cbf53
chore: lint/build/compiler issues
2021-05-18 23:12:49 -04:00
Zach Daniel
2406732811
fix: fix code interface + args
combo error
...
improvement: support specifying the `upsert_identity` option
2021-05-18 23:05:31 -04:00
Zach Daniel
013b49c2b2
fix: ignore?: true
still accumulates changes
...
fix: properly require_attributes before setting defaults
2021-05-18 01:44:10 -04:00
Zach Daniel
820020d4e5
improvement: ignore?
option for manage_relationship
change
...
fix: set default values before calling resource changes
2021-05-18 00:02:11 -04:00
Zach Daniel
d2e5c06511
fix: reverse-reverse relationship detection
2021-05-17 15:06:49 -04:00
Zach Daniel
de684a27a8
fix: support non-predicates in satsolver
2021-05-16 21:59:06 -04:00
Zach Daniel
50eb787410
improvement: expose default_value/1
in aggregate
2021-05-15 11:56:23 -04:00
Zach Daniel
2ffa0e38b6
fix: raise better error w/ invalid filter expression
2021-05-14 17:02:22 -04:00
Zach Daniel
dd40b24bf9
improvement: transactions for reads, notifications from read callbacks
2021-05-14 11:25:42 -04:00
Zach Daniel
baba0a368a
fix: handle error return in code_interface getter
2021-05-14 01:56:36 -04:00
Zach Daniel
574f6f59a3
improvement: various managed relationship improvements
...
fix: rename `context` -> `relationship_context` to avoid conflict
feat: `on_no_match: :match` supported for to_one rels
2021-05-14 01:07:51 -04:00
Zach Daniel
968e234a31
improvement: set __source__
context for embeds
2021-05-11 00:28:26 -04:00
Zach Daniel
69afdfce25
improvement: utility manage_relationship_source
context
2021-05-10 18:03:36 -04:00
Zach Daniel
de167cea28
chore: format code
2021-05-09 17:25:40 -04:00
Frank Dugan III
a796e0d308
refactor: remove references to "side loading" ( #236 )
2021-05-09 17:24:48 -04:00
Zach Daniel
097447bf38
fix: run action changes on destroy
...
test: test manual actions
fix: pattern match manage_relationship notifications fix
2021-05-09 16:56:44 -04:00
Zach Daniel
7d37f8ae3d
improvement: add manual?
option for create/update/destroy
2021-05-09 16:25:39 -04:00
Zach Daniel
3bd2686de3
improvement: ensure data layer can perform aggregates
2021-05-08 23:31:01 -04:00
Zach Daniel
78247ffa5a
improvement: support filtering on related aggregates
...
improvement: autoload aggregates used in filters
2021-05-08 22:48:05 -04:00
Zach Daniel
990aaf8147
docs: side_loading -> loading
2021-05-08 20:34:44 -04:00
Zach Daniel
be07ffc0dd
fix: don't fail on nil root filters
2021-05-08 20:06:14 -04:00
Zach Daniel
30e443c021
fix: don't raise unnecessary side load error
2021-05-07 16:31:06 -04:00
Zach Daniel
1412052ff6
improvement: fix data-based side loads
2021-05-07 11:57:59 -04:00
Zach Daniel
cb19e66fb5
fix: IsNil function to IsNil operator
2021-05-07 01:51:54 -04:00
Zach Daniel
cd023bf0a1
fix: function clause match error in not expression
2021-05-07 01:37:44 -04:00
Zach Daniel
f8604717bd
fix: limit 1 on to one side load queries
2021-05-07 01:07:01 -04:00
Zach Daniel
46fb08f085
improvement: support sorted relationships
2021-05-07 00:28:51 -04:00
Zach Daniel
fed41b5060
fix: don't consider contextual relationships as reverse relationships
2021-05-06 13:39:04 -04:00
Zach Daniel
ae5b67fcdb
fix: support not
in query expressions
2021-05-05 16:05:32 -04:00
Zach Daniel
8d15cabd2a
fix: include aggregates in count request for aggregate filters
2021-05-04 12:27:25 -04:00
Zach Daniel
d767ba513e
fix: use base_query for aritifical limit/offset when loading
2021-05-04 09:27:33 -04:00
Zach Daniel
593b111069
improvement: add read_action
option
...
feat: rework lateral joins for many to many performance boost
2021-05-03 16:21:29 -04:00
Zach Daniel
d16d2f35ce
improvement: inner later join for many to many relationships
2021-04-29 17:04:57 -04:00
Zach Daniel
3de71bc7f1
chore: fix test + compile
2021-04-28 17:43:02 -04:00
Zach Daniel
9da95e6d75
improvement: support relationship filters
2021-04-28 17:39:30 -04:00
Zach Daniel
312d19878b
improvement: add has
filter predicate
2021-04-27 13:45:23 -04:00
Zach Daniel
e11f399fc0
improvement: add :list
aggregate kind
2021-04-26 16:01:39 -04:00
Zach Daniel
9df3803492
fix: don't include NotLoaded
in manage_relationship
2021-04-25 18:35:19 -04:00
Zach Daniel
53ceb5b753
fix: compile time fixes
...
improvement: add `require_attributes` to create/update/destroy
2021-04-23 11:41:13 -04:00
Zach Daniel
dd82fcc53b
improvement: add first class support for enum types
2021-04-21 13:32:25 -04:00
Zach Daniel
64876c6e19
fix: don't consider nils for pkey matching
2021-04-21 13:32:25 -04:00
Zach Daniel
d099bc87ee
chore: format code
2021-04-18 19:51:56 -04:00
Jason Axelson
85d9e8f86c
docs: use full module name ( #230 )
...
This will make the Query docs easier to follow
2021-04-18 19:46:21 -04:00
Jason Axelson
f6fa5a98dd
improvement: Add detailed parameter checking for Api read functions ( #229 )
2021-04-18 19:45:38 -04:00
Jason Axelson
a4262965ea
chore: Enable Credo's Readability.StrictModuleLayout ( #228 )
...
Enforce layout of module parts
2021-04-18 19:41:49 -04:00
Zach Daniel
060dadeff1
fix: clearer errors when resource fails to compile
2021-04-18 16:20:05 -04:00
Zach Daniel
a75bfd4203
improvement: add list access to context
2021-04-17 19:34:28 -04:00
Zach Daniel
33ac53faa5
fix: don't preload multiplicatively
2021-04-17 18:22:20 -04:00
Vadim Tsvetkov
0d13cd8b3d
fix: Decimal casting issues on ash_postgres ( #227 )
2021-04-17 15:00:43 -04:00
Zach Daniel
b028dad1cd
improvement: add Resource.input/1
2021-04-17 13:50:55 -04:00
Zach Daniel
bd7f4f9532
fix: use items for single constraints
2021-04-16 14:16:45 -04:00
Zach Daniel
ad2772034c
fix: don't overwrite select in side_load
2021-04-15 14:57:49 -04:00
Zach Daniel
5425660752
fix: load relationships for management properly
...
fix: `fetch_key` bug in embedded types
fix: handle_indexed_maps for embedded types
2021-04-14 23:38:51 -04:00
Zach Daniel
a6b880ce86
fix: handle no key provided to NotFound
...
chore: add tests for `get!`
2021-04-14 14:18:05 -04:00
Zach Daniel
c3c0abb239
docs: update documentation
2021-04-13 17:44:48 -04:00
Zach Daniel
2f634ae36a
improvement: special provisions for casting to embedded type (e.g uuid)
...
fix: embedded cast_stored must cast all key/values
fix: ci_string constraints when `nil`
fix: manage_relationship change turns embedded resources to maps
fix: fixes for common types parsing from embedded, e.g utc_datetime_usec
2021-04-13 17:41:16 -04:00
Zach Daniel
e20ffe9636
fix: get!
should raise on nil
not {:ok, nil}
2021-04-13 16:28:01 -04:00
Zach Daniel
0ee074c176
fix: allow_nil -> allow_nil_input
2021-04-13 16:22:13 -04:00
Zach Daniel
e353ea49c3
fix: allow api.load/2 to load calculations
...
improvement: add `allow_nil_input` to create actions for api layers
improvement: add `load/1` builtin change
feat: change `get?: true` interface functions to raise on `nil`
2021-04-13 15:49:42 -04:00
Zach Daniel
567df21422
fix: always select necessary load fields for nested loads
2021-04-12 16:51:31 -04:00
Zach Daniel
3e29b4e00d
fix: always select necessary fields for side loading
2021-04-10 16:58:37 -04:00
Zach Daniel
c21e310996
fix: logic bug in selecting specific fields
2021-04-09 00:47:22 -04:00
Zach Daniel
250186a0ea
chore: update docs
2021-04-09 00:10:01 -04:00
Zach Daniel
ec57f363ed
improvement: support the datalayer selecting fields in reads
2021-04-09 00:10:01 -04:00
Zach Daniel
f454f98f3f
docs: add docs on managing relationships
2021-04-05 13:45:39 -04:00
Zach Daniel
425a1ce59e
chore: fix description
2021-04-04 16:01:37 -04:00
Michael St Clair
6805d431ac
improvement: add sum aggregate ( #221 )
2021-04-04 16:00:53 -04:00
Michael St Clair
fec77dd92f
allow specifying that calculation can't be nil ( #220 )
2021-04-04 03:11:43 -04:00
Zach Daniel
db26a1cc61
fix: update struct_field logic for latest ecto
2021-04-03 14:35:04 -04:00
Zach Daniel
7faf73097a
fix: apply proper interface operation when opts aren't passed
2021-04-02 10:21:10 -04:00
Zach Daniel
92344029d3
improvement: before_action?
on validate
, validate inline
2021-04-01 11:53:52 -04:00
Jason Axelson
274fc9ea88
chore: Misc doc updates ( #208 )
...
Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2021-03-31 17:20:59 -04:00
Zach Daniel
d6ee71ce53
feat: support Ash.Query.distinct/2
...
feat: add `build/2` query preparation
fix: manage_relationships *before* after_action callbacks
2021-03-31 17:13:20 -04:00
Jason Axelson
fc705ad0a5
Documentation improvements and labeled examples ( #216 )
...
Improve documentation for calculations
Add ability to "label" examples by passing a tuple instead of just a string.
Fix some minor typos
2021-03-31 16:24:06 -04:00
Zach Daniel
29b2c821fe
fix: don't overwrite managed belongs_to
relationships
2021-03-29 14:48:42 -04:00
Zach Daniel
1d412c97cd
fix: handle on_lookup
+ on_no_match
for belongs_to
2021-03-29 14:04:53 -04:00
Zach Daniel
11d658d077
fix: fix required relationships and add test
2021-03-28 13:44:21 -04:00
Zach Daniel
e65d47d386
fix: fix required relationships
2021-03-28 13:44:21 -04:00
Zach Daniel
523f7bbc0d
fix: various managed_relationship fixes
2021-03-28 13:44:21 -04:00
Zach Daniel
2f9fafcbc7
feat: add manage relationship types
...
improvement: don't accept relationships on actions anymore
improvement: require arguments
This probably broke a lot of people's setups, but it was a
necessary change. Better to get this stuff out while we're
still beta
2021-03-25 11:33:32 -04:00
Zach Daniel
aeb1cad518
fix: add tenant metadata before after action hooks
2021-03-24 00:54:36 -04:00
Zach Daniel
8eba8d6b22
fix: support tenant
option in read interface
2021-03-24 00:24:42 -04:00
Darren Black
571eba3558
Resolve type aliases ( #207 )
2021-03-23 22:48:36 -04:00
Zach Daniel
5eec3d93b3
chore: release version v1.36.19
2021-03-22 17:37:44 -04:00
Zach Daniel
6c1108d834
fix: always return changeset when runner failed
2021-03-22 17:37:20 -04:00
Zach Daniel
44d574862b
improvement: docs + dialyzer + error improvements
2021-03-22 02:34:52 -04:00
Zach Daniel
41a91b8aa6
fix: don't require values when managing relationships
2021-03-21 23:00:17 -04:00
Zach Daniel
801778abbd
fix: Revert "fix: force_change_attributes before passing to action"
...
This reverts commit 4a0b2035b9
.
2021-03-21 22:17:41 -04:00
Zach Daniel
4a0b2035b9
fix: force_change_attributes before passing to action
2021-03-21 22:11:04 -04:00
Zach Daniel
4e8bd5bfbc
fix: exception on invalid query arguments
2021-03-21 14:19:45 -04:00
Zach Daniel
ac72c623d9
fix: allow casting strings as uuids (for embedded types)
2021-03-21 11:31:25 -04:00
Zach Daniel
ab31320e73
improvement: retain actor context from changeset
2021-03-21 11:31:01 -04:00
Jason Axelson
6c31956b56
improvement: Add float type ( #204 )
...
Also update `Ash.Type` documentation to use the float module as an
example of a custom type.
2021-03-21 00:09:27 -04:00
Zach Daniel
b155a5fb81
improvement: raise informative errors on bad inputs to for_*
2021-03-20 17:17:23 -04:00
Zach Daniel
b98650aeb7
fix: avoid exception in Changeset.new/2
for bad attribute
2021-03-20 17:16:57 -04:00
Zach Daniel
f1a6fb7418
fix: use ecto's uuid type under the hood
2021-03-20 16:27:11 -04:00
Zach Daniel
e206167f27
improvement: make Ash.Error
a public module
2021-03-19 18:23:48 -04:00
Zach Daniel
e0a368365c
improvement: docs/default value for params
2021-03-19 17:07:22 -04:00
Zach Daniel
6cfa91cc63
chore: fix lint
2021-03-18 23:37:34 -04:00
Zach Daniel
c2d121c0fe
fix: set source_field
when replacing belongs_to
relationship
2021-03-18 23:33:56 -04:00
Zach Daniel
60da316f58
fix: don't consider false
as absent value
2021-03-18 23:33:09 -04:00
Zach Daniel
0ef51ce9e6
improvement: trim whitespace in uuid
2021-03-18 23:32:56 -04:00
Zach Daniel
ba6b4202f9
fix: set argument name in manage_relationship
2021-03-18 23:32:12 -04:00
Zach Daniel
f3c85da268
improvement: improve the behavior of defaults
...
functional defaults are added at action time, others are added directly
into the changeset
2021-03-17 22:34:49 -04:00
Zach Daniel
a1c5f1d06f
fix: validate required attributes *after* before_action hooks
2021-03-16 23:09:36 -04:00
Zach Daniel
3e7b798e34
improvement: discard certain empty values for embed input
2021-03-16 21:41:19 -04:00
Zach Daniel
1b972b9598
fix: force_change attrs *after* for_create/update
2021-03-15 15:55:26 -04:00
Zach Daniel
e60acf4167
fix: pattern match errors in manage_relationships
...
fix: clean up some error cases
fix: only default accept to `public` attributes
2021-03-15 15:47:33 -04:00
Zach Daniel
f6026c6895
fix: allow_nil?: false + default interaction
2021-03-14 23:06:18 -04:00
Zach Daniel
a33e0b97b9
docs: fix redundancy in API docs
2021-03-14 18:45:10 -04:00
Zach Daniel
7eea6576a0
docs: fix dangling docs references
2021-03-14 18:29:30 -04:00
Zach Daniel
0109696d54
fix: remove the as
option
2021-03-14 17:50:11 -04:00
Zach Daniel
4df4e9a070
docs: remove interface docs
2021-03-14 17:48:39 -04:00
Jason Axelson
be56174a3d
docs: Fix some documentation warnings ( #196 )
...
i.e. warnings that appear when you run `mix docs`
Although this PR doesn't fix the majority of them, since the majority
are errors from referring to `@moduledoc false` modules in docs and typespecs.
2021-03-14 17:27:12 -04:00
Jason Axelson
3ba6b593b1
docs: Updates to the docs with a focus on the getting started docs ( #195 )
2021-03-14 17:14:53 -04:00
zimt28
a219bc0c6c
improvement: Add timestamps() attribute ( #198 )
2021-03-14 17:09:38 -04:00
Zach Daniel
5992fc00f7
docs: remove Ash from docs
2021-03-13 16:07:40 -05:00
zimt28
8ae003e382
docs: Update dsl.ex ( #193 )
2021-03-13 09:29:21 -05:00
zimt28
87390946bf
Fix documentation TOC ( #194 )
2021-03-13 09:26:57 -05:00
Zach Daniel
db47a15cf7
fix: properly validate allow_nil?: false
on update
...
fix: properly validate `allow_nil?: false` private attributes
2021-03-13 09:25:13 -05:00
Zach Daniel
3c2ffd8662
fix: set argument default on cast
2021-03-12 22:22:27 -05:00
Zach Daniel
55a35396a4
docs: add primary action docs
2021-03-12 22:22:27 -05:00
zimt28
deba10f236
docs: Fix doc ( #192 )
2021-03-12 22:21:03 -05:00
Zach Daniel
22188d4366
improvement: derive has_one destination_field
...
improvement: finalize code API logic
2021-03-11 23:45:52 -05:00
Zach Daniel
662bbf96b9
fix: fix pub_sub on update
...
improvement: add not_found_message + violation_message for relationships
chore: fix lint
2021-03-10 00:08:26 -05:00
Zach Daniel
68f358d342
improvement: support get_by_<identity>
in interface
...
fix: fix `publish_all` pub_sub notifier
improvement: support sublists in pub_sub topics
improvement: support `:_tenant` in pub_sub topics
2021-03-09 16:16:02 -05:00
Zach Daniel
f4fcfb54a2
improvement: accept tenant
in for_read
...
fix: properly filter aggregates
2021-03-09 01:19:45 -05:00
Zach Daniel
5cfa4d5bf0
improvement: update interface to accept query/changesets
2021-03-08 17:19:13 -05:00
Zach Daniel
50f893e8db
docs: update notifier docs
2021-03-08 17:19:04 -05:00
Zach Daniel
72b5a57a25
feat: functional interface on the Api module
...
feat: resource aliases
improvement: require completely unique action names
2021-03-08 00:59:32 -05:00
Zach Daniel
6e1baad6b2
fix: don't reverse sub-entities in DSL
2021-03-07 15:19:53 -05:00
Zach Daniel
e90fdad34a
feat: support Ash.Query.select/3
and Ash.Changeset.select/3
2021-03-07 14:09:51 -05:00
Zach Daniel
c2cb843be9
improvement: ignore destination field on some relationship inputs
2021-03-05 10:39:06 -05:00
Zach Daniel
80a65db150
improvement: various validation lifecycle options
...
fix: various validation lifecycle fixes
fix: don't fetch sideloads for empty data
2021-03-04 22:48:15 -05:00
Zach Daniel
be576206bd
chore: remove IO.inspect
2021-02-26 15:13:48 -05:00
Zach Daniel
2f8074ff88
fix: fix nested boolean expression optimization
2021-02-26 15:11:14 -05:00
Zach Daniel
02f7d0101b
fix: manage_relationship fixes, input + option defaults
2021-02-24 13:49:27 -05:00
Zach Daniel
e60e5bf281
fix: treat empty string as nil
in manage_relationship
...
fix: be more conservative (and more correct) when optimizing predicates
2021-02-24 11:13:35 -05:00
zimt28
e10b273ce4
Ecto.UUID -> Ash.UUID ( #188 )
2021-02-23 12:27:49 -05:00
Zach Daniel
16d60386aa
fix: fix builtin mange_relationship
change
2021-02-22 23:50:23 -05:00
Zach Daniel
53296fab8b
fix: support belongs_to relationships properly
2021-02-22 23:16:25 -05:00
Zach Daniel
f068055f63
fix: authorize if actor key is present
2021-02-22 21:34:45 -05:00
Zach Daniel
d42c778a0d
improvement: many compile time fixes via code splitting
...
feat: refactored manage_relationship options/behavior
2021-02-22 20:44:03 -05:00
zimt28
db533450ed
improvement: Guess destination_field for has many relationships ( #187 )
2021-02-15 13:32:44 -05:00
Darren Black
983a711837
improvement: Implement string length validation ( #183 )
...
Co-authored-by: Darren Black <darren@ifixsystems.com.au>
2021-02-08 18:16:32 -05:00
Zach Daniel
3739b4c33a
chore: update doc formatting
2021-02-05 19:07:47 -05:00
Zach Daniel
03b6714e6f
improvement: set_context change/preparation
...
fix: support `manage_relationship` for `belongs_to`
2021-02-05 18:56:56 -05:00
Zach Daniel
142b3bf7f9
feat: add default_context
...
feat: add `manage_relationship/4`
feat: add relationship specific context (for postgres polymorphism)
feat: add `reject` (opposite of `accept`)
improvement: set `accept` by default
2021-02-04 17:15:15 -05:00
Zach Daniel
dd26beb79b
chore: add more authorization tests
...
chore: improve authorization test helper
improvement: support `{:filter, _}` authorization results for changesets
2021-01-28 14:49:08 -05:00
Zach Daniel
0ac0be6a1f
fix: only run authorization once per request
...
fix: don't error on replacing empty relationship with empty
improvement: support `tenant` option to `get/2`
improvement: support `message` option on identities
2021-01-26 23:48:00 -05:00
Zach Daniel
1004ceb71d
feat: add after_action
for queries
...
fix: default to calculating filters on `data_layer_query`
2021-01-25 02:14:22 -05:00
Zach Daniel
8e74ff62a6
fix: remove invalid boolean expression optimization
...
improvement: make form errors work better with phoenix
this involves temporarily making embed error messages *worse*
but we can improve them as we get more usage
2021-01-24 13:47:10 -05:00
Zach Daniel
61e6b7c80c
fix: various ci_string improvements
...
feat: add `contains/2` query function
2021-01-23 22:28:56 -05:00
zimt28
63483822d6
Update transformer.ex ( #179 )
2021-01-22 20:26:23 -05:00
Zach Daniel
bb91fd4bc7
fix: add action filters in for_read/3
...
fix: don't let local runner processes mix up messages
fix: runtime filter filters properly
2021-01-22 16:41:32 -05:00
Zach Daniel
7ea9b082f1
improvement: support all string constraints for ci_string
2021-01-21 15:25:07 -05:00
Zach Daniel
f6f5d194bf
feat: freeform expressions
...
feat: validatiosn in actions
feat: query arguments
feat: add `Ash.Query.for_read/3`
feat: return changeset with API errors
feat: add case insensitive string `CiString`/`:ci_string`
feat: support `context/1` and `arg/1` in filter templates
feat: support targeting notifications with the `for` option
feat: add `ago/2` query function
feat: add basic arithmetic operators (+, *, -, /)
feat: `sensitive?` option for attributes
feat: `sensitive?` option for arguments
feat: `private` arguments, which can’t be set using `for_<action>`
feat: add `prevent_change` which will erase changes just before the changeset is committed
feat: add `match?` validation that supports a custom error message
feat: add `interval` type to support `ago/2` function
feat: add `url_encoded_binary` type
feat: add `function` type
improvement: `changing?` is now a validation
improvement: add `Transformer.get_persisted/3`
improvement: add `api` field to `Notification`
improvement: standardize errors, add `to_error_class`
improvement: use `Comp` everywhere
Improvement: use action on changeset if set by `for_<action_type>`
improvement: `action_failed?` field on change sets
improvement: remove ability for data layers to add operators (for now at least)
Improvement: Changeset.apply_attributes/2 now returns an error tuple
Improvement: add a bunch of new/informative errors
improvement: runtime filter now uses left join logic (a naive implementation of it)
improvement: support more filter templates in resources
Improvement: basic/naive type system for operators/functions
Fix: properly expand module aliases for options w/o compile time dependency
chore(engine): track changeset changes for the request with `manage_changeset?: true`
2021-01-21 15:22:50 -05:00
zimt28
6ddae6850f
improvement: Add trim/allow_empty to string type ( #171 )
2021-01-15 20:41:21 -05:00
zimt28
2a7acffabb
Always validate constraints ( #173 )
2021-01-14 10:52:18 -05:00
Zach Daniel
13ca0b2976
chore: generalize DSL tooling
2021-01-14 01:17:26 -05:00
zimt28
31cb4f4be3
improvement: Improve attribute defaults ( #164 )
2021-01-12 15:40:55 -05:00
Zach Daniel
6a26a583de
feat: Add Embedded Resources ( #170 )
2021-01-12 15:05:56 -05:00
zimt28
db6bdfcf15
improvement: Add built in decimal type ( #162 )
2021-01-09 11:58:52 -05:00
zimt28
4404da93ce
fix: Correct error message ( #163 )
2021-01-09 11:36:01 -05:00
Zach Daniel
dbf9f82802
improvement: add Ash.Sort.parse_input/2
...
fix: fix small sort bugs
2021-01-08 14:22:31 -05:00
zimt28
72ba6c4742
improvement: Add built in usec datetime type ( #160 ) ( #161 )
...
improvement!: Use usec timestamps by default
2021-01-08 12:12:37 -05:00
Zach Daniel
7ce72a7454
fix: only cast public relationships/attributes
2021-01-08 02:58:02 -05:00
Zach Daniel
8ef272b1ca
fix: allow_nil?: false
for integer_primary_key
2021-01-07 22:30:41 -05:00
Zach Daniel
424d020a7d
improvement: add for_<action>
helpers
2021-01-07 21:35:40 -05:00
Darren Black
fb5cc74329
improvement: Add built in binary type ( #156 )
...
Co-authored-by: Darren Black <darren@ifixsystems.com.au>
2021-01-06 22:46:20 -05:00
Zach Daniel
109ed9b19c
fix: the __resource__
change broke some extensions
2021-01-06 15:15:43 -05:00
Zach Daniel
6eebe33c29
fix: add back extensions/1
helper to resources
2021-01-06 14:49:30 -05:00
Zach Daniel
86236a5962
fix: lazy loaded module issues (e.g in iex)
2021-01-06 14:39:56 -05:00
Zach Daniel
a886fecfd6
improvement: optimize not-in and fix dialyzer
2020-12-31 18:39:15 -05:00
Zach Daniel
60e0dad7b6
improvement: rework filter creation + subset checking
...
This is one of the most complicated parts of Ash. In order to pass
a filter statement to the satisfiability solver that we use, we have
to first transpile a *value* statement into a *boolean* statement.
This means that we need to embed the knowledge of mutual exclusivity
wherever possible. Authorization still works if the system doesn't know
the relationship between two value statements, as it will attach
the authorization filters if its not sure. But having this in place
should represent a fairly significant optimization in many cases.
Additionally, filter creation has a set of optimizations around the
`eq` and `in` operators to combine them whlie building a boolean
statement
2020-12-31 18:39:15 -05:00
Zach Daniel
d96f54b4c8
docs: format line breaks in bullet points
2020-12-30 17:11:23 -05:00
Zach Daniel
9ebbb6e683
improvement: support autocompletion on Api funcs
2020-12-30 16:45:44 -05:00
Zach Daniel
b16cbf7303
fix: validate read action existence
2020-12-30 15:28:00 -05:00
Zach Daniel
c1767e79b2
improvement: default actions
2020-12-30 11:55:40 -05:00
Zach Daniel
2c996c8168
fix: fix compile issues, add docs
2020-12-30 01:09:02 -05:00
Zach Daniel
251d7e03df
docs: filter parsing docs
2020-12-30 00:58:34 -05:00
Zach Daniel
dcbbd21f0c
improvement: add parse_input/3
to Ash.Filter
2020-12-30 00:49:32 -05:00
Zach Daniel
31e58bfc70
improvement: describe operator types
2020-12-29 14:23:55 -05:00
Zach Daniel
9efe0355e8
fix: only accept kw list in aggregate/5
2020-12-28 19:33:01 -05:00
Zach Daniel
42deba22f0
chore: update aggregate documentation
2020-12-28 19:25:16 -05:00
Zach Daniel
1719d97d2c
chore: update docs
2020-12-28 19:20:52 -05:00
Zach Daniel
d600c55509
feat: support :first
aggregate ( #153 )
...
feat: support more sort orders
2020-12-28 19:18:01 -05:00
Zach Daniel
ada5e0a2ae
fix: separate builders + description in sections
2020-12-27 01:06:32 -05:00
Zach Daniel
28e26660a6
fix: support examples
on dsl sections
2020-12-27 01:00:24 -05:00
Zach Daniel
fb6478c52b
docs: add section examples
2020-12-27 00:49:51 -05:00
Zach Daniel
abff2e4b39
docs: update generated documentation to be single file
2020-12-26 23:54:36 -05:00
Zach Daniel
bfa4d0f924
fix: cast string argument names
2020-12-26 21:20:12 -05:00
Zach Daniel
281fced422
fix: uuid/id pkeys should allow_nil
2020-12-26 18:30:51 -05:00
Zach Daniel
744a903f24
fix: support operators on both sides for not_eq
2020-12-23 14:49:40 -05:00
Zach Daniel
2c585d28a4
fix: fix filtering for ets + mnesia data layers
2020-12-23 14:16:23 -05:00
Zach Daniel
935cbf8b26
fix: various pagination, runtime, and auth bugs
2020-12-23 12:45:49 -05:00
Zach Daniel
b94bd0ff83
fix: default pagination limit triggers pagination
2020-12-07 19:55:54 -05:00
Zach Daniel
3bc1086a0a
chore: release version v1.25.2
2020-12-05 20:39:45 -05:00
Zach Daniel
75a50ceb82
fix: resolve warning from nimbleoptions deprecation
2020-12-05 20:39:21 -05:00
Zach Daniel
2b500071f3
improvement: support confirming arguments, test allow_nil?
2020-12-01 22:50:43 -05:00
Zach Daniel
0abf03065a
feat: support arguments for actions
2020-12-01 22:09:37 -05:00
Zach Daniel
c6ea07896b
test: various testing improvements
2020-12-01 00:51:24 -05:00
Zach Daniel
b7896dbf8f
fix: various build fixes
2020-12-01 00:45:15 -05:00
Zach Daniel
0e3333c05f
chore: update tests
2020-11-30 23:23:34 -05:00
Zach Daniel
cb7caa51a0
fix: various small utility fixes
2020-11-30 23:15:37 -05:00
Kyle Nguyen
0f47d808e3
fix: do not require private attributes in create api ( #143 )
2020-11-08 11:49:03 -05:00
Zach Daniel
c493c1616b
feat: add uuid_primary_key/2 and integer_primary_key/2
2020-11-07 00:31:13 -05:00
Zach Daniel
8fd26d66ca
fix: derived belongs_to attributes are required if their parent is
2020-11-07 00:09:04 -05:00
Zach Daniel
375123e653
fix: default create/update timestamps to private?
2020-11-05 21:27:11 -05:00
Zach Daniel
262be96ed3
fix: set proper pagination defaults
2020-11-05 21:05:32 -05:00
Zach Daniel
05a79c2dbd
chore: add built_in? ash type helper
2020-11-03 13:58:57 -05:00
Zach Daniel
bd190f91f2
docs: update docs
2020-11-03 00:43:57 -05:00
Kyle Nguyen
c732099240
feat: Add property: private? for attributes, relationships, aggregates, and calculations ( #140 )
2020-11-02 15:33:14 -05:00
Zach Daniel
46efda4db4
improvement: support specifying that some options are modules
2020-10-29 00:14:01 -04:00
Zach Daniel
2333d01ddf
feat: multitenancy! and tons of various fixes ( #139 )
2020-10-28 01:14:17 -04:00
Zach Daniel
fcf2f2c7ce
chore: fix tests/new behavior
2020-10-21 00:57:27 -04:00
Zach Daniel
ef66219780
fix: better not_found error handling
2020-10-21 00:52:47 -04:00
Zach Daniel
721555f232
fix: remove unused code
2020-10-20 18:53:12 -04:00
Zach Daniel
1bf2058233
fix: various fixes and improvements
2020-10-20 18:50:11 -04:00
A.shalaby
9020d3b36d
feat: Optimize relashionship records replacement ( #135 )
...
Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2020-10-19 19:10:05 -04:00
Zach Daniel
ad24164e2e
fix: invalid function arg parsing w/ ref
2020-10-17 19:21:25 -04:00
Zach Daniel
59063ff928
chore: docs + def -> defp
2020-10-17 13:35:09 -04:00
Zach Daniel
b0bfec7e0f
feat: pubsub notifier ( #134 )
2020-10-17 13:06:27 -04:00
Zach Daniel
de474db4a6
fix: engine hanging on parallel requests
2020-10-16 01:47:34 -04:00
Zach Daniel
eb25d5b826
feat: add notifiers ( #133 )
2020-10-15 00:54:02 -04:00
Digit
78861b6a51
feat: Add :one_of
constraint to the Atom type ( #130 )
2020-10-13 10:29:57 -04:00
Maarten van Vliet
57c0c7294e
docs: Switch titles to match contents of paragraphs ( #132 )
2020-10-12 10:38:11 -04:00
Zach Daniel
7d4212b5bf
fix: bugs with keyset pagination
2020-10-12 02:35:12 -04:00
Zach Daniel
f8fadc67e6
feat: Add pagination ( #131 )
2020-10-11 23:55:47 -04:00
Zach Daniel
bd6334385f
fix: parse functions properly
2020-10-09 20:59:43 -04:00
Zach Daniel
3c6c60f594
fix: fix dialyzer
2020-10-09 20:56:15 -04:00
Zach Daniel
084857bf83
fix: fix certain versions of elixir having issues
2020-10-09 20:44:15 -04:00
Zach Daniel
cd0998bb92
chore: fix CI + update docs
2020-10-09 10:13:44 -04:00
Zach Daniel
6392361f72
chore: fix lint
2020-10-08 01:59:02 -04:00
Zach Daniel
d928ca5f6e
feat: expression based filter
2020-10-08 01:22:55 -04:00
Zach Daniel
0c216c284d
Module updates ( #129 )
2020-10-07 01:17:17 -04:00
Zach Daniel
114e64f8b4
feat: filter rewrite to op/function/ref based structure
2020-10-06 00:58:06 -04:00
WolfDan
1d6066f247
fix: add module name to errors ( #127 )
2020-10-05 10:40:22 -04:00
A.shalaby
a2f5db08f4
fix: Fix composite key in changeset functions ( #125 )
...
Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2020-10-03 02:37:17 -04:00
A.shalaby
0f805803e1
test: add changeset_test ( #123 )
...
Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2020-10-02 14:48:49 -04:00
Zach Daniel
bce4f910f5
docs: update dsl extension docs
2020-09-25 14:34:31 -04:00
mario
6d719516c2
feat: added description for missing resources ( #117 )
2020-09-25 08:20:58 -04:00
Zach Daniel
2fae5e1ec5
chore: remove typespec temporarily to fix dialyzer
2020-09-25 00:46:10 -04:00
Zach Daniel
9d9f5aab51
chore: fix dialyzer
2020-09-25 00:42:32 -04:00
Zach Daniel
657dd4bfc2
docs: write up some engine docs
2020-09-25 00:36:50 -04:00
Zach Daniel
d1d84422ed
fix: typespec/error message improvements
2020-09-23 21:06:12 -04:00
mario
2efcf12818
feat: descriptions for actions and relationships ( #116 )
2020-09-22 17:48:46 -04:00
Zach Daniel
ca66133777
docs: organize modules/builtins docs
2020-09-22 11:22:21 -04:00
Zach Daniel
6df3f4eb17
docs: fix ash_graphql link
2020-09-22 11:02:21 -04:00
Zach Daniel
d10ae9bad1
docs: update query/authorization docs
2020-09-22 10:51:15 -04:00
Zach Daniel
e75ae597d2
docs: add links to extensions
2020-09-21 18:33:44 -04:00
Jan Pieper
348a814fc6
fix: correct comment in UUID type ( #115 )
2020-09-21 17:51:58 -04:00
Zach Daniel
448b8f06a0
docs: add example application
2020-09-19 21:54:24 -04:00
Zach Daniel
f41cc77549
Various Improvements ( #113 )
2020-09-19 15:46:34 -04:00
Zach Daniel
5552ce1f83
fix: remove delegate data layer ( #112 )
...
The delegation data layer was the wrong tactic. We should model
shared behavior as composition, not inheritance (which is essentially
what the delegation data layer turned into)
2020-09-06 01:16:21 -04:00
Zach Daniel
c75ae780d7
fix: delete process/global storage properly
2020-09-05 23:14:01 -04:00
Zach Daniel
28d2d9b363
fix: Fix identities ( #110 )
2020-09-04 00:59:32 -04:00
Zach Daniel
243c9f05a2
feat: required belongs_to relationships ( #107 )
...
fix: various delegate data layer improvements
fix: engine halting issues
feat: support filter templates on read actions
feat: builtin concat calculation
2020-09-01 23:34:55 -04:00
Zach Daniel
9a3962d47a
feat: add changes to actions ( #106 )
2020-08-30 03:15:16 -04:00
Zach Daniel
a58367414d
feat: add accept
option to create/update actions ( #105 )
2020-08-28 02:58:03 -04:00
Zach Daniel
c5c51ebed9
chore: fix build issues
2020-08-27 21:14:19 -04:00
Zach Daniel
bc0853eb2d
fix: resolve engine deadlocks
2020-08-27 21:00:25 -04:00
Zach Daniel
157752294c
fix: support nested lists of filters
2020-08-27 20:59:36 -04:00
Zach Daniel
9f9935dead
feat: add Ash.NotLoaded
back, simpler defaults
2020-08-27 18:36:28 -04:00
Zach Daniel
5d37709cb2
feat: improve errors (add stacktraces)
2020-08-27 18:35:31 -04:00
Zach Daniel
036e0c2a88
feat: add one_of
validation
2020-08-27 00:30:09 -04:00
Zach Daniel
8ce58a6187
feat: add simple
data layer, and make it default
2020-08-27 00:29:50 -04:00
Zach Daniel
b019ba8eca
fix: allow anonymous functions in the dsl
2020-08-26 17:45:49 -04:00
Zach Daniel
acd9402829
fix: only update filter when its a filter
2020-08-26 13:55:11 -04:00
Zach Daniel
394ed448da
fix: set resource in delegation query
2020-08-26 13:53:27 -04:00
Zach Daniel
3373d72899
feat: support inner lateral joins ( #100 )
...
Specifically, this allows us to behave correctly when loading
relationships w/ a limit or offset
2020-08-26 00:16:08 -04:00
Mike Binns
846f381d08
ci: Improve CI Elixir/Erlang matrix ( #96 )
2020-08-25 15:39:40 -04:00
Zach Daniel
385ec0b423
feat: add identities, to enhance get
calls ( #99 )
2020-08-25 02:06:01 -04:00
Zach Daniel
9d4fc1e2a0
docs: finish docs on calculations
2020-08-25 01:10:17 -04:00
Zach Daniel
3b1bde6a39
fix: spec + dialyzer fixes
2020-08-25 01:05:29 -04:00
Zach Daniel
9ed9f82087
fix: spec mix task run as no_return
2020-08-25 00:52:27 -04:00
Zach Daniel
2ef877ee53
feat: initial calculation support ( #98 )
...
* feat: initial calculation support
2020-08-25 00:49:07 -04:00
Zach Daniel
a56fdbb3ff
feat: Add delegate datalayer ( #97 )
2020-08-22 18:44:05 -04:00
Mike Binns
90af0b0357
Add is_nil support to Ets/Mnesia ( #94 )
2020-08-20 21:27:32 -04:00
Zach Daniel
7b1c735ff3
feat: various custom datalayer features
2020-08-19 00:50:35 -04:00
Zach Daniel
c14e2e865d
fix(extensions): resolve duplicate nested entities
2020-08-18 01:49:35 -04:00
Zach Daniel
fdc7ba463f
feat: streamline load
by accepting ok/error
2020-08-18 01:49:22 -04:00
Zach Daniel
fa480b20df
fix: use Ecto's NotLoaded for assocs for now
2020-08-18 01:49:01 -04:00
Zach Daniel
06ad91d4c5
fix: create/update typespecs were wrong
2020-08-18 01:48:41 -04:00
Zach Daniel
0e373f69a6
fix: add lexical scope to DSL for imports
2020-08-17 02:42:59 -04:00
Zach Daniel
fdc427f20f
fix: crash on entity w/ no options specified
2020-08-17 02:42:47 -04:00
Zach Daniel
be37e13ab0
fix: convert eq: nil
into is_nil, fix credo
2020-08-17 02:42:27 -04:00
Zach Daniel
66c394e601
feat: add is_nil
predicate
2020-08-17 02:36:15 -04:00
Zach Daniel
b617f45fc8
fix: various fixes for graphql extension
2020-08-13 17:49:33 -04:00
Zach Daniel
e83785c8d8
chore: update docs
2020-08-10 13:47:49 -04:00
Zach Daniel
dd2162e4dd
fix: load
typespecs
2020-08-10 13:43:58 -04:00
Zach Daniel
b7073e3098
chore: update docs on aggregates
2020-08-10 03:51:28 -04:00
Zach Daniel
dcf6680573
fix: various fixes from json:api integration
2020-08-10 03:36:52 -04:00
Zach Daniel
be74d1e7eb
feat: add named aggregates
2020-08-08 16:17:52 -04:00
Zach Daniel
a45efc79dd
fix: scope data layer feature to aggregate kind
2020-07-24 19:26:51 -04:00
Zach Daniel
bd4ce75a23
chore: add notice to docs
2020-07-24 17:55:19 -04:00
Zach Daniel
53fb534865
feat: group metadata by path and async?: false
2020-07-24 17:13:45 -04:00
Zach Daniel
f7c9814ef9
feat: run aggregates async if not in query
2020-07-24 02:20:44 -04:00
Zach Daniel
156b89b0fb
fix: incorrect callback
2020-07-23 01:36:54 -04:00
Zach Daniel
5065306b3c
fix: comment out aggregate splitting code for now
2020-07-23 01:18:37 -04:00
Zach Daniel
28c236452d
feat: aggregations!
2020-07-23 01:09:59 -04:00
Zach Daniel
fbd19a32df
fix: simplify dsl building using on_load
2020-07-20 19:16:24 -04:00
Zach Daniel
9d51ec6300
feat: allow editing join association attributes
2020-07-16 19:17:01 -04:00
Zach Daniel
b549337dc2
fix: use proper errors everywhere
2020-07-15 17:06:27 -04:00
Zach Daniel
28982f03fd
feat: various small refactors + validations
2020-07-15 01:38:42 -04:00
Zach Daniel
129ab24a1f
fix: changeset + set_state issues
2020-07-13 00:37:02 -04:00
Zach Daniel
2cf41b966e
feat: refactor changes into changesets
2020-07-12 02:25:53 -04:00
Zach Daniel
d00ba360f2
chore: fix lint
2020-07-09 03:25:40 -04:00
Zach Daniel
5502aea126
fix: small fixes
2020-07-09 03:23:21 -04:00
Zach Daniel
253b1c2e7a
feat: lots of docs, simplify query generation
2020-07-09 02:55:09 -04:00
Zach Daniel
41b8c94964
feat: validate relationship keys
2020-07-09 00:20:32 -04:00
Zach Daniel
482433a28c
docs: update latest docs
2020-07-07 20:30:49 -04:00
Zach Daniel
ea42601a4e
chore: add getting started guide
2020-07-07 19:28:31 -04:00
Zach Daniel
053b3e4a1c
fix!: remove initial subscriptions pass
2020-07-07 10:38:28 -04:00
Zach Daniel
3b1e263fe3
feat: general improvements
2020-07-07 10:19:03 -04:00
Zach Daniel
ac1628b81d
fix: in predicate + engine errors
2020-07-04 01:45:28 -04:00
Zach Daniel
2c6ed51661
docs: add short type references
2020-07-01 09:37:42 -04:00
Zach Daniel
e90d509ccb
fix!: remove atom type, add docs
2020-07-01 00:45:15 -04:00
Zach Daniel
b5120a42b5
feat: list types
2020-06-30 23:57:24 -04:00
Zach Daniel
05848d5f4a
feat: refactor ash types to modules, add constraints
2020-06-30 17:29:43 -04:00
Zach Daniel
2228617e8f
fix: remove benchee, ensure mnesia always uses transactions
2020-06-30 12:21:08 -04:00
Zach Daniel
e565d753ce
fix: stop gitignoring the mnesia data layer
2020-06-30 09:58:04 -04:00
Zach Daniel
e1f6d7bca0
fix: try to fix ash.formatter task
2020-06-30 09:53:37 -04:00
Zach Daniel
24d66b3f39
fix: test/improve parallelizable requests
2020-06-30 01:19:20 -04:00
Zach Daniel
8438795f96
fix: require that resources have primary keys
2020-06-30 00:31:07 -04:00
Zach Daniel
807b16e268
fix: move to simpler transaction logic
2020-06-29 17:42:01 -04:00
Zach Daniel
05f2d9ad64
WIP
2020-06-29 17:20:29 -04:00
Zach Daniel
c39709761d
fix: fix tests/credo
2020-06-28 23:43:35 -04:00
Zach Daniel
b5c3f7acc4
fix: fix tests, add tests for gt/lt filters
2020-06-28 23:36:38 -04:00
Zach Daniel
473c49577c
feat: add less_than and greater_than filter support
2020-06-28 23:22:41 -04:00
Zach Daniel
22eeb29d8f
feat: validate all related resources in API
2020-06-28 23:00:56 -04:00
Zach Daniel
1cd586a59c
feat: cross data layer filters
2020-06-28 21:31:54 -04:00
Zach Daniel
30319f31f1
feat: cross data layer filtering
2020-06-28 02:20:33 -04:00
Zach Daniel
564d095f2a
feat: section option configuration
2020-06-27 14:24:54 -04:00
Zach Daniel
8c1886df10
fix: set persistent_term properly
2020-06-26 18:24:18 -04:00
Zach Daniel
a6916e4c44
chore: switch from on_load to application start
2020-06-26 18:20:02 -04:00
Zach Daniel
ec69ac7117
fix: use authorization filters in side loads
2020-06-22 02:11:59 -04:00
Zach Daniel
c89acce635
fix: remove reverse relationships
2020-06-22 00:34:44 -04:00
Zach Daniel
e6e9f88710
fix: many filter/side load fixes/improvements
2020-06-21 23:26:47 -04:00
Zach Daniel
cf199b70e6
fix: allow side_load option on create/update
2020-06-20 19:41:57 -04:00
Zach Daniel
d95e984193
fix: raised error message contents
2020-06-18 23:53:46 -04:00
Zach Daniel
846f842d98
fix: parent error messages
2020-06-18 23:43:06 -04:00
Zach Daniel
2742a8f1f1
fix: relationship path clause
2020-06-18 23:08:55 -04:00
Zach Daniel
1033677259
feat: boolean filter refactor ( #78 )
...
feat: predicate behaviour
2020-06-18 22:59:30 -04:00
Zach Daniel
2a4fc7ebb1
fix: consider nested entities in ash.formatter
2020-06-15 03:28:47 -04:00
Zach Daniel
a97927fa2e
fix: compile application in ash.formatter task
2020-06-15 03:02:33 -04:00
Zach Daniel
b6101a4dff
feat: extension section module imports, generated .formatter.exs ( #71 )
2020-06-15 02:40:33 -04:00
Zach Daniel
c776da9237
chore: release version v0.4.0
2020-06-14 02:42:44 -04:00
Zach Daniel
6dc699d8a6
feat: rebuild DSL inner workings for extensibility ( #70 )
2020-06-14 02:39:11 -04:00
Zach Daniel
5f2019027d
improvement: add date
support ( #68 )
2020-06-12 22:39:20 -04:00
Zach Daniel
0092af6a94
fix: dialyzer warnings
2020-06-09 01:13:20 -04:00
Zach Daniel
2daa72e165
feat: add after_compile
and validate primary key
2020-06-07 03:30:38 -04:00
Zach Daniel
f7912b54fb
docs: abstract shared relationship DSL options
2020-06-07 03:18:49 -04:00
Zach Daniel
ff2e342741
fix: honor the authorize?
flag
2020-06-05 14:35:02 -04:00
Zach Daniel
1cc143e7fa
test: adjust tests for removal of name/type (and defaults)
2020-06-04 23:34:44 -04:00
Zach Daniel
d5fc20f07c
fix: account for action/actor args to interface
2020-06-04 23:22:00 -04:00
Zach Daniel
1b94ca891c
fix: remove the rest of the deps on name/type
2020-06-04 23:19:23 -04:00
Zach Daniel
651872a67f
fix: add resource_module?/1
back to Ash
2020-06-04 22:43:51 -04:00
Zach Daniel
ecbdaa1abb
feat: remove name/type from ash core
2020-06-04 22:43:30 -04:00
Zach Daniel
71c49cb215
feat: use option schemas in the interface ( #30 )
2020-06-04 21:54:55 -04:00
Zach Daniel
68d0ba44e7
fix: references to error handling code
2020-06-04 02:21:20 -04:00
Zach Daniel
797792f947
docs: update documentation
2020-06-04 02:16:59 -04:00
Zach Daniel
6b73e855a1
docs: make most moduledocs private
2020-06-02 23:51:39 -04:00
Zach Daniel
84422d1f98
fix: fix empty filter checks
2020-06-02 18:24:19 -04:00
Zach Daniel
f42462408a
docs: fix unclosed backquotes
2020-06-02 02:05:06 -04:00
Zach Daniel
7c987b32bb
chore: wrap up remaining lint errors
2020-06-02 01:47:25 -04:00
Zach Daniel
451d4d62f0
fix: typo in function name
2020-06-02 00:44:57 -04:00
Zach Daniel
9ac266e6c0
chore: move #TODO comments into readme for now
2020-06-02 00:41:07 -04:00
Zach Daniel
ebf6c8ffe3
chore: address refactor opportunity lint errors
2020-06-02 00:24:08 -04:00
Zach Daniel
21fae1aed1
chore: address sobelow warnings
2020-06-01 23:37:50 -04:00
Zach Daniel
9a0be3a072
chore: fix dialyzer build errors
2020-06-01 23:23:50 -04:00
Zach Daniel
b5c2fe6cf6
chore: remove ashton in favor of nimble_options
2020-06-01 01:14:23 -04:00
Zach Daniel
525e3ae268
fix: combine filters properly
2020-06-01 01:02:33 -04:00
Zach Daniel
6fbfb8b2bc
fix: dependencies
2020-06-01 00:51:02 -04:00
Zach Daniel
908bbbcdb8
fix: honor returned check filters
2020-05-31 03:14:30 -04:00
Zach Daniel
377319e881
feat: add data layer custom filters
2020-05-31 01:52:00 -04:00
Zach Daniel
7820adeebe
WIP
2020-05-30 23:55:45 -04:00
Zach Daniel
9dca201f79
WIP
2020-05-30 23:55:01 -04:00
Zach Daniel
fdb6f055fa
WIP
2020-05-30 03:29:27 -04:00
Zach Daniel
5912595208
fix: side_load queries
2020-05-27 22:31:40 -04:00
Zach Daniel
e05b6b55d6
fix: many to many relationship side loads
2020-05-27 09:42:05 -04:00
Zach Daniel
65aa5215fe
finalize engine refactor
2020-05-27 00:29:54 -04:00
Zach Daniel
9d76bb1d9b
WIP
2020-05-27 00:29:54 -04:00
Zach Daniel
227532db29
WIP
2020-05-27 00:29:54 -04:00
Zach Daniel
1ed9d3c5fa
WIP
2020-05-27 00:29:54 -04:00
Zach Daniel
b876f87e23
WIP
2020-05-27 00:29:53 -04:00
Zach Daniel
b174bc6433
WIP: start work on engine-2
2020-05-27 00:29:53 -04:00
Zach Daniel
2f37228ab4
fix: protect against double data resolution
2020-05-15 02:54:46 -04:00