Releases: AEB-labs/cruddl
Releases · AEB-labs/cruddl
2.3.0
- Feature: Add consolidationIntervalMsec to ArangoSearchConfiguration (#210)
- Feature: Add @FlexSearch(caseSensitive) (#215)
- Improvement: Make flexSearchFulltext language optional and use EN as default (#212)
- Improvement: Add option to reduce TTL limit in case of resource problems
- Improvement: FlexSearch: add postFilter field and deprecate filter field (#216)
- Improvment: Skip tokenization if there are no expressions
- Bugfix: Fix using keywords as identifiers
- Bugfix: Never update confirmed billing entities
2.2.0
- Feature: Add
modelOptions.useSourceDirectoriesAsNamespaces
project option to disable namespaces and allow slashes in file names without special semantics - Feature: Ad subscription to meta schema (just emits the schema once - but if you switch out the schema on model change, you get an effective subscription)
- Improvement: Run
UniqueEnumValueNamesRule
validation rule on project sources - Improvement: Warn about lowercase enum values (they violate the style guide)
- Bugfix: Reject invalid enum values
true
,false
, andnull
(they would otherwise error on schema creation)
2.1.0
- Feature: Support
__typename
inSchemaExecutor
- Feature: Add scalar type
Int53
for 53-bit integers (the safe-integer range of JavaScript) - Feature: Add scalar types
Decimal1
,Decimal2
, andDecimal3
with a range from -1 000 000 000 to 1 000 000 000 that round to 1, 2, or 3, respectively, decimal digits. - Feature: Add support for
@relation(onDelete: RESTRICT / CASCADE)
- Bugfix: Fix filtering by
id
with flexSearch - Bugfix: Fix
lt
/lte
/gt
/gte
filters withnull
filter value in flexSearch - Bugfix: Fix
flexSearchExpression
and flexSearch_contains_prefix
filters with a non-empty string but no tokens (e.g.-
)
2.0.0
- Breaking Change: Remove support for Arango 3.2, 3.3, 3.4, and 3.5 (ArangoDB 3.6 or 3.7 required now)
- Breaking Change: Remove support for graphq-js 14 (graphql-js 15 required now)
- Breaking Change: Remove support for node < 12 (node 12 or node 14 required now)
- Breaking Change: Remove
enableExperimentalProjectionIndirection
- Feature: Implement
@root
and@parent
on fields in child entity and entity extension types that automatically link back to the embedding type.@root
can be used in combination with a@collect
field that crossed root-entity boundaries - Feature:
@key
can be used on enum-typed fields - Improvement: Add random component to retry delay for conflict retries to reduce likelihood of repeated synchronous retries
- Improvement: Perform migrations idempotently
- Bugfix: Fix
_some
filters onI18nString
/StringMap
with null values
1.0.6
1.0.3
1.0.2
1.0.1
Breaking Changes
- Single-root-entity fields (e.g.
Hero
) now treat arguments with the valuenull
as if they have not omitted. This allows you to write a single query that can fetch root entity by ID or by key, depending on which variable is set. This however also means that it is an error to get a root entity with id / keynull
(previously, it returnednull
if no such root entity was found).
Features
- Added
@collect
fields to traverse relations and other fields, accumulate objects and aggregate values (see docs). - Added
@reference(keyField: "...")
so that the raw value of a reference field can be retrieved (see docs). - Added an
ProjectOptions.processErrors
to convert (and/or log) errors.
Improvements
Project.createSchema()
(and some of its siblings) throw the typedInvalidProjectError
if there are validation errors- Expected runtime errors like permission denied throw typed
RuntimeError
which has acode
property
Bugfixes
- Fixed error message if argument was missing in single-root-entitiy-field (was [object object]).
- Fixed errors that occured during an explain call not being properly processed
What about 1.0.0?
There is no 1.0.0 because I messed up and published an empty package for [email protected] a year ago.
0.8.1
0.8.0
- Addition: Added
_like
filter for strings which is case-insensitive and uses an index when possible - Addtion: Added
first
argument to meta queries (to improve performance by limiting the count) - Addition: Added
sparse
argument to index definitions (defaults totrue
for unique indices and tofalse
for non-unique indices) - Addition: Added an API to run queries directly through cruddl, without the GraphQL engine (still experimental)
- Addition: Profiling information (timings and detailed execution plans) of queries can be retrieved via
ProjectOptions.profileConsumer
- Addition: The ArangoJS configuration can be passed in ArangoDBConfig.arangoDBConfig`
- Addition: Added
queryMemoryLimit
toArangoDBConfig
- Addition: Added
cancellationToken
andtransactionTimeoutMs
to cancel running queries - Addition: Added
retriesOnConflict
to automatically retry on write-write conflicts - Addition:
collectionSize
is reported by migrations to create/delete indices - Improvement: Added more GraphQL descriptions for filters
- Improvement: cruddl now works with eval disallowed by CSP
- Performance: Optimized hot paths in query tree generation
- Performance: Disabled AQL indentation by default
- Performance: Removing edges uses the edge index properly
- Performance: Enable index usage for
_some
filters - Performance: Cursor-based pagination can use multi-field indices better
- Performance: Indices are no longer automatically suffixed with
id
- Performance: Implemented projection indirection to reduce memory usage with sort in large collections (opt-in)
- Performance: Simplified generated AQL code to speed up the ArangoDB query optimization phase
- Fix:
deleteAll
with filter on a relation deleted only the relations and not the objects - Fix: Nested entity extensions behaved like value objects
- Fix: Fix error when project contained namespaces without root entities
- Testing: cruddl is now tested with ArangoDB 3.2, 3.3 and 3.4 in the travis build