Release Date: 16 May 2023
We are proud to announce the General Availability (GA) of our Neo4j Database – Neo4j 5 Enterprise Edition. Neo4j 5 is the core technology of the Neo4j Graph Platform available fully-managed in the cloud, or self-managed in any environment.

Important Information

This release is available to customers who purchased a Neo4j Enterprise subscription. This version of the database is also available to Aura customers with the following subscriptions AuraDB (Free, Professional, Enterprise) and AuraDS (Professional, Enterprise).. 

Software Availability

The software is available in the Download center. Neo4j 5 is also available in Docker and in the usual Linux repositories (Debian and Yum), and will become available in the Cloud Marketplaces (Amazon Web Services, Azure, Google Cloud Platform). Neo4j 5 Drivers for .Net, Go, Java, JavaScript and Python are available in the Download Center, all support the new features available in Neo4j 5, and are backward compatible with Neo4j 4.4. Please refer to the Neo4j 5 changelog for full details.

Neo4j 5.8 (16 May 2023)

Highlights

The following products have been included in the distribution – available in /products directory unless stated otherwise – and are fully compatible with this release. 
  • APOC 5.8.0 – The most popular community library developed for the database, is fully supported (included in Labs directory).
  • Bloom 5.x-2.7.1 – A beautiful and expressive data visualization tool to quickly explore and interact with Neo4j’s graph data platform – no coding required. Please refer to the release notes for details.  (Requires a License)
  • Browser 5.6.0 – Neo4j Browser is a tool for developers to interact with the graph. It is the default interface for both Enterprise and Community Editions (included in the /libs directory) of the Neo4j database. 
  • Neo4j Graph Data Science 2.3.6 is a compatible version of the connected data analytics and machine learning platform that helps you understand the connections in big data to answer critical questions and improve predictions. Please refer to the release notes for further details. (GDS Enterprise requires a Licence. )
  • Neo4j Ops Manager 1.5.4 is a UI-based tool that enables Administrators to operate and observe all of their Neo4j Database Management Servers. Now includes support for Neo4j’s any-to-any upgrade. Please refer to the release notes for details. (Included in Enterprise).

Language and Graph Model

  • Changed the notification description for deprecated procedure return fields, deprecated functions and procedures without replacement to no longer include ‘is no longer supported’ as that was misleading.

Scale and Availability

  • Panic DBMS when local system graph components are behind those installed in the system db.
  • DBMS upgrade procedures will check all servers in a cluster are on matching versions before allowing an upgrade.

Platform & Supportability

  • Improved configuration file validation output on startup.
  • Add setting db.logs.query.annotation_data_as_json_enabled to configure the output format of annotation data in the query log to be JSON instead of a Cypher map.
  • Configuration file character encoding can be overridden by the NEO4J_CONFIG_FILE_CHARSET environment variable.
  • Migration from Neo4j 4.4 to Neo4j 5.8 is supported please follow the migration guide available here. 
  • Any-to-any version rolling upgrade provides a streamlined upgrade experience and supports from 5.0 to 5.8, with future support to 5.x+n.

Fixes

  • Clustering
    • Backup metadata scripts created using neo4j-admin database backup will now include the cluster topology of the database to be backed up.
  • Composite/ Fabric
    • Using map projections, e.g, RETURN n{.p1, p2: 2}, on composite databases could lead to wrong results.
  • Cypher
    • Fix a bug in pipelined runtime that can cause bitIndex < 0: -1 errors in plans with OrderedUnion.
    • Fixed bug has occurred in the morsel runtime: The target morsel cannot hold the data to copy error. See Github issue: neo4j/neo4j#13148.
    • Fixed overflow when using a count store. See Github issue: neo4j/neo4j#13170.
    • Fixed issue where an error, arraycopy: length -1 is negative occurred, Github issue: neo4j/neo4j#13141
    • Fixed a bug with LIMIT that could lead to error: UnknownError:Failed to evaluate expression. See Github issue: neo4j/neo4j#13172 and neo4j/neo4j#13173.
    • Fixed unexpected TypeError when using the toStringOrNull function, for example in CREATE (n) RETURN reverse(toStringOrNull(n)).
    • Fixed bug in fused pipelined runtime that could lead to lost updates if a property was cached. For example when running queries like MATCH (n) WITH n.prop AS oldValue SET n.prop = n.prop + 1 WITH n.prop AS newValue RETURN * concurrently. Note, Cypher will not always prevent lost updates, see documentation for more details.
    • Handle large precision values in round, gh-issue https://github.com/neo4j/neo4j/issues/13117
    • Fixes https://github.com/neo4j/neo4j/issues/13106 and https://github.com/neo4j/neo4j/issues/13109 by changing the way Cypher checks for variable shadowing inside subqueries
    • Fail LOAD CSV <url> queries if the URL leads to a redirect that we can’t follow (protocol changes or Location header is missing).
    • Using map projections, e.g, RETURN n{.p1, p2: 2}, on composite databases could lead to wrong results.
    • Allow new unicode characters as whitespace
  • Kernel
    • Neo4j-admin import default –strict option set to false due performance impact in some scenarios.
    • Fix an issue with using certain configuration settings, query options, built-in functions or procedures, containing the letter “i”, when running with a Turkish locale.
    • Fix neo4j.dbms.bolt.connections_idle metric
  • Packaging
    • Fixed java dependencies to use java-17 metapackage provided by both openjdk and oracle java.
    • Fixed bug where Neo4j will automatically start on installation in debian.
    • Fixed 5.x bug where requesting apoc plugin actually installs apoc-core. Also added apoc-core as an optional plugin.
    • Add docker healthcheck
    • JVM additional configuration set by environment variable will now stop overriding default jvm configurations.

Neo4j 5.7 (20 April 2023)

Highlights

The following products have been included in the distribution – available in /products directory unless stated otherwise – and are fully compatible with this release. 
  • APOC 5.7.0 – The most popular community library developed for the database, is fully supported (included in Labs directory).
  • Bloom 5.x-2.7.0 – A beautiful and expressive data visualization tool to quickly explore and interact with Neo4j’s graph data platform – no coding required. Please refer to the release notes for details.  (Requires a License)
  • Browser 5.6.0 – Neo4j Browser is a tool for developers to interact with the graph. It is the default interface for both Enterprise and Community Editions (included in the /libs directory) of the Neo4j database. 
  • Neo4j Graph Data Science 2.3.3 is a compatible version of the connected data analytics and machine learning platform that helps you understand the connections in big data to answer critical questions and improve predictions. Please refer to the release notes for further details. (GDS Enterprise requires a Licence. )
  • Neo4j Ops Manager 1.5.3 is a UI-based tool that enables Administrators to operate and observe all of their Neo4j Database Management Servers. Now includes support for Neo4j’s any-to-any upgrade. Please refer to the release notes for details. (Included in Enterprise).

Surface for Developers and Data Scientists

  • Browser has added codes to frame notifications.
  • Browser has added :debug-connectivity frame to help debug bolt connections.
  • Browser has aligned text table display of nodes with Cypher Shell.

Language and Graph Model

  • Introduced two new constraint types: relationship property uniqueness and relationship key. Can be created with CREATE CONSTRAINT FOR ()-[r:TYPE]-() REQUIRE r.prop IS UNIQUE and CREATE CONSTRAINT FOR ()-[r:TYPE]-() REQUIRE r.prop IS REL KEY, respectively.
  • Independently plan predicates containing sub-queries: the planner will now generate a better (faster) plan for some queries which include subqueries.
  • Introduce error and status output for CALL IN TRANSACTIONS
  • Introduced a new Status for transaction timeout.
  • Deprecate the Cypher query option connectComponentsPlanner  – it will be removed in the next major version. 
  • Deprecate the status code Neo.ClientNotification.Statement.SuboptimalIndexForWildcardQuery – it will be removed in the next major version. 

Operability & Observability

  • Added WAIT to the ALTER DATABASE administration command.
  • Improved memory performance for customers running large numbers of databases, there is a new shared cache (replaces the individual caches used by a database); enabled with server.memory.query_cache.sharing_enabled. When using the shared cache, databases may compete for cache space, but may not observe each other’s entries. Size of the shared cache is configured with server.memory.query_cache.shared_cache_num_entries.
  • Adapt :param and :params in Cypher Shell to Cypher map based syntax, for example :param {a: 1, b: 1+1}. The existing arrow syntax is also still supported.

Platform & Supportability

  • Migration from Neo4j 4.4 to Neo4j 5.7 is supported please follow the migration guide available here.
  • Any-to-any version rolling upgrade provides a streamlined upgrade experience and supports from any 5.x to 5.7, with future support to 5.x+n.
  • Evaluation mode extensions – contact your Neo4j representative or complete the Contact Us form to extend your 30 day trial.

Security

  • Upgraded Jettison version to 1.5.4 to fix CVE-2023-1436
  • Log a warning if a security provider is listed in dbms.security.authentication_providers or dbms.security.authorization_providers but is not available for use.

Fixes

  • Browser
    • Fixed bug where plan view downloads got very low resolution.
  • Clustering
    • Fixed bug where rafted system databases were unable to pass seed validation when the instances had initialmodeconstraints
  • Composite/ Fabric
    • Fix virtual entities creation from procedure in the composite database.
  • Cypher
    • Fixed queries using composite indexes and duplicated search terms e.g. a.p1 IN [1, 1, 1] AND a.p2 = 3, could return incorrect results.
    • Fixed broken query cancellation (ctrl+c) in Cypher Shell.
    • Fixed bug when reusing variable names in merge clauses with multiple relationships.
    • Fixed bug with error message “Unexpected error: out of bounds for object” when ORDER BY has a literal in certain cases.
    • Fixed seeking for an empty array causes an empty result even if a match existed in the index. 
  • Kernel
    • Fixed an issue where a temporary read-only setting for a database could become permanent for some Lucene indexes.
    • ‘neo4j-admin report’ now correctly captures kubernetes style configs
    • Fixed a bug where some data would be lost from index during a full online backup. The data would still be present in the store, but the index would be inconsistent. Affected index types are FULLTEXT or TEXT and the data would only be lost on the backup client, the server would still have the correct data.
    • Fixed an issue where recovery would temporarily hold onto more memory than necessary, making it more likely for recovery to run out of heap on recovering very large transactions.
  • Packaging
    • JVM additional configuration set by environment variable will now stop overriding default JVM configurations.
    • Attempting to load invalid NEO4J_PLUGINS values will produce a helpful error message. For example, NEO4J_PLUGINS='[“gds”]’ will now return: “gds” is not a known Neo4j plugin. Options are: apoc apoc-core bloom graph-algorithms graph-data-science graphql n10s streams
  • Security
    • Fixed a bug where dropping a remote alias would not clean up access privileges correctly, causing any user with a role that has the privilege to fail to authorize.
Please refer to the changelog for full details of the changes.

Neo4j 5.6 (24 March 2023)

Highlights

The following products have been included in the distribution – available in /products directory unless stated otherwise – and are fully compatible with this release. 
  • APOC 5.6.0 – The most popular community library developed for the database, is fully supported (included in Labs directory).
  • Bloom 5.x-2.7.0 – A beautiful and expressive data visualization tool to quickly explore and interact with Neo4j’s graph data platform – no coding required. Please refer to the release notes for details.  (Requires a License)
  • Browser 5.4.0 – Neo4j Browser is a tool for developers to interact with the graph. It is the default interface for both Enterprise and Community Editions (included in the /libs directory) of the Neo4j database. 
  • Neo4j Graph Data Science 2.3.2 is compatible versions of the connected data analytics and machine learning platform that helps you understand the connections in big data to answer critical questions and improve predictions. Please refer to the release notes for further details. (GDS Enterprise requires a Licence. )
  • Neo4j Ops Manager 1.4.3 is a UI-based tool that enables Administrators to operate and observe all of their Neo4j Database Management Servers. Now includes support for Neo4j’s any-to-any upgrade. Please refer to the release notes for details. (Included in Enterprise).

Surface for Developers and Data Scientists

  • Support for bookmarks in HTTP Cypher Transactional API.
  • Support for CALL {} IN TRANSACTIONS in HTTP Cypher Transactional API using the single request endpoint (e.g db/neo4j/tx/commit)
  • NotificationCode class including severity level, category, title and code available in the public API

Language and Graph Model

  • Introduce COLLECT Subqueries to collect the results of the subquery into a list. 

Scale and Availability

  • Server Tags can be used in place of Server Groups. 
  • Deprecate dbms.cluster.secondaryReplicationToggle please use dbms.cluster.secondaryReplicationDisable.

Operability & Observability 

  • SHOW SETTINGS Cypher command lists all the configuration settings, replacing the need for the procedure dbms.listConfig. 
  • Server Tags can be created using Cypher commands e.g. ALTER SERVER “Server01″ SET OPTIONS {tags:”us-west”}.

Platform & Supportability

  • Migration from Neo4j 4.4 to Neo4j 5.6 is supported please follow the migration guide available here. 
  • Any-to-any version rolling upgrade provides a streamlined upgrade experience and supports from any 5.x version to 5.6, with future support to 5.6+n.
  • Docker additional configuration settings via environment variable for JVM will now stop overriding default JVM configurations.
  • Invalid NEO4J_PLUGINS values provide a helpful error message. For example: NEO4J_PLUGINS='[“gds”]’ will now return:  “gds” is not a known Neo4j plugin. Options are: apoc apoc-core bloom graph-algorithms graph-data-science graphql n10s streams 

Fixes

  • Clustering
    • Revert setting name back to dbms.maxdatabases from server
  • Composite/ Fabric
    • Fix possible deadlock in transaction termination
  • Cypher
    • Fixed seeking for an empty array would lead to an empty result even if a match existed in the index.
    • Fixed bug for MERGE queries in pipelined runtime.
    • Fixed bug where unnecessary sort was planned for some queries beginning with an OPTIONAL MATCH.
  • Kernel
    • Fixed an issue with migrate-configuration admin command where plugin settings were incorrectly handled
    • Fixed an issue where the importer could interpret a non-existent node ID from the relationships data as one of the imported nodes. A flag –strict has been added to the import command to control this added strict validation of the node IDs and is enabled by default. Running import with strict check enabled may have a negative performance impact during relationship import.
    • Fixed neo4j-admin database info –from-path path validation on paths external to standard config, which incorrectly failed on otherwise valid paths to databases.
    • Fixed issue with console appenders in server-logs.xml
Please refer to the changelog for full details of the changes.

Neo4j 5.5 (16 Feb 2023)

Highlights

The following products have been included in the distribution – available in /products directory unless stated otherwise – and are fully compatible with this release. 
  • APOC 5.5.0 – The most popular community library developed for the database, is fully supported (included in Labs directory). Please refer to the change log for details
  • Bloom 5.x-2.6.1 – A beautiful and expressive data visualization tool to quickly explore and interact with Neo4j’s graph data platform – no coding required. Please refer to the release notes for details.  (Requires a License)
  • Browser 5.4.0 – Neo4j Browser is a tool for developers to interact with the graph. It is the default interface for both Enterprise and Community Editions (included in the /libs directory) of the Neo4j database. 
  • Neo4j Graph Data Science 2.3.1 is a compatible version of the connected data analytics and machine learning platform that helps you understand the connections in big data to answer critical questions and improve predictions. Please refer to the release notes for further details. (GDS Enterprise requires a Licence. )
  • Neo4j Ops Manager 1.4.1 is a UI-based tool that enables Administrators to operate and observe all of their Neo4j Database Management Servers. Now includes support for Neo4j’s any-to-any upgrade. Please refer to the release notes for details. (Included in Enterprise).

Surface for Developers and Data Scientists

  • Simplified query API in the official language drivers (Java, Python, .Net, JavaScript and Go) Complex aspects of the API are automated for users, with sensible default behaviors appropriate for all deployment modalities encapsulated in a Driver.ExecuteQuery API. Tagged as experimental.

Language and Graph Model

  • Plan count store lookup for relationship endpoints.
  • Deprecate differently ordered variables in UNION Clauses.

Scale and Availability

  • ALTER DATABASE can update the topology from a single primary to many primaries.

Operability & Observability 

  • neo4j-admin copy can perform in-place compact/clean-up of a database, setting the target to be the same as the source
  • New command neo4j-admin server validate-config performs configuration validation without starting the server.

Platform & Supportability

  • Migration from Neo4j 4.4 to Neo4j 5.x is supported please follow the migration guide available here. 
  • Any-to-any version rolling upgrade provides a streamlined upgrade experience and supports from 5.0 to 5.2, with future support to 5.x+n.
  • Prompts user to confirm that backups have been taken before the database is migrated from Neo4j 4.4 to 5.x.
  • Accept the evaluation license in Docker when you don’t have a commercial license.

Security

  • Retry calls to the OpenID Connect discovery endpoint if they do not succeed initially. This applies on initial database startup and if the configuration is updated with dbms.setConfigValue (aura)

Fixes

  • Clustering
    • Bug fix where a server went back and forth between pipeline and catch up mode even if there was no load.
    • Prevent system database bootstrapping with too few Raft members when there are discovery restarts between publishing the Raft member id and observing successful publication.
    • Fix issue where server-side routed transactions might not be retried when encountering transient errors
    • Fixed Neo.DatabaseError.General.UnknownError message: Cannot invoke “org.neo4j.driver.summary.InputPosition.offset()” because “pos” is null. This happens when queries that produce certain notifications are re-routed to another cluster member with server-side routing. 
  • Cypher
    • Eagerness performed on node or relationships property or label when returning a full entity node.
    • Repeating a relationship variable in a pattern will not return any results and issue a warning, because a relationship is not permitted to be traversed more than once. 
    • Fixed a bug where an OPTIONAL MATCH with shortestPath, followed by DISTINCT, would fail during planning.
    • Fix a bug where SKIP and LIMIT are ignored for simple COUNT(…) aggregation queries that were solved with a CountFromCountStore plan.
    • Fix bug in scoping with self referencing variables in a CREATE clause used in conjunction with list comprehension.
    • Fix bug in MERGE ()-[:R]-()
  • Kernel
    • Fixed an issue with property key names in importer CSV header couldn’t be parsed if they contained : characters. Now this works if the header entry also specifies a property type, e.g. my-key:with-colons:string
    • Recovery logging and dependencies adaptation
    • Fixed reporting of JVM memory metrics
  • Packaging
    • Fix for system databases which cannot be migrated from Neo4j 4.4 to 5.x, users upgrading with deb/ rpm were left in an unrecoverable situation requiring a rebuild. During the upgrade the data directory is now moved to a new location to prevent data loss. Full upgrade instructions are available at: https://neo4j.com/docs/upgrade-migration-guide/current/version-5/
    • Fixed Ops Manager Server and Agent packaging, neo4j-enterprise-5.5.0-<distibution> has increased by approximately 123Mb.
  • Security
    • Fix a bug where group to role mappings defined for OpenID connect in dbms.security.oidc.<provider>.authorization.group_to_role_mapping were not matched correctly with claims containing capital letters.
    • Upgraded Apache Shiro from 1.10.1 to 1.11.0. This version includes fixes for CVE-2023-22602
Please refer to the changelog for full details of the changes.

Neo4j 5.4 (26 Jan 2023)

Highlights

Products included

The following products have been included in the distribution – available in /products directory unless stated otherwise – and are fully compatible with this release. 
  • APOC Core 5.4.1 – The most popular community library developed for the database, is  fully supported (included in Labs directory). Please refer to the changelog for details.
  • Bloom 2.6.1 – A beautiful and expressive data visualization tool to quickly explore and interact with Neo4j’s graph data platform – no coding required. Please refer to the release notes for details.  (Requires a License)
  • Browser 5.4.0 – Neo4j Browser is a tool for developers to interact with the graph. It is the default interface for both Enterprise and Community Editions (included in the /libs directory) of the Neo4j database. 
  • Neo4j Graph Data Science 2.2.7 is a compatible version of the connected data analytics and machine learning platform that helps you understand the connections in big data to answer critical questions and improve predictions.  (GDS Enterprise requires a Licence. )
  • Neo4j Ops Manager 1.3.3 is a UI-based tool that enables Administrators to operate and observe all of their Neo4j Database Management Servers. Now includes support for Neo4j’s any-to-any upgrade. Please refer to the release notes for details. (Included in Enterprise).

Surface for Developers and Data Scientists 

  • Browser updated to driver for 5.3.0 
  • Browser handles connections to, and setting parameters for Composite databases.
  • Browser includes alias names in the database selector. 
  • Browser clears metadata when switching databases. 
  • Browser displays product evaluation/ trial banners.
  • Browser handles lost connection. 
  • Drivers respond faster on failed routing discovery with more actionable messages (Aura)
  • Python driver serialization of Pythonic object types (NumPy arrays, Pandas dataframes, series and arrays, Tuples)

Language and Graph Model

  • Generates warnings for queries with relationship type expressions that can never be fulfilled.
  • Introduce new operator, IntersectionNodeByLabelsScan, for more efficient handling of queries like MATCH (n:A&B&C).

Scale and Availability

  • Deprecate server.groups for initial.server.tags

Operability & Observability

  • Command completion scripts for neo4j and neo4j-admin clients for Unix are installed automatically with deb and rpm.

Platform & Supportability

  • Users can accept the trial license during install with the installers or NEO4J_ACCEPT_LICENSE_AGREEMENT=eval. While in trial mode they will receive reminders in Browser and Cypher Shell. The selection is logged in the neo4j.log file.
  • Migration from Neo4j 4.4 to Neo4j 5.4 is supported please follow the migration guide available here. 
  • Any-to-any version rolling upgrade provides a streamlined upgrade experience and supports from 5.0 to 5.4, with future support to 5.x+n.
  • Upgrading from 4.4 to 5.x prompts users to confirm that backups have been taken before continuing the upgrade. During the upgrade the data directory is also moved to a new location to prevent data loss.

Security

  • JWT claims specified in dbms.security.oidc.<provider>.claims.groups may now contain a single group returned as a string as well as a list of groups as was previously required. 

Fixes

  • Browser
    • Fix bug where email was not supported as a username in :server user list.
    • Fix performance issues with browser background metadata for RBAC users.
    • Fix indent formatting in nested objects.
    • Fix relationship stylings not getting applied.
    • Fix role cluster role incorrectly reported as leader.
    • Fix :auto didn’t handle newlines.
  • Cypher
    • Fixed problem where Cypher queries with DELETE inside CALL would not return correct results. The fix was to insert a missing Eager operator.
    • Fixed show database entries with undetermined roles null are returned rather than unknown.
    • Fixed a bug where frequently executed queries were never re-planned. This could happen if the time between executions of a query was always less than cypher.min_replan_interval, and cache space was generous enough.
    • Fixed bug for list literals with IN expressions.
  • Kernel
    • Fixed an issue in import where some date value types didn’t handle empty values from the CSV files.
    • Fixed a couple of small issues with TX log rotation.
    • Fixes a performance issue creating Lucene indexes where workers ended up waiting unnecessarily on other threads for merging internal Lucene segment files.
  • Packaging
    • Resolved: upgrade using the deb or rpm packages left in an unrecoverable situation where Neo4j will not start because of an non migratable system database: Fix: the data directory is now moved to a new location to prevent data loss. The system database must be rebuilt entirely on upgrade. Full upgrade instructions are available at: https://neo4j.com/docs/upgrade-migration-guide/current/version-5/
  • Security
    • Fixed some security issues.
    • Fixed bug in privilege evaluation for the ALTER DATABASE command, where it was possible to bypass denied SET DATABASE ACCESS privilege by leveraging ALTER DATABASE privilege instead.

Please refer to the changelog for full details of the changes.

Neo4j 5.3 (15 Dec 2022)

Highlights

Products included

The following products have been included in the distribution – available in /products directory unless stated otherwise – and are fully compatible with this release. 
  • APOC Core 5.3.0 – The most popular community library developed for the database, is  fully supported (included in Labs directory). Please refer to the changelog for details.
  • Bloom 2.5.1 – A beautiful and expressive data visualization tool to quickly explore and interact with Neo4j’s graph data platform – no coding required. Please refer to the release notes for details. (Requires a License)
  • Browser 2.5.3 – Neo4j Browser is a tool for developers to interact with the graph. It is the default interface for both Enterprise and Community Editions (included in the /libs directory) of the Neo4j database. 
  • Neo4j Graph Data Science 2.2.6 is a connected data analytics and machine learning platform that helps you understand the connections in big data to answer critical questions and improve predictions. Please refer to the release notes for further details. (GDS Enterprise requires a Licence. )
  • Neo4j Ops Manager 1.3.1 is a UI-based tool that enables Administrators to operate and observe all of their Neo4j Database Management Servers. Now includes support for Neo4j’s any-to-any upgrade. Please refer to the release notes for details. (Included in Enterprise).

Surface for Developers and Data Scientists

  • Improve messaging in Browser when newly created databases startup
  • Browser is able to connect to members in an Autonomous Cluster even when they do not host a default database.

Language and Graph Model

  • A faster implementation of the shortest path algorithm. 
  • Extend subquery support in Exists and Count expressions to allow full non-updating subqueries. 

Write and Import Performance

  • Multiple :ID columns can be specified in the admin import CSV header to form composite IDs referable from the relationship CSV data.

Read and Export Performance

  • Introduce NodeByElementIdSeek, DirectedRelationshipByElementIdSeek and UndirectedRelationshipByElementIdSeek for logical plans to improve searches with ElementID.

Scale and Availability

  • Quarantine user databases if recovery fails at startup. A quarantined state will indicate that something is wrong with the store and that manual intervention is required.
  • Routing procedure returns all servers which host the given database as routers, including secondaries too.

Cloud Native Operations

  • Docker image will fail to start if the specified password length is less than dbms.security.auth_minimum_password_length. The cause will not be visible on console output, but will be logged.

Operability & Observability

  • SHOW DATABASES displays roles (primary/secondary) for stopped databases.
  • SHOW DATABASES returns databases from offline servers within Autonomous Clusters.

Platform & Supportability

  • Migration from Neo4j 4.4 to Neo4j 5.3 is supported please follow the migration guide available here.
  • Any-to-any version rolling upgrade provides a streamlined upgrade experience and supports from 5.1 to 5.3, with future support to 5.x+n.

Security 

  • Password length requirement for creating and alter users. Default 8 characters but can be modified by using configuration setting dbms.security.auth_minimum_password_length
  • Validate that URIs used for communicating with OpenId Connect identity providers use the HTTPS scheme. This is required by the specification, connecting to identity providers over HTTP is no longer supported – customers will no longer be able to connect.

Fixes

  • Browser
    • Fix sysinfo dependency on a setting removed in Neo4j 5.0.
    • Fix northwind data not loading properly due to https redirect.
  • Clustering
    • Fixed leak of drivers and connection pools with server side routing.
  • Cypher
    • Fix plan value hash joins when the properties are wrapped in a function call.
    • Fix error Exception closing multiple resources when plans use Expand(Into).
    • Fixed a bug where an updating query might get stuck in an infinite loop during planning.
    • Fix issue where a high frequency of ALTER ALIAS would create a large number of threads.
  • Fabric
    • Fix issue where temporal functions failed to run directly on composite databases.
  • Kernel
    • Fixed a bug where neo4j-admin database import incremental would both miss enforcing uniqueness of node key constraints and leave them in an inconsistent state after the import. 
    • Fixed a bug where neo4j-admin database import incremental could cause indexes to contain nodes/relationships that violated property existence constraints in them even though these nodes/relationships never made it into the imported data.
Please refer to the  changelog for full details of the changes.

Neo4j 5.2 (21 Nov 2022)

Highlights

Products included

The following products have been included in the distribution – available in /products directory unless stated otherwise – and are fully compatible with this release. 
  • APOC 5.2.1 – The most popular community library developed for the database, is  fully supported (included in Labs directory).
  • Bloom 2.5.1 – A beautiful and expressive data visualization tool to quickly explore and interact with Neo4j’s graph data platform – no coding required. Please refer to the release notes for details. (Requires a License)
  • Browser 5.0.0 – Neo4j Browser is a tool for developers to interact with the graph. It is the default interface for both Enterprise and Community Editions (included in the /libs directory) of the Neo4j database. 
  • Neo4j Graph Data Science 2.2.4 is a connected data analytics and machine learning platform that helps you understand the connections in big data to answer critical questions and improve predictions. Please refer to the release notes for further details. (GDS Enterprise requires a License. )
  • Neo4j Ops Manager 1.2.2 is a UI-based tool that enables Administrators to operate and observe all of their Neo4j Database Management Servers. Now includes support for Neo4j’s any-to-any upgrade. Please refer to the release notes for details. (Included in Enterprise).

Language and Graph Model

  • graph.propertiesByName() retrieves properties from graphs in a COMPOSITE database
  • Deprecated the same relationship variable for multiple variable length relationships e.g. MATCH ()-[r*]->(), ()-[r*]->() and will be removed in a future version.

Write and Import Performance 

  • New default value 70% of heap for ‘dbms.memory.transaction.total.max’ to reduce the likelihood of memory intensive transactions from running out of memory.

Read and Export Performance

  • Added new types to org.neo4j.graphdb.schema.ConstraintType in the Core API.

Scale and Availability

  • DRYRUN explains what the outcome of command will be on a cluster – without executing it.
  • Created ‘synonyms’ cluster.raft. and cluster.storecopy for the metrics cluster.core.cluster.readreplica.
Cloud Native Operations
  • Helm Charts for Neo4j 5 support Autonomous Clustering, and automatically deploy the network load balancer in the Kubernetes Cluster.

Platform & Supportability

  • Migration from Neo4j 4.4 to Neo4j 5.2 is supported please follow the migration guide available here. 
  • Any-to-any version rolling upgrade provides a streamlined upgrade experience and supports from 5.0 to 5.2, with future support to 5.x+n.
  • Packaging information file provided under neo4j home.
  • Upgraded Apache Shiro (included) from 1.9.1 to 1.10.0.

Fixes

  • Composite / Fabric
    • Fix bug with map projection in Fabric, where the value of the map projection is returned outside a subquery.
  • Autonomous Clustering
    • Fix bug where store copy failed to retry against certain remote servers due to issues with address locking logic.
    • Bug fix where a member in a two member raft group couldn’t be drained since it was wrongly considered unsafe.
    • Bug fix where the wrong artifact was chosen for databases with the same name but different database ids.
  • Cypher
    • Fixed a bug in pipelined execution graph construction, that could cause some queries with UNION inside an updating subquery to fail with the message “Could not find downstream argumentStateBuffer with id ArgumentStateMapId(x).”
    • Fix bug in Expand(Into) where we could fail to find existing relationships if the same node is expanded multiple times.
    • Fix a bug where pressing ctrl+c in Cypher Shell would leave you in an infinite loop of IOException: Input/Output error errors.
  • Kernel
    • Fix edge case where active transactions metrics were inconsistently decremented on closing a transaction, which led to <prefix>.database.transaction.active_read to potentially appear negative.
    • Fixed possible crashes when using very small page cache sizes.
  • Security
    • Bump commons-text 1.9 -> 1.10.0 so as to address CVE-2022-42889
Please refer to the changelog for full details of the changes.

Neo4j 5.1 (24 October 2022)

 The General Availability Release

Highlights

Products included

The following products have been included in the distribution – available in /products directory – and are fully compatible with this release. 
  • Bloom 2.4.1 – A beautiful and expressive data visualization tool to quickly explore and interact with Neo4j’s graph data platform – no coding required. Please refer to the release notes for more details of what is available in this release.  (Requires a License)
  • Neo4j Browser 5.0.0 – Browser is a tool for developers to interact with the graph. It is the default interface for both Enterprise and Community Editions of the Neo4j database. 
  • Neo4j Graph Data Science 2.2.2 is a connected data analytics and machine learning platform that helps you understand the connections in big data to answer critical questions and improve predictions. Please refer to the release notes  for more details of what is available in this release. (GDS Enterprise requires a License)
  • Neo4j Ops Manager 1.2 is a UI-based tool that enables Administrators to operate and observe all of their Neo4j Database Management Servers. Please refer to the release notes  for more details of what is available in this release. (Included in Enterprise).

Surface for Developers and Data Scientists 

  • Improved messaging in Browser for startup of newly created databases
  • Browser support connecting to cluster members without a default database.
  • Procedures can specify an analyzer for Full Text queries

Language and Graph Model

  • Include Europe/Kyiv in the list of time zones in Cypher to, as per IANA 2020b.

Write and Import Performance

  • Incremental Import CSV header supports id-type to specify the value type for ID for a group e.g: id:ID(MyGroup){label:MyLabel, id-type: int}.

Read and Export Performance

  • Trigram Analyzer provides significantly faster Full Text searches.
  • Range seek Index Searches are consistent with non-Indexed range searches – does not match Not a Number (NaN).

Scale and Availability

  • Autonomous Clusters support Server Side Routing for Reads
  • Set or update the TOPOLOGY without specifying PRIMARY so that you can keep the defaults or existing settings.
  • Default database is created and allocated on a best-effort basis to initial members during dbms creation.

Platform & Supportability

  • Migration from Neo4j 4.4 to Neo4j 5.1 is supported please follow the migration guide available here. 
  • Any-to-any version rolling upgrade provides a streamlined upgrade experience and supports from 5.0 to 5.1, with future support to 5.x+n.

Fixes

  • APIs
    • Fixes a memory leak issue when using the Transactional HTTP API (GitHub ref)
  • Browser
    • Fix sysinfo depending on a setting no longer in 5.0.
    • Fix northwind data not loading properly due to https redirect.
  • Autonomous Clustering
    • Fix deadlock in RaftDrainingService area
  • Cypher
    • Fix issue where performance regressed for queries with “impossible predicates”
    • Fix bug where a user could change the database topology with incorrect privileges.
    • Fix bug in pipelined runtime where some queries using assertingMultiNodeIndexSeekOperator would fail incorrectly with Merge did not find a matching node…. For example in queries like UNWIND [0,1] AS id MERGE (n:A:B {id: id}), if there is a uniqueness constraint on the id property for both A and B labels.
    • Fix bug in pipelined runtime where AssertingMultiNodeIndexSeekOperator failed to perform locking index seeks. This could lead to failures when running concurrent transactions in queries like MERGE (n:A:B {id: x}) when we have a uniqueness constraint on id for both labels A and B.
    • Fixed bug where DROP DATABASE … IF EXISTS and ALTER DATABASE … IF EXISTS … could give DatabaseNotFoundException when there exists a remote database alias with the name.
    • Fixed bug for having * and order by id in same RETURN clause
    • Fix a bug where SHOW DATABASES may not include all servers for a database if the servers have the same value for server.bolt.advertised_address
    • Fix a bug with memory tracking in CALL IN TRANSACTION that could lead to an exception with the message “Expected non-negative long value …”.
    • Fix bug where columns could be swapped for UNION queries.
    • Fix a bug in pipelined runtime that can cause incorrect row ordering in queries that leverage order and contain an aggregation.
  • Kernel
    • Fixes a bug that caused XML logging files not to be included in neo4j-admin server report
Please refer to the changelog for full details of the changes..

Neo4j 5.0 (06 October 2022)

The Limited Availability Release

Highlights

Surface for Developers and Data Scientists

  • Browser 5.0 is a tool for developers to interact with the graph, and includes the following new features
    • Zoom to cursor on scroll in visualization
    • Zoom graph to fit after initial visualization animation
    • Editor displays full database name
    • Clear credentials in connection form on disconnect
    • Update :help articles on INDEX & CONSTRAINT
    • Note The Version and Info report the version as 5.0.0 but the Jar is named neo4j-browser-4.4.7.jar
  • Exceptions and Errors provide is_retryable() property, which indicates whether a retry behavior is recommended for the exception.
  • asyncio Python functions have been added to the Python Driver, including cancellation.
  • Python driver supports Pandas dataframes export Neo4j result sets to integrate into common workflows for data scientists.
  • Query String and Parameters in the results objects in the Go driver have been renamed, replacing the inconsistent ‘Statement’ object with the consistent ‘Query’ object.
  • New unique (reused) element ID can be used by applications, including those deployed with Fabric, to identify graph elements, their type and the database it originates from especially. The identifier is available using the elementID() function in Cypher – and the id will be reused when a graph element is deleted. 
  • Notifications -Updates severity on some of the existing notifications. Also, updates status code accordingly (removing Warning from the name if it now has severity Information). 
  • Traversal Framework for Neo4j 5 is available and the documentation has been improved to provide clear guidance on  use and limitations.REMOVAL of the deprecated version and version_info of the Result Summary object.
  • REMOVAL of the deprecated Session#reset in the Java driver.
  • REMOVAL of deprecated HTTP API endpoints where the endpoint begins with /db/data/transaction/. Please use the endpoints that include the database name (e.g. /db/neo4j/tx/commit.

Language and Graph Model

  • Graph Pattern Matching has been improved:
    • New inline Relationship patterns: MATCH (a)-[r:R WHERE r.p >10]-(b)
    • Improved label expressions in MATCH clauses. Nodes and relationships can be filtered using more sophisticated label and type boolean expressions such as & for logical AND (V:L1&L2), | for logical OR (V:L1|L2), ! for negation (V:!L4), % for any (V:%) and () for grouping (V:(L1&L2)|(L3& !L4)).
    • Allow reference to variables in other path elements:
      • MATCH (a)-[r:R WHERE r.p > b.p + a.p]-(b)
      • MATCH (a WHERE b.prop > 100)-[r]-(b)
  • Additions to Cypher
    • Allow underscores in numeric literals, except at the start.
    • COUNT { .. } expression replaces size().
    • EXISTS {} can be used in all expressions.
    • isNan function returns whether a value is or is not a number.
  • Neo4j APOC 5 Library (available in /labs directory) is the most-widely used extension library for Neo4j. It includes procedures, providing functionality for utilities, conversions, graph updates, and more. Comes with Engineering support for security and severity 1 fixes. APOC Extended has been moved to a community supported repository.
  • REMOVAL of the deprecated BTREE index type.
  • REMOVAL of the deprecated CYPHER 3.5 mode
  • Cypher Deprecations, additions & removals: full details are available here.

Read and Export Performance 

  • RANGE and POINT indexes can be used to speed up MATCH queries.
  • Removed support for BTREE Indexes – before migrating from Neo4j 4.4, ensure you have migrated to the new RANGE and POINT Index types and deleted the BTREE indexes (refer to the Migration Guide for details).
  • Lists included in FULLTEXT indexes – strings and arrays of strings are included in Full Text Indexes.
  • Faster K-Hop Queries a new Cypher runtime operator (BSFPruningVarExpand) speeds up K-Hop queries.
  • Auto-parameterize partially parameterized queries to improve query performance.
  • SLOTTED Runtime in Community Edition replaces INTERPRETED and significantly improves query performance.

Write and Import Performance

  • Incremental Offline Import appends new nodes with properties and new relationships between existing or new nodes within an existing database at an equivalent speed to Offline Import.
  • PIPELINED Runtime support for write operations subqueries (CALL { })  that perform write operations can now be run on the faster PIPELINED runtime.
  • No Eager for DETACH DELETE (n) in CALL IN TRANSACTIONS – the planner performs memory efficient deletes for full database deletions by avoiding planning eager operations.

Scale and Availability 

  • Autonomous Clustering (Enterprise) provides
    • Autonomous Clustering offer horizontal elastic scale to run larger clusters, with more databases without administrative overhead. 
    • Administrators can specify the number of database copies to be replicated within a cluster so that they are available on a subset of servers.
    • The cluster decides which databases are allocated to which servers. The allocation may change as servers are added and removed over time. 
  • Cypher’s COMPOSITE DATABASE provides real time Fabric configuration (Enterprise) – create, update and remove Fabric configurations without a restart, whether the database is within the same Autonomous Cluster, or hosted remotely. 
  • Removed the Multi-DC license setting (Enterprise).

Cloud Native Operations

  • IMMUTABLE privilege command (Enterprise) enables Administrators to lockdown the database to restrict administer privileges. 
  • Server-Side Routing is enabled by default  (Enterprise).

Operability & Observability

  • Neo4j-admin all admin functionalities have been consolidated into a single tool, and all commands have been grouped by scope.  There is an optional neo4j-admin conf file and individual conf files for each command so that there is more control over values provided for each command. 
  • New namespaces for configuration settings in neo4j.conf clear and consistent use of namespaces to ensure settings are applied appropriately at the database or database management level.
  • Procedures for validating config settings: The procedure ListConfig returns additional information about configuration settings. New procedure CheckConfigValue performs dry-run validation of new setting values.
  • Cypher-shell provides auto completion of commands.
  • Cypher-shell read access when there is no leader (Enterprise) read operations may be performed via cypher-shell using the neo4j:// scheme even when the cluster has no leader. Writes will return an error. 
  • Cypher-shell environment variables for URI or address use either NEO4J_URI and a new parameter –uri or NEO4J_ADDRESS to match the existing parameter –address.
  • CREATE DATABASE FROM URI enables Administrators to create a database by restoring from a backup on remote storage (HTTP, HTTPS, S3.)
  • New backup subsystem (Enterprise) provides 
    • Full and differential backup to an immutable file, and aggregation to compile a chain of backups into a full backup. 
    • Differential backup reduces storage requirements by 85% and provides point-in-time restore on timestamps or transaction ids. 
    • A new backup API for backup management and operability and target multiple URIs in a single backup command to support Autonomous Clusters. 
    • The Backup subsystem from Neo4j 4x is available as neo4j-admin database legacy-backup and legacy-restore. 
  • Strict validation for configuration settings by default to ensure the servers do not attempt to start with incorrect configuration (server.config.strict_validation.enabled). Turn off strict validation to enable start up, and log warnings.
  • New namespaces for Metrics (Enterprise) consistent with the Database or Database Management Server 
  • Neo4j.log has log rotation enabled by default – defaults are max file size is 20 MBytes (SizeBasedTriggeringPolicy), max number of log files is 7 (DefaultRolloverStrategy)
  • All logging is controlled by log4j, including neo4j.log, configuration settings are located in the $NEO4J_HOME/conf folder in the user-logs.xml used for neo4j.log and server-logs.xml used for debug, security, http and query log. Query log uses the same format as neo4j.log
  • Order transaction log files by creation time in debug.log and not alphabetical sorting.
  • Destination database name is included in the debug.log when the neo4j-admin database import command is used.
  • Transaction metadata included in Cypher-shell queries so that logs record the source of the query.
  • Cypher-shell logging (-log) Support can use cypher-shell to replicate problems with the Java Driver or Bolt without having to edit the client application. 

Security

  • Cypher-shell impersonation (Enterprise) use and or test user impersonation via Cypher-shell 

Platform & Supportability

  • Requires Scala 2.13 (included) and Java JDK 17  – full details of System Requirements are available here.
  • New Support Terms – Refer to Support Terms for full details – in summary
    • The Major release is supported with Hotfixes only until the first Minor release, each Minor release is supported with Hotfixes until the next Minor release. 
    • Hotfixes will only be released between Minor releases in exceptional cases, e.g. High Severity Security fix, and will receive product support until the next Minor release. 
    • In order to maintain Product Support for new bug fixes and feature enhancements, customers must apply the latest Minor release.
  • Migration from Neo4j 4.4 to Neo4j 5 In order to migrate from Neo4j 4.4.x to Neo4j 5 follow the migration guide available here. 
  • Any-to-any version rolling upgrade provides a streamlined upgrade experience from 5.0 onwards; upgrade is possible from any 5.x version to any later version of 5.y e.g. 5.2 to 5.6.
  • Log acceptance of the enterprise agreement in neo4j.log
  • Transaction state memory allocation configured to use ON_HEAP tx state by default as this benefits most workloads observed in Aura. 
  • Consistent write throughput with Corretto JVM on AWS Graviton 2 performance investigation demonstrated a consistent write throughput vs Oracle JVM on the AWS Graviton 2, and Intel architectures.
Please refer to the changelog for full details of the changes.

Documentation

The documentation is available here: