Commit Graph
19 Commits
Author SHA1 Message Date
naeel fa67872f30 feat: admin own company option in dropdown + fix company=own routing + bump 0.4.5 2026-05-31 06:57:34 +03:00
naeel c19480336d fix: remove inline JS handlers (onclick/onchange/onsubmit) -> event delegation + bump 0.4.4 2026-05-31 06:26:47 +03:00
naeel 8531a0b545 fix: audit filter onchange restore + bump 0.4.2 2026-05-31 06:04:19 +03:00
naeel 86b782bc33 fix: audit filter — add submit button, fix type comparison 2026-05-31 05:49:37 +03:00
naeel aef7da5740 fix: ReferenceError message/wasNormalized → success в шаблонах (500 на всех страницах) 2026-05-30 19:19:15 +03:00
naeel c85a438ba2 feat: UI-слой через /api/v1/* (ui/, views/ui-login.ejs, views/error.ejs)
- ui/api-client.js: HTTP-клиент к /api/v1/* (token из session.token)
- ui/routes/auth.js: /login (mock-пресеты), /login-token (Bearer paste), /logout
- ui/routes/entries.js: /, /add, /edit/:id, /delete/:id через API
- ui/routes/admin.js: /admin, /admin/limit/:id, /audit через API
- ui/routes/export.js: /export → проксирует /api/v1/entries/export
- ui/index.js: createUiRouter() — requireToken + resolveUser middleware
- views/ui-login.ejs: страница входа (mock + token)
- views/error.ejs: шаблон для 403/404/500

API расширения:
- GET /api/v1/entries теперь возвращает limit и used
- GET /api/v1/entries?company=<id> (admin): записи другой компании
- POST/PATCH/DELETE /api/v1/entries?company=<id> (admin): мутации для другой компании
- GET /api/v1/entries/export: агрегированный CIDR (перенесён из монолита)
- GET /api/v1/audit?company=<id>: журнал (перенесён из монолита)

server.js: заменены src/routes/* на ui/createUiRouter(), убран CSRF
2026-05-30 19:02:51 +03:00
naeel d96919e68c fix: logo SVG viewBox (0 0 311 69), version in UI footer (v0.2.0) 2026-05-30 15:58:51 +03:00
naeel 86ca944c52 feat: Authorization Code Flow (KK) + session middleware + dev-login
- src/auth.js: OIDC mode (KC_CLIENT_ID/KC_CLIENT_SECRET), session-based
  middleware, legacy jwt-cookie migration, httpGet/httpPost без внешних зав.
- src/routes/auth.js: GET /callback (OIDC), GET+POST /dev-login (backdoor),
  session-based login/logout для обоих режимов
- server.js: express-session (8h, httpOnly, sameSite lax), trust proxy в prod
- views/dev-login.ejs: форма с пресетами MOCK_USERS + произвольные поля
- views/login.ejs: ссылка на /dev-login если devLoginEnabled
- tests: +5 тестов (session middleware), 50 PASS / 0 FAIL

Env-переменные:
  KC_CLIENT_ID, KC_CLIENT_SECRET, KC_BASE_URL, APP_URL  — OIDC режим
  SESSION_SECRET                                         — секрет сессии
  DEV_MODE=true                                          — /dev-login без пароля
  DEV_SECRET=xyz                                         — /dev-login с ?key=xyz
2026-05-30 14:37:29 +03:00
naeel 695ed231e6 feat: CSRF защита (double-submit cookie) — все мутирующие POST-роуты, login-форма 2026-05-30 13:28:01 +03:00
naeel c319e76c74 feat: UI — edit modal, admin-панель выбора компании, кнопки Аудит/Лимиты; views/audit.ejs, views/admin.ejs 2026-05-30 09:16:08 +03:00
naeel 28b8e7bd27 feat: мок JWT-аутентификация (RS256, JWKS, cookie)
- src/auth.js: генерация ключей RS256, JWKS endpoint, verify/issue/middleware
- views/login.ejs: мок-страница входа с выбором пользователя
- server.js: cookie-parser, /login, /logout, auth.middleware
- При переключении на прод: JWKS_URL в env → всё остальное без изменений
2026-05-30 08:42:09 +03:00
naeel 51f2f4ddaf fix: гонки (транзакции), валидатор (суперсеть, parseInt, слэши), auth (401, DEV_MODE, export), схема (UNIQUE, CHECK, FK), client-валидация 2026-05-30 08:28:21 +03:00
naeel 60972169c5 feat: логотип Nubes в header'е 2026-05-29 23:58:07 +03:00
naeel 0270432bfc style: UI в стиле платформы — карточки с header'ом, таблица с разделителями 2026-05-29 23:46:55 +03:00
naeel 4702f14dc9 feat: favicon Nubes 2026-05-29 23:40:46 +03:00
naeel 39feac109b style: UI в стиле Nubes — тёмный header, карточки, индикаторы 2026-05-29 23:38:29 +03:00
naeel a0a52e99fb feat: роуты и UI — список, добавление, удаление, экспорт 2026-05-29 23:30:43 +03:00
naeel 61685b687b fix: healthz всегда 200, страница показывает реальный статус БД 2026-05-29 22:33:40 +03:00
naeel 814625ef57 feat: каркас Express + pg, health check 2026-05-29 21:56:20 +03:00