Commit graph

1566 commits

Author SHA1 Message Date
Zach Daniel
7ea9b082f1 improvement: support all string constraints for ci_string 2021-01-21 15:25:07 -05: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
zimt28
2a7acffabb
Always validate constraints (#173) 2021-01-14 10:52:18 -05:00
Zach Daniel
13ca0b2976 chore: generalize DSL tooling 2021-01-14 01:17:26 -05:00
Zach Daniel
36749669ca chore: release version v1.28.1 2021-01-12 15:41:47 -05:00
zimt28
31cb4f4be3
improvement: Improve attribute defaults (#164) 2021-01-12 15:40:55 -05:00
Zach Daniel
f2650d6d48 chore: use uuid_primary_key in sort_test 2021-01-12 15:40:21 -05:00
Zach Daniel
ed76336bbf docs: add embedded resources guide and titles 2021-01-12 15:25:59 -05:00
Zach Daniel
f4af0568d8 chore: release version v1.28.0 2021-01-12 15:06:55 -05:00
Zach Daniel
6a26a583de
feat: Add Embedded Resources (#170) 2021-01-12 15:05:56 -05:00
zimt28
db6bdfcf15
improvement: Add built in decimal type (#162) 2021-01-09 11:58:52 -05:00
Zach Daniel
9fbce8e198 chore: fix git diff in mix.lock 2021-01-09 11:57:39 -05:00
Zach Daniel
b6b16fe789 chore: update decimal dependency 2021-01-09 11:48:03 -05:00
zimt28
4404da93ce
fix: Correct error message (#163) 2021-01-09 11:36:01 -05:00
Zach Daniel
9abdcc62c1 chore: update git_ops 2021-01-08 15:27:39 -05:00
Zach Daniel
a114cde317 chore: release version v1.27.1 2021-01-08 14:29:27 -05:00
Zach Daniel
dbf9f82802 improvement: add Ash.Sort.parse_input/2
fix: fix small sort bugs
2021-01-08 14:22:31 -05:00
Zach Daniel
9a9745be24 chore: update git_ops 2021-01-08 12:48:58 -05:00
Zach Daniel
fcbf6e2522 chore: add upgrade guide to 1.27.0+ 2021-01-08 12:22:53 -05:00
Zach Daniel
da78630b4b chore: release version v1.27.0 2021-01-08 12:16:13 -05:00
zimt28
72ba6c4742
improvement: Add built in usec datetime type (#160) (#161)
improvement!: Use usec timestamps by default
2021-01-08 12:12:37 -05:00
Zach Daniel
6f8fb80194 chore: release version v1.26.13 2021-01-08 02:58:23 -05:00
Zach Daniel
7ce72a7454 fix: only cast public relationships/attributes 2021-01-08 02:58:02 -05:00
Zach Daniel
17046a02a1 chore: update tests 2021-01-07 22:35:10 -05:00
Zach Daniel
dfdaf0d63b chore: release version v1.26.12 2021-01-07 22:31:12 -05:00
Zach Daniel
8ef272b1ca fix: allow_nil?: false for integer_primary_key 2021-01-07 22:30:41 -05:00
Zach Daniel
540878de23 chore: release version v1.26.11 2021-01-07 21:37:01 -05:00
Zach Daniel
424d020a7d improvement: add for_<action> helpers 2021-01-07 21:35:40 -05:00
Zach Daniel
479194e1bd chore: release version v1.26.10 2021-01-06 22:48:04 -05:00
Zach Daniel
9e5250a920 chore: test binary type 2021-01-06 22:46:53 -05:00
Darren Black
fb5cc74329
improvement: Add built in binary type (#156)
Co-authored-by: Darren Black <darren@ifixsystems.com.au>
2021-01-06 22:46:20 -05:00
Zach Daniel
d41a173241 chore: release version v1.26.9 2021-01-06 15:16:08 -05:00
Zach Daniel
109ed9b19c fix: the __resource__ change broke some extensions 2021-01-06 15:15:43 -05:00
Zach Daniel
fa360508ef chore: release version v1.26.8 2021-01-06 14:49:44 -05:00
Zach Daniel
6eebe33c29 fix: add back extensions/1 helper to resources 2021-01-06 14:49:30 -05:00
Zach Daniel
0a447e037c chore: release version v1.26.7 2021-01-06 14:40:53 -05:00
Zach Daniel
86236a5962 fix: lazy loaded module issues (e.g in iex) 2021-01-06 14:39:56 -05:00
Zach Daniel
a886fecfd6 improvement: optimize not-in and fix dialyzer 2020-12-31 18:39:15 -05:00
Zach Daniel
60e0dad7b6 improvement: rework filter creation + subset checking
This is one of the most complicated parts of Ash. In order to pass
a filter statement to the satisfiability solver that we use, we have
to first transpile a *value* statement into a *boolean* statement.
This means that we need to embed the knowledge of mutual exclusivity
wherever possible. Authorization still works if the system doesn't know
the relationship between two value statements, as it will attach
the authorization filters if its not sure. But having this in place
should represent a fairly significant optimization in many cases.

Additionally, filter creation has a set of optimizations around the
`eq` and `in` operators to combine them whlie building a boolean
statement
2020-12-31 18:39:15 -05:00
Alex Freska
1b4194a8a4
Updates to getting starting docs (#154) 2020-12-31 18:32:17 -05:00
Zach Daniel
d96f54b4c8 docs: format line breaks in bullet points 2020-12-30 17:11:23 -05:00
Zach Daniel
4342ff7fd2 chore: release version v1.26.6 2020-12-30 16:46:05 -05:00
Zach Daniel
9ebbb6e683 improvement: support autocompletion on Api funcs 2020-12-30 16:45:44 -05:00
Zach Daniel
b16cbf7303 fix: validate read action existence 2020-12-30 15:28:00 -05:00
Zach Daniel
250f51f14e chore: formatting 2020-12-30 12:53:24 -05:00
Zach Daniel
b7ffc5495f chore: release version v1.26.5 2020-12-30 11:56:32 -05:00
Zach Daniel
c0d191b130 chore: fix formatter 2020-12-30 11:56:22 -05:00
Zach Daniel
c1767e79b2 improvement: default actions 2020-12-30 11:55:40 -05:00
Zach Daniel
7518ec9eb4 chore: release version v1.26.4 2020-12-30 01:09:12 -05:00