Give read-only access
Neo4j Community has no read-only users: everyone who can sign in can also change the graph or delete it. The bundle therefore offers a read-only copy: a second Neo4j, with a password of its own, that refuses every write.
Set it up
-
In
.env, choose the copy's password:NEO4J_READONLY_PASSWORD=a-password-to-give-to-people -
Fill the copy:
./refresh-readonly.shIt makes a backup (Neo4j stops for the length of the dump), loads it into the copy and starts the copy read-only.
-
People open the copy's Neo4j Browser at http://localhost:7475 and sign in as
neo4jwithNEO4J_READONLY_PASSWORD. Any write is refused with "No write operations are allowed on this database".
What the copy leaves out
Hop stores, with every run, the project's metadata (metadataJson) and the whole pipeline or
workflow (executorXml). Both include the project's database connections, passwords in Hop's
"Encrypted" form, which anyone with Hop can turn back into the password. The refresh removes
these two properties from the copy. Everything else is there; the original keeps everything.
Keep it fresh
The copy shows the data of its last refresh. Run ./refresh-readonly.sh as often as people
need, for example nightly from cron, at a time when no runs are expected: Neo4j stops for the
dump.
Ports
NEO4J_READONLY_HTTP_PORT (7475) and NEO4J_READONLY_BOLT_PORT (7688), on NEO4J_BIND_ADDR.
If you change the Bolt port or publish it under another name, set
NEO4J_READONLY_BOLT_ADVERTISED to match, or the Browser opens but cannot connect.