Skip to content

Latest commit

 

History

History
107 lines (68 loc) · 5.42 KB

README.md

File metadata and controls

107 lines (68 loc) · 5.42 KB

Neo4j Browser Node Version Badge is Missing Ts Version Badge is Missing

npm registry Translation Badge is Missing

Neo4j Browser is the general purpose graphical user interface for Neo4j. Query, visualize, administer and monitor the database with modern and easy-to-use tools.

neo4j browser screenshot

Demo

You can try out the latest (unreleased) version of Neo4j Browser at http://browser-canary.graphapp.io/.

Keep in mind that you will need to connect to an instance of Neo4j (the database) for most operations in Neo4j Browser. A simple way to get started is through Neo4j Desktop. Once you've started a database it's by default available for Neo4j Browser to connect to on localhost:7687.

Feedback & Contributing

Found a bug or some other problem with Neo4j Browser? Please open an issue.

Have an idea for a new feature? You're welcome to leave suggestions and ideas here.

Contributions welcome! More information in our CONTRIBUTING.md.

Project structure

Browser has a subproject of re-usable components bundled together and exposed as neo4j-arc. Rather than set up mono-repo tooling the we've set up eslint to isolate neo4j-arc and given it a seperate build step. Code in browser can only to import code from neo4j-arc through neo4j-arc aliases (as if it was a seperate project) and neo4j-arc is not allowed to import any code from outside it's own folder.

Development Ts Version Badge is Missing

There are 2 parts within this project

  1. browser
  2. re-usable graphing library, i.e. neo4j-arc

Each mantains a separate TS version. Browser's TS version has to align with neo4j-arc's by setting a fixed version at latter's lower bound. For example, if neo4j-arc's typescript version is "typescript": "^4.6.2", then the browser's has be to the exact version of "typescript": "4.6.2"

Running Neo4j Browser locally requires Node.js 16 and for dependencies we use yarn (npm install -g yarn). To install dependencies and then start the development server at http://localhost:8080:

To switch node version with a version manager, please try nvm

yarn install
yarn start

Or to run in production mode:

yarn start-prod

Testing overview

Neo4j Browser has both unit and end to end tests running automatically on every pull request. To run the tests locally:

yarn jest runs our unit tests.

yarn test-e2e runs our Cypress end to end tests in the easiest, slowest way. Running them with this command requires docker installed and that nothing else runs on ports 7687 and 8080.

Cypress e2e test suite in depth

yarn e2e-open to open the Cypress test runner (requires a fresh installation of Neo4j to run against, expects neo4j 3.5 by default). See details below on how to configure database version.

yarn e2e-local-open to run against an existing server (with a password already set). We use newpassword as the default password here, make sure to pass your password:

yarn e2e-local-open --env browser-password=<your-password-here>

The name browser-password is a bit misleading. It's actually the password for connecting to Neo4j we just mentioned via bolt portocol, i.e. the "password" input in the image below:

browser password screenshot

To avoid opening the Cypress test runner and just run the tests in the terminal, remove the "-open" suffix from the previous two commands (so yarn e2e and yarn e2e-local respectively).

So to run tests on your existing 4.2 database with the password "hunter2" without opening the Cypress visual test runner: yarn e2e-local --env browser-password=hunter2,server=4.2

All the available options for --env are:

server=3.5|4.0|4.1|4.2|4.3 (default 4.3)
edition=enterprise|community|aura (default enterprise)
browser-password=<your-pw> (default 'newpassword')
include-import-tests=true|false (default false)
bolt-url=<bolt url excluding the protocol> (default localhost:7687)

There are some additional options that can only be set as system environmental variables (meaning they cannot be set using the --env flag as the ones above). These needs to be set before the test command is run.

CYPRESS_E2E_TEST_ENV=local|null (if the initial set of pw should run or not) (default undefined)
CYPRESS_BASE_URL=<url to reach the browser to test> (default http://localhost:8080)

Example: CYPRESS_E2E_TEST_ENV="local" CYPRESS_BASE_URL=http://localhost:30000 cypress open --env server=4.2