This is an automated email from the ASF dual-hosted git repository.

wu-sheng pushed a commit to branch feat/service-internal-topology
in repository https://gitbox.apache.org/repos/asf/skywalking-horizon-ui.git

commit e8fc723520dffbffcc02ee92f5f73fb80e650625
Author: Wu Sheng <[email protected]>
AuthorDate: Tue Jun 9 11:55:47 2026 +0800

    feat(menu): drop the hidden-layer list — show every layer OAP reports
    
    Removes the hard-coded HIDDEN_LAYERS set (which dropped BANYANDB) from
    both the live and OAP-down menu paths. Any layer OAP surfaces in
    listLayers now appears in the sidebar; a template-less layer renders with
    default caps (a bare Service page). The only remaining drop is an
    admin-disabled template, matching how disabled overviews vanish.
---
 CHANGELOG.md                    |  8 ++++++++
 apps/bff/src/http/query/menu.ts | 20 ++++++--------------
 2 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index e00e6c0..9342a39 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,14 @@ packages) plus the BFF's `HORIZON_VERSION` default.
 
 ## 0.7.0
 
+### Layers
+
+- **Every layer OAP reports now appears in the sidebar**, including ones
+  with no Horizon template (they render with default capabilities — a plain
+  Service page). The previous hard-coded hidden-layer list (which dropped
+  `BanyanDB`) is gone; a layer is only hidden when an admin explicitly
+  disables its template.
+
 ### Dashboard widget visibility
 
 - Layer-dashboard widgets gain a structured **Visible when** gate (Layer
diff --git a/apps/bff/src/http/query/menu.ts b/apps/bff/src/http/query/menu.ts
index 086d6bd..ebd7fb6 100644
--- a/apps/bff/src/http/query/menu.ts
+++ b/apps/bff/src/http/query/menu.ts
@@ -390,19 +390,12 @@ export function registerMenuRoute(app: FastifyInstance, 
deps: MenuRouteDeps): vo
         ordered.push(k);
       }
 
-      // Layers we deliberately drop from the sidebar even when OAP
-      // surfaces them. BanyanDB is OAP's storage backend — it shows up
-      // as a Layer in `listLayers`, but the operator monitors it via
-      // the OAP self-observability dashboard (CPU / memory / GC
-      // metrics there cover the storage node too). Keeping it as a
-      // standalone Databases-ish row was confusing per operator
-      // feedback. Add more keys here if other internal-only layers
-      // need the same treatment.
-      const HIDDEN_LAYERS = new Set(['BANYANDB']);
-      // Disabled-in-admin layers are soft-deleted — drop from the sidebar
-      // (matches how disabled overviews vanish).
+      // Every layer OAP surfaces in `listLayers` is shown — including
+      // ones with no Horizon template (they render with default caps, a
+      // bare Service page). Disabled-in-admin layers are the only drop:
+      // they're soft-deleted (matches how disabled overviews vanish).
       const layers = ordered
-        .filter((key) => !HIDDEN_LAYERS.has(key) && !disabled.has(key))
+        .filter((key) => !disabled.has(key))
         .map((key) =>
           deriveLayer(
             key,
@@ -430,13 +423,12 @@ export function registerMenuRoute(app: FastifyInstance, 
deps: MenuRouteDeps): vo
       // bundled files; defaults here are the in-code LAYER_DEFAULTS that
       // deriveLayer falls to on an empty row map. Counts unknown (-1),
       // layers inactive.
-      const HIDDEN_LAYERS = new Set(['BANYANDB']);
       const seen = new Set<string>();
       const layers: LayerDef[] = [];
       const emptyRows = new Map<string, TemplateRow>();
       for (const rawKey of Object.keys(LAYER_DEFAULTS)) {
         const key = canonical(rawKey);
-        if (seen.has(key) || HIDDEN_LAYERS.has(key)) continue;
+        if (seen.has(key)) continue;
         seen.add(key);
         layers.push(deriveLayer(key, false, null, -1, null, locale, emptyRows, 
null));
       }

Reply via email to