wu-sheng opened a new pull request, #35:
URL: https://github.com/apache/skywalking-horizon-ui/pull/35

   ## What
   
   Makes the **3D Infrastructure Map** config a first-class **OAP template 
kind** (`horizon.infra-3d.config`) instead of a BFF-local file, and redesigns 
the admin editor around it. The config now rides the same **bundled → 
local(browser) → remote(OAP)** flow as the layer / overview dashboards — edit a 
local draft, **Check diff & push** to publish, remote wins at render with 
bundled as the fallback.
   
   ## Admin editor (`/admin/3d-map`)
   
   - **Combined "Tiers & layers" view** — each layer is pinned to exactly one 
tier via a dropdown; explicit pins + a single **failover tier** are the only 
placement mechanism. Removing a layer from a tier *unpins* it (it drops to 
Unpinned, never vanishes); a separate delete lives only in the Unpinned section.
   - **One traffic metric per layer** (`mqe` / `label` / `unit`) — the old 
`topology`/`load` and per-tier-regex models are removed. The single global 
`filter.layer` is the **top-level gate**: an excluded layer is off the map 
*and* off the live pipeline (no wasted OAP calls); it still shows in Unpinned 
tagged "filtered out".
   - **Logic-groups editor** (members / color / icon / tier). A layer belongs 
to **at most one** group (validated). Read-only **Service-map layers** section 
(from the layer templates).
   - Save-local / Monaco diff / push; OAP-unreachable and BFF-unreachable 
states surfaced instead of an indefinite spinner.
   
   ## 3D map (`/3d/map`)
   
   - **Restored the cross-layer Smartscape hierarchy** the dynamic loader had 
dropped (`hierarchy: []`). Fetched **incrementally** — only newly-appeared 
services are probed, the rest reused from a persistent cache — and revealed on 
cube-select. Folded into the scene re-key signature; transient fetch failures 
retry instead of caching null.
   - Fixed live metric resolution after the single-metric migration.
   
   ## Cross-cutting
   
   - **Auto-refresh + global time picker disabled on all `/admin/*` and 
`/operate/*` routes** (no time context).
   - Renamed the topology model `Demo*` → `Map*` (`useMapTopology` / 
`fallback-topology.json`) — it carries live data, not a demo snapshot.
   - **RBAC**: the 3D-map admin page is gated on `overview:write` (the verb its 
push actually uses); removed the now-orphaned `infra-3d:write` verb and the 
dead `infra3d.file` config knob (kept accepted-and-ignored so existing configs 
still boot).
   
   ## Testing
   
   - BFF `tsc` + 80 unit tests pass; UI `vue-tsc` + ESLint clean.
   - Validated end-to-end against the public demo OAP: template seeds to OAP 
and syncs (`push-bundled`), effective read is remote-wins, 
invalid/duplicate-group pushes are rejected (400), and the live 
`getServiceHierarchy` returns cross-layer peers.
   - Two adversarial review passes (multi-agent) over the branch; all confirmed 
should-fix findings addressed.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to