Commit graph

85 commits

Author SHA1 Message Date
Zach Daniel
a2cfaa5fe0 chore: use a better config name 2024-09-03 22:24:24 -04:00
Zach Daniel
06cd509e1f chore: make the new policy behavior opt-in with config 2024-09-03 22:22:46 -04:00
Zach Daniel
f4dc9620ae improvement: make default page type configurable, defaulting to :offset
The getting started guide and ash installer set it to `:keyset`

closes #1413
2024-08-30 17:18:50 -04:00
Zach Daniel
69b5e20b2f improvement: add uuid-v7-primary-key option to mix ash.gen.resource
closes #1396
2024-08-19 11:14:47 -04:00
Zach Daniel
c0843b3eb7 chore: update igniter & fix warnings 2024-08-08 09:18:03 -04:00
Zach Daniel
a719c791ba improvement: add optimized path for casting embeds when they are simple
improvement: add `include_embedded_source_by_default?` config to optimize embeds
improvement: support `:fields` constraint on `:struct` type, enabling persistence
2024-08-07 16:47:01 -04:00
Zach Daniel
e3e492ef65 fix: use timestamps() instead of timestamps 2024-08-02 12:49:26 -04:00
Zach Daniel
ea7abca878 remove IO.inspect 2024-07-31 18:27:59 -04:00
Zach Daniel
266958d326 improvement: add --timestamps argument to ash.gen.resource
fix: properly parse multiple occurrences of :keep arguments
2024-07-31 17:47:29 -04:00
Zach Daniel
8f865c11cf fix: don't set --name nil when calling codegen tasks
closes #1360
2024-07-31 09:43:40 -04:00
Zach Daniel
55456b3884 fix: properly parse domain module in mix ash.gen.domain 2024-07-30 06:45:24 -04:00
Zach Daniel
b3ac13e760 chore: release version v3.3.0 2024-07-27 17:05:46 -04:00
Zach Daniel
303da2a97f improvement: better positional argument handling with igniter 2024-07-26 13:43:51 -04:00
Zach Daniel
381870ac3e improvement: don't install sat solver in initial installation
improvement: ask user to install sat solver when extending with policies
improvement: validate that a solver exists at compile time when using policies
2024-07-24 16:08:39 -04:00
Zach Daniel
eb2f5f40f1 improvement: Add Ash.Resource.Igniter.domain to get the domain of a resource
fix: properly convert extension string into a module

fix: only display available to extend
2024-07-18 13:00:56 -04:00
Zach Daniel
fe00d22a25 chore: the function was deprecated the other way 🤦 2024-07-15 14:12:50 -04:00
Zach Daniel
3bc730bfcf chore: update deprecated call 2024-07-15 14:10:34 -04:00
Zach Daniel
97a37a4bf8 improvement: update spark for newest composable igniters 2024-07-15 13:33:05 -04:00
Franklin Rakotomalala
9f695aaae4
docs: Improve documentation example (#1299) 2024-07-10 15:52:33 -04:00
Zach Daniel
ebdf8eca46 fix: installer doesn't need to add spark as a dependency, just run its installer 2024-07-10 09:04:04 -04:00
Zach Daniel
b94b34d3dc improvement: specify info/2 callbacks for tasks w/ options 2024-07-09 09:08:33 -04:00
Zach Daniel
0129285340 improvement: update getting started guide and document generators 2024-07-08 17:15:52 -04:00
Zach Daniel
920f52ff27 chore: fix build 2024-07-04 08:55:39 -04:00
Zach Daniel
fa94e76855 Revert "fix: don't reuse requested relationship loads for calculations"
This reverts commit 49da3638f1.
2024-07-04 07:09:56 -04:00
Zach Daniel
49da3638f1 fix: don't reuse requested relationship loads for calculations
this is less efficient, and there are still some cases where
we could combine queries, but we need to first solve the behavioral
issues where relationships loaded for calculations could sometimes be loaded
in an "authorized" state when they should not be. We can improve the
speed/efficiency later, correctness is more important.
2024-07-03 18:32:20 -04:00
Zach Daniel
dd7dad60d8 chore: install/4 -> install/5 2024-07-02 16:56:44 -04:00
Zach Daniel
bb73544e09 chore: leverage latest from igniter 2024-07-02 16:55:05 -04:00
Zach Daniel
e991575eb5 chore: use latest igniter features 2024-07-01 21:32:56 -04:00
Zach Daniel
5727cc273f improvement: add mix ash.install
improvement: add `mix ash.gen.resource`
improvement: add `mix ash.gen.base_resource`
improvement: add `mix ash.gen.domain`
improvement: add `mix ash.extend`
2024-06-21 19:09:35 -04:00
Zach Daniel
73a2ef4852 fix: only use Mix.deps_tree if defined
fixes #1197
2024-05-23 10:00:46 -04:00
Sergey Moiseev
0efa1a0a10
fix: trim spaces from codegen name (#1106) 2024-05-02 19:14:10 -04:00
Zach Daniel
5ff767a1aa fix: don't carry over all changes during atomic upgrade
Doing this was causing us to carry over changes that were produced
as part of running the changes in the original changeset build

fixes #1042
2024-04-22 19:01:05 -04:00
Zach Daniel
7e86b971a4 chore: fix migrate task file name 2024-04-22 12:27:43 -04:00
Zach Daniel
34470d4494 improvement: make extension discovery faster 2024-04-21 11:16:33 -04:00
Zach Daniel
77ee3686eb improvement: helpful output in mix tasks helper 2024-04-16 17:37:15 +01:00
Zach Daniel
e1a0b48172 fix: pass name through to underlying tasks 2024-04-10 19:02:42 -04:00
Zach Daniel
2f28bd9ee7 chore: better use Ash.Resource options
chore: atom -> module
2024-04-09 22:55:26 -04:00
Zach Daniel
46ed97dd10 improvement: add ash.rollback mix task
chore: fix some naming/mix task steps
2024-04-09 20:24:08 -04:00
Zach Daniel
4f26773fe0 improvement: add ash.rollback task 2024-04-09 14:54:44 -04:00
Zach Daniel
5967ed3a48 improvement!: 3.0 (#955)
* improvement!: use `%Ash.NotSelected{}` for unselected values

* improvement!: default `require_atomic?` to `true`

* improvement!: raise errors on unknown generic action arguments

* improvement!: default bulk strategy to `:atomic`

* improvement!: warnings on `require_atomic?` `true` actions
improvement!: revise `Ash.NotSelected` to `Ash.NotLoaded`
improvement!: errors on unknown action inputs across the board

* doc: clarify wording in notifiers.md

closes #889

* improvement!: default `api.authorization.authorize` to `:by_default`

* improvement!: require the api when constructing changesets

this commit also fixes some work from prior commits around
the default value for the `authorize` option

* improvement!: code_interface.define_for -> code_interface.api

`code_interface.define_for` is now `code_interface.api`. Additionally, it is set automatically if the `api` option is specified on `use Ash.Resource`.

* improvement!: remove registries

* improvement!: pubsub notifier default to `previous_values?: false`
improvement!: requires_original_data? callback defaults to false

* improvement!: rename Ash.Calculation -> Ash.Resource.Calculation
improvement!: improve `Ash.Query.Calculation.new` signature
improvement!: anonymous function calculations now take lists and return lists
improvement!: make callback contexts into structs
improvement!: pass context to builtin lifecycle hook changes
improvement!: calculation arguments are now in the `arguments` key of the context

* chore: fix build

* improvement!: remove `aggregates` and `calculations` from `Filter.parse` and `Filter.parse_input`

* improvement: update spark to 2.0

* improvement!: make picosat_elixir optional with `simple_sat`

* improvement!: rename api to domain

* docs: add more info to upgrading guide

* docs: tweak docs formatting

* improvement!: remove `Ash.Changeset.new!`

* docs: update docs for `Ash.Changeset.new/1`

* improvement!: deprecate `private?: false` in favor of `public?: true`

* doc: add upgrade guide for private -> public

* improvement: update reactor to 3.0

* improvement!: default `default_accept` is now `[]`

* improvement!: `Ash.CiString.new/1` returns `nil` on `nil` input

* improvement!(Ash.Reactor): Improve integration with Ash 3.0 changes.

* improvement!: clean up and reorganize `Ash` functions

this is in preparation of deprecating the functions that are defined
on the api

improvement!: remove context-based functionality

* chore: update docs references from `Ash.Domain` to `Ash`

* chore: fix bad merge

* chore: fix context access in atomic changes

* improvement!: Deprecate calling functions on (domain) api in favor of `Ash`

* improvement!: add `attribute_public?` and update `attribute_writable?` behavior

* improvement!: update atomic behaviors, default to invalid

* chore: update downcase docs

* improvement!: changeset.filters -> changeset.filter

* improvement!: remove deprecated functions

* improvement!: remove and simplify `Ash.Filter.TemplateHelpers`

* improvement: import Ash.Expr in modules where it is used
improvement: require Ash.QUery in modules where it makes sense

* fix!: keyword lists are no longer special cased in ash expressions

* improvement: add structs for more context implementations

* chore: small tweaks, finish `:all` -> `:*` conversion

* chore: update DSL docs for multitenancy.global?

* improvement: ensure selects are applied on destroys
chore: remove TODOs

* chore: some docs changes

* improvement!: introduce strict mode to calculations

* chore: update tests

* improvement: support custom expressions

* docs: document custom expressions

* chore: fix and test custom expressions and function fragments
docs: update relevant docs w/ the changes

* improvement!: reverse order of before action & before transaction hooks

* improvement!: default read actions are now paginatable

* improvement!: require explicit accept lists in default actions

* chore: update docs

* improvement!: remove Ash.Flow and Ash.Engine

* chore: unlock unused deps

* chore: don't use unused variable

* chore: include ash flow change in upgrade guide

* improvement!: standardize various exception keys and names

* improvement!: use `Splode` for errors

* improvement: update upgrade guide to include Splode

* feat: code interface on the domain

* improvement: only require primary key if resource has actions or fields
improvement: only build schema if resource has actions or fields
improvement: verify primary key in its own verifier

* improvement: add `resource/1` builtin check

* improvement!: move simple_notifiers to an option instead of a DSL builder
improvement!: update spark for better autocomplete, configure autocomplete for key functions
docs: replace `an domain` with `a domain`

* improvement: better code interface documentation

* fix: set tenant on query so that root calles to Api.aggreagte work as expected (#929)

* chore: fixes from previous improvements

* chore: update splode

* chore: update splode

* improvement!: swap position of sort order and arguments in calculation sorting

* improvement!: add `include_nil?` aggregate option, and default it to `false`

* improvement: support notifiers within actions

* improvement: support specifying multiple filters

* improvement: add `sortable?` flags to all fields
improvement: support multiple filters on relationships

* improvement: support sensitive? on calculations and arguments

* improvement: validate resources in inputs to code interface

* chore: don't require explicit accept lists when using `default_accept :*`

* chore: update spark

* chore: update public attribute handling per 3.0

* improvement: update reactor and tests

* chore: better error message

* chore: fix rebase issue

* chore: handle merge issues
improvement: don't require domain on relationships if destination has domain

* improvement!: errors on unknown inputs for calculations

* improvement: always choose to cast atomic

* improvement: support casting some embeds atomically

* improvement: various 3.0 updates, documented in upgrade.md

* chore: Add failing tests for loads with with explicit domains. (#948)

Co-authored-by: James Harton <james@harton.nz>

* improvement: ensure non-static dynamic domains works

* improvement: add Ash.ToTenant protocol

* chore: add docs for no ToTenant option

* fix: properly construct new query in `build/3`

* chore: update simple_sat dependency

* chore: don't reselect when missing primary keys

* chore: remove IO.inspect

* chore: update spark

* chore: update spark

* improvement: use `Keyword.put_new` in `Ash.Context.to_opts` (#953)

* improvement: support bulk and atomic operations in code interfaces

---------

Co-authored-by: James Harton <james@harton.nz>
Co-authored-by: WIGGLES <55168935+WIGGLES-dev@users.noreply.github.com>
Co-authored-by: Dmitry Maganov <vonagam@gmail.com>
2024-03-27 16:31:59 -04:00
Zach Daniel
8df5d5fd92 improvement: don't require Mix to compile an Ash resource 2024-03-11 21:43:04 -04:00
Zach Daniel
072486bebd docs: revamp hexdocs
fix: use current read action for counting
2024-01-12 14:07:35 -05:00
Zach Daniel
af3d2b321d chore: use unused variable 2023-12-27 16:38:41 -05:00
Zach Daniel
26160e446b chore: require name for ash.codegen 2023-12-27 10:12:19 -05:00
Rebecca Le
ba6eb773b8
docs: Fill out shortdoc for generate_policy_charts mix task (#808)
This is the one-liner that is shown when running `mix help` to list tasks
2023-12-19 22:51:13 -05:00
Frédérick Capovilla
5fe3cdc26e
improvement: add "filename" parameter to the livebook generator. (#746) 2023-10-21 22:32: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
6e2d1fd0ac docs: greatly improved DSL documentation in hex 2023-09-13 22:17:18 -04:00
Zach Daniel
879b52b900 fix: compile before ash tasks 2023-09-04 13:38:27 -04:00