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
PointandPolygonvalues 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, soMATCH (c:City) RETURN cmaps everyc.locpoint. - 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>__anamnesisincluded), 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.)