Architecture Overview β
KuaDashboard uses a three-layer architecture: Backend API β Frontend SPA β Electron Shell (optional).
High-Level Diagram β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Electron (optional) β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Express + WebSocket Server β β
β β ββββββββββββ ββββββββββββ βββββββββββββββββ β β
β β β K8s API β β AWS SDK β β GCP SDK β β β
β β ββββββββββββ ββββββββββββ βββββββββββββββββ β β
β β ββββββββββββ ββββββββββββ βββββββββββββββββ β β
β β β REST API β β WS Logs β β WS Exec/Shellβ β β
β β ββββββββββββ ββββββββββββ βββββββββββββββββ β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Vue 3 + Pinia + Vite (SPA) β β
β β ββββββββββββ ββββββββββββ βββββββββββββββββ β β
β β β Stores β βComponentsβ β Composables β β β
β β ββββββββββββ ββββββββββββ βββββββββββββββββ β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββProject Structure β
kuadashboard/
βββ server.js # Express + WebSocket server
βββ package.json # Root package (backend + Electron)
βββ electron/
β βββ main.js # Electron main process
β βββ preload.js # Secure IPC bridge
βββ routes/
β βββ aws.js # AWS service routes
β βββ gcp.js # GCP service routes
β βββ envManager.js # Credential/profile management
β βββ localShell.js # Local terminal WebSocket
β βββ systemTools.js # CLI tool detection
βββ lib/
β βββ credentialStore.js # Pluggable credential storage
β βββ crypto.js # Encryption utilities
βββ frontend/
β βββ src/
β β βββ App.vue # Root component
β β βββ components/ # UI components
β β βββ stores/ # Pinia state management
β β βββ composables/ # Vue composables (hooks)
β β βββ config/ # Resource definitions
β βββ vite.config.js
β βββ package.json
βββ public/ # Built frontend output (served by Express)
βββ assets/ # Electron builder resources (icons)
βββ docs/ # VitePress documentation
βββ scripts/ # Build utilitiesData Flow β
- Vue components call the
useApicomposable for REST requests oruseTerminalStreamsfor WebSocket connections - Pinia stores manage application state (Kubernetes, AWS, GCP, port forwards, terminals)
- Express routes handle API requests by calling the appropriate SDK (K8s client, AWS SDK, GCP SDK)
- WebSocket servers handle real-time streams (logs, exec, shell)
- Electron (when used) wraps everything in a native window with an IPC bridge
