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
This can be fixed by configuring pagination to fetch the resource by keyset
(so keyset is only ever primary key), but will perform worse because
we have to fetch the record. If someone would like to implement this,
let me know.
The `Api.get` example in the docs uses the email instead of the ID to
get the newly created resource. Trying this locally while running
through the getting started tutorial returns a `nil` resource using the
email, but the correct resource when using the ID.
This fix updates the docs to use the ID in the get call.
i.e. warnings that appear when you run `mix docs`
Although this PR doesn't fix the majority of them, since the majority
are errors from referring to `@moduledoc false` modules in docs and typespecs.
feat: validatiosn in actions
feat: query arguments
feat: add `Ash.Query.for_read/3`
feat: return changeset with API errors
feat: add case insensitive string `CiString`/`:ci_string`
feat: support `context/1` and `arg/1` in filter templates
feat: support targeting notifications with the `for` option
feat: add `ago/2` query function
feat: add basic arithmetic operators (+, *, -, /)
feat: `sensitive?` option for attributes
feat: `sensitive?` option for arguments
feat: `private` arguments, which can’t be set using `for_<action>`
feat: add `prevent_change` which will erase changes just before the changeset is committed
feat: add `match?` validation that supports a custom error message
feat: add `interval` type to support `ago/2` function
feat: add `url_encoded_binary` type
feat: add `function` type
improvement: `changing?` is now a validation
improvement: add `Transformer.get_persisted/3`
improvement: add `api` field to `Notification`
improvement: standardize errors, add `to_error_class`
improvement: use `Comp` everywhere
Improvement: use action on changeset if set by `for_<action_type>`
improvement: `action_failed?` field on change sets
improvement: remove ability for data layers to add operators (for now at least)
Improvement: Changeset.apply_attributes/2 now returns an error tuple
Improvement: add a bunch of new/informative errors
improvement: runtime filter now uses left join logic (a naive implementation of it)
improvement: support more filter templates in resources
Improvement: basic/naive type system for operators/functions
Fix: properly expand module aliases for options w/o compile time dependency
chore(engine): track changeset changes for the request with `manage_changeset?: true`
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)