Commit Graph

  • 6de5631451 test: добавлен tests/run-tests.js (45 тестов без БД) cairnr01probe 2026-05-30 13:59:21 +03:00
  • ef564ee4e5 refactor: шаг 8 — server.js упрощён до 131 строки (только init + роутеры) cairnr01probe 2026-05-30 13:42:43 +03:00
  • 3f18e05d2d refactor: шаг 7 — /audit /admin /admin/limit вынесены в src/routes/admin.js cairnr01probe 2026-05-30 13:42:06 +03:00
  • 87a841fa56 refactor: шаг 6 — GET / и POST /add /edit /delete вынесены в src/routes/entries.js cairnr01probe 2026-05-30 13:40:50 +03:00
  • 55d26c1ece refactor: шаг 5 — /login /logout вынесены в src/routes/auth.js cairnr01probe 2026-05-30 13:39:04 +03:00
  • f91a882379 refactor: шаг 4 — GET /export вынесен в src/routes/export.js cairnr01probe 2026-05-30 13:38:03 +03:00
  • b25f346d97 refactor: шаг 3 — CSRF-инициализация вынесена в src/middleware/csrf.js cairnr01probe 2026-05-30 13:37:08 +03:00
  • 35210291d0 refactor: шаг 2 — лимитеры вынесены в src/middleware/rateLimit.js cairnr01probe 2026-05-30 13:36:10 +03:00
  • 631641bbf0 refactor: шаг 1 — MOCK_USERS и backUrl вынесены в src/config.js cairnr01probe 2026-05-30 13:35:16 +03:00
  • 695ed231e6 feat: CSRF защита (double-submit cookie) — все мутирующие POST-роуты, login-форма cairnr01probe 2026-05-30 13:28:01 +03:00
  • 2332827326 feat: helmet (security headers) + rate-limit (30/min mutations, 20/min export) cairnr01probe 2026-05-30 13:22:54 +03:00
  • c319e76c74 feat: UI — edit modal, admin-панель выбора компании, кнопки Аудит/Лимиты; views/audit.ejs, views/admin.ejs cairnr01probe 2026-05-30 09:16:08 +03:00
  • 8c1bafeb97 feat: роуты /edit, /audit, /admin, /admin/limit — admin-ветки, публичный /export с агрегацией cairnr01probe 2026-05-30 09:11:41 +03:00
  • c6c9d01cd7 feat: admin-роль (isAdmin, requireAdmin), getCompanyById, getAllCompanies, setLimit, getAudit с JOIN cairnr01probe 2026-05-30 09:09:24 +03:00
  • cda0b085e6 feat: CIDR агрегация (aggregateCIDRs) для /export по ТЗ cairnr01probe 2026-05-30 09:07:30 +03:00
  • 2fb4548bf6 fix: auth.js на jsonwebtoken (CJS) вместо jose (ESM) cairnr01probe 2026-05-30 08:45:21 +03:00
  • 28b8e7bd27 feat: мок JWT-аутентификация (RS256, JWKS, cookie) cairnr01probe 2026-05-30 08:42:09 +03:00
  • 51f2f4ddaf fix: гонки (транзакции), валидатор (суперсеть, parseInt, слэши), auth (401, DEV_MODE, export), схема (UNIQUE, CHECK, FK), client-валидация cairnr01probe 2026-05-30 08:28:21 +03:00
  • 60972169c5 feat: логотип Nubes в header'е cairnr01probe 2026-05-29 23:58:07 +03:00
  • 0270432bfc style: UI в стиле платформы — карточки с header'ом, таблица с разделителями cairnr01probe 2026-05-29 23:46:55 +03:00
  • 4702f14dc9 feat: favicon Nubes cairnr01probe 2026-05-29 23:40:46 +03:00
  • 39feac109b style: UI в стиле Nubes — тёмный header, карточки, индикаторы cairnr01probe 2026-05-29 23:38:29 +03:00
  • a0a52e99fb feat: роуты и UI — список, добавление, удаление, экспорт cairnr01probe 2026-05-29 23:30:43 +03:00
  • d4a70bb947 feat: валидатор IPv4, CRUD-запросы, схема БД cairnr01probe 2026-05-29 23:29:11 +03:00
  • 61685b687b fix: healthz всегда 200, страница показывает реальный статус БД cairnr01probe 2026-05-29 22:33:40 +03:00
  • f9c1d5ac4c fix: не падать без БД, добавить .gitignore cairnr01probe 2026-05-29 22:19:04 +03:00
  • 814625ef57 feat: каркас Express + pg, health check cairnr01probe 2026-05-29 21:56:20 +03:00