Commit graph

475 commits

Author SHA1 Message Date
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
Zach Daniel
ad8f2c0826
WIP 2020-05-15 02:29:12 -04:00
Zach Daniel
08d373c207
WIP 2020-05-15 02:27:13 -04:00
Zach Daniel
8a2319cb41
WIP 2020-05-15 02:04:14 -04:00
Zach Daniel
a594747515
WIP 2020-05-15 02:02:46 -04:00
Zach Daniel
2e283aa493
WIP 2020-05-15 01:58:07 -04:00
Zach Daniel
eb655c6d4f
WIP 2020-05-15 01:56:03 -04:00
Zach Daniel
3b10b1ced4
WIP 2020-05-15 01:51:29 -04:00
Zach Daniel
f33841be7f
WIP 2020-05-15 01:49:10 -04:00
Zach Daniel
0b5c362ed1
WIP 2020-05-15 01:44:13 -04:00
Zach Daniel
482dadf1eb
WIP 2020-05-15 01:42:24 -04:00
Zach Daniel
0af7c5fdb9
WIP 2020-05-15 01:36:46 -04:00
Zach Daniel
d44d372902
WIP 2020-05-15 01:31:58 -04:00
Zach Daniel
a1f33d7249
WIP 2020-05-15 01:08:36 -04:00
Zach Daniel
5cc928f192
WIP 2020-05-15 01:06:51 -04:00
Zach Daniel
ccf30bafac
WIP 2020-05-15 01:03:43 -04:00
Zach Daniel
26cd1c4af9
WIP 2020-05-15 00:59:30 -04:00
Zach Daniel
548bc41145
WIP 2020-05-15 00:44:37 -04:00
Zach Daniel
bb8202d66a
WIP 2020-05-15 00:42:43 -04:00
Zach Daniel
099330559d
fix: various small improvements 2020-05-15 00:29:47 -04:00
Zach Daniel
04a53e585b
feat: various fixes, upsert, relationship changes 2020-05-14 18:01:34 -04:00
Zach Daniel
fd4dce3b93
fix: various bugs 2020-05-13 13:52:08 -04:00
Zach Daniel
1cc096e621
improvement: huge query/filter overhaul 2020-05-13 11:54:44 -04:00
Zach Daniel
596a8e3d75
improvement: remove pagination, add query struct (unused) 2020-05-09 22:23:23 -04:00
Zach Daniel
22e649a755
improvement(filters): simplify/improve inspect logic 2020-05-09 20:02:40 -04:00
vherr2
e0efa2a12c Updates guard with perf feedback 2020-05-09 16:32:14 -07:00
vherr2
127d4abd62 Fixes guard for maps 2020-05-09 16:30:21 -07:00
vherr2
c89600a248 refactor(filter, inspect): adds helpers and guards to clarify code
Creates private guard for checking against nil/empty values; Moves variable assignment outside of
function heads when not required for differentiating pattern matching; Adds helpers for parsing
attributes and relationships
2020-05-09 16:26:59 -07:00
Zach Daniel
6d78286112
Merge pull request #11 from ash-project/move-inspect-impl-to-struct-files
refactor(filter): moves defimpl Inspect to corresponding struct files
2020-05-09 19:25:10 -04:00
vherr2
665f82a45e refactor(filter): moves defimpl Inspect to corresponding struct files
Colocates defimpl Inspect with the corresponding struct. This should help colocate the struct itself
with the IO representation of the entity.
2020-05-09 16:20:55 -07:00
vherr2
666c1968e2 Fixes compilation warning for unused variable 2020-05-09 15:03:17 -07:00
Zach Daniel
91a4a668bf
fix: verbose? now prints auth log 2020-05-09 16:24:41 -04:00
Zach Daniel
1278eaedbd
feat: add side_load 2020-05-07 01:34:34 -04:00
Zach Daniel
4d73d771ea
improvement: add DslBuilder pattern for deriving dsl blocks 2020-05-07 00:12:29 -04:00
Zach Daniel
67ae03c810
improvement: add new types 2020-05-06 23:14:55 -04:00
Zach Daniel
9beea38b7a
WIP 2020-05-02 05:01:57 -04:00
Zach Daniel
7a28c7b9bd
feat: add timestamps/0 to attributes 2020-05-01 10:22:31 -04:00
Zach Daniel
2dea5d6d33
WIP on new error system. Only a few tests left to fix 2020-05-01 02:21:46 -04:00
Zach Daniel
e013341f11
fix: read generated fields after writes 2020-04-30 23:31:32 -04:00
Zach Daniel
5faff254bf
fix: more fixes 2020-04-30 23:18:04 -04:00
Zach Daniel
b988632aa3
fix: fetch_attr right 2020-04-30 23:16:48 -04:00
Zach Daniel
cf94465996
fix: attribute defaults 2020-04-30 23:15:06 -04:00
Zach Daniel
2d26d94fe2
feature: add update_defaults 2020-04-30 23:05:06 -04:00
Zach Daniel
4ea1d53a30
fix: use attribute name in error 2020-04-30 22:52:24 -04:00