Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Graph Browser & Admin UI

patinadb-browser is a local web UI for exploring a patinaDB database — a graph view, a Cypher editor, the engram history with git-style diffs and time-travel, the Anamnesis provenance graph, and — when pointed at a running server — an admin dashboard with cluster health, query metrics, and database sizes. It runs as a tiny local server (binds 127.0.0.1) and opens your browser automatically (--no-open to skip).

Ways to connect

File mode — open an embedded database directory directly (the same on-disk database the CLI and the embedded API use):

patinadb-browser ./mygraph

Server mode — connect to a running server over its HTTP endpoint (the one that serves /cypher and /mgmt/*), authenticating with a user set up under Authentication:

patinadb-browser --server http://localhost:8080 --user admin --password secret --database default

--database selects which database to browse (default default). In server mode no local database is opened — every action is proxied to the node, so you can browse a live, replicated cluster. This is the mode that unlocks the admin dashboard below.

Bolt mode — connect to a running server over the native Bolt protocol (as any Neo4j driver would):

patinadb-browser --bolt bolt://localhost:7687 --user admin --password secret --database default

Bolt is query-only: you get the graph, table, engram-history, and Anamnesis views (engram/diff/time-travel go through the patinadb.* procedures and USE … AS OF), but no admin dashboard — Bolt has no management plane, so the admin views need server mode. Node expansion in the detail panel is also unavailable over Bolt (Bolt 4.4 doesn’t carry the stable element id). Use Bolt mode for a quick native-protocol look; use server mode for the full tool.

The three connection flags (<db-path>, --server, --bolt) are mutually exclusive. Common flags: --port (default 4200), --no-open.

Views

  • Graph — a force-directed view of your query results; click a node to inspect its properties and expand its neighbours (incoming and outgoing relationships, with their types and properties).
  • Table — the same results as rows.
  • Map — a self-contained coordinate-plane view (no external map tiles) that plots any Point and Polygon values in the current result — points as dots, polygons as filled shapes, over a light graticule. Scroll to zoom, drag to pan; hover a shape for its coordinates and the owning node’s properties. Values sitting in a returned node’s property map are found automatically, so MATCH (c:City) RETURN c maps every c.loc point.
  • Engrams — the commit history as a timeline; select an engram to see a git-style diff (added / removed nodes and edges, and property changes as old → new), and view the graph as of that point in history.
  • Anamnesis — the projected provenance graph, shown when the database has Anamnesis enabled (otherwise a short note explains how to turn it on).

Analyze & live changes

The Analyze bar above the results runs graph algorithms and paints them onto the rendered graph (all modes — file, server, Bolt):

  • PageRank / Degree / Betweenness / Closeness / Triangles — a numeric score → node size plus a verdigris → amber → rust oxidation colour ramp.
  • Communities (WCC) / Label Prop — a per-community colour.

Restrict any run to a node :Label and/or a :REL type. Alongside are the Statistics catalog (label · property · count · distinct · min · max) and an Export CSV of the current result view.

In server mode, a Live changes button opens a change-stream panel that tails the database over the node’s change-stream endpoint (Server-Sent Events): every committed write appears live as a compact list of per-change records (create/delete node & relationship, set/remove property, label changes). Pause/resume with the panel’s toggle. It is a server-mode capability and degrades to a short notice in file and Bolt mode.

Admin dashboard (server mode, admin login)

When you connect in server mode with an admin account, an Admin view appears with a live operational overview of the node and cluster:

  • Cluster health — the topology: the leader, voters, and learners with their addresses, the current term and this node’s state. A single-node cluster (quorum of 1) is shown as Standalone; a multi-node cluster shows every member and reflects failover.
  • Metrics — per-query-shape statistics (count, mean, p95, max), the same data as GET /mgmt/queries.
  • Storage — each database’s on-disk size (companions such as <db>__anamnesis included), with the total.

The dashboard refreshes on a gentle interval. It is only available in server mode and only to administrators; a non-admin account sees the data views without it.

The browser is a convenience UI, not a security boundary — run it locally and reach a remote server over an authenticated (and ideally TLS-terminated) connection. See Authentication & TLS.

Fully offline / air-gapped

The browser makes zero external network requests — everything it needs is bundled into the binary. The UI is a single-page Svelte app whose build inlines all of its JavaScript, CSS, the D3 graph library, and its fonts into one self-contained document (no CDN, no external <script>/<link>/web-font). So it runs unchanged on a machine with no internet access or inside an air-gapped/secure network: the graph view renders and the fonts load exactly as they do online. (The only network traffic is to the patinaDB database or server you point it at.)