Node.js Client Library Release Notes

  • 5.11.0
    Release Date: February 16, 2024

    New Features

    • [CLIENT-2770] - Added support for persistent list indexes.
    • [CLIENT-2774] - Added 'ttl' property to 'batchWrite' policy.
    • [CLIENT-2793] - Added support for the batchParentWrite policy in the client config policy.
    • [CLIENT-2795] - Added the 'create' method for the 'aerospike/list' module.

    Bug Fixes

    • [CLIENT-2773] - Added missing error codes to status.js.
    • [CLIENT-2794] - Fixed typescript compiler errors.
    • [CLIENT-2781] - Batch repeat flag is no longer set on batch writes when the 'sendKey' policy is true.

  • 5.10.0
    Release Date: January 16, 2024

    New Features

    • [CLIENT-2672] - Added support for MacOS 14.
    • [CLIENT-2751] - Added support for Node.js 21.

    Bug Fixes

    • [CLIENT-2599] - Added documentation to avoid build issues on Windows with Python 3.12.
    • [CLIENT-2709] - The C Client submodule now marks node’s partitions for retry on the next scan/query page when a node returns records that are discarded due to exceeding maxRecords.
    • [CLIENT-2749] - Added missing BOOL enumeration to Aerospike.exp.type. In scan/query with maxRecords set, mark node's partitions for retry on next scan/query page when that node returns records that are discarded due to exceeding maxRecords.
    • [CLIENT-2750] - Changed npm-run-all from a dev-dependency to a dependency.

  • 5.9.0
    Release Date: November 7, 2023

    Breaking Changes

    • [CLIENT-2659] - Dropped support for Debian 10.
    • [CLIENT-2660] - Dropped support for CentOS 7.
    • [CLIENT-2661] - Dropped support for Red Hat Enterprise Linux 7.
    • [CLIENT-2662] - Dropped support for Oracle Linux 7.
    • [CLIENT-2663] - Dropped support for Amazon Linux 2.
    • [CLIENT-2668] - Dropped support for macOS 11.

    New Features

    • [CLIENT-2095] - The Aerospike client can now be installed using “npm install aerospike” on windows.
    • [CLIENT-2572] - Added exp.recordSize expression.
    • [CLIENT-2587] - Added Client.createBlobIndex.
    • [CLIENT-2587] - Added indexDatatype.BLOB.
    • [CLIENT-2615] - Added exp.expWriteFlags and exp.expReadFlags.
    • [CLIENT-2617] - Added map.create method with parameter to create a persistent map index.
    • [CLIENT-2669] - Added config.errorRateWindow and config.maxErrorRate.
      • [CLIENT-1421] - maxErrorRate and errorRateWindow can be adjusted to modify the circuit breaker pattern implemented by the C client.

    Improvements

    • [CLIENT-2671] - Updated batch examples on the Node.js Client API docs page.

    Bug Fixes

    • [CLIENT-2629] - Fixed bug in which some batch methods returned an AEROSPIKE_BATCH_FAILED error rather than records with detailed status codes.
    • [CLIENT-2670] - Fixed bug in which config.tenderInterval was not being applied.

  • 5.8.0
    Release Date: September 28, 2023

    Breaking Changes

    • [CLIENT-2517] - Dropped support for Node.js 19.
    • [CLIENT-2581] - Dropped support for Node.js 16.

    New Features

    • [CLIENT-1983] - Added support for the javascript “Map” class as a bin value in client.put method and maps.putItems method.
    • [CLIENT-1983] - Added the Bin class for use in the client.put method.
    • [CLIENT-2378] - Added exp.inf and exp.wildcard expressions.
    • [CLIENT-2488] - Added a “returnType” parameter to map expression remove methods. Acceptable “returnType” values are maps.returnType.INVERTED and maps.returnType.NONE.

    Improvements

    • [CLIENT-1601] - Switched API docs theme to docdash.
    • [CLIENT-2374] - Restored typescript support.

    Bug Fixes

    • [CLIENT-2538] - Fixed bug in which list expression remove methods and map expression remove methods resulted in a segmentation fault.

  • 5.7.0
    Release Date: August 16, 2023

    New Features

    • [CLIENT-630] - Added the following role-based access control (RBAC) security features:
      • Modules
        • Aerospike.Client.admin
        • Aerospike.Client.privilegeCode
      • Classes
        • Aerospike.Client.admin.User
        • Aerospike.Client.admin.Role
        • Aerospike.Client.admin.Privilege
        • Aerospike.Client.adminPolicy
      • Methods
        • Aerospike.Client.changePassword
        • Aerospike.Client.createUser
        • Aerospike.Client.createRole
        • Aerospike.Client.dropRole
        • Aerospike.Client.dropUser
        • Aerospike.Client.grantPrivileges
        • Aerospike.Client.grantRoles
        • Aerospike.Client.queryRole
        • Aerospike.Client.queryRoles
        • Aerospike.Client.queryUser
        • Aerospike.Client.queryUsers
        • Aerospike.Client.revokePrivileges
        • Aerospike.Client.revokeRoles
        • Aerospike.Client.setQuotas
        • Aerospike.Client.setWhitelist
    • [CLIENT-1303] - Added the ‘TTL' property to the query and scan classes. Note: records will only have their ‘TTL’ value set if query.operate or scan.operate is called when the ‘TTL’ property is set.
    • [CLIENT-2393] - Added support for Debian 12.

    Improvements

    • [CLIENT-2350] - Initialized values depended on by conditional jumps.
    • [CLIENT-2466] - Added additional input validation.

    Bug Fixes

    • [CLIENT-2463] - Paginated queries without a filter specified will no longer throw a TypeError for reading an undefined value.

    Updates

    • The typescript description file 'index.d.ts' has not been updated. The next release will update 'index.d.ts' and restore typescript support.

  • 5.6.0
    Release Date: June 21, 2023

    New Features

    • [CLIENT-1803] - Added support for creation of a secondary index on elements within a Collection Data Type.
    • [CLIENT-1990] - Added support for Collection Data Type (CDT) Context Base64 serialization.
    • [CLIENT-2085] - Added support for rack aware queries and scans.
    • [CLIENT-2347] - Added the 'replica' property to the QueryPolicy and ScanPolicy Classes.
    • [CLIENT-2348] - Added filter support for secondary indices on elements within a Collection Data Type.

    Improvements

    • [CLIENT-1823] - Changed the example and parameters in the API Documentation for Client.batchApply.
    • [CLIENT-2345] - Improved Client.indexRemove unit test by verifying deletion with a query.
    • [CLIENT-2373] - Modified Query.where() to replace the current filter rather than add a filter to Query.filters.
    • [CLIENT-2376] - Removed dynamic linking to OpenSSL.

  • 5.5.0
    Release Date: May 24, 2023
    • Added support for:
      • Node.js 20
    • Dropped support for:
      • Node.js 14

    New Features

    • [CLIENT-2108] - Added pagination support for queries and scans. Requires Aerospike Server version 6.0 or above.
    • [CLIENT-2224] - Added support for rack aware reads when the replication factor is three.
    • [CLIENT-2303] - Added support for Amazon Linux 2023.

    Improvements

    • [CLIENT-2337] - Fixed expression API documentation to show parameters for functions.

    Bug Fixes

    • [CLIENT-2338] - Fixed issue which caused the configuration class property "rackId" to be ignored.

  • 5.4.0
    Release Date: March 31, 2023
    • The new features require Aerospike Server version 6.3 or newer.

    Breaking Changes

    • Dropped support for:
      • Debian 10 (ARM64 only).
      • Ubuntu 18.04

    New Features

    • [CLIENT-2178] - Added ORDERED_MAP and UNORDERED_MAP map operation return types.
    • [CLIENT-2187] - Added comparison of map values using expressions.

  • 5.3.0
    Release Date: March 28, 2023

    New Features

    • [CLIENT-1750] - Added 'returnType.EXISTS' for 'aerospike/maps' and 'aerospike/list' module read operations. This feature requires server version 6.1+.
    • [CLIENT-1818] - Added the 'getByKeyList' method 'aerospike/maps' module.
    • [CLIENT-2210] - Added the 'getByValueList' method 'aerospike/maps' module.

    Improvements

    • [CLIENT-1819] - Corrected 'Client.batchApply' to have a keys parameter rather than a records parameter.

    Bug Fixes

    • [CLIENT-2231] - Fixed segmentation fault caused by using context with map and list expressions. Added unit tests for map and list expressions using context. Fixed parameter order for map and list expression methods.

  • 5.2.2
    Release Date: February 17, 2023

    Improvements

    • [CLIENT-2202] - Corrected default values for MaxConnsPerNode, maxSocketIdle, and totalTimeout policies within the API documentation.

    Bug Fixes

    • [CLIENT-2195] - Reworked batch write to accommodate promises and callbacks. Batch write will no longer return "AEROSPIKE_BATCH_FAILED" as an error, and will instead return results with status codes detailing the status of each batch operation.

  • 5.2.1
    Release Date: February 7, 2023

    New Features

    • [CLIENT-1248] - AddListIndexCreate and AddMapKeyCreate added to cdt_context.js.

    Improvements

    • [CLIENT-2011] - Batch writes now returns the results of transactions ending in the AEROSPIKE_BATCH_FAILED status as well as the status of each record.
    • [CLIENT-2150] - Reduced install size from 500MB to 166MB.

    Bug Fixes

    • [CLIENT-2167] - Fixed broken API documentation links.
    • [CLIENT-2168] - Added missing methods from operations classes.

  • 5.2.0
    Release Date: December 12, 2022
    • Added support for:
      • Node.js 19
      • Ubuntu 22.04
      • RHEL 9
    • Dropped support for:
      • Node.js 10, 12, 17
      • RHEL 7
      • Debian 8, 9

    New Features

    • [CLIENT-2000] - Added ARM architecture support for all currently supported OS systems.

    Updates

    • BREAKING: Client does not support Node.js LTS version 14 on macOS using ARM architecture - see Incompatible API Changes for details.

  • 5.1.1
    Release Date: November 15, 2022

    Improvements

    • [CLIENT-1944] - Node.js: Revamped existing API documentation.
    • [CLIENT-1943] - Node.js: Added documentation for list, map, hll, and bit expressions.
    • [CLIENT-1942] - Node.js: Improved examples within the API documentation.

  • 5.0.3
    Release Date: July 14, 2022
    • Debian 9 Stretch LTS has reached its End of Life on June 30 2022. We will drop support for Debian 9 in an upcoming client release.

    Bug Fixes

    • [CLIENT-1778] Node.js: document client support for PKI auth.
    • [CLIENT-1762] Add Node.js client TypeScript support.

  • 5.0.2
    Release Date: June 10, 2022

    Bug Fixes

    • [CLIENT-1745] Fixed build error identified in Alpine 3.15 and Node.js 17.9.
    • [CLIENT-1746] Fixed aerospike/batchType module documentation.

  • 5.0.1
    Release Date: May 25, 2022

    Bug Fixes

    • [CLIENT-1743] - Node.js mac client exits on first database operation. (4.00+)
    • [CLIENT-1734] - Node.js client: Typescript file missing in npm package version 4.0.2.

  • 5.0.0
    Release Date: May 1, 2022
    • The new features require Aerospike Server version 6.0 or newer.

    New Features

    • [CLIENT-1629] - Node.js: Support for Debian 11.
    • [CLIENT-1713] - Node.js: Support batch apply command.
    • [CLIENT-1712] - Node.js: Support batch remove operations.
    • [CLIENT-1711] - Node.js: Support batch write operations.
    • [CLIENT-1715] - Node.js: Support query partition.
    • [CLIENT-1714] - Node.js: Support scan partition.

    Improvements

    • [CLIENT-1404] - Node.js: Use the new C client ability to sort maps client-side ahead of operations.

    Updates

    • BREAKING: Remove deprecated PredicateExpression filtering which has been replaced by new Filter Expressions.
    • npm registry includes images for nodejs v17.8.0 and v18.0.0.

  • 4.0.5
    Release Date: July 14, 2022

    Bug Fixes

    • [CLIENT-1778] Node.js: document client support for PKI auth.
    • [CLIENT-1762] Add Node.js client TypeScript support.

  • 4.0.4
    Release Date: June 10, 2022

    Bug Fixes

    • [CLIENT-1745] Fixed build error identified in Alpine 3.15 and Node.js 17.9.

  • 4.0.3
    Release Date: May 25, 2022

    Bug Fixes

    • [CLIENT-1743] - Node.js mac client exits on first database operation. (4.00+)
    • [CLIENT-1734] - Node.js client: Typescript file missing in npm package version 4.0.2.

  • 4.0.2
    Release Date: April 29, 2022

    New Features

    • [CLIENT-1629] - Node.js: Support for Debian 11.

    Improvements

    • [CLIENT-1404] - Node.js: Use the new C client ability to sort maps client-side ahead of operations.

    Bug Fixes

    • [CLIENT-1718] - Support failOnClusterChange for query policy.

    Updates

    • npm registry includes images for nodejs v17.8.0 and v18.0.0.

  • 4.0.1
    Release Date: April 13, 2022

    Improvements

    • [CLIENT-1703] - Update API Documentation with new Filter Expressions, that have replaced the deprecated PredicateExpression filtering.

  • 4.0.0
    Release Date: March 14, 2022

    New Features

    • [CLIENT-1678] - Support boolean particle type. This feature requires Aerospike server version 5.6+. #428
    • [CLIENT-1679] - Add support for Aerospike Expressions.

    Updates

    • BREAKING: This client requires server version 4.9 or later.
    • BREAKING: Drop support for Node.js 8.
    • BREAKING: Remove support for CentOS 6 as well as Ubuntu 16.04.
    • BREAKING: Remove Scan#priority, Scan#percent, and ScanPolicy#failOnClusterChange, as the server no longer supports these fields.
    • Add support for building c-client as a sub-module.

  • 3.16.7
    Release Date: January 10, 2022

    Bug Fixes

    • [CLIENT-1641] - Unprocessed results sent to a different transaction on "Partition unavailable”.
      • Continue processing scans when "partition unavailable" errors occur. "partition unavailable" is not a fatal error for partition scans and the server will continue sending back results for other partitions. Previous clients aborted the scan and put the connection back into the pool which might cause unprocessed results to be sent to a different transaction.

    Updates

    • Update C client library to v4.6.24.

  • 3.16.6
    Release Date: July 13, 2021
    • A bug affecting this version of the Node.js client has been identified.
      • If your application uses scans, we strongly recommend that you upgrade to Node.js client 3.16.7 at the earliest opportunity.

    Bug Fixes

    • Client does not start with "minConnsPerNode" option. #419

    Updates

    • Update C client library to v4.6.23.

  • 3.16.5
    Release Date: April 14, 2021
    • A bug affecting this version of the Node.js client has been identified.
      • If your application uses scans, we strongly recommend that you upgrade to Node.js client 3.16.7 at the earliest opportunity.

    Bug Fixes

    • [CLIENT-1498] - Support infoTimeout on QueryPolicy. The timeout is used when failOnClusterChange is true and an info validation command is sent before/after the query. #412

    Updates

    • Update C client library to v4.6.21.

  • 3.16.4
    Release Date: February 21, 2021
    • A bug affecting this version of the Node.js client has been identified.
      • If your application uses scans, we strongly recommend that you upgrade to Node.js client 3.16.7 at the earliest opportunity.

    Bug Fixes

    • [CLIENT-1453] - Client release v3.16.3 fails to install on Amazon Linux. #403

  • 3.16.3
    Release Date: February 9, 2021
    • A bug affecting this version of the Node.js client has been identified.
      • If your application uses scans, we strongly recommend that you upgrade to Node.js client 3.16.7 at the earliest opportunity.

    Bug Fixes

    • [CLIENT-1441] - Support boolean values in Map/List bins. #401

    Updates

  • 3.16.2
    Release Date: December 4, 2020
    • A bug affecting this version of the Node.js client has been identified.
      • If your application uses scans, we strongly recommend that you upgrade to Node.js client 3.16.7 at the earliest opportunity.

    New Features

    • Support setting tlsname using Host object. #382

    Bug Fixes

    • Reverses the breaking change introduced in v3.16.0 of not supporting percent-based scan sampling for server versions 4.9 or later. However, note that scan percent and max_records are mutually exclusive; the client will return an error if both values are set on a scan policy.
    • Query with "failOnClusterChange" causes timeout when using command queue. #389

    Updates

    • Remove support for ApplyPolicy#gen, which is not supported by the server. #390
    • Update C client library to v4.6.19.
    • Clarify docs for HLL ALLOW_FOLD policy. #386
    • Fix minhash bits range in docs (4-51, not 4-58). #385
    • Fix spelling of capacity in Command Queue docs. #376 Thanks to @icflournoy!
    • Refactor: Set TTL as part of the touch operation. #391
    • Add support for Ubuntu 20.04.
    • Drop support for Ubuntu 14.04.

  • 3.16.1
    Release Date: June 30, 2020
    • A bug affecting this version of the Node.js client has been identified.
      • If your application uses scans, we strongly recommend that you upgrade to Node.js client 3.16.7 at the earliest opportunity.

    Bug Fixes

    • Fix memory leaks when running secondary index queries with string filter predicates. #370

  • 3.16.0
    Release Date: May 18, 2020
    • A bug affecting this version of the Node.js client has been identified.
      • If your application uses scans, we strongly recommend that you upgrade to Node.js client 3.16.7 at the earliest opportunity.

    New Features

    • Add max records option for sampling with basic scans. Requires server version 4.9 or later. #359
    • Add support for HyperLogLog data type and operations. Requires server version 4.9 or later. #361
    • Add minConnsPerNode and maxSocketIdle client config. #366

    Updates

    • BREAKING: The client no longer supports the percent-based scan sampling for server versions 4.9 or later. Use the new max records scan policy option instead. See API Changes for details.
    • Update C client library to v4.6.16.
    • Update dependencies with potential vulnerabilities by running npm audit fix. #367

  • 3.15.0
    Release Date: March 24, 2020

    New Features

    • Support for BigInt as record key and bin value. #348

    Updates

    • Update C client library to v4.6.13.

  • 3.14.1
    Release Date: January 15, 2020

    Bug Fixes

    • Regression: Protocol error on authenticated connections. [CLIENT-1169]

    Updates

    • Update C client library to v4.6.12.

  • 3.14.0
    Release Date: January 8, 2020

    New Features

    • Add new delete record operation. Requires server version 4.7 or later (4.7.0.8+ or 4.8.0.3+ recommended). #322
    • Support compressed commands and responses. Requires Aerospike Enterprise Server version 4.8 or later. #335
    • Add per-node opened/closed connection stats. #336
    • Support write operations on background scans & queries. Requires server version 4.7 or later. #338
    • Support new records-per-second limit for scans, replacing scan priority. Requires server version 4.7 or later. #339
    • Add predicate filter support for batch, read, write, delete, and record UDF transactions. Requires server version 4.7 or later. #340

    Updates

    • Update C client library to v4.6.10.
    • Minor API documentation updates. #342
    • Update several dev dependencies to latest version.

  • 3.13.0
    Release Date: September 30, 2019

    New Features

    • Support for bitwise operations. Requires server version 4.6 or later. #312

  • 3.12.0
    Release Date: August 31, 2019

    New Features

    • Support for operations on nested lists & maps. Requires server version 4.6 or later. #307

    Updates

    • Update C client library to v4.6.7.
    • Support Debian 10. Drop support for Debian 7.
    • Fix tests for certain out-of-bounds list operations due to changed error code sent by server v4.6.
    • Update dev dependencies: standard v14, yargs v14, nyc

  • 3.11.0
    Release Date: May 22, 2019

    New Features

    • TLS support - Linux only, macOS & Windows not supported for now. #298
    • Add new infoNode & getNodes functions. #196
    • Support for Node.js 12 #295

    Updates

  • 3.10.0
    Release Date: April 8, 2019

    New Features

    • Support new relaxed read modes for SC namespaces. (via C client v4.6)
    • Use stack based connection pools for more aggressive trimming of idle connections. (via C client v4.6)

    Updates

    • BREAKING: Read consistency level changes - see Incompatible API Changes for details.
    • Update C client library to v4.6.1.
    • Update nan to v2.13.2.
    • Update mocha, codecov & other dev dependencies to latest version.

  • 3.9.0
    Release Date: February 20, 2019

    Updates

    • Update C client library to v4.5.0.
    • Update nan to v2.12.1.
    • Update nyc to v13.3 to address multiple potential vulnerabilities in nyc dependencies.
    • Update docs for udfRemove function to document changes in server behavior when trying to delete a UDF module that does not exist.
    • Drop Node.js v4 from the test matrix. The client still runs on Node.js v4 for now, but not all of its dev dependencies do.

  • 3.8.0
    Release Date: December 14, 2018

    New Features

    • Add support for rack-aware clients.
    • Add client run-time stats.

    Updates

    • Update C client library to v4.4.0.
    • Remove unused error codes.
    • Improve global command queue docs.
    • Shared memory layout has changed. The default Config#sharedMemory.key has changed to 0xA8000000 so old client applications do not mix shared memory with new client applications. If you are using shared memory clients with a custom shared memory key, it's critical that you change the key when upgrading to this version.

  • 3.7.2
    Release Date: November 9, 2018

    Bug Fixes

    • Fix Alpine Linux builds #286
    • Fix policies constructor to support setting totalTimeout to zero #289
    • Fix segfault in predexp unit tests on Node.js 11

    Updates

    • Update C client library to v4.3.20.
    • Replace V8 conversion functions deprecated in Node.js 10.12/11
    • Suppress compiler deprecation warnings for Release builds
    • Add Node.js 10 back to Travis CI test matrix

  • 3.7.1
    Release Date: October 3, 2018

    Bug Fixes

    • Support using alternate-access-address. #267 #283

    Updates

    • Fix some tests breaking when auth enabled. #284

  • 3.7.0
    Release Date: October 2, 2018

    New Features

    • Support "deserialize" policy setting. #278
    • Add getter for client instance to AerospikeError.

    Bug Fixes

    • Fix memory leaks detected by Valgrind. #279
    • Increase max. info request length from 50 to 256. #280
    • Fix parsing of sets/ns/set info response. #282

    Updates

    • Update C client library to v4.3.18.
    • Update nan and chai to latest versions.

  • 3.6.1
    Release Date: September 4, 2018

    Updates

    • Change max. bin name length to 15 (was 14). Requires server version 4.2 or later.
    • Update C client library to v4.3.17. #273

  • 3.6.0
    Release Date: August 28, 2018

    New Features

    • Support query filtering with predicate expressions. Requires server version v3.12 or later. #269
    • Add missing replica.sequence policy value. #270

    Updates

    • Update C client library to v4.3.16. #271
    • Remove modlua.systemPath config entry.
    • Remove lua-core submodule; system lua code is now loaded directly from C strings instead of files.

  • 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)

    • OS X 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.