Commit graph

1399 commits

Author SHA1 Message Date
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
Zach Daniel
47b93551e8 chore: release version v1.48.0-rc.26 2021-10-28 17:38:34 -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
19a4355960 chore: release version v1.48.0-rc.25 2021-10-25 18:49:10 -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
506c2f81b8 chore: release version v1.48.0-rc.24 2021-10-25 17:54:39 -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
1b2f3c6cff chore: release version v1.48.0-rc.23 2021-10-24 14:33:47 -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
4281f6530a chore: release version v1.48.0-rc.22 2021-10-23 02:51:57 -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
d4f4af1876 chore: release version v1.48.0-rc.21 2021-10-21 22:13:36 -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
3a56d4cc04 chore: release version v1.48.0-rc.20 2021-10-21 18:11:45 -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
63c240ebbd chore: release version v1.48.0-rc.19 2021-10-20 01:44:00 -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
e35e02c383 chore: release version v1.48.0-rc.18 2021-10-19 21:40:38 -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
f1a51532b0 chore: release version v1.48.0-rc.17 2021-10-19 05:25:50 -04:00
Zach Daniel
a4fef11c6e fix: don't require primary actions if disabled 2021-10-19 05:25:33 -04:00
Zach Daniel
6155af2de1 chore: release version v1.48.0-rc.16 2021-10-19 05:01:36 -04:00
Zach Daniel
3bad25c1e0 improvement: add primary_actions? option 2021-10-19 04:42:35 -04:00
Zach Daniel
59e8c49d58 chore: release version v1.48.0-rc.15 2021-10-15 17:13:17 -04:00
Zach Daniel
38b357ade9 fix: don't validate allow_nil in attribute casting 2021-10-15 17:13:01 -04:00
Zach Daniel
a6c4c9432a chore: release version v1.48.0-rc.14 2021-10-13 18:44:09 -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
908b1176f0 chore: release version v1.48.0-rc.13 2021-10-11 20:06:34 -04:00
Zach Daniel
863ed1520f fix: honor base query still when removing filters 2021-10-11 20:06:13 -04:00
Zach Daniel
93ccefbfbf chore: release version v1.48.0-rc.12 2021-10-11 15:15:09 -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
147ae4d2ca chore: release version v1.48.0-rc.11 2021-10-09 10:53:25 -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
c917927b6e chore: release version v1.48.0-rc.10 2021-10-07 16:56:14 -04:00
Zach Daniel
9fbc2921f9 fix: remove certain modules from avoiding recompilation 2021-10-07 13:37:37 -04:00
Zach Daniel
e900acf7b1 chore: release version v1.48.0-rc.9 2021-10-07 02:42:08 -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
d644303c30 chore: release version v1.48.0-rc.8 2021-10-06 17:46:10 -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
Zach Daniel
5e2e59c330 chore: master -> main in readme 2021-10-01 23:30:28 -04:00
Zach Daniel
2278b68c22 chore: update CI w/ master -> main branch change 2021-10-01 23:28:47 -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
ebf25bd697 chore: release version v1.48.0-rc.6 2021-09-20 16:31:25 -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