Commit graph

599 commits

Author SHA1 Message Date
Zach Daniel
1f53644070 fix: ensure query in ensure_selected 2021-06-29 12:16:11 -04:00
Zach Daniel
414119116a chore: fix warnings/compiler errors 2021-06-28 13:27:31 -04:00
Zach Daniel
602ba78e9c fix: handle sorting empty data properly
fix: manage ets tables properly

for context, we had a problem where `RequestHandlers`
would live forever, but were tiny. A change to the internal
engine caused request handlers to be less tiny, which exposed
the process leak. When we fixed the process leak, it became apparent
that the ets table creation was incorrect, as the owning process for
a non-private table could be the request handler, meaning it was
transient. We solve this by having a `TableManager` for each resource/
tenant combo, which owns the ets table in question
2021-06-28 13:20:37 -04:00
Zach Daniel
294480ee34 fix: link request handler to engine and runner, solve mem leak 2021-06-28 12:05:03 -04:00
Zach Daniel
ad0af9831c improvement: if "" fails to cast, cast it as nil instead
improvement: ReadActionRequiresActor error
improvement: `ensure_selected` change
2021-06-28 01:33:31 -04:00
Zach Daniel
ff0de75138 improvement: don't perform match on nil 2021-06-27 13:29:36 -04:00
Zach Daniel
9477f0e82a improvement: add {:arg, :name} input for set_attribute 2021-06-25 13:51:17 -04:00
Zach Daniel
69967099e3 fix: ensure ci_strings casted after constraints 2021-06-25 13:41:05 -04:00
Zach Daniel
01abe80a04 improvement: revamp ci_string
previously, ci_string would downcase all input/output automatically,
throwing away the "representation" of the original input. Now, that
is an option provided as a constraint, for example:

`attribute :email, :ci_string, constraints: [casing: :lower]`
or
`attribute :serial, :ci_string, constraints: [casing: :upper]`

All comparison logic remains the same, so the only thing that is affected
is the `to_string(value)` logic, which now returns based on the configured casing.
By default its just the value, but with `lower`/`upper` it will downcase/upcase the
value accordingly.
2021-06-25 13:19:14 -04:00
Zach Daniel
cb315db44d fix: Revert "more optimized types"
This reverts commit 3d7f3db85d.
2021-06-24 18:25:24 -04:00
Zach Daniel
21e52bebbd Revert "chore: fix compiling embedded types (why??)"
This reverts commit d7ef5efbb2.
2021-06-24 18:19:46 -04:00
Zach Daniel
28a4429b9e Revert "fix: don't call type() on :string"
This reverts commit 27c8bcb5bc.
2021-06-24 18:19:45 -04:00
Zach Daniel
e64d0a9791 Revert "improvement: add Ash.Type.type/1"
This reverts commit a0f6cd9219.
2021-06-24 18:19:43 -04:00
Zach Daniel
a0f6cd9219 improvement: add Ash.Type.type/1 2021-06-24 17:51:56 -04:00
Zach Daniel
27c8bcb5bc fix: don't call type() on :string 2021-06-24 16:42:03 -04:00
Zach Daniel
d7ef5efbb2 chore: fix compiling embedded types (why??) 2021-06-24 16:33:38 -04:00
Zach Daniel
3d7f3db85d improvement: more optimized types 2021-06-24 16:05:50 -04:00
Zach Daniel
114de0af4e fix: optimize ash type loading 2021-06-24 01:11:54 -04:00
Zach Daniel
dc56376d80 improvement: add error_handler for create/update/destroy actions 2021-06-23 17:19:59 -04:00
Zach Daniel
b9db67e47e fix: pass opts through to Jason.Encode.string/2 2021-06-23 12:51:47 -04:00
Zach Daniel
a484006596 fix: properly encode ci string to json 2021-06-23 12:50:13 -04:00
Zach Daniel
8f84d5b4d4 improvement: more engine logging 2021-06-23 12:11:14 -04:00
Zach Daniel
13981d5aa0 fix: :infinity on engine genserver calls 2021-06-22 13:57:56 -04:00
Zach Daniel
786047c3e7 fix: hide __metadata__ field on inspect
fix: load relationships required for calculations (optimize later)
2021-06-08 16:37:47 -04:00
Zach Daniel
a0b0e633d5 fix: don't halt on request handler failure
fix: properly error when more than 2 requests of the same type are primary
fix: properly process sort when the sort is an atom
fix: properly calculate reverse relationship paths
2021-06-08 14:42:17 -04:00
Zach Daniel
d45a9dbbfa improvement: support calculation sorts 2021-06-05 18:11:09 -04:00
Zach Daniel
30af25ba74 fix: always wait on the engine if it hasn't completed 2021-06-05 02:42:40 -04:00
Zach Daniel
3f1f31694d fix: always wait for engine
improvement: spawn async requests where possible
2021-06-04 18:32:08 -04:00
Zach Daniel
9719d0dce5 fix: constraints on calculations
fix: better calculation inspect
fix: allow supplying stacktraces when building errors
2021-06-04 14:33:22 -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
Darren Black
42cc8b9711
docs: Minor documentation tweaks (#246) 2021-06-02 10:38:15 -04:00
kernel-io
dd1474a4f6
improvement: Update remaining builtin validators (#244)
Co-authored-by: David Culina <git@omnium.co>
2021-06-01 20:57:13 -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
kernel-io
42895c50f7
fix: ensure create functions generated by code_interface accept tenant in the opts list (#243) 2021-05-31 18:34:54 -04:00
Zach Daniel
d9debc07f1 fix: properly process managed belongs to relationships 2021-05-28 03:12:14 -04:00
Zach Daniel
f895f3ddd8 fix: cast nil -> {:ok, nil} in all cases 2021-05-28 01:47:38 -04:00
kernel-io
0fbf7eab6a
fix: set tenant even on non-tenant resources where relevant (#241) 2021-05-27 02:22:24 -04:00
Zach Daniel
86f6719390 improvement: define embedded schemas where appropriate 2021-05-22 23:48:10 -04:00
Zach Daniel
4662c23f68 improvement: calculation.select/2 + select calculation option 2021-05-20 16:42:26 -04:00
Zach Daniel
584d628047 fix: run after_action hooks in the proper order
improvement: add `validate_destination_field?`
improvement: add builtin `select` change
2021-05-20 12:17:56 -04:00
Zach Daniel
d87969ad1b improvement: set moduledoc to description if one is not set
chore: fix some dialyzer typing issues
2021-05-20 01:36:45 -04:00
Zach Daniel
41aaeeed47 fix: fix dialyzer errors for enum + code interface 2021-05-19 01:32:06 -04:00
Zach Daniel
4b028cbf53 chore: lint/build/compiler issues 2021-05-18 23:12:49 -04:00
Zach Daniel
2406732811 fix: fix code interface + args combo error
improvement: support specifying the `upsert_identity` option
2021-05-18 23:05:31 -04:00
Zach Daniel
013b49c2b2 fix: ignore?: true still accumulates changes
fix: properly require_attributes before setting defaults
2021-05-18 01:44:10 -04:00
Zach Daniel
820020d4e5 improvement: ignore? option for manage_relationship change
fix: set default values before calling resource changes
2021-05-18 00:02:11 -04:00
Zach Daniel
d2e5c06511 fix: reverse-reverse relationship detection 2021-05-17 15:06:49 -04:00
Zach Daniel
de684a27a8 fix: support non-predicates in satsolver 2021-05-16 21:59:06 -04:00
Zach Daniel
50eb787410 improvement: expose default_value/1 in aggregate 2021-05-15 11:56:23 -04:00