Files
ccs/ui
Tam Nhu Tran 5a09547532 fix(auth): signal auth-required for remote access in /api/auth/check
The auth check endpoint always returned authRequired=false when auth
was disabled, even for remote clients. This caused the UI to render
the dashboard directly, where all data API calls return 403 silently.

Now detects remote access via isLoopbackRemoteAddress and sets
effectiveAuthRequired=true, so the UI properly redirects to the login
page. Also fixes misleading catch handler comment in auth-context.
2026-03-29 10:54:44 -04:00
..

CCS Dashboard UI

React + TypeScript + Vite frontend for the CCS local dashboard.

This UI is served by the CCS web server and is accessed via:

ccs config

Development

From project root:

bun run dev

This starts the CCS server, opens a local browser URL, and prints bind/network details for the dashboard. If the runtime bind is reachable beyond loopback, CCS also prints an auth reminder.

For remote device access during development, run:

bun run dev -- --host 0.0.0.0

For local-only development, run:

bun run dev -- --host 127.0.0.1

From ui/ only (frontend dev server):

cd ui
bun run dev

Quality Commands

cd ui
bun run typecheck
bun run lint
bun run validate
bun run test:run

i18n

Dashboard localization uses react-i18next.

  • Main setup: ui/src/lib/i18n.ts
  • Locale helpers: ui/src/lib/locales.ts
  • Language switcher: ui/src/components/layout/language-switcher.tsx

For full architecture, conventions, and locale onboarding, see:


Notes

  • UI locale persistence uses browser localStorage key ccs-ui-locale.
  • Current supported locales are managed in ui/src/lib/locales.ts.
  • Current locales: en, zh-CN, vi.
  • Fallback locale is English (en).