Commit graph

312 commits

Author SHA1 Message Date
Zach Daniel
897308ba3a
improvement: update docs to new links formats for ash_hq (#483) 2023-01-18 00:34:20 -05:00
Zach Daniel
d471a94ccc fix: properly set the context option on changesets
docs: add section on `Ash.CodeInterface.define_interface/2`
improvement: add `action_is/1` builtin validation
2023-01-12 09:18:49 -05:00
Zach Daniel
70bc983b17 improvement: add Api.calculate/3 and define_calculation code interface builder 2023-01-08 23:39:12 -05:00
Zach Daniel
e804566cbf improvement: rename this to parent for clarity 2023-01-05 12:25:55 -05:00
Zach Daniel
c962bc7aa7 feat: add this/1 for use inside exists/2 (and other places eventually)
fix: various fixes to expression syntax
2023-01-04 12:17:40 -05:00
Zach Daniel
c32d3cc49a improvement: warn on potentially incompatible relationship attributes
improvement: add `default_belongs_to_type` configuration
2023-01-03 10:52:19 -05:00
Maxim Martynov
7841075f35
improvement: Add Ash.Error.Invalid.TenantRequired error (#471) 2022-12-29 23:05:41 -05:00
Mariusz Morawski
70b6a52b08
docs: Fix wrong policy explanation module in docs. (#465) 2022-12-20 03:19:01 -05:00
Justin Lane
f882889751
docs: Update Code Interface Doc (#461) 2022-12-15 21:47:32 -05:00
Zach Daniel
96409416cf improvement: more dependable notifications, support custom notifications better 2022-12-09 22:55:51 -05:00
Zach Daniel
85bd66ba4a docs: more updates to policies guide 2022-11-23 03:40:14 -05:00
Zach Daniel
2f3fcbad13 improvement: optimize various solver boolean optimizations
improvement: more comprehensively remove unnecessary clauses
fix: resolve issue with `authorize_unless` and filter checks
improvement: prevent changing attributes and arguments after action validation

We allow for these changes inside of `before_action` calls, but otherwise
require that `force_change_attribute` is used, for example. This prevents
accidentally validating a changeset and then changing an attribute.
2022-11-23 03:39:00 -05:00
Zach Daniel
3e5b0a8096 fix: fix typespec for Api.Info.trace_name/3
docs: add context to monitoring guide
2022-11-22 13:24:16 -05:00
Zach Daniel
d16b7057a3 improvement: better check module validation
docs: add more context to security and policy guides
2022-11-21 00:29:45 -05:00
Zach Daniel
2ef7bc6273 docs: improve policy writing guide
improvement: add default description for filter checks
2022-11-17 01:33:38 -05:00
Rebecca Le
91bb426e7e
fix: Add missing [:ash, :query] telemetry (#451) 2022-11-16 11:41:52 -05:00
Zach Daniel
2cf18e6a3a
docs: proper link to ash postgres multitenancy guide 2022-11-13 11:49:04 -05:00
Josh Price
d1821a8ef7
docs: review guides and docs (#430) 2022-11-03 00:03:43 -07:00
Zach Daniel
6994295a8f fix: properly upsert all explicitly changed fields
fix: traverse maps for `template_references_actor?/1`
docs: various doc fixes
2022-10-31 11:33:51 -04:00
Zach Daniel
8cbd766172 feat: support anonymous functions in DSL
improvement: add more ergonomic manual action definitions.

The old method will likely be deprecated some time in the future (there is no rush really, they both work).
2022-10-30 21:00:57 -04:00
Zach Daniel
e52d7187d8 improvement: more additions to the resource builder, update spark
test: add a test for loading many to many relationships on code interface actions
2022-10-28 10:18:01 -05:00
Zach Daniel
39ea911d33 docs: various guide/documentation updates 2022-10-25 23:17:49 -05:00
Zach Daniel
6e43784535 docs: update docs, add some context, remove dead link 2022-10-25 09:11:54 -06:00
Zach Daniel
57466b3498 docs: remove outdated statement about calculations being limited 2022-10-19 22:17:44 -04:00
Zach Daniel
37074207d8 docs: update actions guide 2022-10-18 17:32:50 -05:00
Zach Daniel
4915e5d583 improvement: add now() to expression syntax 2022-10-18 14:19:28 -05:00
Zach Daniel
6751afc683 improvement: support depending on requests that will be added
docs: improve flow docs

closes: #418
improvement: support dynamic action steps in `Ash.Flow`
2022-10-16 14:07:57 -05:00
Zach Daniel
652342c41d docs: remove the word simply from the docs 2022-10-15 10:16:38 -05:00
George Rodrigues
1f685a1413
docs: fix typos (#402) 2022-10-04 16:01:42 -04:00
Zach Daniel
4b79365d39 docs: add phoenix topic
docs: add to contributing guide
2022-10-03 16:35:02 -04:00
Darren Black
2eda90c0ee
docs: Missing calculation type in doco (#391) 2022-09-29 01:29:25 -04:00
Zach Daniel
24bdf9058e improvement: catch more cases in preflight authorization checks 2022-09-27 14:58:48 -04:00
Zach Daniel
a48ee94f89 docs: update actions guide 2022-09-27 14:08:29 -04:00
Zach Daniel
fe596db0b8 improvement: reselect any necessary fields when loading calcs
docs: tons of new documentation
improvement: set context when creating related filters allowing checks like `filtering_on`
2022-09-25 23:58:05 -04:00
Zach Daniel
5994c1b51f chore: fix dialyzer, add embedded resources guide back 2022-09-21 12:20:00 -04:00
Zach Daniel
87f20369bc improvement: deprecate :replace in favor of :relate_and_unrelate 2022-09-19 15:44:06 -04:00
Darren Black
a572099e24
improvement: Implement length function (#379) 2022-09-14 13:28:42 -04:00
Darren Black
424d87a73a
docs: Little typo in documentation (#377) 2022-09-12 09:48:26 -04:00
Zach Daniel
5c81d2b4a7 fix: properly do pagination
docs: fix some docs, add some guides
2022-09-11 22:19:37 -04:00
Zach Daniel
3644d05cd6 Revert "improvement: make two queries for full keyset pagination support"
This reverts commit 64b3312cb9.
2022-09-11 18:35:02 -04:00
Zach Daniel
64b3312cb9 improvement: make two queries for full keyset pagination support
docs: add store context in process guide
2022-09-11 16:07:21 -04:00
Zach Daniel
ac60cda9ac docs: add docs for all builtins 2022-09-07 15:03:09 -04:00
Zach Daniel
0368c1a8da fix: error fetching relationships in filter expressions
docs: more docs on upgrade/policies guide
2022-09-07 12:53:29 -04:00
Zach Daniel
12c46a8da9 fix: filter check typespecs
docs: add docs on `expr/1` policies and using `exists/2`
2022-09-06 22:38:56 -04:00
Zach Daniel
c9d65384e5 docs: update docs & changelog 2022-09-06 22:28:50 -04:00
Zach Daniel
619adcee93 improvement: add exists/2 expression 2022-09-06 18:02:01 -04:00
Zach Daniel
9ac4eafb87 fix: the semantics of forbid_unless were not wrong
docs: remove some formatting
2022-09-04 00:53:52 -06:00
Zach Daniel
31d1d925ef fix: forbid_unless expression compilation
docs: add some more expression template docs
fix: fix runtime filter join simulation for multiple rows
2022-09-03 21:34:55 -06:00
Zach Daniel
c380cc1a14 docs: sanitize things for docs 2022-08-30 16:45:55 -06:00
Zach Daniel
1ff91f303d improvement: update ash docs 2022-08-30 12:27:03 -06:00
Zach Daniel
696f7ca82a fix: small fix to get_path
improvement: support `read_action` in embeddable types, and optimize loading
docs: more documentation
2022-08-30 11:18:10 -06:00
Zach Daniel
834d99c57e fix: runtime filter checking is unknown for non-selected values
docs: tons of work on docs/guides
2022-08-30 02:22:15 -06:00
Zach Daniel
89c7f15b85 fix: always select always_select? fields
improvement: add `private?/0` callback to functions
docs: reword some docs
2022-08-29 08:54:11 -06:00
Zach Daniel
7930e3efa1 fix: don't fail to build Phoenix.Socket.Broadcast 2022-08-29 08:05:12 -06:00
Zach Daniel
d0c28ec215 docs: add example create action 2022-08-28 22:50:06 -06:00
Zach Daniel
6c40747320 improvement: options for prepending/appending hooks
docs: guides improvements
2022-08-28 19:27:44 -06:00
Zach Daniel
4ef843622d docs: work on guides 2022-08-28 19:27:44 -06:00
Zach Daniel
1bb3468851 improvement: add tracing and telemetry 2022-08-28 19:27:44 -06:00
Zach Daniel
e37f62284b chore: update doc links 2022-08-28 19:27:44 -06:00
Zach Daniel
400b148dfb docs: more work on guides 2022-08-28 19:27:44 -06:00
Zach Daniel
6825968ddf docs: add aggregates doc 2022-08-28 19:27:44 -06:00
Zach Daniel
0b3424d79c improvement: more guides 2022-08-28 19:27:44 -06:00
Zach Daniel
d7a9ff7996 improvement: move docs out of priv, update spark 2022-08-28 19:27:44 -06:00
Zach Daniel
46a6bb407d chore: docs in priv/ 2022-07-10 16:06:22 -04:00
Zach Daniel
0b158ca487 docs: work on DSL documentation 2022-07-10 15:05:09 -04:00
Zach Daniel
8fed3ef702 chore: add dev utilities guide 2022-07-05 14:19:06 -04:00
Zach Daniel
0d9f075c0d fix: ensure type is always set on attributes
docs: add more policy docs
2022-06-28 15:16:29 -04:00
Zach Daniel
7ba4668992 chore: create overview file 2022-06-05 14:59:34 -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
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
kernel-io
f6214042b8
documentation: fix compile_times.md (#284) 2021-12-11 12:32:17 -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
f124e9bf7c fix: cast nil input on strings
docs: add line on multitenancy
2021-11-11 14:27:57 -05:00
Zach Daniel
82562929c0 docs: fix docs on registry 2021-11-10 01:24:52 -05:00
Zach Daniel
9df690bfa4 docs: add docs around improving compile times 2021-11-03 17:29:24 -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
b2ae6dc3ea fix: flush engine state always 2021-07-23 09:45:47 -04:00
Zach Daniel
579c83e20c fix: disallow aggregate/calculation sorting w/ keyset pagination
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.
2021-07-22 12:47:43 -04:00
Zach Daniel
8a2f431d52 docs: add guide to index 2021-07-01 22:55:07 -04:00
Zach Daniel
3aa6b6f49f docs: document expressions 2021-07-01 22:07:31 -04:00
Zach Daniel
231eeafd30 feat: expression calculations for sorting/filtering
improvement: small improvements/fixes across the board
2021-06-04 01:37:11 -04:00
Zach Daniel
968e234a31 improvement: set __source__ context for embeds 2021-05-11 00:28:26 -04:00
Vitor Oliveira
cc45207aa0
docs: Minor doc changes (#224) 2021-04-10 17:36:40 -04:00
Zach Daniel
8316fa466a chore: update docs 2021-04-05 13:46:37 -04:00
Zach Daniel
f454f98f3f docs: add docs on managing relationships 2021-04-05 13:45:39 -04:00
Jason Axelson
fc705ad0a5
Documentation improvements and labeled examples (#216)
Improve documentation for calculations
Add ability to "label" examples by passing a tuple instead of just a string.
Fix some minor typos
2021-03-31 16:24:06 -04:00
Jason Axelson
be56174a3d
docs: Fix some documentation warnings (#196)
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.
2021-03-14 17:27:12 -04:00
Jason Axelson
3ba6b593b1
docs: Updates to the docs with a focus on the getting started docs (#195) 2021-03-14 17:14:53 -04:00
Zach Daniel
f6f5d194bf feat: freeform expressions
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`
2021-01-21 15:22:50 -05:00
zimt28
6ddae6850f
improvement: Add trim/allow_empty to string type (#171) 2021-01-15 20:41:21 -05:00
Zach Daniel
6a26a583de
feat: Add Embedded Resources (#170) 2021-01-12 15:05:56 -05:00
Zach Daniel
abff2e4b39 docs: update generated documentation to be single file 2020-12-26 23:54:36 -05:00
Zach Daniel
4b6a157f88 docs: update identities documentation 2020-11-18 02:10:17 -05:00
Zach Daniel
46efda4db4
improvement: support specifying that some options are modules 2020-10-29 00:14:01 -04:00
Zach Daniel
2333d01ddf
feat: multitenancy! and tons of various fixes (#139) 2020-10-28 01:14:17 -04:00
Zach Daniel
59063ff928
chore: docs + def -> defp 2020-10-17 13:35:09 -04:00
Zach Daniel
ca8b0d1ac3
docs: add dsl extension docs link 2020-10-15 00:56:26 -04:00
Zach Daniel
eb25d5b826
feat: add notifiers (#133) 2020-10-15 00:54:02 -04:00
Zach Daniel
c7fd192716
docs: add link to pagination article 2020-10-12 02:48:20 -04:00
Zach Daniel
f8fadc67e6
feat: Add pagination (#131) 2020-10-11 23:55:47 -04:00
Zach Daniel
114e64f8b4
feat: filter rewrite to op/function/ref based structure 2020-10-06 00:58:06 -04:00
Zach Daniel
657dd4bfc2
docs: write up some engine docs 2020-09-25 00:36:50 -04:00
Zach Daniel
d10ae9bad1
docs: update query/authorization docs 2020-09-22 10:51:15 -04:00
Zach Daniel
5552ce1f83
fix: remove delegate data layer (#112)
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)
2020-09-06 01:16:21 -04:00
Zach Daniel
9d4fc1e2a0
docs: finish docs on calculations 2020-08-25 01:10:17 -04:00
Zach Daniel
2ef877ee53
feat: initial calculation support (#98)
* feat: initial calculation support
2020-08-25 00:49:07 -04:00
Zach Daniel
a56fdbb3ff
feat: Add delegate datalayer (#97) 2020-08-22 18:44:05 -04:00
Zach Daniel
b7073e3098
chore: update docs on aggregates 2020-08-10 03:51:28 -04:00
Zach Daniel
e303afc0d6
docs: write error handling guide 2020-07-15 21:17:57 -04:00
Zach Daniel
28982f03fd
feat: various small refactors + validations 2020-07-15 01:38:42 -04:00