Commit graph

2025 commits

Author SHA1 Message Date
Zach Daniel
0176958ec0 fix: cast functional default values 2023-10-19 12:06:56 -04:00
Zach Daniel
d5621fbc8c improvement: cast_input for default values at compile time 2023-10-19 11:57:07 -04:00
Zach Daniel
60977a4d6c chore: make credo happy 2023-10-19 11:25:33 -04:00
Zach Daniel
b605232f7e chore: comment out more unnecessary code 2023-10-19 11:14:57 -04:00
Zach Daniel
cb8fc298ae fix: temporarily omit overzealous validation 2023-10-19 11:14:08 -04:00
Zach Daniel
7d06d8fa46 fix: properly honor max_concurrency option
chore: remove IO.inspect
2023-10-18 16:53:12 -04:00
Zach Daniel
381d45a3f8 improvement: optimize bulk creates where results are not returned 2023-10-18 16:18:57 -04:00
Zach Daniel
ff88ce68b4
improvement: rewrite bulk creates, optimize changeset functions (#744) 2023-10-18 14:07:44 -04:00
De Wet Blomerus
52214bd2d9
docs: Remove extra trailing close-paran 🔥 (#743) 2023-10-17 21:38:08 -04:00
Zach Daniel
a92a0b4c9b fix: support tenant option in api.can
closes #736
2023-10-17 21:25:53 -04:00
Zach Daniel
b32f2e55ea fix: properly use constraints when casting expression values 2023-10-17 15:08:54 -04:00
Zach Daniel
ccf635e711 improvement: better storage_type handling, undo function change 2023-10-17 14:46:28 -04:00
Zach Daniel
24ae31c6dd fix: don't re-case constraints in the type function 2023-10-17 14:20:56 -04:00
Zach Daniel
c014fc2f0a chore: release version v2.15.19 2023-10-17 14:08:19 -04:00
Zach Daniel
7849541b29 chore: fix typespec 2023-10-17 13:58:17 -04:00
Zach Daniel
5d85c5be14 improvement: properly honor ecto type init callback 2023-10-17 13:39:21 -04:00
Zach Daniel
d9bacc1554 fix: handle new type constraints properly 2023-10-17 12:50:14 -04:00
Zach Daniel
12840ae235 fix: honor max_concurrency option 2023-10-17 12:24:28 -04:00
Zach Daniel
7301e09654 chore: fetch type in include_source/3 2023-10-17 11:11:18 -04:00
Zach Daniel
eca3b84105 chore: generalize embed type __source__ logic 2023-10-17 11:03:50 -04:00
Zach Daniel
c12f24d55d chore: changeset optimizations
ci: test ash-sqlite subproject
2023-10-17 10:49:37 -04:00
Zach Daniel
4900d69a92 chore: optimize upsert update defaults 2023-10-17 10:39:59 -04:00
Zach Daniel
6e2fa036d7 chore: update docs 2023-10-17 10:37:46 -04:00
Zach Daniel
ae147011ea fix: handle generic actions in list_arguments_and_attributes 2023-10-17 10:36:57 -04:00
Zach Daniel
fcc7e3b08a chore: revert recent change to datetime storage type default 2023-10-17 10:26:05 -04:00
Zach Daniel
20cc1cc24e improvement: various optimizations and compile time caching
fix: fix type casting for embedded resources
2023-10-17 10:18:26 -04:00
Pierre Le Gall
e14e1b2e29
improvement: set default many to many options (#737)
Many to many relationship `source_attribute_on_join_resource`
and `destination_attribute_on_join_resource` are now guessed
by there module name if not explicitly set in the relationship.
2023-10-17 10:03:21 -04:00
Zach Daniel
7f7469eb9f improvement: various performance improvements 2023-10-17 01:08:26 -04:00
Zach Daniel
52337b7bff improvement: various optimizations for bulk create actions 2023-10-16 23:50:05 -04:00
Zach Daniel
3dd61a6ff8 fix: ensure after action hooks are run on bulk creates 2023-10-16 17:00:04 -04:00
Zach Daniel
b2c7048359 fix: return records from batches if items have after action hooks 2023-10-16 16:30:15 -04:00
Zach Daniel
f53626e65d improvement: support max_concurrency option on bulk creates
improvement: better error message on missing identities
improvement: better error message on invalid data passed to `YourApi.load`
2023-10-16 14:53:27 -04:00
Zach Daniel
ecdc4c1c64 fix: don't transform errors to changesets when rolling back in with_hooks 2023-10-13 22:04:44 -04:00
Zach Daniel
931ff30641 fix: undo previous changes where transactional actions might not roll back
instead, I've added a `rollback_on_error?` option to allow more fine grained
control over what happens when you call an individual action and it encounters
an error and would roll back.
2023-10-13 18:12:48 -04:00
Zach Daniel
5a462a3ffc fix: undo regression where errors weren't wrapped in a changeset 2023-10-13 16:51:10 -04:00
Zach Daniel
7ff3a96db2 improvement: better handling of nested errors in transactions
If you call a nested action currently, and anything goes wrong, the whole
transaction is aborted. However, we want to be able to *recover* from
internal errors, and that means allowing things to fail without failing
the entire transaction. If something that *starts* a transaction
encounters an error, then it will rollback the transaction.
2023-10-13 14:33:25 -04:00
Zach Daniel
4fe4411286 fix: provide full constraints when determining Ash.Type.NewType storage types 2023-10-12 10:57:10 -04:00
Zach Daniel
b93cbb9577 fix: go back to original default timestamp behavior
fixes #733
2023-10-12 07:25:46 -04:00
Zach Daniel
6e0be43c51 fix: properly authorize access to query aggregates in all cases 2023-10-11 19:44:50 -04:00
Zach Daniel
658f071b81 improvement: move various transformers to be verifiers 2023-10-11 17:58:31 -04:00
Zach Daniel
68ec02a27b chore: update typespec for data layer feature 2023-10-11 15:13:49 -04:00
Zach Daniel
1ab4b6e69a improvement: support atomics on upserts 2023-10-11 15:09:06 -04:00
Zach Daniel
1cfcc296ae improvement: ensure all changesets sent batched to data layer have same set of atomics
this is necessary for upsert atomics
2023-10-11 12:05:17 -04:00
Zach Daniel
2de1e81b3b chore: fix more typespecs 2023-10-11 09:05:56 -04:00
Zach Daniel
c89b680d4b fix: move misplaced file and fix typespecs for Ash.DataLayer.Ets.Info 2023-10-11 09:02:32 -04:00
Zach Daniel
b0a4a23ab2 chore: appease credo 2023-10-10 17:02:11 -04:00
Zach Daniel
05dd361a52 fix: properly set invalid_keys on action inputs 2023-10-10 16:59:28 -04:00
Zach Daniel
be202918ac fix: properly validate required arguments for generic actions 2023-10-10 16:49:47 -04:00
Zach Daniel
c77ad34efb improvement: set storage type for citext to ci_string 2023-10-10 14:12:01 -04:00
Zach Daniel
3782f1cfe2 fix: honor authorize? option for calls to aggregate 2023-10-10 11:10:58 -04:00
Zach Daniel
fbe6b21bf0 improvement: support to-one reference paths in calculations 2023-10-09 18:50:15 -04:00
Zach Daniel
407b09b677 fix: handle false values properly when passed to flows 2023-10-07 16:34:13 -04:00
Zach Daniel
32620dfd52 improvement: add Ash.Sort.expr_sort. In 3.0 sort should be a macro 2023-10-07 09:16:52 -04:00
Zach Daniel
49042b737d fix: properly rollback transactions on returned errors in generic actions 2023-10-06 13:39:05 -04:00
Zach Daniel
b8be1123ba fix: generate keysets immediately after read action 2023-10-05 22:50:15 -04:00
Robert Graff
2ad5d451b0
Fixes: casting an array attribute to nil (#723) 2023-10-04 14:55:30 -04:00
Zach Daniel
c2872b5181 fix: prepare_change_array on embedded types needs to handle nil
fix: handle_change_array on embedded types needs to honor `nil`
2023-10-04 13:59:26 -04:00
Zach Daniel
c691eb022c improvement: allow overriding cast_input/2 on NewType 2023-10-04 11:51:59 -04:00
Zach Daniel
3d72e190b2 fix: don't use || when fetching arguments because false || nil is nil
fixes #722
2023-10-03 16:30:50 -04:00
Zach Daniel
1042ea14fd chore: use uuids instead of unique integer for performance reasons 2023-10-03 13:42:18 -04:00
Zach Daniel
1fb169a73b fix: handle exceptions in generic actions
improvement: massage changesets & queries in `Ash.Error.to_ash_error/3`
2023-10-02 18:54:48 -04:00
Dmitry Maganov
6d94582360
fix: fix types for min/max constraints in Type.Float (#718) 2023-10-02 18:01:55 -04:00
Zach Daniel
2cd0ec5884 fix: lower compile time dependencies 2023-10-02 15:54:57 -04:00
Zach Daniel
ed9f0d4beb chore: fix invalid exception raise 2023-10-02 14:24:28 -04:00
Zach Daniel
290a5efbeb fix: raise cleaner error on missing action in bulk creates 2023-10-02 12:04:37 -04:00
Zach Daniel
b3fdea3e53 fix: allow for ref to contain nested templates 2023-10-02 11:24:17 -04:00
Barnabas Jovanovics
7e4caf043f
fix: return unions as is if load is empty (#714)
* return unions as is if load is empty

* do not load on forbidden fields
2023-09-29 10:21:05 -04:00
Zach Daniel
10b1030f5c chore: remove IO.inspect 2023-09-28 20:22:32 -04:00
Zach Daniel
82b9174afe fix: unions, only load through types when loadable 2023-09-28 20:11:29 -04:00
Zach Daniel
851d5a59d1 chore: remove unnecessary case 2023-09-28 19:58:38 -04:00
Zach Daniel
80812b0ced fix: handle empty list loads 2023-09-28 19:56:38 -04:00
Zach Daniel
c6dc97f17c fix: ensure constraints are properly set in map/new_types 2023-09-28 18:51:58 -04:00
Zach Daniel
4d62505f69 improvement: don't double cast ci strings 2023-09-28 17:25:38 -04:00
Zach Daniel
7581234799 fix: only set non-nil values unless __keep_nil__ in seed creation 2023-09-28 16:53:06 -04:00
Zach Daniel
0ce6909939 fix: Ash.Seed extracts attributes from the struct now 2023-09-28 16:12:13 -04:00
Zach Daniel
04c9249f24 fix: properly perform field authorization on loaded through types 2023-09-28 10:23:16 -04:00
Zach Daniel
e7a734f29b chore: support simple filters in runtime filterer 2023-09-28 08:37:07 -04:00
Dmitry Maganov
dedba7f471
fix: usage of get_by with belongs_to attribute (#712) 2023-09-27 22:20:16 -04:00
Zach Daniel
a00806eeb0 fix: static checks with conditions could be overly or insufficiently restrictive 2023-09-27 14:40:40 -04:00
Zach Daniel
00a582fbc1 chore: fix more syntax errors 2023-09-27 13:00:40 -04:00
Zach Daniel
e23c12c1c1 chore: fix syntax typo 2023-09-27 12:59:29 -04:00
Zach Daniel
9f97569dce improvement: add context option to bulk_create 2023-09-27 12:09:37 -04:00
Zach Daniel
c571625557 fix: set field policy opts on field policy conditions 2023-09-27 10:12:13 -04:00
Dmitry Maganov
972207a6da
fix: move Resource.Transformers.BelongsToSourceField into entity (#709) 2023-09-27 09:06:05 -04:00
Zach Daniel
5c8f96231e docs: finalize initial cheat_sheet/docs pattern 2023-09-26 23:13:40 -04:00
Zach Daniel
df2102501c chore: replace_doc_links now doesn't mess up source urls
chore: replace_doc_links now links to spark generated dsl cheat sheets
2023-09-26 22:25:08 -04:00
Zach Daniel
b0115f5116 fix: don't authorize on identity usage validations 2023-09-26 16:09:51 -04:00
Zach Daniel
d07ca084a5 fix: handle empty batches in bulk create 2023-09-26 15:22:37 -04:00
Zach Daniel
ae3125483c chore: fix trace span type dtypespec 2023-09-26 11:29:37 -04:00
Zach Daniel
27a368660f improvement: expose max/min constraints on Ash.Type.Float 2023-09-26 08:26:34 -04:00
Zach Daniel
728a63b416 chore: default Ash.Type.Datetime storage type
I shouldn't have to do this, though?
2023-09-25 11:19:25 -04:00
Barnabas Jovanovics
9e16109950
feat: expose query or changeset to field policies (#701) 2023-09-25 11:13:36 -04:00
Zach Daniel
93fc4a35b2 improvement: rework utc_datetime to datetime
the old types are now newtypes over the new type

fixes: #704
2023-09-25 11:11:56 -04:00
Zach Daniel
5466c88d58 improvement: explicitly validate manual action return types 2023-09-25 10:49:34 -04:00
Zach Daniel
2d9f9ee362 improvement: deprecate old school manual actions
note: these have been deprecated for a very long time, removing them will not
be considered a breaking change (and there will be clear compile errors)
2023-09-25 09:40:29 -04:00
Zach Daniel
64f134089b improvement: better UX around nimble options errors
improvement: remove old, now-deprecated config

While we *could* call that a breaking change, there is a warning explaining to users what
they would need to do if they have the deprecated value configured, and it has been in a
deprecation state for many months/releases now.
2023-09-25 09:27:03 -04:00
Zach Daniel
b6ef345936 chore: fix transaction call 2023-09-22 17:16:22 -04:00
Zach Daniel
b13c7f0e53 improvement: add Ash.Query.around_transaction/2 2023-09-22 16:46:43 -04:00
Dmitry Maganov
1aa0c9c84c
fix: revert :wrap_list usage for topic in PubSub, needs recursion (#702) 2023-09-22 06:52:53 -04:00
Zach Daniel
1a307385b5 improvement: add sequence generator utility 2023-09-21 18:51:30 -04:00
Dmitry Maganov
ecd7075fbc
fix: more usages of :wrap_list type (#700) 2023-09-21 08:34:46 -04:00
Zach Daniel
6a2f0e41e5 chore: format 2023-09-20 16:59:56 -04:00
Dmitry Maganov
a0ada2ed7d
fix: add missing usage of :default_belongs_to_type (#699) 2023-09-20 16:59:33 -04:00
Zach Daniel
1d43b26127 chore: move validate_relationship_attributes to a verifier 2023-09-20 16:51:38 -04:00
Zach Daniel
3d2c012189 chore: clean up dialyzer errors 2023-09-20 16:39:28 -04:00
Zach Daniel
05b9ac1f86 improvement: make storage_type overridable by new_types 2023-09-20 16:25:09 -04:00
Zach Daniel
17b1a0b2df fix: properly wrap [tracer] in Ash.Flow 2023-09-20 13:31:58 -04:00
Dmitry Maganov
e0d5a63c65
fix: use :wrap_list type where appropriate (#698) 2023-09-20 10:58:47 -04:00
Dmitry Maganov
77eae2954f
fix: get_by option can accept a single atom (#697) 2023-09-20 10:39:58 -04:00
Zach Daniel
c8e796fbcb fix: properly handle nil values in embedded resources 2023-09-18 20:57:32 -04:00
Zach Daniel
b0bd2d23d9 improvement: support map_with_tag storage mode for Ash.Union.
closes #694
2023-09-18 10:13:22 -04:00
Zach Daniel
08f56eddf4 improvement: if no authorizers are set, anyone can do anything 2023-09-17 16:05:02 -04:00
Zach Daniel
38dc478719 fix: ensure that can always returns an error when asked 2023-09-17 16:03:25 -04:00
Zach Daniel
76e744a54a improvement: explicit error on after_action hook mismatch 2023-09-16 12:33:25 -04:00
Stefan Wintermeyer
9617fa6910
Improve example update_timestamp docu (#693) 2023-09-16 06:48:53 -04:00
Zach Daniel
f6f0a3e26f fix: get type for manual action at compile time 2023-09-15 13:25:29 -04:00
Zach Daniel
b900290f0d docs: update custom type docs to handle nil values 2023-09-14 22:36:23 -04:00
Zach Daniel
6a2bb30d1d improvement: add allow_nil? to generic actions, defaults to false 2023-09-14 16:52:08 -04:00
Zach Daniel
e7f59862ab docs: lots of docs improvements 2023-09-13 23:18:14 -04:00
Zach Daniel
654c12cc78 docs: update registry option docs 2023-09-13 22:36:57 -04:00
Zach Daniel
8046bc98b0 docs: remove the registry example from api docs 2023-09-13 22:34:47 -04:00
Zach Daniel
6e2d1fd0ac docs: greatly improved DSL documentation in hex 2023-09-13 22:17:18 -04:00
Zach Daniel
58e7afde1b fix: properly handle bubbled up exceptions from type casting 2023-09-13 14:31:25 -04:00
Zach Daniel
0a35989802 fix: typo in new tracer setting logic 2023-09-13 13:58:40 -04:00
Zach Daniel
4804e8eb87 fix: properly expose nested errors on unions
closes: #692
2023-09-13 10:31:06 -04:00
Zach Daniel
b4221ecc6d improvement: set_handled_error/3 for when errors are returned 2023-09-13 00:05:04 -04:00
Zach Daniel
480d55a852 fix: propertly handle configured list of tracers 2023-09-12 21:47:30 -04:00
Zach Daniel
471bf8228c chore: fix typo properly 2023-09-12 11:56:34 -04:00
Zach Daniel
d1a0108db1 chore: typo 2023-09-12 11:54:55 -04:00
Zach Daniel
1f319faf97 improvement: support trace_type?/2 in tracers 2023-09-12 11:54:04 -04:00
Zach Daniel
91013c2de0 improvement: support stacktraces in set_error 2023-09-12 11:26:11 -04:00
Zach Daniel
47fbf4b35a improvement: support multiple tracers, instead of just one 2023-09-12 10:54:42 -04:00
Zach Daniel
e2855843ca improvement: support vector types 2023-09-11 22:28:51 -04:00
Josh Price
cedcda903f docs(dsl): various doc and formatting improvements
Tried removing all triple backticks to fix https://github.com/ash-project/ash/issues/690 but this didn't remove the warning about unclosed backticks.
2023-09-07 07:03:44 -04:00
Josh Price
08081c09ba docs(changeset): various doc and formatting improvements
Conference training driven development.
2023-09-07 07:03:44 -04:00
Zach Daniel
b45174fc54 fix: fix formatting for policies with conditions 2023-09-06 01:56:36 -04:00
Zach Daniel
1fde073bc1 fix: policy mermaid chart fix forbid_unless behavior 2023-09-06 01:46:22 -04:00
James Harton
5f6920ef92
improvement: Allow resources to opt out of the primary key requirement. (#687)
This is experimental and will likely cause breakages. It's to support time series tables.
2023-09-06 10:21:42 +12:00
Zach Daniel
567dcf6372 fix: better handling for negate error messages 2023-09-04 16:01:48 -04:00
Zach Daniel
427a42d45b improvement: raise runtime error on misuse of negate 2023-09-04 15:42:07 -04:00
Zach Daniel
879b52b900 fix: compile before ash tasks 2023-09-04 13:38:27 -04:00
Zach Daniel
b9e6327d7f improvement: add ash.reset and ash.tear_down 2023-09-04 13:07:14 -04:00
Zach Daniel
c67c77a617 fix: fix no such action error on create changesets
fix: remove policy documentation due to compile time links
2023-09-04 11:48:38 -04:00
Zach Daniel
5cd7194e5e chore: don't explain policy in module docs to test an issue 2023-09-04 11:34:50 -04:00
Zach Daniel
5b5995d783 improvement: show policy mermaid chart in moduledocs 2023-09-04 09:53:55 -04:00
Zach Daniel
967c467f84 chore: only generate for resources w/ policy authorizer 2023-09-04 09:23:22 -04:00
Zach Daniel
655fa42416 chore: clean up flow chart generated Or edges 2023-09-04 09:19:51 -04:00
Zach Daniel
a131dfeb03 fix: show policy conditions, and fix final destination of last policy condition 2023-09-04 09:03:47 -04:00
Zach Daniel
69623a1efe chore: cleanups for new mix task 2023-09-04 01:23:57 -04:00
Zach Daniel
8e2396b0b1 improvement: add mix ash.generate_policy_chart 2023-09-04 01:07:12 -04:00