Neo4j Relate delivers graphs on tap. From the CLI, from your app, or from a local server, you can provision Neo4j databases whenever you'd like to enjoy the clean, refreshing goodness of graphs.
The best frameworks are in my opinion extracted, not envisioned.
-- David Heinemeier Hansson
Neo4j Desktop is a native application which packages up everything you need for working with the Neo4j DBMS.
- Neo4j DBMS download and management
- Neo4j connection management
- tools like Neo4j Browser, Neo4j Bloom and Neo4j ETL
Internally, there is a GraphQL API through which tools may discover available databases, provision new ones and negotiate authentication.
Neo4j Desktop is extensible. New tools can be added, and you can write your own. But it feels like a walled garden. Peering over the hedge, wouldn't it be nice to easily manage Neo4j from the command line, or from VS Code, or even from within your app?
Neo4j Relate extracts the core operational library of Neo4j Desktop then packages that into a CLI tool, a web server, or a generic Electron app. Let's take the CLI for a spin.
Now witness the firepower of this fully armed and operational
-- The Emperor
For now, try:
npm install -g @relate/cli
Set up a provisioning environment:
relate env:init --name=graphs-on-tap --type=LOCAL
Accept the default settings when prompted. You'll need to provide this semi-secret access code
Enter the access code you received from applying at https://neo4j.relate.by/invite:r31473 ✔ Do you need to enable authentication? (y/N) · false ✔ Do you need to restrict access to the GraphQL API methods? (y/N) · false ✔ Are HTTP consumers required to have an API key? (y/N) · false Creating environment... done
The authentication mentioned above is for the GraphQL API, which we'll explore in a later post.
Now install a Neo4j DBMS named "hello" into the provisioning environment named "graphs-on-tap". If you drop
4.1.3 from the end, you can pick which version to install:
relate dbms:install -e graphs-on-tap --name hello 4.1.3
Enter new passphrase: will set the password for the admin user named "neo4j":
✔ Enter new passphrase · DOWNLOAD PROGRESS [████████████████████████████████████████] 100% extracting neo4j... done [b92ada41] hello
Finally, start the DBMS named "hello" within the "graphs-on-tap" environment:
relate dbms:start -e graphs-on-tap hello
Neo4j DBMS should start up, then you'll be able to browse to http://localhost:7474 to use Neo4j Browser. Use the admin user named
neo4j and the password you set above.
relate --help to see the other available commands and options. For instance,
relate env:use to set the "current" environment, saving you a little typing.
Neo4j Relate is in alpha, evolving quickly with more capabilities and integrations. Stay tuned and reach out to me with any ideas or questions.
In later posts, I'll explore:
- e2e testing using
relateto do setup & teardown
- hosting Browser, Bloom and other tools without needing Neo4j Desktop
- spinning up a server to provision DBMSes on demand
- writing nest.js modules to use
relateas an application server