Web Interface (hanalyzer)
hanalyzer is the browser-based control surface for hlquery. It is a Vue application that talks to the hlquery HTTP API and provides screens for collection work, document inspection, search, access control, cluster links, diagnostics, and server monitoring.
Runtime Model
- Default UI port:
8080when launched through./hanalyzer. - Default hlquery API target:
http://localhost:9200. - Router mode: hash routing, so production URLs look like
/#/collectionsand work when the built app is mounted under/,/hanalyzer/, or another static subdirectory. - Health guard: most non-collection routes check
/healthbefore navigation and redirect to/#/statuswhen the server is unavailable. - Config sources:
hanalyzer.conf.jsfor build/dev defaults andpublic/hanalyzer.config.jsonfor runtime config.
Start Locally
cd etc/hanalyzer
npm install
./hanalyzer
Run with a different API target:
./hanalyzer --api http://localhost:9200 --port 8080
For development:
npm run dev
For a production build:
npm run build
npm run preview
Do not open dist/index.html with file://; serve the build over HTTP or HTTPS.
Routes
The current route table lives in etc/hanalyzer/src/router.js.
| Hash route | View | Purpose |
|---|---|---|
/#/ | redirect | Redirects to collections. |
/#/collections | Collections | List, filter, and open collections. |
/#/collections/create | Create Collection | Create a collection and schema. |
/#/collections/{name} | Collection Documents | Browse collection documents. |
/#/collections/{name}/{page} | Collection Documents | Open a numeric document page. |
/#/collections/{name}/synonyms | Collection Documents | Manage collection synonyms. |
/#/collections/{name}/stopwords | Collection Documents | Manage collection stopwords. |
/#/collections/{name}/search-syntax | Collection Search Syntax | Inspect supported query syntax. |
/#/collections/{name}/schema | Collection Schema | Inspect collection fields/schema. |
/#/collections/{name}/details | Collection Details | Collection metadata and actions. |
/#/collections/{name}/documents/add | Add Document | Add a document. |
/#/collections/{name}/documents/{docId} | Document Detail | Inspect one document. |
/#/collections/{name}/synonyms/add | Add Synonym | Add a collection synonym. |
/#/collections/{name}/stopwords/add | Add Stopword | Add a collection stopword. |
/#/search | Search | Build and run searches. |
/#/search/collections/{query} | Search Collections | Search collections by query. |
/#/search/results | Search Results | Display global or collection search results. |
/#/sql | SQL | Run SQL-style queries. |
/#/aliases | Aliases | List aliases. |
/#/aliases/{collection} | Aliases | Filter aliases by collection. |
/#/aliases/create | Create Alias | Create an alias. |
/#/access | Access Management | Manage keys and users. |
/#/globals | Globals | Manage global synonyms and stopwords. |
/#/globals/synonyms/add | Add Global Synonym | Add a global synonym. |
/#/globals/stopwords/add | Add Global Stopword | Add a global stopword. |
/#/dashboard | Server Profile | Server profile, metrics, storage, and operational summaries. |
/#/server-profile | redirect | Redirects to dashboard. |
/#/connections | Connections | Active connection view. |
/#/links | Cluster Links | Cluster link overview. |
/#/links/{node} | Cluster Links | Node-specific link view. |
/#/links/{node}/{collection} | Cluster Links | Node and collection-specific link view. |
/#/status | Server Status | Connection and health state. |
/#/tests | Tests | UI-driven API tests. |
Unknown routes render the not-found view.
API Coverage
hanalyzer uses the public hlquery routes documented in the API section:
- Collections:
GET/POST /collections,GET/DELETE /collections/{collection}, andPOST /collections/{collection}/update. - Documents: list, add, import, inspect, update, delete, context, export, facets, and maybe suggestions under
/collections/{collection}/documents. - Search:
/search,/multi_search,/sql,/collections/{collection}/documents/search, and vector search where UI flows expose it. - Relevance controls: collection/global synonyms, stopwords, aliases, overrides/curations where available.
- Operations:
/health,/ready,/stats,/metrics,/metrics/history,/rocksdb,/connections,/links,/keys,/users,/modules, and tests-related calls.
Deployment Notes
The build uses relative assets and hash routing, so a basic static file server is enough:
server {
listen 80;
server_name hanalyzer.example.com;
root /path/to/hlquery/etc/hanalyzer/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
}
If the browser cannot reach hlquery directly, proxy API calls through the same origin and point hanalyzer at that proxy target.