Skip to content
This repository was archived by the owner on Oct 25, 2021. It is now read-only.

Conversation

@wheresrhys
Copy link
Contributor

@wheresrhys wheresrhys commented Jan 15, 2021

Why?

[email protected] is EOL in september

What?

Upgraded the obvious things that mention an explicit version number and/or a defined syntax change.

Caveat

This PR does not cover any of the security changes (e.g. the introduction of the need for explicit certificates) as they will be tested by the calling clients - e.g. Biz Ops API

@GeoffThorpeFT
Copy link
Contributor

I have also tried to run this PR and as @wheresrhys suggests its broken. However, there is a clue which suggests we need to make a couple of further changes due to a change between v3 and v4 in the way database security works: https://neo4j.com/docs/driver-manual/current/client-applications/#driver-connection-uris

That's the good news :). The bad news is that any db upgrade starting at v3 may need to go to v4.0 before it can then go to v4.1: https://neo4j.com/docs/migration-guide/4.0/

@wheresrhys
Copy link
Contributor Author

@GeoffThorpeFT v4.x will be backwards compatible with v4.0, so any advice for 4.0 should still apply

@GeoffThorpeFT GeoffThorpeFT requested review from a team, GeoffThorpeFT and nl-ria and removed request for a team January 18, 2021 15:04
@GeoffThorpeFT GeoffThorpeFT marked this pull request as ready for review January 18, 2021 15:37
@GeoffThorpeFT GeoffThorpeFT requested a review from a team as a code owner January 18, 2021 15:37
@wheresrhys
Copy link
Contributor Author

wheresrhys commented Jan 18, 2021

I can't approve this (as I created the PR 😝 ), but I think the next steps are to release a beta from this branch and then apply similar upgrades to Biz Ops API's codebase.

Then finally coordinating a release to biz ops test and to biz ops prod (Will be good to document how to upgrade the DB version via the new graphene DB console - the old docs in Biz Ops API will need updating)

Could you write up a few tickets for those please (separate tickets for upgrading staging, documenting and upgrading prod)

@GeoffThorpeFT
Copy link
Contributor

With regard to the productionisation of this solution its important to note that the GrapheneDB solution to the certificate issue is to use a “new” protocol provided by neo4j. They moved from bolt: to neo4j+s: as the URL prefix (scheme) to illustrate the use of a secure connection via a certificate.

@GeoffThorpeFT
Copy link
Contributor

neo4j/neo4j-javascript-driver#534 as mentioned at the beginning of the driver release log for v4.0 https://github.com/neo4j/neo4j-javascript-driver/wiki/4.0-changelog

image: neo4j:4.1.5
environment:
- NEO4J_dbms_logs_query_enabled=true
- NEO4J_dbms_logs_query_enabled=VERBOSE
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Slightly confused now with these settings as this v4.1 database can now be accessed by a v4 driver without the need for me to be explicit about the use of a certificate!!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I've now realised that at well, silly me. However, this PR will now focus on the functionality delivered by the neo4j driver (e.g. CYPHER) not the security. The security will be tested via a similar PR for Biz Ops API

const constraints = await executeQuery('CALL db.constraints');
return constraints.records.map(constraint =>
constraint.get('description'),
constraint.get('name'),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This, and the similar line below, seem to be the solution to the original failure of the db to start. The reasons being that:
a) the description field is no longer available
b) the db.constraints and db.indexes procedures have been deprecated

Makefile Outdated
LOCAL_BOLT_URL=neo4j://localhost:7687
BIZ_OPS_BOLT_URL=${NEO4J_BOLT_URL}
NEO4J_VERSION=3.5.0
NEO4J_VERSION=4.1.5
Copy link
Contributor Author

@wheresrhys wheresrhys Jan 20, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is now 4.1.6 - released yesterday

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Upgraded to 4.1.6 (all three places) - thanks

@GeoffThorpeFT GeoffThorpeFT merged commit 2cc5a38 into master Feb 5, 2021
@GeoffThorpeFT GeoffThorpeFT deleted the neo4j-v4 branch February 5, 2021 08:15
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants