Implement JWT-protected /admin/* routes on the relay server: - Auth: login, logout, me, setup/status, setup/init (first-time config) - Dashboard: stats overview (connections, devices, cookies, domains) - Cookies: paginated list with domain/search filter, detail, delete, batch delete - Devices: list with online status, revoke - Settings: get/update (sync interval, max devices, theme) Uses scrypt for password hashing and jsonwebtoken for JWT. Adds listAll/revoke to DeviceRegistry, getAll/getById/deleteById to CookieBlobStore, disconnect to ConnectionManager. Updates frontend to use /admin/* endpoints. All 38 existing tests pass. Co-Authored-By: Paperclip <noreply@paperclip.ing>
35 lines
724 B
TypeScript
35 lines
724 B
TypeScript
import { defineConfig } from "vite";
|
|
import vue from "@vitejs/plugin-vue";
|
|
import tailwindcss from "@tailwindcss/vite";
|
|
import { resolve } from "node:path";
|
|
|
|
export default defineConfig({
|
|
plugins: [vue(), tailwindcss()],
|
|
resolve: {
|
|
alias: {
|
|
"@": resolve(__dirname, "src"),
|
|
},
|
|
},
|
|
server: {
|
|
port: 5173,
|
|
proxy: {
|
|
"/api": {
|
|
target: "http://localhost:8100",
|
|
changeOrigin: true,
|
|
},
|
|
"/admin": {
|
|
target: "http://localhost:8100",
|
|
changeOrigin: true,
|
|
},
|
|
"/ws": {
|
|
target: "ws://localhost:8100",
|
|
ws: true,
|
|
},
|
|
"/health": {
|
|
target: "http://localhost:8100",
|
|
changeOrigin: true,
|
|
},
|
|
},
|
|
},
|
|
});
|