Skip to content

Releases: neo4j/neo4j-dotnet-driver

5.5.0

02 Feb 14:30
9e44868
Compare
Choose a tag to compare

🔧 Fixes

  • The IsRetriable property on exceptions is now public

🔬 Experimental changes

  • The ExecutableQuery API has been added to the Experimental namespace (see here for more information)

5.4.0

09 Jan 17:23
4ed2bff
Compare
Choose a tag to compare

🔧 Fixes

  • Add documentation for SessionConfigBuilder.WithDatabase and SessionConfig.Database
  • Exclude test code in snyk code analysis
  • TestKit backend: exclude txMeta from Cypher types
  • Add new exception types and change to explicitly identifying fast fail errors

5.3.0

29 Nov 12:14
857a3d2
Compare
Choose a tag to compare

🔬 Experimental bookmark manager changes:

  • Remove database notions from bookmark manager.
  • Fix Bookmark manager references outside of Neo4j.Driver.Experimental namespace.
  • When replacing LastBookmark with LastBookmarks we accidentally removed the old property, not following the planned deprecation policy. It is now restored and marked as obsolete, and due for removal in 6.0 of the driver.
  • Simplify creation of bookmark manager with default config.

5.2.0

28 Oct 09:31
8b92f71
Compare
Choose a tag to compare

What's Changed

🔬 Experimental change

  • Fixed an issue bookmark manager experimental classes: correctly exposing WithBookmarkManager to use bookmark managers on session configuration(#654).

Full Changelog: 5.1.0...5.2.0

5.1.0

10 Oct 15:55
15b46fc
Compare
Choose a tag to compare

What's Changed

No changes.

Full Changelog: 5.0.0...5.1.0

5.0.0

09 Sep 11:31
5e54252
Compare
Choose a tag to compare

5.0.0-beta02

08 Sep 14:07
5e54252
Compare
Choose a tag to compare
5.0.0-beta02 Pre-release
Pre-release

final tidying for major release.

Nuget

⭐ New Features

  • Introduce Experimental Bookmark Manager. (Not recommended for production use currently.) (#632)
    • Using Neo4j.Driver.Experimental.GraphDatabase.BookmarkManagerFactory users can create an IBookmarkManager.
    • IBookmarkManager can be passed to SessionConfigBuilder when creating a creating a session by using the Neo4j.Driver.Experimental.ExperimentalExtensions to add WithBookmarkManager to SessionConfigBuilder.
    • The Experimental methods will be finalized as:
      • Neo4j.Driver.Experimental.GraphDatabase.BookmarkManagerFactory -> Neo4j.Driver.GraphDatabase.BookmarkManagerFactory
      • Neo4j.Driver.Experimental.ExperimentalExtensions -> Neo4j.Driver.SessionConfigBuilder.

🔧 Fixes

  • Transaction lifetimes. (#640)
    • ⚠️ remaining managed transactions have been deprecated and replaced, removing the ability to commit or rollback transactions inside the unit of work scope.
      • ISession.ReadTransaction -> ISession.ExecuteRead
      • ISession.WriteTransaction -> ISession.ExecuteWrite
      • IRxSession.ReadTransaction -> IRxSession.ExecuteRead
      • IRxSession.WriteTransaction -> IRxSession.ExecuteWrite

🧹 Clean-up

  • Removal of 4.X Deprecations
    • Removal of IServerInfo.Version (#638)

5.0.0-beta01

08 Sep 12:19
49bc567
Compare
Choose a tag to compare
5.0.0-beta01 Pre-release
Pre-release

This release introduces full support for Neo4j 5.0 Servers.

Nuget

👏 .NET 6 Support

We now release for .NET 6.0 and .NET Standard 2.0.

⭐ New Features

  • Support for Bolt protocol version 5.0
    • ⚠️ Deprecate all IEntity integer ids replacing them with string ids:
      • IEntity.Id -> IEntity.ElementId
      • INode.Id -> INode.ElementId
      • IRelationship.Id -> IRelationship.ElementId
      • IRelationship.EndNodeId -> IRelationship.EndNodeElementId
      • IRelationship.StartNodeId -> IRelationship.StartNodeElementId
        (#573 #591 #600 #618)
    • Utc Encoding of ZonedDateTime (#630 #637)
  • SSL Configuration(#585)
    • SSL certificate trust rules can be set on driver initialization using ConfigBuilder.WithCertificateTrustRule
      • CertificateTrustRule.TrustSystem
        • Will verify certificates against the system's Certificate Authority store.
      • CertificateTrustRule.TrustList
        • Users can specify a collection of X509Certificate2 or paths to load as trusted certificates.
      • CertificateTrustRule.TrustAny
        • Will trust any SSL Cert.
    • ⚠️ Users can not use both ConfigBuilder.WithCertificateTrustRule and +s/+ssc in the url scheme at the same time.
  • Added Driver.GetServerInfoAsync. (#605)
    • Will verify connectivity and return a IServerInfo detailing server summary.
  • Added CanBeRetried to Exception. (#613)
    • All errors from driver that can be resolved by retrying an operation will return true.
  • Add IsOpen to Result cursors. (#610)
    • IsOpen will return if the underlying cursor is open to read records; Attempting to read from a closed cursor will throw a ResultConsumedException.
  • Connection Acquisition Timeout (#588)
    • ConfigBuilder.WithConnectionAcquisitionTimeout allows users to set maximum wait time to get a connection from the pool or create a new connection on driver initialization.
    • ⚠️ default: 60 seconds

🔧 Fixes

  • Transaction lifetimes. (#612)
    • ⚠️ Async managed transactions have been deprecated and replaced, removing the ability to commit or rollback transactions inside the unit of work scope.
      • IAsyncSession.ReadTransactionAsync -> IAsyncSession.ExecuteReadAsync
      • IAsyncSession.WriteTransactionAsync -> IAsyncSession.ExecuteWriteAsync
    • Attempting close a transaction after it has been closed will now throw a TransactionClosedException.
  • Rename Bookmark to Bookmarks. (#609)
    • ⚠️ Due to a mix of language Bookmark and all references to bookmarks have been pluralized as it allows for multiple values.
    • Bookmark -> Bookmarks
    • Session.LastBookmark -> Session.LastBookmarks
    • SessionConfigBuilder.WithBookmarks(Bookmark[]) -> SessionConfigBuilder.WithBookmarks(Bookmarks[])
  • Transaction timeout (#574)
    • TransactionConfigBuilder.WithTimeout now accepts Nullable<TimeSpan> for timeout.
      • ⚠️ null will use the server's default transaction timeout.
      • ⚠️ TimeSpan.Zero will remove timeout from transaction.
  • No longer throwing when using APOC procedures in a profiled query. (#633)
  • Discovery exceptions. (#594)
  • Error message handling. (#592)

Full Changelog: 4.4.0...5.0.0-beta01

4.4.0

16 Dec 16:42
ea19f49
Compare
Choose a tag to compare

4.4.0

This release introduces support for Neo4j 4.4 alongside new features and improvements.

⭐ New Features


  • Introduce impersonation support
  • Add bearer authentication support for single sign on
  • Add Bolt 4.4 support

👏 Improvements


  • Added InvalidBookmarkException to the driver Invalid bookmark exception
  • Inheritance in protocol objects improved to reduce code duplication and bloat.
  • Introduction examples have been improved Examples
  • Added ConnectionReadTimeoutException to the driver Timeout exception
  • Implemented an extension method to the .Net Stream class, ReadWithTimeoutAsync. This is used by the ChunkReader at the lowest level so that it can timeout if the nothing is read from the stream for a specified time.

✅ Testkit


  • Add kerberos auth to TestKit backend
  • Add Feature:Auth:Custom Testkit feature support
  • Add supported protocol versions to testkit backend
  • Testkit output now goes to stdout/etderr. From there TestKit can pick it up and write it into logfiles if desired #562

1.7.0-alpha01

11 Jul 13:16
a4d1d29
Compare
Choose a tag to compare
1.7.0-alpha01 Pre-release
Pre-release

The first release of 1.7 series drivers.
Checkout the changelog for more details.