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]
