Skip to content

Releases: neo4j-contrib/neo4j-apoc-procedures

4.0.0.2

29 Jan 09:24
Compare
Choose a tag to compare

This release contains a bug fix for exporting to Cypher script.

4.0.0.1

27 Jan 11:14
Compare
Choose a tag to compare

This release contains bug fixes for:

  • #1385 - multi-db concurrency issue at startup
  • graceful handling of missing sun.java.command system property when determining Neo4j conf folder - bae9c55

APOC Winter Release 4.0.0.0

17 Jan 12:06
Compare
Choose a tag to compare

Can’t imagine using the new version of Neo4j without APOC? We can’t either! That’s why we’ve prepared this release especially for Neo4j 4.0 compatibility.

This release was mostly powered by @sarmbruster, working tirelessly to upgrade APOC from 3.5 to the new 4.0 Neo4j APIs and changes, as well as to merge incoming pull requests from improvements. Contributions for new procedures, fixes, and documentation updates came from @conker84, @mneedham, and @karmakaze.

Happy developing!
@JMHReif and @mneedham

Quick List of Changes

  • add recursive parameter for map.removeKey and map.removeKeys (fix for #1270)
  • add apoc.systemdb.graph for details of system database in Neo4j
  • add apoc.systemdb.execute to execute DDL commands against system database in Neo4j (fix for #1357)
  • add exception handling for apoc.xml.import on config error
  • add apoc.nodes.relationship.types and apoc.nodes.relationship.exists to check relationships across multiple nodes (fix for #1136)
  • add apoc.date.parseAsZonedDateTime to parse date with time and timezone

Bug fixes

  • fix for apoc.load.xls range issue with columns after Z (fix for #1342)
  • fix for apoc.cypher.runFile to not fail on an empty transaction (fix for #1262)
  • fix for apoc.periodic.* to improve logging (fix for #1363)
  • fix for apoc.export.cypher.* to correctly handle multiple labels (fix for #1366)
  • fix for apoc.export.csv.graph to handle internal and business ids in data (fix for #1335)

Configuration changes

Documentation

  • add feedback form in documentation pages - let us know where we can improve the docs!
  • refactored documentation pages for apoc.export.csv and apoc.export.json
  • fix for apoc.load.jsonParams to add documentation and test (fix for #1279)

APOC Winter Release 3.5.0.7

17 Jan 12:02
Compare
Choose a tag to compare

Admittedly it's been a very mild winter here in London town, but that doesn't mean that we can't have a new APOC release!

Contributions for new procedures, fixes, and documentation updates came from @conker84, @mneedham, and @karmakaze.

Happy developing!
@JMHReif and @mneedham

Quick List of Changes

  • add recursive parameter for map.removeKey and map.removeKeys (fix for #1270)
  • add apoc.systemdb.graph for details of system database in Neo4j
  • add apoc.systemdb.execute to execute DDL commands against system database in Neo4j (fix for #1357)
  • add exception handling for apoc.xml.import on config error
  • add apoc.nodes.relationship.types and apoc.nodes.relationship.exists to check relationships across multiple nodes (fix for #1136)
  • add apoc.date.parseAsZonedDateTime to parse date with time and timezone

Bug fixes

  • fix for apoc.load.xls range issue with columns after Z (fix for #1342)
  • fix for apoc.cypher.runFile to not fail on an empty transaction (fix for #1262)
  • fix for apoc.periodic.* to improve logging (fix for #1363)
  • fix for apoc.export.cypher.* to correctly handle multiple labels (fix for #1366)
  • fix for apoc.export.csv.graph to handle internal and business ids in data (fix for #1335)

Configuration changes

Documentation

  • add feedback form in documentation pages - let us know where we can improve the docs!
  • refactored documentation pages for apoc.export.csv and apoc.export.json
  • fix for apoc.load.jsonParams to add documentation and test (fix for #1279)

APOC First 4.0 release 4.0.0-RC01

12 Dec 12:06
Compare
Choose a tag to compare

This is our first release of APOC that works with the Neo4j 4.0 series for those early birds who are already kicking the tyres of the latest and greatest.

APOC Almost Winter Release 3.5.0.6

18 Nov 15:51
Compare
Choose a tag to compare

It's only just gone 4pm in London and it's already pitch black outside as we do this release. Over in Saint Louis it's still daylight, but then again it is the morning over there.

This release was mostly powered by @conker84, but we also have good assists from @tomasonjo, @vboulaye, and the ever present @sarmbruster.

Enjoy!
@mneedham and @JMHReif

Quick list of changes:

  • Added streaming support to export JSON and GraphML (fix for #1276)
  • Added string multiplication apoc.text.repeat
  • Added apoc.coll.fill function
  • Added apoc.custom.delete/remove (fix for #1317)

Bugfixes

  • fixed some null issues on apoc.coll.containsAll
  • apoc.graph.fromDocument considers mappings field into document whitelist (fix for #1333)
  • fixed Mongo procedure throws NullPointerException if a field is null (fix for #1331)
  • fixed apoc.periodic.repeat doesn't provide any feedback when query is bad (fix for #1268)
  • coll.isEqualCollection compare 2 collections in any order (fix for #151)
  • ensure Future.cancel(false) is used everywhere (fix for #1315)
  • removeRelProperties expects only 2 params + plural property -> ies (fix for #1304)

APOC Fall Release 3.5.0.5

04 Oct 10:33
Compare
Choose a tag to compare

The leaves are turning golden and red here in Europe, and we finally got a new APOC release out.

Thanks a lot to all contributors especially @conker84 (for most of the work), @sarmbruster, @mneedham, @InverseFalcon, @vboulaye

And to everyone who provided feedback, raised issues or submitted ideas.

Thanks to @eastlondoner you can now load APOC and Graph Algorithms directly into your docker image:

docker run -it --rm -p 7474:7474 -p 7867:7867 --env 'NEO4JLABS_PLUGINS=["apoc", "graph-algorithms"]' neo4j:3.5.11

Please note that the APOC docs can now be found under https://neo4j.com/docs/labs/apoc/current

Quick list of changes:

  • support for loading data from google cloud storage, thanks to @eastlondoner for the idea
  • custom procedures and functions with signature declaration
  • apoc.graph.fromDocument for turning (json-)documents into graphs, became much more powerful with custom mappings, embedded documents and handling of missing ids and labels (see the detailed docs)
  • mongodb object-ids are now handled also in nested fields, you can even get related documents embedded
  • lots of documentation updates, thanks @mneedham
  • virtual nodes can now wrap real nodes and return only a subset of properties, good to reduce load for visualizations that only need topology + caption
  • improvement in the path expansion functions, with minLevel and filterStartNode, thanks @InverseFalcon
  • apoc.map.flatten got documented and a parameter for recursion
  • new functions apoc.xml.parse and apoc.xml.format to parse XML text directly without loading it from an URL
  • Added apoc.agg.maxItems() and apoc.agg.minItems() for getting the collection of items associated with a maximal or minimal supplied value

Bugfixes

  • fix in apoc.export.cypher.query too many commas and fulltext-index handling
  • fix in apoc.export.csv.query for header order
  • fix in apoc.load.jdbc that prevents the postgres driver from materializing millions of records client-side
  • fix race condition in cypher initializers
  • fixes rounding issues in min, max calculations of statistics aggregation
  • fixes 3.5.x apoc.schema.nodes fails

And while you are enjoying this release @sarmbruster is hard at work making APOC ready for Neo4j 4.0
Which includes massive API changes in all places, I can't thank him enough for that. Stefan also fixed a lot of build issues related to Java 11 and Travis and much more !!

Now grab the release and enjoy the new functions and fixes. Please report back any issues and suggestions.

And don't forget to tune in to NODES2019 https://neo4j.com/online-summit our first Neo4j Online Developer conference.

And if you haven't seen them, @mneedham and @JMHReif created a number of APOC guides and knowledge base pages:

APOC Late Spring Release 3.4.0.7

30 May 21:44
Compare
Choose a tag to compare

This is just a quick intermediate release before spring is over.


Powered by Neo4j Labs.

As usual big thanks to our contributors that spent countless hours to improve APOC and add useful functionality.

Here are the highlights:

  • New procedures: apoc.merge.node.eager() and apoc.merge.relationship.eager()
  • New functions: apoc.map.(m)get, apoc.map.mget and apoc.map.submap that fail on missing keys
  • Added apoc.date.convertFormats for String date conversions

Bugfixes/Improvements

  • Make sure custom procedures are also recreated on other cluster members
  • headers incorrect order after apoc csv export
  • Prepend cypher runtime=slotted in apoc.periodic.iterate driving statement
  • Make the dbms.directories.import directory the root for exports too as only that directory should be readable/writeable on a server
  • keep the mongodb connection open until stream is closed
  • allow loading of xml with DTD references
  • alias sql statements in neo4j.conf for apoc.load.jdbc
  • Adds ignoreQuotations configuration to apoc.load.csv
  • Avoid using recursion for re-submitting rejected tasks in the Pools.
  • Fix apoc.refactor.mergeNodes index conflict exception by moving property copying last just after deleting of source node

Enjoy!

APOC Late Spring Release 3.5.0.4

30 May 22:01
Compare
Choose a tag to compare

This is just a quick intermediate release before spring is over.


Powered by Neo4j Labs.

As usual big thanks to our contributors that spent countless hours to improve APOC and add useful functionality.

Here are the highlights:

  • New procedures: apoc.merge.node.eager() and apoc.merge.relationship.eager()
  • New functions: apoc.map.(m)get, apoc.map.mget and apoc.map.submap that fail on missing keys
  • Added apoc.date.convertFormats for String date conversions

Bugfixes/Improvements

  • Make sure custom procedures are also recreated on other cluster members
  • headers incorrect order after apoc csv export
  • Prepend cypher runtime=slotted in apoc.periodic.iterate driving statement
  • Make the dbms.directories.import directory the root for exports too as only that directory should be readable/writeable on a server
  • keep the mongodb connection open until stream is closed
  • allow loading of xml with DTD references
  • alias sql statements in neo4j.conf for apoc.load.jdbc
  • Adds ignoreQuotations configuration to apoc.load.csv
  • Avoid using recursion for re-submitting rejected tasks in the Pools.
  • Fix apoc.refactor.mergeNodes index conflict exception by moving property copying last just after deleting of source node

Enjoy!

APOC Neo4jLabs Spring Release 3.5.0.3

17 Apr 23:57
Compare
Choose a tag to compare

APOC Spring Release 3.5.0.3


Powered by Neo4j Labs.

This is the first Neo4jLabs release of APOC.
It is full of new features and extensions to existing ones.

Over the next few weeks you will see articles exploring those features a bit more in detail.

As usual we got a lot of support and contributions from many people, especially @conker84 and @AngeloBusato from our partner Larus-IT, Italy.
But this time we have to thank also a lot of new and previous contributors:

New Features

  • Automatically create a graph representation from nested JSON document, this is a starting point, it will get more configurable, optionally returns a virtual graph
  • New modes for apoc.export.cypher that optimize import performance, down from 4 hours for 4M nodes/rels to 10 minutes (with cypher-shell 1.1.9)
  • An automatic UUID handler configurable by label, ensures that each node of that label will get an UUID id set at creation time, with means to update existing nodes
  • Excel Export (apoc.export.xls.*) also allows different labels to go to different sheets
  • New functions for checking if relationships exists and their degrees: apoc.node.relationships.exist / apoc.node.relationships.degrees, also for lists of nodes

Improvements:

  • breaking change: switch import directory mode to honor neo4j import directory setting by default, so only files in the import directory can be accessed (security)
  • apoc.export.csv has now an option (bulkImport:true) for supporting the bulk import via apoc.import.csv, also handling of quote characters
  • don't follow redirects that change protocols (security)
  • added functions for apoc.static.get*
  • added functions for apoc.text.phonetic*
  • automatically prefix the slotted runtime for apoc.periodic.iterate esp for graph refactorings
  • description field for custom procedures
  • list custom functions and procedures with apoc.custom.list
  • config options to (disable,garble, enable) custom logging (security)
  • add an option includeFailedBatches to apoc.periodic.iterate that returns a portion of the failed batch for analysis
  • fix division by zero operation during sampling of metadata
  • revised Metrics and Log Streaming approach, especially for the Halin Monitoring tool (security) (see https://install.graphapp.io)
  • test container support for cassandra, jdbc(postgres), neo4j (testing)

Bugfixes

  • proper write locking of both nodes and relationships in apoc.lock.all
  • made clone and relationship direction procedures eager.