“Naeel”
|
e57de54fc4
|
v0.5.129: кнопка Выбрать, убран весь debug
|
2026-06-15 16:55:13 +04:00 |
|
“Naeel”
|
c2ed08d955
|
v0.5.128: обратно onchange, кнопка не нужна
|
2026-06-15 16:51:17 +04:00 |
|
“Naeel”
|
61bf162eaa
|
v0.5.127: clId обновляется после switchTo
|
2026-06-15 16:47:47 +04:00 |
|
“Naeel”
|
19a31a2514
|
v0.5.126
|
2026-06-15 16:41:17 +04:00 |
|
“Naeel”
|
99262e2397
|
v0.5.125: кнопка Выбрать вместо onchange
|
2026-06-15 16:41:04 +04:00 |
|
“Naeel”
|
02e6ec7024
|
v0.5.125: switchTo без редиректа, дебаг на странице
|
2026-06-15 16:37:29 +04:00 |
|
“Naeel”
|
be31832ec4
|
debug: логирование switchTo, resolveContext, enhanceImpersonation
|
2026-06-15 16:30:23 +04:00 |
|
“Naeel”
|
f9570d58f6
|
v0.5.123: switchTo перед crud.list, activeClientId не затирается
|
2026-06-15 16:16:36 +04:00 |
|
“Naeel”
|
dcab127e49
|
v0.5.122: save() при switchTo, редирект после сохранения сессии
|
2026-06-15 15:53:55 +04:00 |
|
“Naeel”
|
1d32f54c10
|
v0.5.121: switchTo после crud.list, без save() и без impersonationCompanyId
|
2026-06-15 15:45:58 +04:00 |
|
“Naeel”
|
8241d095fa
|
Revert "v0.5.121: clientId всегда activeClientId || clientId, без спецлогики"
This reverts commit 24153b29ea.
|
2026-06-15 15:33:51 +04:00 |
|
“Naeel”
|
24153b29ea
|
v0.5.121: clientId всегда activeClientId || clientId, без спецлогики
|
2026-06-15 15:33:38 +04:00 |
|
“Naeel”
|
d0eed95dc7
|
v0.5.120: убран save() при switchTo, Express сам сохранит сессию
|
2026-06-15 15:31:57 +04:00 |
|
“Naeel”
|
d67f914c99
|
v0.5.119: ссылка на /export в футере для админа
|
2026-06-15 15:29:30 +04:00 |
|
“Naeel”
|
5083665afc
|
v0.5.118: фикс смены компании при имперсонации
|
2026-06-15 15:26:36 +04:00 |
|
“Naeel”
|
42f6ab22b4
|
v0.5.117: при имперсонации email в UI от таргета, не от админа
|
2026-06-15 15:19:11 +04:00 |
|
“Naeel”
|
2b36d0f692
|
v0.5.116: фикс impersonatedCompanyId в сессии + тестовая имперсонация по трём ENV
|
2026-06-15 15:05:21 +04:00 |
|
“Naeel”
|
344b65aa36
|
восстановление тестовой имперсонации
|
2026-06-15 14:53:50 +04:00 |
|
“Naeel”
|
6c52dc88b0
|
revert: откат имперсонации к v0.5.115 до обсуждения
|
2026-06-15 14:53:21 +04:00 |
|
“Naeel”
|
a21e8d076b
|
v0.5.115: тестовая имперсонация — полная подмена данных через ENV
|
2026-06-15 14:52:19 +04:00 |
|
“Naeel”
|
561c5f1ba7
|
v0.5.115: имперсонация проверяет originalUserEmail, компании добавляются имперсонируемому
|
2026-06-15 14:47:38 +04:00 |
|
“Naeel”
|
3c9fadca6a
|
v0.5.114: IMPERSONATION_COMPANY тоже добавляется в компании
|
2026-06-15 14:45:47 +04:00 |
|
“Naeel”
|
a15b710a74
|
v0.5.113: фикс имперсонации — IMPERSONATION_ORIGINAL вместо TARGET
|
2026-06-15 14:42:41 +04:00 |
|
“Naeel”
|
8384763740
|
v0.5.112: стиль админки как на основной, убран Выйти, ⚙️→Лимиты и Аудит
|
2026-06-15 14:36:11 +04:00 |
|
“Naeel”
|
e15c9206b5
|
v0.5.111: админка — лимиты и аудит (/v2/admin), кнопка ⚙️
|
2026-06-15 14:24:20 +04:00 |
|
“Naeel”
|
cb3068dd0a
|
v0.5.110: inline-редактирование через простые формы, без JS innerHTML
|
2026-06-15 14:17:40 +04:00 |
|
“Naeel”
|
a13641d7ad
|
v0.5.109: синхронизация версий v2/config + package.json
|
2026-06-15 14:13:26 +04:00 |
|
“Naeel”
|
c5252540c9
|
v0.5.108: фикс inline-редактирования — innerHTML вместо show/hide
|
2026-06-15 14:04:11 +04:00 |
|
“Naeel”
|
1653d0fed0
|
v0.5.107: inline-редактирование в таблице, редирект / → /v2/app
|
2026-06-15 13:57:48 +04:00 |
|
“Naeel”
|
99da376c8d
|
v0.5.106: фикс — админ всегда видит все компании, убран дубль (админ)
|
2026-06-15 13:51:37 +04:00 |
|
“Naeel”
|
87694b18ae
|
v2: ARCHITECTURE.md — документ архитектуры
|
2026-06-15 13:47:09 +04:00 |
|
“Naeel”
|
ed62f06f16
|
v0.5.105: убран переключатель Администратор, adminMode всегда on
|
2026-06-15 13:45:33 +04:00 |
|
“Naeel”
|
7cc06bf9d9
|
v0.5.104: админ видит (личное) у своих компаний в dropdown
|
2026-06-15 13:41:01 +04:00 |
|
“Naeel”
|
d1e86f5b35
|
v0.5.103: WZ01112 админ по умолчанию, adminMode auto-on
|
2026-06-15 13:39:04 +04:00 |
|
“Naeel”
|
306256b165
|
v0.5.102: единый интерфейс /v2/app для юзеров и админов
|
2026-06-15 13:30:12 +04:00 |
|
“Naeel”
|
d99a687d36
|
toggle-admin: redirect to /v2/admin on enable, session.save, v0.5.101
|
2026-06-15 12:44:14 +04:00 |
|
“Naeel”
|
584a6e56b1
|
oidc: force redirect to /v2/app after login, v0.5.100
|
2026-06-15 12:28:33 +04:00 |
|
“Naeel”
|
610fc9aa37
|
oidc: default returnTo /v2/app, v0.5.99
|
2026-06-15 12:22:18 +04:00 |
|
“Naeel”
|
afbaa17fc8
|
v2: WZ01112 admin toggle
|
2026-06-15 12:05:09 +04:00 |
|
“Naeel”
|
ac4b1b6db8
|
v2: таблицы v2_→оригинальные + impersonation модуль (IMPERSONATION_TARGET + EXTRA_COMPANIES)
|
2026-06-15 09:16:10 +04:00 |
|
“Naeel”
|
c35d55a551
|
v2: EJS-шаблоны — user, admin, admin-audit, admin-entries
|
2026-06-13 08:46:09 +04:00 |
|
“Naeel”
|
07e69ce823
|
v2: export слой — GET /v2/export, агрегация CIDR
|
2026-06-13 08:34:09 +04:00 |
|
“Naeel”
|
103ee0b895
|
v2: +admin мок-юзер (3 компании, без имперсонации) для полного тестирования
|
2026-06-13 07:52:01 +04:00 |
|
“Naeel”
|
4ab27b6bd5
|
v2: подробные комментарии во всех модулях — что, зачем, контракты
|
2026-06-13 07:37:07 +04:00 |
|
“Naeel”
|
c45c51f7aa
|
v2: admin — дашборд компаний, аудит, лимиты, просмотр записей
|
2026-06-13 07:31:01 +04:00 |
|
“Naeel”
|
1e1b062512
|
v2: userFlow action + ENABLE_TEST_API флаг — отключение без удаления кода
|
2026-06-13 07:25:36 +04:00 |
|
“Naeel”
|
5ada74bd6f
|
v2: выделение валидации — validate() в crud, db/queries получает готовый cidr
|
2026-06-13 07:11:53 +04:00 |
|
“Naeel”
|
573aa99c7d
|
v2: разделение слоёв — crud/index.js API-слой, user/ и test/ через crud
|
2026-06-13 06:55:18 +04:00 |
|
“Naeel”
|
5a0013bc29
|
v2: fix chaos test — CIDR от 11 (10.x заблокирован), по 10 на компанию, проверка всех компаний
|
2026-06-12 23:04:40 +04:00 |
|
“Naeel”
|
d1ed1084e4
|
v2: fix test router mount /test/api → /test, /chaos теперь доступен без авторизации
|
2026-06-12 23:01:28 +04:00 |
|
“Naeel”
|
2dd44d1b6c
|
v2: /v2/test/chaos — параллельный хаос-тест внутри приложения (Promise.all)
|
2026-06-12 22:56:57 +04:00 |
|
“Naeel”
|
5b92ec02a5
|
v2: убран хаос — curl через сеть слишком медленный
|
2026-06-12 22:55:23 +04:00 |
|
“Naeel”
|
a5f7f81adc
|
v2: упрощённый хаос — 30 последовательных запросов с задержками
|
2026-06-12 22:49:13 +04:00 |
|
“Naeel”
|
ba2d44da57
|
v2: fix switch case in test API (был сломан sed-ом)
|
2026-06-12 22:29:24 +04:00 |
|
“Naeel”
|
7333cf705a
|
v2: switch + chaos тесты (50/54 pass, switch ждёт redeploy)
|
2026-06-12 22:23:09 +04:00 |
|
“Naeel”
|
abb2e6ad8f
|
v2: test API — action=switch для переключения компаний
|
2026-06-12 22:02:12 +04:00 |
|
“Naeel”
|
70a03c9a95
|
v2: 47 CRUD-тестов — все ТЗ, нагрузка, БД, имперсонация — ALL PASS
|
2026-06-12 22:01:13 +04:00 |
|
“Naeel”
|
1434257d32
|
v2: фикс тестов — URL-encoding кириллицы
|
2026-06-12 21:56:36 +04:00 |
|
“Naeel”
|
c9491bcb7d
|
v2: /v2/test/api — CRUD эндпоинт + внешние тесты curl
|
2026-06-12 21:43:28 +04:00 |
|
“Naeel”
|
922784781d
|
v2: встроенные CRUD-тесты — /v2/test/crud (production-база)
|
2026-06-12 21:40:22 +04:00 |
|
“Naeel”
|
5c29c49e75
|
v2: /v2/login → returnTo=/v2/app
|
2026-06-12 21:21:16 +04:00 |
|
“Naeel”
|
12f1fcd53c
|
v2: убран v2_ префикс из req.* — роутер и модули согласованы
|
2026-06-12 21:19:43 +04:00 |
|
“Naeel”
|
e17dd9cd36
|
v2: убраны v2_ префиксы сессии — user/adminMode/token как в основном коде
|
2026-06-12 21:13:15 +04:00 |
|
“Naeel”
|
7b4e69bd0c
|
v2: resolveContext — копирует session.user → v2_user если нет своей
|
2026-06-12 21:10:36 +04:00 |
|
“Naeel”
|
fd461a5879
|
v2: user CRUD + schema автозапуск + router тесты — модуль пользователя готов
|
2026-06-12 21:09:30 +04:00 |
|
“Naeel”
|
e45f4a74c7
|
v2: роутер по роли + пустышки user/admin — resolveContext middleware
|
2026-06-12 21:03:41 +04:00 |
|
“Naeel”
|
6dbb76b736
|
v2: fio — строка (fullName), не объект
|
2026-06-12 20:54:48 +04:00 |
|
“Naeel”
|
c25b5e9d7f
|
v2: минимум — /v2/login→основной, /v2/iam→IAM-данные из сессии
|
2026-06-12 20:42:14 +04:00 |
|
“Naeel”
|
4422fcd0de
|
v2: откат auth/config/server к 8e225e1 — чистый модуль аутентификации
|
2026-06-12 20:15:02 +04:00 |
|
“Naeel”
|
8fd94736a8
|
v2: ⚠️ КОСТЫЛЬ /v2/test — вход с TEST_TOKEN (WZ01112) в обход Keycloak
|
2026-06-12 17:37:32 +04:00 |
|
“Naeel”
|
e8bf24d1c9
|
v2: версия 0.5.70 — отображается в /v2 и /v2/app
|
2026-06-12 17:08:46 +04:00 |
|
“Naeel”
|
2ee54fd997
|
v2: schema создаётся внутри v2, основной server.js не трогаем
|
2026-06-12 17:05:48 +04:00 |
|
“Naeel”
|
65ca65fd84
|
v2: отдельный модуль schema.js — автосоздание таблиц при старте
|
2026-06-12 17:04:25 +04:00 |
|
“Naeel”
|
d2c20c4142
|
v2: CRUD-модуль — /v2/app с выбором компании, добавление/изменение/удаление записей
|
2026-06-12 16:53:33 +04:00 |
|
“Naeel”
|
00690881e0
|
v2: документирован конфиг — тестовый KC vs production, инструкция перехода
|
2026-06-12 16:43:20 +04:00 |
|
“Naeel”
|
9795902049
|
v2: убран JWT fallback — IAM обязателен, нет IAM = ошибка
|
2026-06-12 16:41:39 +04:00 |
|
“Naeel”
|
1b6df63945
|
v2: IAM fallback — JWT claims если IAM недоступен
|
2026-06-12 16:31:18 +04:00 |
|
“Naeel”
|
4ae695f026
|
v2: детальное логирование postForm + exchangeCode
|
2026-06-12 16:26:17 +04:00 |
|
“Naeel”
|
08d25831a4
|
v2: отладка exchangeCode — логируем ответ Keycloak
|
2026-06-12 16:08:10 +04:00 |
|
“Naeel”
|
f97d57bafd
|
v2: конфиг — process.env с умолчаниями, без dotenv и .env
|
2026-06-12 16:00:34 +04:00 |
|
“Naeel”
|
5821020aaa
|
v2: хардкод конфиг — без env, без V2_*, без .env
|
2026-06-12 15:59:25 +04:00 |
|
“Naeel”
|
b25199d386
|
v2: изоляция — свои V2_* env, v2/.env, не трогает основные переменные
|
2026-06-12 15:58:17 +04:00 |
|
“Naeel”
|
8e225e1e10
|
v2: модуль аутентификации Keycloak + IAM, роутер /v2
- v2/src/auth/index.js — login(), fetchIamUser(), exchangeCode(), buildAuthUrl()
- v2/src/config/index.js — приоритет V2_* → KC_* → умолчания
- v2/server.js — createV2Router(), монтируется в server.js как /v2
- server.js — app.use('/v2', createV2Router()) перед UI-роутером
- bump 0.5.57 → 0.5.58
|
2026-06-12 15:47:32 +04:00 |
|
“Naeel”
|
b2f1cae37d
|
docs: session history 2026-06-11 with remaining tasks
|
2026-06-12 13:43:25 +04:00 |
|
“Naeel”
|
2993f95b8d
|
tz
|
2026-06-11 21:38:19 +04:00 |
|
“Naeel”
|
199585be67
|
docs: add actual TOR (ТЗ-факт) based on implemented features
|
2026-06-11 21:36:40 +04:00 |
|
“Naeel”
|
f818f454a3
|
fix: deleted entries shown with strikethrough + opacity, edit/delete hidden
|
2026-06-11 21:26:05 +04:00 |
|
“Naeel”
|
bc209aeab8
|
release: bump 0.5.57
|
2026-06-11 21:15:45 +04:00 |
|
“Naeel”
|
a601570a4a
|
fix: return includeDeleted checkbox + submit button for admin filter (no JS)
|
2026-06-11 21:07:59 +04:00 |
|
“Naeel”
|
5781b37882
|
fix: audit table has impersonated_by column + filter uses button submit (no JS)
|
2026-06-11 20:47:03 +04:00 |
|
“Naeel”
|
ffdc12bdf8
|
fix: syntax error in /debug-session — missing closing brace
|
2026-06-11 20:39:30 +04:00 |
|
“Naeel”
|
001db2a556
|
debug: /debug-session shows last audit log entries (impersonated_by)
|
2026-06-11 20:32:23 +04:00 |
|
“Naeel”
|
447acba762
|
fix: impersonation banner shows activeClientId instead of raw JWT clientId
|
2026-06-11 20:27:08 +04:00 |
|
“Naeel”
|
8f9e0a96ad
|
fix: reject client_id when allowedIds list is empty (no IAM, no JWT claims)
|
2026-06-11 20:18:55 +04:00 |
|
“Naeel”
|
68ea44a81d
|
fix: X-Imp-* headers bridge UI→API impersonation + timezone GMT+4
|
2026-06-11 20:17:07 +04:00 |
|
“Naeel”
|
d0a0fdc264
|
chore: exclude sonnet analysis files from git
|
2026-06-11 20:03:08 +04:00 |
|
“Naeel”
|
1350f0dbba
|
security: fix OIDC state check bypass + open redirect in login-token
- oidc.js: remove || true — state check now works in all environments
- auth.js: wrap returnTo in safeReturn (was unprotected on line 166)
|
2026-06-11 20:02:49 +04:00 |
|
“Naeel”
|
351cb6afe6
|
feat: test impersonation via IMPERSONATION_ORIGINAL/TARGET/COMPANY env vars
- ui/index.js: resolveUser checks env vars, only for matching email
- Закомментировать блок 'TEST IMPERSONATION' для прода
|
2026-06-11 19:25:11 +04:00 |
|
“Naeel”
|
e0cbf4bf35
|
fix: /export defaults to JSON, ?format=txt for plain text
|
2026-06-11 16:32:19 +04:00 |
|
“Naeel”
|
e3c4c738aa
|
feat: /export?format=json — JSON export for admin
|
2026-06-11 16:29:24 +04:00 |
|