backend/ — FastAPI + SQLModel + Alembic (uv-managed, ruff + mypy): GET /api/infra relays clockmost-status + a Snapshot history tail GET /api/infra/history GET/PUT /api/prefs per-Authentik-user UI state (X-Authentik-Username) serves the SPA; poller ingests a snapshot row every ~20s sqlite via aiosqlite, swappable to postgres; migration + downgrade verified frontend/ — App rebuilt around useInfra() (SWR, 15s): status slab, deploy, containers, disk gauges, Zabbix alerts, Renovate PRs, ntfy feed, failed units. Dockerfile is now node-build -> python-runtime (alembic upgrade head + uvicorn). CI gains an 'api' job (ruff check + format, mypy, alembic check, pytest). Verified end to end locally against a sample snapshot.
47 lines
1.3 KiB
JSON
47 lines
1.3 KiB
JSON
{
|
|
"name": "clockmost-console",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"description": "The clockmost dashboard — a React SPA + FastAPI BFF on the Endfield design system.",
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "tsc --noEmit && vite build",
|
|
"preview": "vite preview",
|
|
"lint": "oxlint --deny-warnings",
|
|
"lint:fix": "oxlint --fix",
|
|
"fmt": "oxfmt .",
|
|
"fmt:check": "oxfmt --check .",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "vitest run --passWithNoTests",
|
|
"test:watch": "vitest",
|
|
"check": "pnpm fmt:check && pnpm lint && pnpm typecheck && pnpm test",
|
|
"sync:endfield": "bash scripts/sync-endfield.sh"
|
|
},
|
|
"dependencies": {
|
|
"react": "19.2.8",
|
|
"react-dom": "19.2.8",
|
|
"swr": "2.5.1"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/vite": "4.3.3",
|
|
"@testing-library/dom": "10.4.1",
|
|
"@testing-library/jest-dom": "7.0.1",
|
|
"@testing-library/react": "16.3.3",
|
|
"@types/react": "19.2.18",
|
|
"@types/react-dom": "19.2.5",
|
|
"@vitejs/plugin-react": "6.1.1",
|
|
"jsdom": "30.0.1",
|
|
"oxfmt": "0.65.0",
|
|
"oxlint": "1.80.0",
|
|
"tailwindcss": "4.3.3",
|
|
"typescript": "7.0.2",
|
|
"vite": "8.2.2",
|
|
"vitest": "4.1.11"
|
|
},
|
|
"engines": {
|
|
"node": ">=22"
|
|
},
|
|
"packageManager": "[email protected]"
|
|
}
|