No description
  • Vue 72%
  • TypeScript 25.6%
  • CSS 2.3%
Find a file
2026-06-11 18:07:13 +02:00
src feat: scaffold standalone Edge Connect UI on the Hono BFF 2026-06-11 14:25:53 +02:00
tests/unit test: add vitest harness and port composable/component unit tests 2026-06-11 18:07:13 +02:00
types feat: scaffold standalone Edge Connect UI on the Hono BFF 2026-06-11 14:25:53 +02:00
.gitignore feat: scaffold standalone Edge Connect UI on the Hono BFF 2026-06-11 14:25:53 +02:00
bun.lock test: add vitest harness and port composable/component unit tests 2026-06-11 18:07:13 +02:00
env.d.ts feat: scaffold standalone Edge Connect UI on the Hono BFF 2026-06-11 14:25:53 +02:00
index.html feat: scaffold standalone Edge Connect UI on the Hono BFF 2026-06-11 14:25:53 +02:00
package.json test: add vitest harness and port composable/component unit tests 2026-06-11 18:07:13 +02:00
README.md feat: scaffold standalone Edge Connect UI on the Hono BFF 2026-06-11 14:25:53 +02:00
tsconfig.json feat: scaffold standalone Edge Connect UI on the Hono BFF 2026-06-11 14:25:53 +02:00
vite.config.ts fix(dev): force tenant Host on BFF proxy so org-scoped routes resolve 2026-06-11 16:53:28 +02:00
vitest.config.ts test: add vitest harness and port composable/component unit tests 2026-06-11 18:07:13 +02:00

edge-connect-ui

Standalone Vue 3 + PrimeVue single-page application for the Edge Connect portal. Extracted from edge-connect-portal-poc, this UI now builds independently and talks to the Edge Connect BFF (Hono on Bun) over HTTP.

Stack

  • Vite + Vue 3 (<script setup>)
  • vue-router (history mode)
  • PrimeVue 4 (theme: "none") + Tailwind v4 design tokens
  • unplugin-auto-import + unplugin-vue-components reproduce the former Nuxt auto-import / auto-registration ergonomics, so ported pages need no churn.

Develop

bun install
bun run dev          # http://localhost:5173

The dev server proxies /bff and /doc to the BFF. Point it at your BFF with:

VITE_BFF_ORIGIN=http://localhost:3000 bun run dev

Run the Edge Connect BFF (Hono on Bun) separately from the edge-connect-portal-poc repo (bun run dev), then start this UI against it.

Build

bun run build        # vite build → dist/
bun run preview      # serve the production build
bun run typecheck    # vue-tsc --noEmit

Layout

  • src/pages/ — routed views (mapped explicitly in src/router)
  • src/layouts/DefaultLayout (sidebar) and AuthLayout (registration)
  • src/components/ — auto-registered with directory namespacing (components/fleet/FleetsTab.vue<FleetFleetsTab>)
  • src/composables/ — auto-imported (useOrgFetch, useAuthUser, ...)
  • src/utils/ — auto-imported helpers (orgInitials, statusDot, ...)
  • src/runtime/ — Nuxt-compatibility layer ($fetch, useFetch, navigateTo, definePageMeta)
  • types/ — shared DTO / KRM types consumed via the ~~/types/* alias

BFF contract

All data calls hit /bff/* (e.g. /bff/me, /bff/resources). Org-scoped routes send an X-Workspace: default header via useOrgFetch. The org is derived server-side from the per-tenant subdomain.