Commit Graph
161 Commits
Author SHA1 Message Date
naeel 1794610f77 fix: ownCo not found → getOrCreateCompany instead of companies[0]
- Убрал fallback на companies[0] — небезопасно
- Если компания админа не найдена — создаём через getOrCreateCompany
2026-06-11 11:18:59 +04:00
naeel 2acad33fd4 fix: admin without ?company= loads own company (no redirect)
- Убрал редирект на ?company=<id> — админ видит свою компанию по умолчанию
- ownCo ищется по clientId из сессии, если не найдена — первая из списка
- Больше не пишет ?company= в URL при первом входе
2026-06-11 11:16:37 +04:00
naeel 4f1f64dd6c feat: adminMode — чек-бокс переключения админского интерфейса
Шаг 1: /toggle-admin роут в ui/routes/auth.js
  - переключает req.session.adminMode
  - canAdmin = isAdmin || clientId === WZ01112 (временно)

Шаг 2: resolveUser в ui/index.js
  - req.user.adminMode из req.session.adminMode
  - isAdmin = IAM.isAdmin || clientId === WZ01112 (временно)

Шаг 3: adminMode вместо isAdmin в интерфейсе
  - ui/routes/entries.js: adminMode решает админский view
  - ui/routes/admin.js: requireAdmin проверяет adminMode

Шаг 4: views/index.ejs
  - чек-бокс «Администратор» (виден только если isAdmin)
  - ссылки Аудит/Лимиты видны только при adminMode
  - селектор компаний — при adminMode
2026-06-11 11:08:03 +04:00
naeel 8c1787df19 bump 0.5.37 — debug /debug-session endpoint 2026-06-11 10:49:54 +04:00
naeel 02859d6a7a fix: replace regex constraint with LIKE '%/%' for PG compat
- constraint CHECK (value_cidr LIKE '%/%') instead of regex
- regex broke on managed PG with standard_conforming_strings=off
- ALTER TABLE adds constraint on existing tables
2026-06-10 11:51:08 +04:00
naeel 32cb0f4ac6 fix: block clientId login in OIDC mode (crash fix)
- ui/routes/auth.js: auth.isOidc → redirect to /login with error instead of
  calling issueMockToken which throws 'Mock keypair not initialized'
- This was crashing the process via unhandled promise rejection
2026-06-10 11:42:50 +04:00
naeel e22b7ac408 bump 0.5.34 — save idToken for logout 2026-06-09 22:37:05 +04:00
naeel 54f950b7d1 bump 0.5.33 — revert idToken, logout via KC config 2026-06-09 22:29:15 +04:00
naeel 9fc3665292 bump 0.5.32 — remove audience check from JWT verify 2026-06-09 22:17:23 +04:00
naeel 4a45546b0d bump 0.5.31 — disable state check in production for SSO test 2026-06-09 22:01:26 +04:00
naeel 9b76333b22 bump 0.5.30 — restore state check, clean code 2026-06-09 21:59:26 +04:00
naeel a39f97f3b4 bump 0.5.29 — add KC_BASE_URL to exchange error 2026-06-09 21:56:45 +04:00
naeel 6c5215513c bump 0.5.28 — disable state check for SSO test 2026-06-09 21:53:07 +04:00
naeel 61361ec7e2 bump 0.5.27 — error handler: URL, user, clientId, stack 2026-06-09 21:01:33 +04:00
naeel d0bfdab085 bump 0.5.26 — fix server.js error handler to show message 2026-06-09 21:01:00 +04:00
naeel 9c74479121 bump 0.5.25 — error details on 500 page, ensureSchema catch
- ui/index.js: 500 page shows error.message
- server.js: ensureSchema error logged, doesn't crash startup
2026-06-09 20:56:58 +04:00
naeel 51b6fdf132 bump 0.5.24 2026-06-09 20:51:33 +04:00
naeel e3ebd8ba4e Revert "bump 0.5.24"
This reverts commit f5141f652f.
2026-06-09 20:49:59 +04:00
naeel f5141f652f bump 0.5.24 2026-06-09 20:49:35 +04:00
naeel e9bd94cea3 fix: 0.0.0.0/8 → blocked ranges + bump 0.5.23 2026-06-04 16:13:04 +03:00
naeel c1df27d29d fix: DeepSeek audit — header injection + IAM limit + bump 0.5.22
- src/api/routes/entries.js: санитизация filename в /api/v1/entries/export
- ui/routes/export.js: санитизация filename в UI /export
- src/auth.js: лимит 100KB для IAM-ответов
- src/api/routes/entries.js: fallback для пустого allowedIds
2026-06-04 15:48:16 +03:00
naeel 58e34042de fix: header injection, api timeout, nginx duplicate + bump 0.5.21
- server.js: санитизация filename в /export (header injection)
- ui/api-client.js: req.setTimeout(15000) + try/catch JSON.parse
- docs/devops-deploy.md: убран дубль X-Forwarded-Proto
2026-06-04 15:41:03 +03:00
naeel 99796202cb fix: IAM warning, nginx doc, fail-fast IAM_API_URL + bump 0.5.20
- src/routes/oidc.js: console.error при IAM fallback вместо warn
- server.js: проверка IAM_API_URL в production mode
- docs/devops-deploy.md: X-Forwarded-Proto в nginx config
2026-06-04 15:33:32 +03:00
naeel 7b66b94774 bump: 0.5.19 (redirect security fixes) 2026-06-04 15:27:17 +03:00
naeel 6edef60ed8 bump: 0.5.18 (IAM integration) 2026-06-04 15:11:53 +03:00
naeel 878e46287b v0.5.17: owner_email в companies + универсальный парсер токенов + jwt.decode fallback 2026-06-03 15:17:56 +03:00
naeel 8e72fc4559 bump v0.5.13 → v0.5.14 2026-06-03 12:37:21 +03:00
naeel ac0f151bcb v0.5.13 2026-06-03 05:54:46 +03:00
naeel 0fd5b43a94 v0.5.12: доделки перед сдачей заказчику
§4.7: агрегация CIDR в публичном /export (aggregateCIDRs)
§5: клиентская JS-валидация (запрещённые диапазоны + нормализация)
§4.1: фильтр «показать удалённые» для admin (API + UI)
§5: уведомление о нормализации (уже работало, проверено)

Файлы:
- server.js: +aggregateCIDRs в /export
- views/index.ejs: JS-валидация + чек-бокс удалённых
- src/api/routes/entries.js: ?includeDeleted=true (admin only)
- ui/routes/entries.js: проброс includeDeleted
- docs/PLAN-predsdachey.md: план доделок
2026-06-02 19:04:24 +03:00
naeel 4694b7e8a6 v0.5.11: версия + фикс теста MOCK_USERS.length 3→4 2026-06-02 17:49:07 +03:00
naeel 51a003e078 v0.5.10: /export — attachment default, ?view=1 inline, ?filename=custom 2026-06-02 14:49:50 +03:00
naeel 66a52d9363 v0.5.9: fix tests IDs, revert dotenv abs paths, deploy-vm doc 2026-06-02 14:20:16 +03:00
naeel b91b78ab04 v0.5.8: distinct MOCK_USERS (WZ88888=АЛЬФА, WZ77777=БЕТА) 2026-06-02 11:36:53 +03:00
naeel f1416e6566 v0.5.7: unique company names in MOCK_USERS 2026-06-02 11:32:41 +03:00
naeel ff4b35414c v0.5.6: bump version 2026-06-02 11:30:23 +03:00
naeel 59ad0fa67e v0.5.5: fix export client_id + multi-company tests (section O) 2026-06-02 11:17:23 +03:00
naeel 8ab2271ff9 v0.5.4: fix isolation — resolveUser syncs activeClientId from session 2026-06-02 11:11:20 +03:00
naeel 1b1b3b6bd7 v0.5.3: fix multi-company API isolation (client_id param) 2026-06-02 10:57:52 +03:00
naeel a083f65323 v0.5.2: multi-company, isAdmin fix, appVersion, docs 2026-06-02 10:52:12 +03:00
naeel 0abaa65bf8 fix: preserve form values on error + rename Дата→Добавлена, Изменён→Изменена + bump 0.5.1 2026-05-31 12:48:08 +03:00
naeel a24634199b test: stress tests — concurrency, races, edge cases (32 pass) + bump 0.5.0 2026-05-31 10:10:48 +03:00
naeel ea4551ce13 feat: временный публичный /exp без авторизации (v0.4.9) 2026-05-31 09:03:30 +03:00
naeel 02d842fd73 fix: display dates in Europe/Moscow timezone + bump 0.4.8 2026-05-31 08:13:36 +03:00
naeel 5c286af43b refactor: entries.js — remove 'own' hack, clean admin company routing + bump 0.4.7 2026-05-31 07:25:42 +03:00
naeel a355b34e4a fix: remove duplicate own company option in dropdown + bump 0.4.6 2026-05-31 07:23:25 +03:00
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 a6177c4cef feat: admin auto-redirect to first company on / + bump 0.4.3 2026-05-31 06:15:37 +03:00
naeel 8531a0b545 fix: audit filter onchange restore + bump 0.4.2 2026-05-31 06:04:19 +03:00
naeel 7779bf416a chore: bump version 0.4.0 → 0.4.1 2026-05-30 19:20:00 +03:00