Commit graph

1128 commits

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