We removed the driver dependency completely and copy pasted in the experimental driver with Query API support that @bigmontz from the drivers team has made. We checked out the 5.x-experimental-http-scheme branch, installed dependencies, ran the build command and then copied the standalone file packages/neo4j-driver-lite/lib/browser/neo4j-lite-web.esm.js and then updated the import paths. In the future we'd not need to do this, we'd depend on the code via npm
Migrate to identity to elementId (except in rel edit)
Add http as an option in the scheme dropdown - Note : the others are now working for now as it only includes the experimental HTTP driver, and not the "other drivers"
For testing the query api with a real database, we downloaded neo4j 5.19.0 and set server.http_enabled_modules=BROWSER,QUERY_API_ENDPOINTS,TRANSACTIONAL_ENDPOINTS in the neo4j.conf file.
Still to todo on the neodash side
UI affordance to select HTTP in some sustainable way (including making sure we get the right ports, and make sure people understand the limitations)
Verifying that the driver update isn't breaking anything
Doublecheck driver usage to make sure we're not using any other unimplemented functions
Make sure we always pass a database name. Either by making it mandatory in the form when http is used, or though SHOW DATABASES things. You can always run SHOW DATABASES against the system database.
Try out the other codepaths that lead to creating drivers/querying cypher. We only really tried the dashboard panels
Verify that the data types for the new driver are still correct when using HTTP
What we did, commit by commit
inline use-neo4j
Copy pasted the
use-neo4j
library and removed everything we weren't using neodash.bump the driver
Bumped the driver to
5.12.0
and re-did some of the reverted compat changesuse new driver
We removed the driver dependency completely and copy pasted in the experimental driver with Query API support that @bigmontz from the drivers team has made. We checked out the
5.x-experimental-http-scheme
branch, installed dependencies, ran the build command and then copied the standalone filepackages/neo4j-driver-lite/lib/browser/neo4j-lite-web.esm.js
and then updated the import paths. In the future we'd not need to do this, we'd depend on the code vianpm
proof of concept
We hardcoded the protocol to be HTTP. We tried using the new driver and got it to work o.k. for some data types. We ran into a couple of limitations:
session.run
was not availableidentity
was not available, onlyelementId
inject HTTP driver experimental package
Replace inlined driver-lite with npm package
Migrate to elementId
For testing the query api with a real database, we downloaded neo4j
5.19.0
and setserver.http_enabled_modules=BROWSER,QUERY_API_ENDPOINTS,TRANSACTIONAL_ENDPOINTS
in theneo4j.conf
file.Still to todo on the neodash side
SHOW DATABASES
against thesystem
database.