Commit graph

1189 commits

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