Changelog
[7.7.0] - 2022-01-26
Unicode names are now automatically NFC normalized
This change affects all database, collection, graph, view and analyzer names
using unicode characters. The change has no effect when using non-unicode
(ASCII) names. At this time, ArangoDB does not support unicode characters
in any of these names but experimental support for unicode database names is
available in ArangoDB 3.9 using the --database.extended-names-databases
startup option.
Any names used to create Database
, Collection
, etc instances or passed to
methods will automatically be NFC normalized. Additionally the collection
name part of any value passed as a DocumentSelector
and the collection name
part of values returned by collection.documentId
will automatically be NFC
normalized.
Deprecated EnsureHashIndexOptions
and EnsureSkiplistIndexOptions
types
The hash and skiplist index types have been deprecated in ArangoDB 3.9 and should be replaced with persistent indexes which behave identically.
Deprecated all MMFiles related options and methods
The MMFiles storage engine was removed in ArangoDB 3.7.
Added support for new ArangoDB 3.9 CollationAnalyzer
and
SegmentationAnalyzer
types
Added support for new ArangoDB 3.9 (multi-dimensional) ZkdIndex
type
Added support for new ArangoDB 3.9 Hybrid SmartGraphs graph options
Added support for new ArangoDB 3.9 response queue time reporting
This adds the db.queueTime
property, which provides methods for accessing
queue time metrics reported by the most recently received server responses if
the server supports this feature.
Added ArangoSearchViewLink#inBackground
(#759)
Added collection.compact
(#630)
Changelog
[7.6.0] - 2021-10-20
Added collection.documents
for fetching multiple documents
Added support for fillBlockCache
query option
Added support for passing Graph
objects in AQL queries (#740)
This also adds the isArangoGraph
helper function for type checking.
Added User Management API (#664)
This implements the endpoints of the HTTP Interface for User Management
Changelog
[7.5.0] - 2021-04-22
Added support for new ArangoDB 3.8 Analyzer types
This adds the PipelineAnalyzer
, AqlAnalyzer
, GeoJsonAnalyzer
,
GeoPointAnalyzer
and StopwordsAnalyzer
types in TypeScript, as well as
the Analyzer-specific properties types.
Added support for new ArangoDB 3.8 estimates
option for indexes
This affects the PersistentIndex
, HashIndex
and SkiplistIndex
types
in TypeScript.
Changelog
[7.4.0] - 2021-04-09
Implemented toJSON
methods for ArangoError
and HttpError
(#632)
This prevents an error where JSON.stringify
would reliably throw if passed
an instance of either of these error types generated by arangojs. Note that
you may still want to implement your own JSON representation logic as system
errors (e.g. ECONNREFUSED
) are not wrapped by arangojs and thrown as-is.
Stack traces are now improved for most errors when using precaptureStackTraces
(#722)
Previously this option would only affect network errors, making it far less
useful than intended. Now parsing errors, ArangoError
instances and HTTP
errors also receive improved error stack traces when this option is enabled.
Improved performance for precaptureStackTraces
when no errors occur
The generated stack is now only accessed on demand, allowing the runtime to delay generation of the stack trace string. Previously the stack would always be accessed prior to the request being sent, causing a noticeable delay even when no error occurs.
Fixed document selector validation in collection.edges
and its variants (#704)
These methods previously only permitted start vertices that are documents within the edge collection itself. This behavior has now been corrected to permit start vertices outside the collection, as expected.
Changelog
[7.3.0] - 2021-03-08
Changed the default for agentOptions.scheduling
to "lifo"
This is already the default in Node v15.6 but can reduce latency caused by sockets expiring, especially with larger connection pools and infrequent requests.
Removed keepAlive
-specific throughput optimization
Previously arangojs would allow agentOptions.maxSockets * 2
concurrent
requests, to optimize socket reuse by avoiding idle time. This behavior
could trigger deadlocks when attempting to perform multiple transactions
in parallel and only marginally improved throughput in some high-load
scenarios. The connection pool size now always reflects the value set in
agentOptions.maxSockets
regardless of whether keepAlive
is enabled.
Changed agentOptions.maxSockets
default value when using ROUND_ROBIN
As the connection pool is shared across all server connections when using
ROUND_ROBIN
load balancing, the default value of 3
is too limiting for
most scenarios involving multiple coordinators. When passing multiple URLs
via the url
option and specifying ROUND_ROBIN
load balancing, arangojs
will now default this value to url.length * 3
instead.
Changelog
[7.2.0] - 2020-12-02
Added db.waitForPropagation
method
This method helps with setting up databases in a cluster scenario by waiting for a request to succeed on every known coordinator.
Changelog
[7.1.1] - 2020-11-30
This is a maintenance release and contains no bugfixes or features.