Darren Black
f3b622744d
chore: Failing test for updating a relation in a change ( #258 )
2021-08-04 10:53:55 -04:00
Zach Daniel
8e11a63e83
fix: load belongs to relationships before managing them
2021-08-03 03:26:01 -04:00
Zach Daniel
288cf49153
fix: honor on_missing:
behavior for belongs_to relationships
2021-07-31 16:07:51 -04:00
Zach Daniel
13e06524a7
improvement: add belongs_to
attributes *after* the others
2021-07-26 20:55:44 -04:00
Zach Daniel
4ea0e62a79
chore: ensure compiled in a different place
...
chore: credo
2021-07-22 16:26:02 -04:00
Frank Dugan III
8ba1a9a4c8
feat(Ash.Resource.Info): add &public_field/2 helper ( #254 )
...
feat(Ash.Resource.Info): add &sortable?/3 helper
2021-07-22 16:23:54 -04:00
Zach Daniel
759ef25577
fix: rename conflicting test name
2021-07-22 13:36:59 -04:00
Zach Daniel
9477f0e82a
improvement: add {:arg, :name}
input for set_attribute
2021-06-25 13:51:17 -04:00
Zach Daniel
d45a9dbbfa
improvement: support calculation sorts
2021-06-05 18:11:09 -04:00
Zach Daniel
d247004610
feat: expression based calculations for filterable/sortable calculations
...
fix: aggregate authorization issues
improvement: tons of improvements across the board
2021-06-04 01:40:11 -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
kernel-io
35af220d9d
feat: add compare validator ( #242 )
...
Co-authored-by: David Culina <git@omnium.co>
2021-06-01 13:32:22 -04:00
Zach Daniel
d9debc07f1
fix: properly process managed belongs to relationships
2021-05-28 03:12:14 -04:00
Zach Daniel
4662c23f68
improvement: calculation.select/2 + select
calculation option
2021-05-20 16:42:26 -04:00
Zach Daniel
dd40b24bf9
improvement: transactions for reads, notifications from read callbacks
2021-05-14 11:25:42 -04:00
Zach Daniel
69afdfce25
improvement: utility manage_relationship_source
context
2021-05-10 18:03:36 -04:00
Frank Dugan III
a796e0d308
refactor: remove references to "side loading" ( #236 )
2021-05-09 17:24:48 -04:00
Zach Daniel
097447bf38
fix: run action changes on destroy
...
test: test manual actions
fix: pattern match manage_relationship notifications fix
2021-05-09 16:56:44 -04:00
Zach Daniel
1412052ff6
improvement: fix data-based side loads
2021-05-07 11:57:59 -04:00
Zach Daniel
f8604717bd
fix: limit 1 on to one side load queries
2021-05-07 01:07:01 -04:00
Zach Daniel
46fb08f085
improvement: support sorted relationships
2021-05-07 00:28:51 -04:00
Zach Daniel
593b111069
improvement: add read_action
option
...
feat: rework lateral joins for many to many performance boost
2021-05-03 16:21:29 -04:00
Zach Daniel
3de71bc7f1
chore: fix test + compile
2021-04-28 17:43:02 -04:00
Zach Daniel
9da95e6d75
improvement: support relationship filters
2021-04-28 17:39:30 -04:00
Zach Daniel
9df3803492
fix: don't include NotLoaded
in manage_relationship
2021-04-25 18:35:19 -04:00
Zach Daniel
53ceb5b753
fix: compile time fixes
...
improvement: add `require_attributes` to create/update/destroy
2021-04-23 11:41:13 -04:00
Zach Daniel
143557e55c
chore: fix lint
2021-04-22 12:03:18 -04:00
Zach Daniel
dd82fcc53b
improvement: add first class support for enum types
2021-04-21 13:32:25 -04:00
Jason Axelson
f6fa5a98dd
improvement: Add detailed parameter checking for Api read functions ( #229 )
2021-04-18 19:45:38 -04:00
Jason Axelson
a4262965ea
chore: Enable Credo's Readability.StrictModuleLayout ( #228 )
...
Enforce layout of module parts
2021-04-18 19:41:49 -04:00
Zach Daniel
a6b880ce86
fix: handle no key provided to NotFound
...
chore: add tests for `get!`
2021-04-14 14:18:05 -04:00
Zach Daniel
e353ea49c3
fix: allow api.load/2 to load calculations
...
improvement: add `allow_nil_input` to create actions for api layers
improvement: add `load/1` builtin change
feat: change `get?: true` interface functions to raise on `nil`
2021-04-13 15:49:42 -04:00
Michael St Clair
6805d431ac
improvement: add sum aggregate ( #221 )
2021-04-04 16:00:53 -04:00
Zach Daniel
d6ee71ce53
feat: support Ash.Query.distinct/2
...
feat: add `build/2` query preparation
fix: manage_relationships *before* after_action callbacks
2021-03-31 17:13:20 -04:00
Zach Daniel
29b2c821fe
fix: don't overwrite managed belongs_to
relationships
2021-03-29 14:48:42 -04:00
Zach Daniel
11d658d077
fix: fix required relationships and add test
2021-03-28 13:44:21 -04:00
Zach Daniel
2f9fafcbc7
feat: add manage relationship types
...
improvement: don't accept relationships on actions anymore
improvement: require arguments
This probably broke a lot of people's setups, but it was a
necessary change. Better to get this stuff out while we're
still beta
2021-03-25 11:33:32 -04:00
Zach Daniel
4e8bd5bfbc
fix: exception on invalid query arguments
2021-03-21 14:19:45 -04:00
Zach Daniel
b98650aeb7
fix: avoid exception in Changeset.new/2
for bad attribute
2021-03-20 17:16:57 -04:00
Zach Daniel
a1c5f1d06f
fix: validate required attributes *after* before_action hooks
2021-03-16 23:09:36 -04:00
Zach Daniel
f6026c6895
fix: allow_nil?: false + default interaction
2021-03-14 23:06:18 -04:00
Zach Daniel
db47a15cf7
fix: properly validate allow_nil?: false
on update
...
fix: properly validate `allow_nil?: false` private attributes
2021-03-13 09:25:13 -05:00
Zach Daniel
72b5a57a25
feat: functional interface on the Api module
...
feat: resource aliases
improvement: require completely unique action names
2021-03-08 00:59:32 -05:00
Zach Daniel
e90fdad34a
feat: support Ash.Query.select/3
and Ash.Changeset.select/3
2021-03-07 14:09:51 -05:00
Zach Daniel
c2cb843be9
improvement: ignore destination field on some relationship inputs
2021-03-05 10:39:06 -05:00
Zach Daniel
e60e5bf281
fix: treat empty string as nil
in manage_relationship
...
fix: be more conservative (and more correct) when optimizing predicates
2021-02-24 11:13:35 -05:00
zimt28
e10b273ce4
Ecto.UUID -> Ash.UUID ( #188 )
2021-02-23 12:27:49 -05:00
Zach Daniel
d42c778a0d
improvement: many compile time fixes via code splitting
...
feat: refactored manage_relationship options/behavior
2021-02-22 20:44:03 -05:00
zimt28
db533450ed
improvement: Guess destination_field for has many relationships ( #187 )
2021-02-15 13:32:44 -05:00
Darren Black
983a711837
improvement: Implement string length validation ( #183 )
...
Co-authored-by: Darren Black <darren@ifixsystems.com.au>
2021-02-08 18:16:32 -05:00
Zach Daniel
03b6714e6f
improvement: set_context change/preparation
...
fix: support `manage_relationship` for `belongs_to`
2021-02-05 18:56:56 -05:00
Zach Daniel
142b3bf7f9
feat: add default_context
...
feat: add `manage_relationship/4`
feat: add relationship specific context (for postgres polymorphism)
feat: add `reject` (opposite of `accept`)
improvement: set `accept` by default
2021-02-04 17:15:15 -05:00
Zach Daniel
dd26beb79b
chore: add more authorization tests
...
chore: improve authorization test helper
improvement: support `{:filter, _}` authorization results for changesets
2021-01-28 14:49:08 -05:00
Zach Daniel
8e74ff62a6
fix: remove invalid boolean expression optimization
...
improvement: make form errors work better with phoenix
this involves temporarily making embed error messages *worse*
but we can improve them as we get more usage
2021-01-24 13:47:10 -05:00
Zach Daniel
61e6b7c80c
fix: various ci_string improvements
...
feat: add `contains/2` query function
2021-01-23 22:28:56 -05:00
Zach Daniel
bb91fd4bc7
fix: add action filters in for_read/3
...
fix: don't let local runner processes mix up messages
fix: runtime filter filters properly
2021-01-22 16:41:32 -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
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
6a26a583de
feat: Add Embedded Resources ( #170 )
2021-01-12 15:05:56 -05:00
zimt28
4404da93ce
fix: Correct error message ( #163 )
2021-01-09 11:36:01 -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
17046a02a1
chore: update tests
2021-01-07 22:35:10 -05:00
Zach Daniel
424d020a7d
improvement: add for_<action>
helpers
2021-01-07 21:35:40 -05:00
Zach Daniel
9e5250a920
chore: test binary type
2021-01-06 22:46:53 -05:00
Zach Daniel
250f51f14e
chore: formatting
2020-12-30 12:53:24 -05:00
Zach Daniel
c1767e79b2
improvement: default actions
2020-12-30 11:55:40 -05:00
Zach Daniel
dcbbd21f0c
improvement: add parse_input/3
to Ash.Filter
2020-12-30 00:49:32 -05:00
Zach Daniel
d600c55509
feat: support :first
aggregate ( #153 )
...
feat: support more sort orders
2020-12-28 19:18:01 -05:00
Zach Daniel
abff2e4b39
docs: update generated documentation to be single file
2020-12-26 23:54:36 -05:00
Zach Daniel
281fced422
fix: uuid/id pkeys should allow_nil
2020-12-26 18:30:51 -05:00
Zach Daniel
2c585d28a4
fix: fix filtering for ets + mnesia data layers
2020-12-23 14:16:23 -05:00
Zach Daniel
2b500071f3
improvement: support confirming arguments, test allow_nil?
2020-12-01 22:50:43 -05:00
Zach Daniel
0abf03065a
feat: support arguments for actions
2020-12-01 22:09:37 -05:00
Zach Daniel
c6ea07896b
test: various testing improvements
2020-12-01 00:51:24 -05:00
Zach Daniel
0e3333c05f
chore: update tests
2020-11-30 23:23:34 -05:00
Zach Daniel
7c977d10c5
chore: update calculation tests
2020-11-30 23:18:39 -05:00
Kyle Nguyen
0f47d808e3
fix: do not require private attributes in create api ( #143 )
2020-11-08 11:49:03 -05:00
Zach Daniel
c493c1616b
feat: add uuid_primary_key/2 and integer_primary_key/2
2020-11-07 00:31:13 -05:00
Kyle Nguyen
c732099240
feat: Add property: private? for attributes, relationships, aggregates, and calculations ( #140 )
2020-11-02 15:33:14 -05:00
Zach Daniel
2333d01ddf
feat: multitenancy! and tons of various fixes ( #139 )
2020-10-28 01:14:17 -04:00
Zach Daniel
1bf2058233
fix: various fixes and improvements
2020-10-20 18:50:11 -04:00
A.shalaby
9020d3b36d
feat: Optimize relashionship records replacement ( #135 )
...
Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2020-10-19 19:10:05 -04:00
Zach Daniel
b0bfec7e0f
feat: pubsub notifier ( #134 )
2020-10-17 13:06:27 -04:00
Zach Daniel
eb25d5b826
feat: add notifiers ( #133 )
2020-10-15 00:54:02 -04:00
Digit
78861b6a51
feat: Add :one_of
constraint to the Atom type ( #130 )
2020-10-13 10:29:57 -04:00
Zach Daniel
f8fadc67e6
feat: Add pagination ( #131 )
2020-10-11 23:55:47 -04:00
Zach Daniel
d928ca5f6e
feat: expression based filter
2020-10-08 01:22:55 -04:00
Zach Daniel
0c216c284d
Module updates ( #129 )
2020-10-07 01:17:17 -04:00
Zach Daniel
114e64f8b4
feat: filter rewrite to op/function/ref based structure
2020-10-06 00:58:06 -04:00
WolfDan
1d6066f247
fix: add module name to errors ( #127 )
2020-10-05 10:40:22 -04:00
A.shalaby
a2f5db08f4
fix: Fix composite key in changeset functions ( #125 )
...
Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2020-10-03 02:37:17 -04:00
A.shalaby
0f805803e1
test: add changeset_test ( #123 )
...
Co-authored-by: Zach Daniel <zachary.s.daniel@gmail.com>
2020-10-02 14:48:49 -04:00
mario
6d719516c2
feat: added description for missing resources ( #117 )
2020-09-25 08:20:58 -04:00
Zach Daniel
12891c3f38
test: add basic tests for resource entities
2020-09-23 21:26:16 -04:00
Zach Daniel
f41cc77549
Various Improvements ( #113 )
2020-09-19 15:46:34 -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
243c9f05a2
feat: required belongs_to relationships ( #107 )
...
fix: various delegate data layer improvements
fix: engine halting issues
feat: support filter templates on read actions
feat: builtin concat calculation
2020-09-01 23:34:55 -04:00
Zach Daniel
9a3962d47a
feat: add changes to actions ( #106 )
2020-08-30 03:15:16 -04:00