Commit Graph

  • ce46de40a7 v0.5.138: CSP script-src-attr unsafe-inline для onchange cairnr01probe 2026-06-16 05:05:37 +04:00
  • f7af864faf v0.5.137: onchange + console.log для проверки cairnr01probe 2026-06-16 05:01:30 +04:00
  • 0df031bed1 v0.5.136: ↺ яркая, deleted сохраняется после restore/delete cairnr01probe 2026-06-16 04:51:42 +04:00
  • 31a7d944d0 v0.5.135: UI таблицы — разделение столбцов, 💾, размеры cairnr01probe 2026-06-16 04:48:41 +04:00
  • d600393b44 v0.5.134: восстановление записей, кнопка удалённых, время МСК cairnr01probe 2026-06-16 04:39:21 +04:00
  • aa54bb33d7 v0.5.133: type=submit на кнопке удаления cairnr01probe 2026-06-15 17:17:43 +04:00
  • 5e4456cf66 v0.5.132: ADMIN_EMAIL в resolveContext для всех cairnr01probe 2026-06-15 17:12:14 +04:00
  • f6c8700c26 v0.5.131: isAdmin при имперсонации по ADMIN_EMAIL cairnr01probe 2026-06-15 17:11:14 +04:00
  • 829dd17906 v0.5.130: имперсонация не сохраняет isAdmin от оригинала cairnr01probe 2026-06-15 17:09:15 +04:00
  • e57de54fc4 v0.5.129: кнопка Выбрать, убран весь debug cairnr01probe 2026-06-15 16:55:13 +04:00
  • c2ed08d955 v0.5.128: обратно onchange, кнопка не нужна cairnr01probe 2026-06-15 16:51:17 +04:00
  • 61bf162eaa v0.5.127: clId обновляется после switchTo cairnr01probe 2026-06-15 16:47:47 +04:00
  • 19a31a2514 v0.5.126 cairnr01probe 2026-06-15 16:41:17 +04:00
  • 99262e2397 v0.5.125: кнопка Выбрать вместо onchange cairnr01probe 2026-06-15 16:41:04 +04:00
  • 02e6ec7024 v0.5.125: switchTo без редиректа, дебаг на странице cairnr01probe 2026-06-15 16:37:29 +04:00
  • be31832ec4 debug: логирование switchTo, resolveContext, enhanceImpersonation cairnr01probe 2026-06-15 16:30:23 +04:00
  • f9570d58f6 v0.5.123: switchTo перед crud.list, activeClientId не затирается cairnr01probe 2026-06-15 16:16:36 +04:00
  • dcab127e49 v0.5.122: save() при switchTo, редирект после сохранения сессии cairnr01probe 2026-06-15 15:53:55 +04:00
  • 1d32f54c10 v0.5.121: switchTo после crud.list, без save() и без impersonationCompanyId cairnr01probe 2026-06-15 15:45:58 +04:00
  • 8241d095fa Revert "v0.5.121: clientId всегда activeClientId || clientId, без спецлогики" cairnr01probe 2026-06-15 15:33:51 +04:00
  • 24153b29ea v0.5.121: clientId всегда activeClientId || clientId, без спецлогики cairnr01probe 2026-06-15 15:33:38 +04:00
  • d0eed95dc7 v0.5.120: убран save() при switchTo, Express сам сохранит сессию cairnr01probe 2026-06-15 15:31:57 +04:00
  • d67f914c99 v0.5.119: ссылка на /export в футере для админа cairnr01probe 2026-06-15 15:29:30 +04:00
  • 5083665afc v0.5.118: фикс смены компании при имперсонации cairnr01probe 2026-06-15 15:26:36 +04:00
  • 42f6ab22b4 v0.5.117: при имперсонации email в UI от таргета, не от админа cairnr01probe 2026-06-15 15:19:11 +04:00
  • 2b36d0f692 v0.5.116: фикс impersonatedCompanyId в сессии + тестовая имперсонация по трём ENV cairnr01probe 2026-06-15 15:05:21 +04:00
  • 344b65aa36 восстановление тестовой имперсонации cairnr01probe 2026-06-15 14:53:50 +04:00
  • 6c52dc88b0 revert: откат имперсонации к v0.5.115 до обсуждения cairnr01probe 2026-06-15 14:53:21 +04:00
  • a21e8d076b v0.5.115: тестовая имперсонация — полная подмена данных через ENV cairnr01probe 2026-06-15 14:52:19 +04:00
  • 561c5f1ba7 v0.5.115: имперсонация проверяет originalUserEmail, компании добавляются имперсонируемому cairnr01probe 2026-06-15 14:47:38 +04:00
  • 3c9fadca6a v0.5.114: IMPERSONATION_COMPANY тоже добавляется в компании cairnr01probe 2026-06-15 14:45:47 +04:00
  • a15b710a74 v0.5.113: фикс имперсонации — IMPERSONATION_ORIGINAL вместо TARGET cairnr01probe 2026-06-15 14:42:41 +04:00
  • 8384763740 v0.5.112: стиль админки как на основной, убран Выйти, ⚙️→Лимиты и Аудит cairnr01probe 2026-06-15 14:36:11 +04:00
  • e15c9206b5 v0.5.111: админка — лимиты и аудит (/v2/admin), кнопка ⚙️ cairnr01probe 2026-06-15 14:24:20 +04:00
  • cb3068dd0a v0.5.110: inline-редактирование через простые формы, без JS innerHTML cairnr01probe 2026-06-15 14:17:40 +04:00
  • a13641d7ad v0.5.109: синхронизация версий v2/config + package.json cairnr01probe 2026-06-15 14:13:26 +04:00
  • c5252540c9 v0.5.108: фикс inline-редактирования — innerHTML вместо show/hide cairnr01probe 2026-06-15 14:04:11 +04:00
  • 1653d0fed0 v0.5.107: inline-редактирование в таблице, редирект / → /v2/app cairnr01probe 2026-06-15 13:57:48 +04:00
  • 99da376c8d v0.5.106: фикс — админ всегда видит все компании, убран дубль (админ) cairnr01probe 2026-06-15 13:51:37 +04:00
  • 87694b18ae v2: ARCHITECTURE.md — документ архитектуры cairnr01probe 2026-06-15 13:47:09 +04:00
  • ed62f06f16 v0.5.105: убран переключатель Администратор, adminMode всегда on cairnr01probe 2026-06-15 13:45:33 +04:00
  • 7cc06bf9d9 v0.5.104: админ видит (личное) у своих компаний в dropdown cairnr01probe 2026-06-15 13:41:01 +04:00
  • d1e86f5b35 v0.5.103: WZ01112 админ по умолчанию, adminMode auto-on cairnr01probe 2026-06-15 13:39:04 +04:00
  • 306256b165 v0.5.102: единый интерфейс /v2/app для юзеров и админов cairnr01probe 2026-06-15 13:30:12 +04:00
  • d99a687d36 toggle-admin: redirect to /v2/admin on enable, session.save, v0.5.101 cairnr01probe 2026-06-15 12:44:14 +04:00
  • 584a6e56b1 oidc: force redirect to /v2/app after login, v0.5.100 cairnr01probe 2026-06-15 12:28:33 +04:00
  • 610fc9aa37 oidc: default returnTo /v2/app, v0.5.99 cairnr01probe 2026-06-15 12:22:18 +04:00
  • afbaa17fc8 v2: WZ01112 admin toggle cairnr01probe 2026-06-15 12:05:09 +04:00
  • 0380e6f996 v0.6.20: отладка EXTRA_COMPANIES cairnr01probe 2026-06-15 11:19:58 +04:00
  • e3579f85d7 v0.6.19: шаблон читает req.session.user (с имперсонацией), не req.user cairnr01probe 2026-06-15 11:18:08 +04:00
  • 1298d25601 v0.6.18: авто-имперсонация выставляет isAdmin + adminMode cairnr01probe 2026-06-15 11:11:25 +04:00
  • 92667497a3 v0.6.17: отладка ADMIN_EMAIL в ошибке cairnr01probe 2026-06-15 11:10:59 +04:00
  • c47a414ab8 v0.6.16: req.clientId = activeClientId — без условий, CRUD не знает про имперсонацию cairnr01probe 2026-06-15 11:09:44 +04:00
  • fe95649721 v0.6.15: фикс — switch компаний при имперсонации cairnr01probe 2026-06-15 11:06:48 +04:00
  • a8136a5f0c v0.6.14: расширенная отладка req.clientId (тип, длина) cairnr01probe 2026-06-15 11:06:22 +04:00
  • e197b54197 v0.6.13: отладка — показ email/clientId/env в ошибке cairnr01probe 2026-06-15 10:55:13 +04:00
  • 8c85139ece v0.6.12: полный санитайзер IAM в resolveContext — защита от null/undefined/говна cairnr01probe 2026-06-15 10:46:31 +04:00
  • 6e334b6596 v0.6.11: guard на ВСЕ обязательные поля DB — companyId, cidr, userEmail, entryId cairnr01probe 2026-06-15 10:45:21 +04:00
  • 1a006660b4 v0.6.10: проверка clientId в getOrCreateCompany (3-й уровень) cairnr01probe 2026-06-15 10:43:19 +04:00
  • b1d30f72b4 v0.6.9: защита от пустого clientId (null client_id) cairnr01probe 2026-06-15 10:35:03 +04:00
  • 54dca739bb v0.6.8: Выйти — только реальный KC-юзер cairnr01probe 2026-06-15 10:29:31 +04:00
  • 766f17ff44 v0.6.7: фикс — req.email=текущий, impersonatedBy=реальный (правильно) cairnr01probe 2026-06-15 10:28:06 +04:00
  • 0d61956f8f v0.6.6: разделение — req.email(аудит) vs req.displayEmail(экран) cairnr01probe 2026-06-15 10:23:04 +04:00
  • 737c47acc5 v0.6.5: loginEmail из originalUserEmail, компания слева от email cairnr01probe 2026-06-15 10:19:07 +04:00
  • 93ea828b8f v0.6.4: авто-имперсонация (ORIGINAL→TARGET) + ADMIN_EMAIL cairnr01probe 2026-06-15 10:14:16 +04:00
  • 12e8a7271a v0.6.3: убрал (имперсонация) у email, жёлтый баннер сверху cairnr01probe 2026-06-15 09:57:35 +04:00
  • 4d7ae1badb v0.6.2: email юзера справа от статистики + loginEmail в header cairnr01probe 2026-06-15 09:55:35 +04:00
  • 7b17fc6605 v0.6.1: фикс — email в header (Выйти) cairnr01probe 2026-06-15 09:46:58 +04:00
  • 7c46135dae v0.6.0: дизайн Nubes — лого, header, стили, email, имперсонация cairnr01probe 2026-06-15 09:42:33 +04:00
  • a62b52801a v2→main: интеграция — v2 как основной UI (/), старый UI закомментирован cairnr01probe 2026-06-15 09:33:45 +04:00
  • ac4b1b6db8 v2: таблицы v2_→оригинальные + impersonation модуль (IMPERSONATION_TARGET + EXTRA_COMPANIES) cairnr01probe 2026-06-15 09:16:10 +04:00
  • c35d55a551 v2: EJS-шаблоны — user, admin, admin-audit, admin-entries cairnr01probe 2026-06-13 08:46:09 +04:00
  • 07e69ce823 v2: export слой — GET /v2/export, агрегация CIDR cairnr01probe 2026-06-13 08:34:09 +04:00
  • 103ee0b895 v2: +admin мок-юзер (3 компании, без имперсонации) для полного тестирования cairnr01probe 2026-06-13 07:52:01 +04:00
  • 4ab27b6bd5 v2: подробные комментарии во всех модулях — что, зачем, контракты cairnr01probe 2026-06-13 07:37:07 +04:00
  • c45c51f7aa v2: admin — дашборд компаний, аудит, лимиты, просмотр записей cairnr01probe 2026-06-13 07:31:01 +04:00
  • 1e1b062512 v2: userFlow action + ENABLE_TEST_API флаг — отключение без удаления кода cairnr01probe 2026-06-13 07:25:36 +04:00
  • 5ada74bd6f v2: выделение валидации — validate() в crud, db/queries получает готовый cidr cairnr01probe 2026-06-13 07:11:53 +04:00
  • 573aa99c7d v2: разделение слоёв — crud/index.js API-слой, user/ и test/ через crud cairnr01probe 2026-06-13 06:55:18 +04:00
  • 5a0013bc29 v2: fix chaos test — CIDR от 11 (10.x заблокирован), по 10 на компанию, проверка всех компаний cairnr01probe 2026-06-12 23:04:40 +04:00
  • d1ed1084e4 v2: fix test router mount /test/api → /test, /chaos теперь доступен без авторизации cairnr01probe 2026-06-12 23:01:28 +04:00
  • 2dd44d1b6c v2: /v2/test/chaos — параллельный хаос-тест внутри приложения (Promise.all) cairnr01probe 2026-06-12 22:56:57 +04:00
  • 5b92ec02a5 v2: убран хаос — curl через сеть слишком медленный cairnr01probe 2026-06-12 22:55:23 +04:00
  • a5f7f81adc v2: упрощённый хаос — 30 последовательных запросов с задержками cairnr01probe 2026-06-12 22:49:13 +04:00
  • ba2d44da57 v2: fix switch case in test API (был сломан sed-ом) cairnr01probe 2026-06-12 22:29:24 +04:00
  • 7333cf705a v2: switch + chaos тесты (50/54 pass, switch ждёт redeploy) cairnr01probe 2026-06-12 22:23:09 +04:00
  • abb2e6ad8f v2: test API — action=switch для переключения компаний cairnr01probe 2026-06-12 22:02:12 +04:00
  • 70a03c9a95 v2: 47 CRUD-тестов — все ТЗ, нагрузка, БД, имперсонация — ALL PASS cairnr01probe 2026-06-12 22:01:13 +04:00
  • 1434257d32 v2: фикс тестов — URL-encoding кириллицы cairnr01probe 2026-06-12 21:56:36 +04:00
  • c9491bcb7d v2: /v2/test/api — CRUD эндпоинт + внешние тесты curl cairnr01probe 2026-06-12 21:43:28 +04:00
  • 922784781d v2: встроенные CRUD-тесты — /v2/test/crud (production-база) cairnr01probe 2026-06-12 21:40:22 +04:00
  • 5c29c49e75 v2: /v2/login → returnTo=/v2/app cairnr01probe 2026-06-12 21:21:16 +04:00
  • 12f1fcd53c v2: убран v2_ префикс из req.* — роутер и модули согласованы cairnr01probe 2026-06-12 21:19:43 +04:00
  • e17dd9cd36 v2: убраны v2_ префиксы сессии — user/adminMode/token как в основном коде cairnr01probe 2026-06-12 21:13:15 +04:00
  • 7b4e69bd0c v2: resolveContext — копирует session.user → v2_user если нет своей cairnr01probe 2026-06-12 21:10:36 +04:00
  • fd461a5879 v2: user CRUD + schema автозапуск + router тесты — модуль пользователя готов cairnr01probe 2026-06-12 21:09:30 +04:00
  • e45f4a74c7 v2: роутер по роли + пустышки user/admin — resolveContext middleware cairnr01probe 2026-06-12 21:03:41 +04:00
  • 6dbb76b736 v2: fio — строка (fullName), не объект cairnr01probe 2026-06-12 20:54:48 +04:00
  • c25b5e9d7f v2: минимум — /v2/login→основной, /v2/iam→IAM-данные из сессии cairnr01probe 2026-06-12 20:42:14 +04:00
  • 4422fcd0de v2: откат auth/config/server к 8e225e1 — чистый модуль аутентификации cairnr01probe 2026-06-12 20:15:02 +04:00