hanahmily opened a new pull request, #1191:
URL: https://github.com/apache/skywalking-banyandb/pull/1191

   ## Summary
   
   Introduces `canopy/` — a standalone Node.js/React web console for BanyanDB, 
built alongside the existing `ui/` Vue app without touching it.
   
   - **M0** — npm workspace scaffold (`web` / `server` / `shared`), Vite+React 
SPA with dark-theme CSS from design handoff, Playwright E2E harness that builds 
BanyanDB from Go source and spawns it as a subprocess
   - **M1** — Fastify BFF: config-user auth (bcrypt + encrypted session 
cookie), per-request dynamic proxy to `session.endpoint` via undici, 
`/monitoring` proxy with prefix strip, role enforcement (readonly→403 on 
mutations), upstream credential attach-if-configured, SSRF deny-narrow with 
per-request DNS re-resolution, boot guards (no-users + production fence), 
security headers, full contract test suite (vitest)
   - **M2** — UI shell: login page with live BanyanDB version via 
unauthenticated `/api/meta`, authenticated two-column shell, collapsible 
sidebar with nav count badges and protocol-stripped endpoint host, home page 
with breadcrumbs and quick-nav grid
   
   Root changes: `.licenserc.yaml` excludes the canopy tree from the root scan; 
`Makefile` wires `canopy` into `license-check` / `license-fix`; CI workflow 
added at `.github/workflows/canopy.yml`.
   
   ## Screenshots
   
   **Login page** — live BanyanDB version fetched on mount, role selector, 
error banner on bad credentials
   
   ![Login 
page](https://raw.githubusercontent.com/apache/skywalking-banyandb/canopy/canopy/e2e/screenshots/m2-login.png)
   
   **Bad credentials error**
   
   ![Login 
error](https://raw.githubusercontent.com/apache/skywalking-banyandb/canopy/canopy/e2e/screenshots/m2-login-error.png)
   
   **Authenticated shell** — sidebar with `BanyanDB · v0.10`, nav count badges, 
Administrator role, connected host
   
   ![Shell 
sidebar](https://raw.githubusercontent.com/apache/skywalking-banyandb/canopy/canopy/e2e/screenshots/m2-shell.png)
   
   **Home page** — breadcrumb, snapshot stats, quick-nav grid
   
   ![Home 
page](https://raw.githubusercontent.com/apache/skywalking-banyandb/canopy/canopy/e2e/screenshots/m2-home-groups.png)
   
   ## Test plan
   
   - [x] `npm run e2e` — 10 Playwright tests pass (m0-boot, m1-bff ×3, m2-login 
×3, m2-shell ×3) against a real BanyanDB built from source
   - [x] `npm run typecheck` — zero errors across shared / web / server
   - [x] `npm run -w server test` — vitest contract suite passes (BFF auth, 
proxy, SSRF, role enforcement, boot guards)
   - [x] `make license-check` — all canopy source files carry ASF headers
   - [x] `ui/` and `ui/embed.go` untouched (verified via `git diff main -- ui/`)


-- 
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