Node.js Client Library Release Notes

  • 3.5.0
    Release Date: July 19, 2018

    New Features

    • Support list/map nearest key/value get/remove operations (relative rank range). Requires server version v4.3.0 or later. #264
    • Support list write flags NO_FAIL and PARTIAL. Add new map write flags, including NO_FAIL and PARTIAL. Requires server version v4.3.0 or later. #265
    • Rewrote examples to use latest client APIs, ES2017 async functions, and reduce yargs boilerplate code #266

    Updates

  • 3.4.1
    Release Date: June 25, 2018

    Bug Fixes

    • Fix Set Order/Sort List operations broken on some platforms #261

  • 3.4.0
    Release Date: June 20, 2018

    New Features

    • Add CDT List operations for Ordered Lists #250
    • Support scan/query consistency validation using cluster key. Set failOnClusterChange to true in ScanPolicy/QueryPolicy to enable this validation. (Requires Aerospike Server v4.2 or later.) #260

    Updates

    • Update C client library to v4.3.13 #260
    • Change default log level from INFO to WARN; rename log level DETAIL to TRACE
    • Add support for Ubuntu 18.04
    • Remove support for Ubuntu 12.04

  • 3.3.0
    Release Date: April 30, 2018

    New Features

    • Support authentication mode (Config#authMode). When user authentication is enabled, the mode specifies internal server authentication or external (e.g. LDAP) authentication.
    • Support separate login timeout (Config#loginTimeoutMs) when authentication is enabled.
    • Support for Async Hooks in Node.js 9/10 #255

    Bug Fixes

    • Command queue tests fail if cluster address is specified using host/port cli options #247
    • Query fails if one or more cluster nodes do not have records in the set #253
    • TypeError: domain.enter is not a function using Node.js 9.6 or later in interactive mode #254

    Updates

    • Tests: Upgrade to Mocha v5, Choma v1.2 & replace expect.js with Chai
    • Update C client library to v4.3.11.

  • 3.2.0
    Release Date: February 8, 2018

    New Features

    • Support building package on Windows (64bit, Windows 7 or later) #239
    • Add new, optional command queue. If configurable limit of in-process commands is exceeded, additional commands are queued for later execution. #245
    • Added new `inDoubt` flag to `AerospikeError`. The `inDoubt` flag indicates if a write command may have completed even though an error was returned. This scenario can occur on a client timeout for a command that has been sent to the server. #242
    • Added a command reference to `AerospikeError` for the database command, during which the error occurred. The `Command` object may contain additional information such as the record key for single-record-key read/write commands. #242

    Bug Fixes

    • Avoid buffer overflows when copying bin/set/ns names. #241
    • Fix possible race condition in `indexRemove` test cases. #240

    Updates

    • Update C client library to v4.3.5.

  • 3.1.1
    Release Date: January 9, 2018

    Bug Fixes

    • Support all data types for write operation in Client#operate #235
    • Only setup cluster events callback on Client#connect #237

    Updates

    • Update C client library to v4.3.2.

  • 3.1.0
    Release Date: December 18, 2017

    New Features

    • Logging improvements: C client logs enabled by default; log level can be controlled through new, global log settings. PR #231
    • Support "exists" policy for operate command. PR #233
    • Support "linearize read" policy for Strong Consistency mode. (Requires Aerospike server v4.0.)

    Updates

    • Add support for Node.js v9.x
    • Update C client library to v4.3.1. PR #232
    • Update to C client's new package format.
    • Add support for Debian 9 ("Stretch")

  • 3.0.2
    Release Date: October 9, 2017

    Bug Fixes

    • Release event loop on #close even if client not connected #225

  • 3.0.1
    Release Date: October 6, 2017

    Bug Fixes

    • Fixed typo: Aerospike.ttl.DONT_UPDDATE #222
    • Return parameter error if ttl or gen meta-data values are invalid #223
    • Call Client#connect callback asynchronously #224

  • 3.0.0
    Release Date: October 3, 2017

    Highlights

    New Features

    • Support for Promises in addition to Callback functions PR #210
    • Support nobins flag on query operations
    • Support CDT List Increment operation. Requires Aerospike server version 3.15 or later.
    • Improved timeout handling and automatic transaction retries - see detailed API changes for more info.
    • Support gen policy for apply UDF operation.

    Bug Fixes

    • Fix memory leak in batchRead #213

    Updates

    • Requires Node.js v4.x (LTS) or later; Node.js v0.12.x and io.js are no longer supported PR #179
    • Update C client library to v4.2.0.
    • Changes to callback function signatures for several client operations. PR #210
    • Removal of several client functions, that were marked as deprecated under v2.x. PR #214
    • Policy rewrite and changes to how default client policies are configured. PR #221
    • Changes to shared memory layout and default shared memory key.

  • 2.7.2
    Release Date: August 3, 2017

    Bug Fixes

    • Close cluster event callback handle when client is closed #211

  • 2.7.1
    Release Date: July 24, 2017

    New Features

    • Add socket timeout setting to query policy #207

  • 2.7.0
    Release Date: July 17, 2017

    New Features

    • Client emits cluster state changed events #206

    Updates

    • Update C client library to v4.1.8.
    • Update packaging to include system Lua scripts in npm package #202

  • 2.6.0
    Release Date: May 25, 2017

    New Features

    • Expose new consistency level in batch policy #197
    • Add interface to dynamically add/remove seed hosts #194
    • New UDF register/unregister job to async wait for job completion #198
    • Improved Info.parse() function, replacing Info.parseInfo()

    Updates

    • Update C client library to v4.1.6.
    • The Client#udfRegisterWait and Info#parseInfo functions have been marked deprecated. See API Changes for details.

  • 2.5.2
    Release Date: April 21, 2017

    New Features

    • Capture more useful stacktraces for debugging #189

    Bug Fixes

    • Synchronous error callback in query command causes "unspecified" error in record stream #146
    • Query/scan record stream should emit AerospikeError instances #187

  • 2.5.1
    Release Date: April 11, 2017

    Bug Fixes

    • Support queries with keys with just namespace + digest #184

  • 2.5.0
    Release Date: April 5, 2017

    Highlights

    • v2.5 is the last release to support Node.js v0.12 and io.js. The next major client release will require Node.js v4 or later.

    New Features

    • Support ns/set truncate command #712
    • Support configurable scan socket write timeout #174

    Bug Fixes

    • Possible memory leak during batchRead - fix included in Aerospike C client v4.1.5 #167
    • Query/scan policy not getting applied on some operations #175

    Updates

    • Update C client library to v4.1.5.
    • Update npm install script to support additional Linux distros #166, #170
    • Update to JavaScript Standard Style v9 #178
    • Add WebWorker based test case to scan stress test #180

  • 2.4.4
    Release Date: December 19, 2016

    Bug Fixes

    • Fix TTL value returned from server for records that never expire. #156
    • Add type checks for record keys and raise error when float keys are used. #158

    Updates

    • Remove non-functional TLS support for now. #160
    • Mark LargeList functionality as deprectated. #159

  • 2.4.3
    Release Date: November 11, 2016

    Bug Fixes

    • Fix installation on macOS. #155 Thanks to @arch1t3ct!
    • Fix installation on platforms without `which` command.
    • Explicity link zlib to fix usage on Alpine Linux. #117 Thanks to @rma4ok!

  • 2.4.2
    Release Date: November 10, 2016

    New Features

    • Added constant enums `Aerospike.ttl` for "special" TTL values, incl. `DONT_UPDATE` value supported by Aerospike Server v3.10.1 and later.

    Bug Fixes

    • Security Fix: Download C client using HTTPS and verify package checksum. #153 Thanks to Adam Baldwin of @liftsecurity for the report!
    • Support for Ubuntu 16.10/17.04 in the C client download script. #154 Thanks to @kitex!

  • 2.4.1
    Release Date: October 10, 2016

    Bug Fixes

    Updates

    • Renamed Cluster ID to Cluster Name; Cluster Name verification requires Aerospike Server v3.10 or later.
    • Update C client library to v4.1.1.

  • 2.4.0
    Release Date: September 9, 2016

    New Features

    • Support for durable delete write policy [CLIENT-769]; requires Aerospike Server Enterprise Edition v3.10 or later.
    • Support IPv6 socket protocol; requires Aerospike Server v3.10 or later.
    • Support Cluster ID verification; requires Aerospike Server v3.10 or later.
    • Support new peers info protocol; requires Aerospike Server v3.10 or later.
    • New Client#infoAny command to send info request to single cluster node.

    Improvements

    • Add support for two new server error codes (23 & 24) introduced in Aerospike Server v3.9.1.
    • Regression: Skip LDT and CDT Map tests if server does not support the feature [CLIENT-753]

    Updates

    • Update C client library to v4.1.0.
    • Shared memory layout has changed in v4.1.0 of the C client library. See backward incompatible API changes for more details.
    • The retry policy value for read, write, remove and operate policies has been deprecated as it does not actually affect single key read/write commands, the batch read command or query/scan commands in client versions v2.x.

  • 2.3.1
    Release Date: August 11, 2016

    Bug Fixes

    • Fix installation on Amazon Linux. #143

  • 2.3.0
    Release Date: August 11, 2016

    New Features

    • Add Client#infoAll method to simplify processing info responses from multiple hosts. #43

    Improvements

    • Improved C-client resolution to avoid issues fetching C client artifact during npm package installation

    Bug Fixes

    • Add work-around for issues running client with Node's interactive debugger. #140
    • Support writing null values to delete bin using Client#operate. #142

    Updates

    • Update C client library to v4.0.7.
    • Drop support for Debian 6

  • 2.2.0
    Release Date: July 13, 2016

    Improvements

    • Add back support for applying stream UDF to query results w/o aggregation.
    • Add `maxConnsPerNode` config setting to address #130.

  • 2.1.1
    Release Date: June 29, 2016

    Bug Fixes

    • Prevent segfault processing query/scan record stream if client object goes out of scope. [CLIENT-735]
    • Update C client to v4.0.6 with fix to complete scan on empty sets. #132

  • 2.1.0
    Release Date: June 3, 2016

    Highlights

    • The `aerospike.operator` module has been split up into two seperate modules `aerospike.operations` and `aerospike.lists` for operations on scalar and list data types respectively. See detailed list of API changes for further details.

    New Features

    • Support for operations on Sorted Maps. Requires Aerospike server version 3.8.4 or later.

    Improvements

    • Key objects returned in callbacks now include the digest
    • Code cleanup to support standard@7.0.0 which adds several new rules
    • Documentation: Pulled client configuration out into a separate class and expanded the documentation.
    • Documentation: Documented `sharedMemory` configuration.
    • Documentation: Added tutorial for using Aerospike client in Node.js cluster setup.

    Bug Fixes

    • Fix compile time error with Node 0.12 using gcc 4.4. #131

  • 2.0.3
    Release Date: May 3, 2016

    Fixes

    • Event loop does not get released if module gets required but never used to open & close client connection. #124

  • 2.0.1
    Release Date: April 27, 2016

    Improvements

    • Optimize callback handler performance. #119
    • Removed some unused async C++ helper functions; minor code cleanup
    • Complete tests for writing bins with specific data types
    • Extend query/scan performance tests

    Fixes

    • Ensure callbacks are always called asynchronously, even for param errors raised by the client itself. #120

    • Minor JSDoc documentation fixes

  • 2.0.0
    Release Date: April 19, 2016

    Improvements

    • Performance: Use asynchronous client commands of the new Aerospike C/C++ client library version 4.0.
    • Follow Node.js error-first callback conventions: The client now returns `null` as the first parameter (`error`) in most callbacks when the command was executed successfully. See backward incompatible API changes for more details. #105, PR #106. Thanks to @eljefedelrodeodeljefe!
    • Added support for pluggable callback handler logic for backwards compatibility with legacy error callback semantics.
    • Added new `batchRead` command to support reading different namespaces/bins for each key in a batch. This method requires Aerospike server version >= 3.6.0. The batchGet/batchExists/batchSelect client commands deprecated but still supported for backwards compatibility.
    • Added support for creating secondary indexes on list and map values; requires Aerospike server version >= 3.8.0. [CLIENT-684]
    • Added new filter predicates in the `Aerospike.filter` module:|
      • contains() to match on list/map membership for integer & string values #74
      • geoWithinRadius() to match on geospatial locations within a given radius from another point (incl. geospatial locations in lists and maps)
      • geoContainsPoint() to match on geospatial regions that include given lng/lat coordinates (incl. geospatial regions in lists and maps)
      • geoContains() is deprecated and has been replaced by geoContainsGeoJSONPoint()
      • geoWithin() is deprecated and has been replaced by geoWithinGeoJSONRegion()
    • Added new Scan API implementation via `Client#scan`.
    • Added new Query API via `Client#query` with support for query aggregation using Stream UDFs as well as background queries using Record UDFs. #65
    • Added new `Job` class for querying the status of long running background tasks, incl. scans, queries and index creation.
    • Added `Key`, `Double` and `GeoJSON` classes replacing existing `aerospike.key()`, `aerospike.Double()` and `aerospike.GeoJSON()` functions.
    • Added `isConnected` client method to check cluster connection status. #108
    • Added `Aerospike.info` module with `parseInfo` utility method to parse info string returned by Aerospike cluster nodes using `Client#info` method.
    • Added missing status codes to `Aerospike.status`.
    • Added support for set compression threshold policy for write operations, retry policy for read operations, and ttl policy for apply operations.
    • Tests: Improvements to the client's mocha test suite, incl. performance improvements by re-using a single client connection for all tests.
    • Documentation: JSDoc-style annotations have been added throughout the library code and new API documentation is generated from the source code using JSDoc v3. The generated API docs are hosted at https://www.aerospike.com/apidocs/nodejs/.

    Fixes

    • Ensure callbacks are always called asynchronously, even for param errors raised by the client itself.

    • Fix possible memory corruption parsing UDF module or function names.

    • Node segfault when trying to query the aerospike client after closing the connection. #88

    Updates

    • Drop support for Node.js v0.10. The Aerospike Node.js client now requires Node.js v0.12 or later.
    • Several client commands have been renamed and the old method names have been deprecated; please refer to the full list of backward incompatible changes for details.

  • 1.0.57
    Release Date: March 18, 2016

    Improvements

    • Update build script to support Fedora 23 as well as Korora 22/23. #113, #115.
    • Update Aerospike C client library to v4.0.3.
    • Optionally read hosts config from `AEROSPIKE_HOSTS` environment variable. Thanks to @mrbar42!
    • Collect TPS stats in benchmarks.
    • Update Travis CI config to test latest Node.js release & add badge. Thanks to @revington!

    Fixes

    • Fix replica policy value overwriting gen policy (CLIENT-699).

    • Fix lists being returned as bytes in listGetRange/listPopRange operations (via C client library v4.0.3).

  • 1.0.56
    Release Date: February 11, 2016

    Improvements

    • Support operator.incr() operation on double values.
    • Refactor test suite to improve performance and maintainability.

    Bug Fixes

    • Fix segfault when client.connect() is called without callback function.

  • 1.0.55
    Release Date: January 15, 2016

    Improvements

    • Update to C Client v4.0.0.
    • Documentation updates. Thanks to @mrbar42!
    • Avoid polluting global namespace. Thanks to @mrbar42!
    • Use standard module to enforce coding style.
    • Add connTimeoutMs and tenderInterval client configs.

    Bug Fixes

    • Fix connection issues when using V8 profiler (node --prof)

  • 1.0.54
    Release Date: January 4, 2016

    New Features

    • Operations on list. For more information click here. Requires server version 3.7 or later.

    Improvements

    • Updated C client to version 3.1.25.
    • Enhanced benchmark to send alerts when memory leak occurs
    • Return client error if one or more of the operations passed to client.operate produces a type error
    • Specify license in npm package

    Bug Fixes

    • Minor fixes for examples

  • 1.0.53
    Release Date: November 2, 2015

    Bug Fixes

    • Updated Readme with supported node versions. Currently node versions above v0.10.31, v0.12.x, Iojs and v4.x are supported.
    • Fixed linter errors in examples.
    • Fixed a bug in the scan percentage.

  • 1.0.52
    Release Date: October 6, 2015

    New Features

    • Added support for GeoSpatial Index. Available in Server Version 3.7 and above.
    • Implemented indexCreateWait API.
    • Implemented udfRegisterWait API.

    Improvements

    • Updated C client to version 3.1.24.

    Bug Fixes

  • 1.0.51
    Release Date: September 30, 2015

    New Features

    • Added support for double datatype, introduced in server release 3.6.0.

    Improvements

    • Added support node v4.x.
    • Added Makefile to run Valgrind test.
    • Enhanced longevity suite for scan and query benchmarks.
    • Updated C Client dependency to version 3.1.22.
    • Added support for Fedora18 to Fedora22. Thanks @kaustavdm.

    Bug Fixes

    • Fixed a memory leak in the query search.
    • Changes to have uniform indentations.

  • 1.0.50
    Release Date: August 21, 2015

    Fixes

    • Fixed [Issue-#83]. Memory leak when executing secondary index query.

    • Throws an exception when query execution fails.

    • Throws an exception for unsuipported Query UDF API.

  • 1.0.49
    Release Date: August 13, 2015

    Fixes

    • Added support for Linux mint. Fixed [Issue-31], [PR-56].

    • Fixed a bug in supporting debian 8 platform. Fixed [Issue-72]. Thanks to @IncSW. [PR-73].

    • Changed the random generator seed from seconds to microseconds. [Issue-66]. Thanks @courtneycouch.

    • Enhanced benchmark to print configuration parameters for better readability and debugging.

    • Handle error cases by throwing exception instead of printing to console.

    • Fixed JSLint errors in library files. [PR-81]. Thanks @fed135.

  • 1.0.47
    Release Date: July 14, 2015

    Features

    • Enhanced benchmarks to print TPS and error statistics every second.

    • Enabled benchmarks to take ttl as an input parameter for write operations.

  • 1.0.44
    Release Date: June 30, 2015

    Features

    • Enable shared memory for Node.js client.

    Fixes

    • Fixed a bug specifying username and password options in examples, test cases and benchmarks.

  • 1.0.41
    Release Date: June 22, 2015

    Fixes

    • Fix for memory leak in the query execution code path.

    • Fix to handle error case when a bin name length exceeds 14 characters.

  • 1.0.40
    Release Date: May 28, 2015

    Features

    • Added support for centos 7 and ubuntu 15.

    • Enhanced examples, test cases and benchmarks to use username and password to run in secured clusters.

  • 1.0.39
    Release Date: May 11, 2015

    Features

    • Implemented Add, Append and Prepend API.

    Fixes

    • Throw exceptions when wrong arguments are passed for query object creation.

    • Minor documentation fixes in setting log levels for using optional parameters in API operations.

  • 1.0.38
    Release Date: May 3, 2015

    Features

    • Implemented BatchSelect API, to retrieve the selected bins in a batch operation.

    • Added simple put and get examples for better readability.

    • Added support for Debian 8.

    Fixes

    • Enhanced documentation about support for node v0.12*

    • Enhanced docs about g++ dependency.

    • Fix for the crash in query, when multiple query instances are running.

    • Fix to honor the policy values given in the global config object, if policy values are not passed for an individual operation.

  • 1.0.37
    Release Date: April 23, 2015

    Fixes

    • Fix memory leak resulted from integrating with NaN module.

    • Fix handling of undefined key values.

  • 1.0.36
    Release Date: April 9, 2015

    Features

    • Compatibility with both v0.12 and v0.10 versions of node.

    Fixes

    • When wrong parameters are passed in to create an aerospike client object, throw an exception.

    • Deprecate getCapacity and setCapacity of LList API.

  • 1.0.35
    Release Date: March 18, 2015

    Features

    • Security feature to login to a secure Aerospike Cluster.

    Fixes

    • Fix to handle 64-bit integers in range and equality integer queries.

    • Enhanced documentation about AEROSPIKE_LUA_PATH - to specify lua path for local resolution.

    • Fixed documentation errors in operate and batch APIs.

    • Now LDT test cases are skipped if LDT is not enabled in the given namespace.

  • 1.0.34
    Release Date: March 10, 2015

    Features

    • Large Data Type (LDT) released; all LLIST APIs are available with documentation, examples and test cases.

    • Updated the C client tag to use version 3.1.8.

    Fixes

    • Corrected documentation for the Query API.

    • Fixed query test failure to always initialize the info policy for sindex create.

  • 1.0.31
    Release Date: February 24, 2015

    Fixes

    • Fix for the broken scanBackground API.

    • Fix for check and set failure; added test case for check and set.

    • Fix for range value not being honored in range queries.

  • 1.0.30
    Release Date: February 19, 2015

    Features

    • Implemented consistency, commit and replica policies for all operations.

    Fixes

    • Improved error handling for scanAggregation API.

  • 1.0.29
    Release Date: February 15, 2015

    Fixes

    • Fix to handle the failure when parsing batch keys in batchGet API.

    • Updated the C client tag to use version 3.1.2. of the C client.

  • 1.0.28
    Release Date: February 9, 2015

    Features

    • Implemented scanAggregate API along with example, test cases and documentation.

    • Updated the Node.js implementation to use the latest C client API in order to be compatible with C API changes.

    • Updated the C client tag to 3.0.96 so that the Node.js API is compatible with the latest C client.

    Fixes

    • Fix to match the enum definitions in C and Node.js for index types.

    • Fixed buffer allocation for digest in key so that the Node.js application no longer crashes under a huge load.

  • 1.0.27
    Release Date: January 29, 2015

    Fixes

    • Tagging C client dependency to a specific version - not using the latest anymore.

    • Fail with an error when a Boolean data type is passed for bin value.

    • If a bin is undefined - fail it with error; do not delete the bin.

    • Fixes to handle null entry inside a map or list.

  • 1.0.26
    Release Date: January 6, 2015

    Features

    • Foreground Scan.

    • Background Scan with UDF.

    • Plain query with WHERE clause on secondary index.

    • Query with aggregation functionality.

  • 1.0.21
    Release Date: October 27, 2014

    Fixes

    • Ported as_policy related changes in C client.

    • Fix for memory leaks around as_bytes.

    • Fix for segfault when key object is NULL or key value is NULL.

  • 1.0.19
    Release Date: October 17, 2014

    Features

    • Switched from using Integer to Number when reading integers from the database.

    • Support for UDF execution.

  • 1.0.16
    Release Date: September 15, 2014

    Features

    • Added ability to register and remove UDF modules from database.

    • Added ability to execute UDFs in the database.

  • 1.0.15
    Release Date: August 14, 2014

    Fixes

    • Support for large Number values.

    • Return error when key is not of valid type.

    • Improved ability to resolve and download the C Client dependency.

  • 1.0.12
    Release Date: June 13, 2014

    Fixes

    • Added Support for Ubuntu 12.x to 14.x

    • Improved ability to resolve and download the C Client dependency.

    • Improved compatibility with latest C client.

  • 1.0.6
    Release Date: June 13, 2014

    Fixes

    • Fix for batch_get to handle List and maps datatypes

    • Remove build restriction on ubuntu 13.04 and 13.10

    • Fixing the compilation failure due to a missing comma in binding.gyp

  • 1.0.4
    Release Date: May 8, 2014

    Features

    • Enhancement to add complex data-type (list and map)

    • Mac OS support. Added 'darwin' to supported OS.

    • Added Amazon Linux compatibility.

    Fixes

    • Added support for 'null' in js record object value.

  • 1.0.0
    Release Date: February 11, 2014

    Features

    • Introduced Aerospike Node.js Client - Support for single record (eg, put(), get(), exist(), select(), remove()) calls. - Support for multiple record readers (eg, batch_get(), batch_exists()) calls. - Support for single record, multiple operations (eg, operate()) call.