Skip to content

5.0 changelog

Max Gustafsson edited this page Oct 16, 2024 · 65 revisions

5.26.0

Adds GQL compliant fields to the Neo4jError object as a preview feature.

⭐ New Features


  • Added GQL compliant fields to the Neo4jError object. #1225

🧹 Housekeeping


  • Marked JavaScripts treatment of Integers and Floats as Number as a Feature for testkit. #1228

5.25.0

Housekeeping only.

🧹 Housekeeping


  • Remove DNS caching from testkit browser tests, reducing flakiness #1224
  • Improvements on error handling #1220

5.24.1

Fix critical issue related to connection pool size enforcement. Along with this, other fixes related to connection error treatment are released.

πŸ”§ Fixes


  • Remove un-predictable behaviour on connection failure due to multiple notification of same error #1213
  • Fix cases where the connection is destroyed on node, but the onclose event is not triggered #1215
  • Fix maxConnectionPoolSize verification #1216

5.24.0

Added support for the new Schema notification category, and a minor fix to stop Deno tests from failing when run locally

⭐ New Features


  • Added Schema notification category #1211

🧹 Housekeeping


  • Move Pool module to core #1212
  • Fix to npm test crashing at Deno tests when running test containers #1210

5.23.0

This fix a potential issue in the Notification api.

πŸ”§ Fixes


  • Fix Notification.description polyfill from GqlStatusObject #1205

🧹 Housekeeping


  • Improve pipelines stability #1206

5.22.0

This release introduces preview support to the GQLStatusObject #1194 along with other ergonomic preview features. This also speeds up the driver shutdown when connections are waiting to be acquired #1196, thanks, CarsonF, for the contribution.

⭐ ⚠️ Preview Features


  • Introduce GqlStatusObject support as notifications to ResultSummary #1194
  • Introduce AbortSignal to Driver.executeQuery 1199
  • Introduce resultTransformer.first #1200
  • Introduce resultTransformer.summary 1201
  • Introduce resultTransformers.eager and resultTransformers.mapped 1202

πŸ”§ Fixes


  • Don't prevent NodeJS from closing to run acquisition timeout error #1196. Thanks, CarsonF.

🧹 Housekeeping


  • Improvements on internal APIs #1195

5.21.0

Fixes crashes when closing transactions when Queries are still ongoing. Thanks for your contribution, @reckter.

πŸ”§ Fixes


  • Fix OOM crash, when closing a transaction while Queries are still ongoing #1193

5.20.0

Housekeeping only.

🧹 Housekeeping


  • benchkit: Fix Node installation in Dockerimage #1190

5.19.0

Introduces clientCertificate configuration as a mechanism to support mutual TLS as a second factor for authentication, currently a preview feature.

⭐ New Features


  • Introduce Client Certificate configuration (ℹ️ preview) #1183

🧹 Housekeeping


  • Updated manifest and Dockerfile for Testkit and Benchkit #1187

5.18.0

Introduces auth configuration to Driver.executeQuery

⭐ New Features


  • Introduces auth configuration to Driver.executeQuery#1177

🧹 Housekeeping


5.17.0

Improves performance on deserialising DateTime. Thanks for your contribution, @vongruenigen.

πŸ‘πŸΌ Improvements


  • Optimize usage of Intl API to speed up response parsing with many datetime objects #1174

πŸ”§ Fixes


  • Fix duplicated neo4j-javascript string on boltAgent.product object 1173

5.16.0

Add features and fix code related to connection stability.

⭐ New Features


  • Introduce connectionLivenessCheckTimeout configuration #1162

πŸ”§ Fixes


  • Fix connection receive timeout for single requests 1166 1167 1169

5.15.0

Improves the API surface by introducing transactionConfig to the executeQuery and by saving boiler plate by adding explicit resource management to driver resources.

⭐ New Features


  • Introduce explicit resource management to Driver, Session and Transaction #1154 #1155
  • Introduce transactionConfig to Driver.executeQuery #1160

🧹 Housekeeping


  • Bump Browserify-sign to 4.2.2 to solve critical issue with DSA #1156
  • Bump development libraries versions #1163
  • Update License Headers #1161

5.14.0

This release stabilise AuthManager and Re-Auth, thus this APIs can be used in production environments. Also on this version, Deno driver is released as preview on Deno.land (Thanks @bradenmacdonald for the conversion script).

⭐ New Features


  • Release driver in Deno.land (preview) 1149 1151
  • Release Re-Auth and AuthTokenManager #1150
  • Added Topology and Security Notification categories #1146

πŸ‘πŸΌ Improvements


  • Avoid Results try to pull more records after transaction fail #1145

5.13.0

This release introduces api usage telemetry in the Driver (see #1142) along with small improvements and fixes.

Telemetry data send by the driver is impossible to be tied back the customer or user. And it can be disabled in drivers by setting telemetryDisabled to true in the driver configuration.

const driver = neo4j.driver(
    'neo4j://localhost:7687', neo4j.auth.basic('neo4j', 'password'), { telemetryDisabled: true })

⭐ New Features


  • Introduce API Metrics/Telemetry #1142

πŸ‘πŸΌ Improvements


πŸ”§ Fixes


  • Fix 32+ bits length numbers serialisation in ResultSummary #1141

🧹 Housekeeping


  • Fix flaky tests on TransactionExecutor suite #1137
  • Hide protocol object behind the Connection #1139

5.12.0

Improves AuthTokenManager preview interface and factory methods. This is small breaking change in the preview API which be adjusted by moving neo4j.expirationBasedAuthTokenManager calls to neo4j.authTokenManagers.bearer (click here for more details).

Also introduces performance improvements on routing requests and in the method Driver.executeQuery.

πŸ‘πŸΌ Improvements


  • Improve AuthTokenManager interface and factory method #1123
  • Driver.executeQuery optimisation #1124
  • Reduce number of ROUTE requests when routing table is stale #1119

🧹 Housekeeping


5.11.0

Releases small improvements related to logs and typescript types exporting.

πŸ‘πŸΌ Improvements


  • Handle when a Sub Millisecond Tx Timeout is specified #1108
  • Add error logs for connecting to HTTP server #1113
  • Export RecordShape type #1117

πŸ”§ Fixes


  • Export logging types in neo4j-driver #1115

🧹 Housekeeping


5.10.0

πŸ”§ Fixes


  • Fix Driver.getServerInfo api docs #1103

πŸ“¦ Dependency Management


  • Bump RxJS from 5.8.0 to 5.8.1 along with development dependencies bump #1104

5.9.2

πŸ”§ Fixes


  • Fix DateTime with ZoneId unpacking #1097

🧹 Housekeeping


  • Decrease integration tests duration #1095

5.9.1

πŸ”§ Fixes


  • Add notificationFilter to the Config type #1093
  • Fix browser boltAgent in web workers context #1094

🧹 Housekeeping


  • Make bolt agent an object in integration tests #1092

5.9.0

πŸ‘πŸΌ Improvements


  • Docs: mention performance impact of notification filtering #1086
  • Bolt agent added to hello metadata 1076

πŸ”§ Fixes


  • Fix re-auth neo4j.driver typescript type #1089

🧹 Housekeeping


  • Move build and test instructions to CONTRIBUTING.md and TESTING.md #1088
  • Fix build in Node 18 #1087

5.8.1

πŸ”§ Fixes


  • Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.

5.8.0

⭐ New Features


  • Release BookmarkManager and Driver.executeQuery #1073 #1064
  • Introduce re-authentication and user switching #1050

5.7.1

πŸ”§ Fixes


  • Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.

5.7.0

This version releases the Database Notification Configuration. See #1064.

⭐ New Features


  • Introduce Database Notification Configuration #1064
  • Introduce Bolt Protocol 5.1 #1065

πŸ‘πŸΌ Improvements


  • Use new MERGE syntax in example. Thanks, JacobLinCool. #1056
  • Remove deprecated procedures mention from TransactionConfig docs. #1063
  • Improve Observer types inline docs #1066

🧹 Housekeeping


  • Fix integration test CREATE USER statement #1069

πŸ‘Ž Deprecation


  • Deprecate Notification.severity, Use Notification.rawSeverityLevel for the raw value or Notification.severityLevel for an enumerated value. #1064

5.6.1

πŸ”§ Fixes


  • Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.

5.6.0

πŸ‘πŸΌ Improvements


  • Improve executeQuery by allowing filter records in the mappedResultTransformer and align the defaultExecuteQueryBookmarkManager property name with the other drivers #1059

πŸ”§ Fixes


  • Fix executeQuery default return type #1055

5.5.1

πŸ”§ Fixes


  • Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.

5.5.0

This version releases the experimental Driver.executeQuery api. Feedbacks are welcome here.

⭐ New Features


  • Introduce experimental Driver.executeQuery #1006

πŸ‘πŸΌ Improvements


  • Improve docs around packages and versions #1054

5.4.1

πŸ”§ Fixes


  • Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.

5.4.0

This version releases the ECMAScript Modules hosted in unpkg and jsdelivr, see #1038, along with improvements in the Typescript usage.

πŸ”§ Fixes


  • Fix ESM importing examples in docs #1044
  • Fix Integer primitive type representation #1045
  • Fix deprecation methods replacement links at Session class #1046

5.4.0-alpha01

This is alpha version was released for previewing changes in the neo4j-web driver available in unpkg and jsdelivr, see #1038

⭐ New Features


  • Add and Improve type guards for is methods #1037
  • Export browser bundle of drivers as ECMAScript module #1038
  • Export isNode, isRelationship, isPath, isPathSegment and isUnboundedRelationship functions #1040

πŸ‘πŸΌ Improvements


  • Fail fast for more rediscovery failures #1011

πŸ”§ Fixes


  • Fix exported types #1041

🧹 Housekeeping


  • Modernize GitHub templates (issues and PRs) #1024
  • Remove test code from code analysis #1035
  • TestKit backend: except txMeta as Cypher types #1039
  • Update Libraries #1043

5.3.1

πŸ”§ Fixes


  • Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.

5.3.0

⭐ New Features


  • Add generic types for Node#labels, Relationship#type and UnboundRelationship#type #1014

πŸ‘πŸΌ Improvements


  • Update SessionConfig#database docs with better recommendation #1020 1022
  • Update Bookmark manager for no longer tracking per database #1017 (experimental)

πŸ”§ Fixes


  • Fix Record#get type checking #1015
  • Clear receive timeout when close browser and Deno channels #1016
  • Fix RxResult performance issue in browsers #1023

🧹 Housekeeping


  • Un-skip Transaction Executor: should cancel in-flight timeouts when closed #1018

5.2.1

πŸ”§ Fixes


  • Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.

5.2.0

⭐ New Features


  • Add generics and type mapping to Result, Session.run and Transaction.run #1010

🧹 Housekeeping


  • Update transaction functions examples for using execute(Read|Write) #1009
  • Add release policy note to the readme. #1012

5.1.1

πŸ”§ Fixes


  • Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.

5.1.0

πŸ”§ Fixes


  • Fix negative date time not being serialised correctly in the iso standard #997
  • Fix Date.fromStandardDate factory was not taking in consideration the seconds contribution in the timezone offset. #997

πŸ₯Ό Deno (experimental)


  • Implement Deno specific channel #900
  • Commit Deno code to the repository #1004

βœ… Testkit


5.0.2

πŸ”§ Fixes


  • Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.

5.0.1

πŸ‘ Improvements


  • Reclassify Transaction.LockClientStopped and Transaction.Terminated as ClientError #945
  • Improve purge address of the Pool routine #995

πŸ”§ Fixes


  • Fix DateTime with ZoneId for years between 00-99 #992

5.0.0

This is GA release for the 5.0 with all the new features and general improvements previewed in the beta and alphas.

βœ… Testkit


  • Adjust temporal related tests #990

5.0.0-beta01

This is the first beta release of the driver. This release provides a preview of the new features and general improvements.

⭐ New Features


  • Add stricter string validation to neo4j.int() #985 #988

πŸ”§ Fixes


  • Fix Zoned DateTime support for dates before common era #986

🧹 Housekeeping


  • Remove circular dependency between json and util #981

5.0.0-alpha02

This is the first alpha release with 5.0 features. This release provides a preview of the new features and general improvements.

⭐ New Features


  • Add Bolt 5.0 Support
    • Add support to elementId#884
    • Add new structures for DateTime #948
  • Add Session.executeRead and Session.executeWrite for running Transaction Functions #890 #901
  • Add retriable property to the Neo4jError #901
  • Add support for error cause in Neo4jError and Routing errors #960
⚠️ Experimental features
  • Introduce Bookmark Manager #974
  • Introduce neo4j.hasReachableServer API #946

πŸ‘ Improvements


  • Discard active auto-commit results on Session.close() #889
  • Improve type definitions #887
  • Prevent iterate over already consumed Result #896
  • Minimize the number of RESET messages sent #902
  • Add missing JSDOC param name #922
  • Export types constructors in the neo4j-driver #928
  • Add support for connection.recv_timeout_seconds in the Browser Channel #955
  • Improvements error handling in packstream #958
  • Validate the ZoneId of the DateTime with ZoneId #961
  • Make Result[Symbol.asyncIterator].return wait for Summary #965

πŸ”§ Fixes


  • Fix verifyConnectivity/getServerInfo procedures #888
  • Fix receiveTimeout behaviour #904
  • Fix late subscription to an already broken stream #912
  • Fix lack of ProtocolVersion in the Result.summary() #937
  • Fix typescript exported types #943 #949

❌ Removals


  • Bump RxJS to 7.5.5 cause removal of all the RxJS 6.6.x deprecations to be removed #927
  • Drop support for Bolt Protocol 4.0 #884

πŸ‘Ž Deprecation


  • Deprecate Session.readTransaction and Session.writeTransaction #911
  • Deprecate numeric ids in the Graph Types #884
    • in Node:
      • Deprecate identity: NumberOrInteger
    • in Relationship:
      • Deprecate identity: NumberOrInteger
      • Deprecate start: NumberOrInteger
      • Deprecate end: NumberOrInteger
    • in UnboundRelationship:
      • Deprecate identity: NumberOrInteger
  • Remove deprecation warning for Integer #891

βœ… Testkit


  • Fix integration tests which depends on removed cypher syntax #886 #975
  • Add support for building the Deno driver #892
  • Fixes in the stress tests #897
  • Improvements in the test suite stability #906 #936 #952 #976 #980
  • Fix error check in the bolt-v3.test #947

🧹 House-keeping


  • Configure standard and ts-standard as linter and formatter for JS and TS #918
  • Standardise code and fix linter issues #919
  • Refactory Pool module #930
  • Decouple Packstream Serialization/De-serialization from Bolt structure hydration #942

πŸ“¦ Dependency Management


  • Update dependencies #909
  • Remove lodash dependency #923
  • Remove run-sequence dependency #926
  • Bump RxJS to 7.5.5 #927

5.0.0-alpha01

⚠️ This is an experimental release. It may completely change in the future. It does not contain any connectivity to Neo4j 5.0. In other words, this is equivalent to the Javascript driver 4.4.x driver with a few changes detailed below.

The main goal of this release is to offer a preview for new driver Result[AsyncIterator] API and the experimental back-pressure methods in the RxResult

⭐ New Features


  • Introduce AsyncIterator API for Result Consumption #831 #846 #864
  • Improve back-pressure mechanism for RxResult #882
    • Introduces experimental methods RxResult.pause(), RxResult.resume() and RxResult.push()
  • Allow transaction timeout to be configured as 0 #841
  • Introduce toStandardDate method to Date, DateTime and LocalDateTime #842
  • Introduce Driver.isEncrypted() method to the API #868
  • Introduce the ability of awaiting for eager beginning a Transaction #870
  • Introduce Session.lastBookmarks() and RxSession.lastBookmarks() methods #853
  • Introduce Driver.getServerInfo() method #878

πŸ‘ Improvements


  • Validate query type in the ResultSummary #869
  • Optimisation: Not send default protocol parameters to the server #871
  • Verify transaction begin before hand-over it to the transaction work function #875
  • Make connection acquisition timeout also consider the connection creation time #877

❌ Removals


  • Remove deprecated ServerInfo.version #867 #880

πŸ‘Ž Deprecation


  • Deprecate Session.lastBookmark, see Session.lastBookmarks #848 #853
  • Deprecate Driver.verifyConnectivity return object, see Driver.getServerInfo() #878

βœ… Testkit


  • Add connection pool related config options to TestKit back end #835
  • Enable Testkit tests run against different NodeJS versions #836 #840
  • Disable stub tests which depends on Bolt 4 #852
  • Enable Testkit tests for the reactive api #879
  • Small Fixes and Test Improvements #845 #855 #872
  • Fix integration tests related to index and constraint create/drop #886
Clone this wiki locally