Commit graph

1422 commits

Author SHA1 Message Date
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