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  **Bad credentials error**  **Authenticated shell** — sidebar with `BanyanDB · v0.10`, nav count badges, Administrator role, connected host  **Home page** — breadcrumb, snapshot stats, quick-nav grid  ## 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]
