Repository navigation
Replies: 1 comment
|
Please check Xerj-UX it has some UX already and if you can lead that, you can make it works as Kibana Would be great, we have strong foundation already |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hi! I've been using XERJ as a drop-in Elasticsearch replacement, and the thing I missed most was Kibana: the query bar, the filter chips, Discover, the Dev Tools console. So I built a small UI that brings those habits to XERJ, and I'd like to know whether it is useful to the project before investing more in it.
Vega Board is a static web app that talks to XERJ only through the Elasticsearch-compatible API. Two things guided every choice:
It has three pages:
Why it might fit XERJ
_search,_msearch,_mapping,_cat/indicesandGET /, plusPUT/DELETEof_docto store dashboards in a regular index (vega-dashboards). There is nothing XERJ-specific to maintain on your side.cors.allowed_originsis configured. Served from the node, on its own path, it would just work, with no CORS and no proxy.Compatibility testing
I ran the board against XERJ v1.0.0-rc.93 with two example dashboards (20 panels) and compared every panel query with a reference engine (the board's in-browser demo engine) on the same documents:
hits.totalstops at 10,000 by default, exactly as in Elasticsearch, while the reference engine counts exactly.highlightwithfields: {"*": {}}is ignored, so there is no<mark>in search results ([bug]: Wildcard field names inhighlight.fields("*","mess*") are ignored — nohighlightin hits #1281, fix proposed in fix(highlight): expand field-name patterns in highlight.fields (#1281) #1294).cors.allowed_originssetting exists, but--helpdoesn't mention it ([bug]:--help: CORS config is not discoverable, and the default native REST port is described as PORT+1 (it is 8080) #1286).The full write-up is in the field report #1287. The same run turned up a few smaller deviations, each filed as an issue with a proposed fix (#1282–#1285, #1288 → #1289–#1293). The core of what a dashboard needs worked as in Elasticsearch:
termsordered by a single-value sub-aggregation,percentiles(exact values, nice!),date_histogramwithextended_bounds,_msearch, and saving and reloading dashboards.How it relates to the XERJ Console
I know the console exists and goes in its own direction: typography-first, AI-centric dashboards, passkeys. This is not meant to replace it. It targets a different user, someone coming from Elasticsearch and Kibana who wants the familiar workflow on day one. I'd see it as complementary: linked from the console, or served on a separate path.
Extending it
Extensibility is the core design goal. Everything is added through files and manifests, never by editing the core:
query(),rows()and a Vega-Litespec()(or an HTMLrender()), plus one line in a manifest. The two newest widgets, a double donut and an options list, were each added this way in a single file.config.json.typeinwidgets/custom/. Existing dashboards keep working, and nothing is forked.config.json.That makes it easy to add XERJ-specific views later (vector search, RAG metrics…) without touching what's there.
A validator (
node tools/validate.mjs) runs every widget against an in-browser demo engine, and anAGENTS.mddescribes the contracts for humans and coding agents. The UI is in English and Italian and follows the browser language.Questions for you
/_board;Code: https://github.com/Vinz2168/xerj-vega-board (Apache-2.0). Happy to adapt the license, naming and structure to whatever works for you.
Built with the help of an AI coding assistant (Claude Code); every change was tested against a real XERJ node.
All reactions