Files
warmbly/web
Matthew Meszaros d0ff189fcd feat(admin-ui): risk pool toggle + Pool column on workers list
Worker list grows a Pool column (clean=green, risky=amber,
quarantine=red badge). Dedicated workers render "n/a" — risk pools are
a shared-worker concept since dedicated workers don't share IPs across
customers.

Worker detail page (shared workers only) gets a "Risk pool" section
with three big buttons. Clicking a non-current pool confirms, then
calls PUT /admin/workers/:id/risk-pool. Action audited with the new
pool value.

Saving doesn't migrate accounts directly — the hourly rebalancer
notices the mismatch and moves mailboxes to a matching-pool worker
on its next tick. Documented in the section's helper text.

Endpoint accepts {risk_pool: "clean"|"risky"|"quarantine"} and is
gated by AdminPermManageWorkers. The worker detail row scan now
includes risk_pool so the column actually has data.
2026-05-19 05:41:41 +00:00
..
2026-02-11 17:54:49 +01:00
2026-02-14 05:38:27 +01:00

Warmbly Web App

React + TypeScript frontend for Warmbly.

Stack

  • React 19
  • Vite (Rolldown)
  • TypeScript
  • TanStack Query
  • Zustand
  • Tailwind CSS 4

Prerequisites

  • Node.js 20+
  • pnpm 10+

Setup

cd web
pnpm install
cp .env.example .env

Run

pnpm dev

Default dev URL: http://localhost:5173

Quality Checks

pnpm lint
pnpm test:run
pnpm build

Project Layout

  • src/app route pages and layouts
  • src/components UI and feature components
  • src/lib/api API clients, hooks, and models
  • src/stores Zustand store slices