- More integration tests
- createIndex, removeIndex
- Knex createCursor operators
$
- global pool handling
- soft delete
-
aggregate
action with params:type: "sum", "avg", "count", "min", "max"
&field: "price"
-
hidden: "inLists"
- using projections, get only required fields in adapters.
-
projection: []
for getter/setters
-
- wrap the args to obj in custom functions:
({ ctx, id, field })
- same for
get
- same for
- multiple get option for
get
in transform (same as populating to avoid hundreds sub-calls) - if
field.validate
is string, call the method by name- same for
get
- same for
set
- same for
- option to disable validators
opts.validation: false
- add
scope
param forremoveEntities
andupdateEntities
and pass to thefindEntities
call inside the method. - skipping softDelete in methods
opts.softDelete: false
to make real delete in maintenance processes - Add
events: false
to options to disable entity changed events. (e.g. whensoftDelete: false
we don't want to send event about changes)
- generate OpenAPI schema
-
introspect: true
- create REST API to get the field definitions, and actions with params
- Generate sample data based on fields with Fakerator.
username: { type: "string", fake: "entity.user.userName" }
- validate
raw: true
update fields ($set
,$inc
) - client-side (Vue) module which can communicate with service via REST or GraphQL.
- ad-hoc populate in find/list actions
populate: ["author", { key: "createdBy", action: "users.resolve", fields: ["name", "avatar"] }]
{ } - auto revision handling (
_rev: 1
). Autoincrement on every update/replace and always checks the rev value to avoid concurrent updating. - [ ]