-
Notifications
You must be signed in to change notification settings - Fork 147
5.0 changelog
Takes mTLS authentication our of preview and improves some aspects of documentation.
- Mutual TLS (mTLS) is marked stable and released out of preview #1237
- Marks the isUnboundRelationship function as private in documentation. #1234
- Corrects the usage of the link tag in documentation, fixing some broken links. #1236
- Adds notice regarding
CALL {} IN TRANSACTION
to executeRead and executeWrite. #1236
- Adds GQL compliant fields to the Neo4jError object as a preview feature.
- Added GQL compliant fields to the Neo4jError object. #1225
- Marked JavaScripts treatment of Integers and Floats as Number as a Feature for testkit. #1228
Housekeeping only.
- Remove DNS caching from testkit browser tests, reducing flakiness #1224
- Improvements on error handling #1220
Fix critical issue related to connection pool size enforcement. Along with this, other fixes related to connection error treatment are released.
- 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
Added support for the new Schema notification category, and a minor fix to stop Deno tests from failing when run locally
- Added Schema notification category #1211
- Move Pool module to core #1212
- Fix to npm test crashing at Deno tests when running test containers #1210
This fix a potential issue in the Notification
api.
- Fix
Notification.description
polyfill fromGqlStatusObject
#1205
- Improve pipelines stability #1206
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.
- Introduce GqlStatusObject support as notifications to
ResultSummary
#1194 - Introduce
AbortSignal
toDriver.executeQuery
1199 - Introduce
resultTransformer.first
#1200 - Introduce
resultTransformer.summary
1201 - Introduce
resultTransformers.eager
andresultTransformers.mapped
1202
- Improvements on internal APIs #1195
Fixes crashes when closing transactions when Queries are still ongoing. Thanks for your contribution, @reckter.
- Fix OOM crash, when closing a transaction while Queries are still ongoing #1193
Housekeeping only.
- benchkit: Fix Node installation in Dockerimage #1190
Introduces clientCertificate
configuration as a mechanism to support mutual TLS as a second factor for authentication, currently a preview feature.
- Introduce Client Certificate configuration (βΉοΈ preview) #1183
- Updated manifest and Dockerfile for Testkit and Benchkit #1187
Introduces auth
configuration to Driver.executeQuery
- Introduces
auth
configuration toDriver.executeQuery
#1177
Improves performance on deserialising DateTime
. Thanks for your contribution, @vongruenigen.
- Optimize usage of Intl API to speed up response parsing with many datetime objects #1174
- Fix duplicated
neo4j-javascript
string onboltAgent.product
object 1173
Add features and fix code related to connection stability.
- Introduce
connectionLivenessCheckTimeout
configuration #1162
Improves the API surface by introducing transactionConfig
to the executeQuery
and by saving boiler plate by adding explicit resource management to driver resources.
- Introduce explicit resource management to Driver, Session and Transaction #1154 #1155
- Introduce
transactionConfig
toDriver.executeQuery
#1160
- Bump Browserify-sign to 4.2.2 to solve critical issue with DSA #1156
- Bump development libraries versions #1163
- Update License Headers #1161
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).
- Release driver in Deno.land (preview) 1149 1151
- Release Re-Auth and AuthTokenManager #1150
- Added Topology and Security Notification categories #1146
- Avoid Results try to pull more records after transaction fail #1145
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 })
- Introduce API Metrics/Telemetry #1142
- Fix 32+ bits length numbers serialisation in ResultSummary #1141
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
.
- Improve
AuthTokenManager
interface and factory method #1123 -
Driver.executeQuery
optimisation #1124 - Reduce number of ROUTE requests when routing table is stale #1119
Releases small improvements related to logs and typescript types exporting.
- Handle when a Sub Millisecond Tx Timeout is specified #1108
- Add error logs for connecting to HTTP server #1113
- Export
RecordShape
type #1117
- Export
logging
types inneo4j-driver
#1115
- Fix Driver.getServerInfo api docs #1103
- Bump RxJS from
5.8.0
to5.8.1
along with development dependencies bump #1104
- Fix DateTime with ZoneId unpacking #1097
- Decrease integration tests duration #1095
- Make bolt agent an object in integration tests #1092
- Docs: mention performance impact of notification filtering #1086
- Bolt agent added to hello metadata 1076
- Fix re-auth neo4j.driver typescript type #1089
- Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.
- Release BookmarkManager and Driver.executeQuery #1073 #1064
- Introduce re-authentication and user switching #1050
- Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.
This version releases the Database Notification Configuration. See #1064.
- Use new MERGE syntax in example. Thanks, JacobLinCool. #1056
- Remove deprecated procedures mention from TransactionConfig docs. #1063
- Improve Observer types inline docs #1066
- Fix integration test CREATE USER statement #1069
- Deprecate
Notification.severity
, UseNotification.rawSeverityLevel
for the raw value orNotification.severityLevel
for an enumerated value. #1064
- Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.
- Improve
executeQuery
by allowing filter records in themappedResultTransformer
and align thedefaultExecuteQueryBookmarkManager
property name with the other drivers #1059
- Fix
executeQuery
default return type #1055
- Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.
This version releases the experimental Driver.executeQuery
api. Feedbacks are welcome here.
- Introduce experimental
Driver.executeQuery
#1006
- Improve docs around packages and versions #1054
- Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.
This version releases the ECMAScript Modules hosted in unpkg
and jsdelivr
, see #1038, along with improvements in the Typescript usage.
- Fix ESM importing examples in docs #1044
- Fix Integer primitive type representation #1045
- Fix deprecation methods replacement links at Session class #1046
This is alpha version was released for previewing changes in the neo4j-web driver available in unpkg
and jsdelivr
, see #1038
- 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
- Fail fast for more rediscovery failures #1011
- Fix exported types #1041
- 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
- Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.
- Add generic types for
Node#labels
,Relationship#type
andUnboundRelationship#type
#1014
- Update SessionConfig#database docs with better recommendation #1020 1022
- Update Bookmark manager for no longer tracking per database #1017 (experimental)
- Fix
Record#get
type checking #1015 - Clear receive timeout when close browser and Deno channels #1016
- Fix RxResult performance issue in browsers #1023
- Un-skip Transaction Executor: should cancel in-flight timeouts when closed #1018
- Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.
- Add generics and type mapping to Result, Session.run and Transaction.run #1010
- Update transaction functions examples for using execute(Read|Write) #1009
- Add release policy note to the readme. #1012
- Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.
- 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
- Add acceptance test to the experimental `neo4j-deno-driver #900
- Add property-based testing to temporal-types conversion #997
- Add property-based testing to Integer [#998] (https://github.com/neo4j/neo4j-javascript-driver/pull/998)
- Add property-based testing to DateTime serialisation #999
- Pin Testkit version to 5.0 #1000
- Resolves Flaky tests #1003
- Pin internal dependencies versions. This is causing the dependencies of released versions get update for each new driver release, which can cause compatibility issues.
- Reclassify
Transaction.LockClientStopped
andTransaction.Terminated
asClientError
#945 - Improve purge address of the Pool routine #995
- Fix DateTime with ZoneId for years between 00-99 #992
This is GA release for the 5.0 with all the new features and general improvements previewed in the beta and alphas.
- Adjust temporal related tests #990
This is the first beta release of the driver. This release provides a preview of the new features and general improvements.
- Fix Zoned DateTime support for dates before common era #986
- Remove circular dependency between json and util #981
This is the first alpha release with 5.0 features. This release provides a preview of the new features and general improvements.
- Add Bolt 5.0 Support
- Add
Session.executeRead
andSession.executeWrite
for running Transaction Functions #890 #901 - Add
retriable
property to theNeo4jError
#901 - Add support for error cause in
Neo4jError
and Routing errors #960
- 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
- 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
- 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
- Deprecate
Session.readTransaction
andSession.writeTransaction
#911 - Deprecate numeric ids in the Graph Types #884
- in
Node
:- Deprecate
identity: NumberOrInteger
- Deprecate
- in
Relationship
:- Deprecate
identity: NumberOrInteger
- Deprecate
start: NumberOrInteger
- Deprecate
end: NumberOrInteger
- Deprecate
- in
UnboundRelationship
:- Deprecate
identity: NumberOrInteger
- Deprecate
- in
- Remove deprecation warning for
Integer
#891
- 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
- 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
- Update dependencies #909
- Remove lodash dependency #923
- Remove run-sequence dependency #926
- Bump RxJS to 7.5.5 #927
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
- Introduce AsyncIterator API for Result Consumption #831 #846 #864
- Improve back-pressure mechanism for
RxResult
#882- Introduces experimental methods
RxResult.pause()
,RxResult.resume()
andRxResult.push()
- Introduces experimental methods
- Allow transaction timeout to be configured as 0 #841
- Introduce
toStandardDate
method toDate
,DateTime
andLocalDateTime
#842 - Introduce
Driver.isEncrypted()
method to the API #868 - Introduce the ability of awaiting for eager beginning a
Transaction
#870 - Introduce
Session.lastBookmarks()
andRxSession.lastBookmarks()
methods #853 - Introduce
Driver.getServerInfo()
method #878
- 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
- Deprecate
Session.lastBookmark
, seeSession.lastBookmarks
#848 #853 - Deprecate
Driver.verifyConnectivity
return object, seeDriver.getServerInfo()
#878
- 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