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.
Extracted from Neo4j Desktop
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.
Neo4j at your command
Now witness the firepower of this fully armed and operational
battle stationCLI
-- The Emperor
The @relate/cli
package installs the relate
command line tool. There is a PR which will make the CLI available without requiring node.js.
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 r31473
:
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.
Convenient, right?
Try 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.
Next steps
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
relate
to 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
relate
as an application server
Top comments (0)