Commit Graph
95 Commits
Author SHA1 Message Date
Denozordec 8298454c63 perf(docker): бандл API, brotli-статика, wget-healthcheck, лимиты ресурсов, вендорные чанки web 2026-10-23 17:01:02 +07:00
Denozordec 1d7ea35a23 perf(api): кэш-заголовки статики, CORS по allowlist, раздельные health/ready, compress в Traefik 2026-10-23 16:55:59 +07:00
Denozordec 30d331c633 perf(api): кэш профиля и конфигурации, лимитер argon2, SHA-256 для client secret, trust proxy 2026-10-23 16:54:05 +07:00
DenozordecandClaude Sonnet 5.5 107eddba9e perf(db): pragma, транзакции, индексы, версия схемы, SQL-фильтры и очистка
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 15:56:25 +07:00
DenozordecandClaude Sonnet 5.5 140ffdb7b1 fix(api): graceful shutdown, единый обработчик ошибок и корректные 404
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 15:53:18 +07:00
DenozordecandClaude Sonnet 5.5 0948455d15 fix(web): привести таблицы к виду MikrotikManager — тулбар, сегменты, шапка и ячейки
quality / changes (push) Successful in 8s
quality / api (push) Skipped
quality / commitlint (push) Skipped
quality / docker-check (push) Skipped
quality / web (push) Successful in 1m2s
CD / quality (push) Successful in 1m12s
CD / publish (push) Successful in 1m31s
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 14:43:46 +07:00
DenozordecandClaude Sonnet 5.5 e7b34ce6ae fix(web): вернуть нативные токены ReUI и добавить шапку страницы пользователей
quality / changes (push) Successful in 6s
quality / api (push) Skipped
quality / commitlint (push) Skipped
quality / docker-check (push) Skipped
quality / web (push) Successful in 44s
CD / quality (push) Successful in 52s
CD / publish (push) Successful in 1m21s
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 14:33:21 +07:00
DenozordecandClaude Sonnet 5.5 9b05fcf03a feat(web): перенести OIDC, ссылки приложений и пользователей на новый дизайн
quality / changes (push) Successful in 7s
quality / api (push) Skipped
quality / commitlint (push) Skipped
quality / docker-check (push) Skipped
quality / web (push) Successful in 53s
CD / quality (push) Successful in 1m2s
CD / publish (push) Successful in 1m37s
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 14:09:04 +07:00
DenozordecandClaude Sonnet 5.5 69b3553f6d feat(web): перенести страницы Приложения, Аккаунт, Входы и Изменения на новый дизайн
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 14:08:10 +07:00
DenozordecandClaude Sonnet 5.5 148a778ba1 feat(web): оболочка портала на блоках макета — меню, шапка, монитор, палитра ⌘K
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 13:59:35 +07:00
DenozordecandClaude Sonnet 5.5 6898d2255d refactor(web): вынести общие блоки макета в components/portal
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 13:53:59 +07:00
DenozordecandClaude Sonnet 5.5 b89e72ec1b fix(design-preview): плитки монитора системы не разъезжаются
quality / changes (push) Successful in 8s
quality / api (push) Skipped
quality / commitlint (push) Skipped
quality / docker-check (push) Skipped
quality / web (push) Successful in 46s
CD / quality (push) Successful in 56s
CD / publish (push) Successful in 1m27s
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 12:14:13 +07:00
DenozordecandClaude Sonnet 5.5 41d9325d14 fix(design-preview): убрать плашку «Обновлено · Live · авто» из шапки
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 12:13:16 +07:00
DenozordecandClaude Sonnet 5.5 f6466d9d7c revert(design-preview): вернуть компоновку каркаса как в MikrotikManager v2
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 12:11:28 +07:00
DenozordecandClaude Sonnet 5.5 609bea6ad7 feat(design-preview): каркас на блоке app-shell-12 из ReUI PRO
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 12:03:55 +07:00
DenozordecandClaude Sonnet 5.5 f97604c23e fix(design-preview): вкладки line как в ReUI — без сплошной нижней линии
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-23 11:57:16 +07:00
DenozordecandClaude Sonnet 5.5 1395e2a70b fix(design-preview): убрать двойную линию под вкладками окна прав
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 18:54:32 +07:00
DenozordecandClaude Sonnet 5.5 a07cb0e55a feat(design-preview): иконки в карточках KPI
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 16:54:54 +07:00
DenozordecandClaude Sonnet 5.5 c8d69bbdfa fix(design-preview): палитра shnt Ops, окно прав и палитра ⌘K как на досках
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 16:37:40 +07:00
DenozordecandClaude Sonnet 5.5 700ad508d8 fix(design-preview): правки по ревью — пороги, высоты вкладок, контраст фокуса, счётчик вкладок
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 14:57:22 +07:00
DenozordecandClaude Sonnet 5.5 b82c8031c2 fix(design-preview): размеры, отступы и пороги ширины как на досках Auth Portal
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 14:53:25 +07:00
DenozordecandClaude Sonnet 5.5 3e1ad15ba3 fix(design-preview): палитра MikrotikManager v2 для макета Auth Portal
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 14:43:30 +07:00
DenozordecandClaude Sonnet 5.5 1b89135186 fix(design-preview): окна создания, подписи и кнопки как на досках Auth Portal
Окна «Создать пользователя» и «Создать OIDC-клиент» по доске с проверкой полей; баннер безопасности
всегда виден; кнопки действий без иконок; подписи иконок приложений как на доске; поиск в таблице passkeys.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 03:44:19 +07:00
DenozordecandClaude Sonnet 5.5 cd6516edd6 fix(design-preview): полоса KPI, баннеры и шапка точно как на досках Auth Portal
Полоса показателей — один Frame с линиями и плашками, колонки по порогам контейнера; баннер в одну строку
с «Объяснить»; бренд «Единый вход · SSO», заголовки групп капсом; пороги монитора в шапке как на доске.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 03:41:00 +07:00
DenozordecandClaude Sonnet 5.5 afbc6fc366 feat(design-preview): перенос досок Auth Portal 1 к 1 — таблицы, вкладки, формы, права
Таблицы по анатомии доски: «Таблица/Карточки», поиск, «Колонки», виды линией со счётчиками, панель
массовых действий, переключатель и меню «⋮» в строке. Вкладки страниц — линия с мелким счётчиком.
Строки настроек (пароль, ротация журнала, меню), «Объяснить» в баннерах с панелью разбора,
палитра с ассистентом и OIDC-клиентами, сворачиваемые группы меню, плашка «Обновлено · Live»,
данные досок «Изменения» и «Доступ по приложениям», права доступа вкладками.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 03:35:45 +07:00
DenozordecandClaude Sonnet 5.5 709dd93548 fix(design-preview): «Приложения» и «Изменения» точно как на досках канваса
Плитки приложений и лента событий собраны по разметке доски: Frame с шапкой, сетка auto-fit
от 260px, иконка, плашка, описание и адрес; лента — время, точка с линией, плашка и подпись.
На «Приложениях» возвращена полоса KPI, «Весь журнал» открывает таблицу.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 03:18:06 +07:00
DenozordecandClaude Sonnet 5.5 60e0b886fc fix(design-preview): плитки приложений внутри рамки и стиль MikrotikManager v2
QuickActionGrid получил autoFit: Frame с отступами и сетка auto-fit от 17rem, плитки больше не
вылетают за границы. Центр состояния в шапке, меню пользователя (тема, плотность, контраст),
точки проблем в меню, размытая шапка, высокий контраст и видимый фокус приведены к макету v2.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 03:15:12 +07:00
DenozordecandClaude Sonnet 5.5 8bbaab62e4 fix(design-preview): убрать страницу пользователя — дублировала панель прав
Права, сброс passkeys, отключение и удаление уже есть в панели прав и меню строки,
сессии и события — в «Входах» и «Изменениях». Страница откроется из коммита 007ece4.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 03:11:43 +07:00
DenozordecandClaude Sonnet 5.5 c8351424f4 feat(design-preview): матрица доступа «пользователи × приложения» (solution-users-3)
Переключатели в ячейках, счётчик выданных доступов в заголовке колонки, заблокированные ячейки
администраторов, пометки «Не сохранено». Исправлена вёрстка рейки вкладок профиля.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 02:39:06 +07:00
DenozordecandClaude Sonnet 5.5 007ece4575 feat(design-preview): страница пользователя с рейкой вкладок (solution-users-2)
Права, вход и passkeys, сессии, активность и опасная зона. Каталог пользователей вынесен в общее
состояние макета, поэтому правки видны и в списке, и в профиле. Переходы: меню строки «Профиль»,
«Открыть профиль» в панели прав, хлебные крошки в шапке.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 02:35:57 +07:00
DenozordecandClaude Sonnet 5.5 f0a257220f feat(design-preview): права доступа — широкая боковая панель с двумя колонками
Слева приложения с переключателем и счётчиком выданных разделов, справа разделы с уровнем
«Нет / Чтение / Запись / Админ». «Сохранить права» активна только при изменении,
закрытие с правками спрашивает подтверждение.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 02:33:06 +07:00
DenozordecandClaude Sonnet 5.5 e02cfad0b1 feat(design-preview): пометки строк «Не сохранено» и «Будет удалено», массовое удаление с подтверждением
Строки с накопленными правками подсвечиваются и получают плашку (getRowStatus из DataGrid v9),
удаление применяется при «Сохранить», в каталоге пользователей добавлено «Удалить…» в панели
массовых действий.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 02:26:37 +07:00
DenozordecandClaude Sonnet 5.5 41f5669812 feat(design-preview): перетаскивание строк в «Ссылках приложений» через dnd-kit
quality / changes (push) Successful in 9s
quality / commitlint (push) Skipped
quality / docker-check (push) Skipped
quality / web (push) Successful in 1m32s
quality / api (push) Successful in 42s
CD / quality (push) Successful in 2m25s
CD / publish (push) Successful in 2m52s
PreviewSectionGrid получил onReorder: ручка DataGridTableDndRowHandle и DataGridTableDndRows
из ReUI. Порядок меняется перетаскиванием, меню строки осталось запасным путём.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 02:03:05 +07:00
DenozordecandClaude Sonnet 5.5 4f5026980a chore(docs): обновить skill ReUI до 68f0e6fa91 и описать миграцию
Установщик ReUI обновил skill для Claude/Codex/Cursor/OpenCode, правила в AGENTS.md
и MCP-конфиги (ключ только ссылкой на REUI_LICENSE_KEY). План и решения — docs/reui-upgrade.md.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 01:58:41 +07:00
DenozordecandClaude Sonnet 5.5 7c4430d240 chore(web): обновить компоненты ReUI и перейти на TanStack Table v9
Обновлены из реестра data-grid, filters, badge, frame, alert, icon-tile, icon-stack,
timeline и зависимые примитивы @authportal/ui. @tanstack/react-table 8.21 → 9.3,
добавлены dnd-kit, react-virtual, date-fns. Фильтры AdminUsersGrid переведены на
дерево FilterQuery, таблицы — на useTable + dataGridFeatures. Русские подписи вынесены
в lib/reui-ru.ts. Импорты cn из реестра заменены на @authportal/ui/lib/utils.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 01:58:31 +07:00
DenozordecandClaude Sonnet 5.5 a55d79c974 feat(design-preview): страница «Ссылки приложений» по канвасу на блоках ReUI PRO
Порядок с номером и ручкой, плитки иконок, переключатель «В меню» в строке, меню строки
(в начало, выше, ниже, в конец), сброс порядка, вкладка «Меню» в стиле settings-10 с
предпросмотром, форма приложения с выбором иконки и режима входа.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 01:47:10 +07:00
DenozordecandClaude Sonnet 5.5 1a46aaa6a5 feat(design-preview): журнал изменений — лента, таблица и ротация без дублирующих фильтров
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 01:39:44 +07:00
DenozordecandClaude Sonnet 5.5 5de88e18c8 feat(design-preview): упростить страницы — без технической строки источника, дублей и лишних KPI
Убрана строка «Получено… GET /api/…» из шапок страниц (свежесть в кнопке i), дублирующий
баннер на «Пользователях», KPI на «Приложениях». Контент ограничен шириной 1480px.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 01:35:17 +07:00
DenozordecandClaude Sonnet 5.5 f486b72884 feat(design-preview): шапка как в канвасе — заголовок, инфо-кнопка и монитор «Внимание»
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 01:08:42 +07:00
DenozordecandClaude Sonnet 5.5 a31a964228 feat(design-preview): плитки приложений с адресом и способом входа как в канвасе
В QuickActionGrid добавлены необязательные meta и badgeVariant (обратно совместимо).

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 00:19:43 +07:00
DenozordecandClaude Sonnet 5.5 fe5d58b13b feat(design-preview): каталог пользователей и матрица доступа как в канвасе
Колонки: участник, статус, роль, приложения, passkey, активность · IP; виды по статусу,
массовое включение/отключение, меню строки, главная кнопка «Создать пользователя» в шапке
страницы, вкладка «Доступ по приложениям».

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-18 00:17:43 +07:00
DenozordecandClaude Sonnet 5.5 67a0510eeb feat(design-preview): привести макет к дизайн-системе shnt Ops
Шрифты Geist и Geist Mono (только пока смонтирован макет), плашки статуса с глифом
и точкой в первой колонке, счётчики в видах таблиц с запоминанием вида,
закреплённые пункты меню, автосворачивание меню до 1100px, индикатор свежести
в шапке, вызов палитры кнопкой только на узких экранах, главная кнопка в Sheet
и предупреждение «Закрыть без сохранения».

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-17 22:29:47 +07:00
DenozordecandClaude Sonnet 5.5 bd69b27e5c feat(design-preview): KPI-плитки с иконками, тонами и пояснениями
Плитки собираются хелпером kpi(): иконка по тону, значение с пояснением, бейдж статуса.
Для четырёх плиток сетка переходит на 2 колонки раньше (kpi-cols).

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-17 22:14:30 +07:00
DenozordecandClaude Sonnet 5.5 7f9d69d27d fix(design-preview): убрать блоки «Состояния раздела»
Блоки были переносом из канваса и не несли пользы на страницах макета.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-17 22:12:02 +07:00
DenozordecandClaude Sonnet 5.5 59d68a3a45 fix(design-preview): отступ под горизонтальным скроллом таблиц
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-17 22:10:42 +07:00
DenozordecandClaude Sonnet 5.5 0be272f917 fix(design-preview): переключатели вида и периода на компоненте Tabs
Кнопки с aria-pressed выглядели криво в тёмной теме; заменены на общий Segmented.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-17 22:10:01 +07:00
DenozordecandClaude Sonnet 5.5 157396613d feat(design-preview): живой макет портала на ReUI PRO
Добавлена ветка маршрутов /design-preview без авторизации и без запросов к API:
вход (вне оболочки), приложения, безопасность (passkeys), пользователи
(права доступа по приложениям и разделам, создание, массовые действия,
удаление вводом email, сброс passkeys), входы (история и сессии),
изменения (лента Timeline, таблица, ротация журнала), OIDC-клиенты
(issuer, создание, секрет один раз), ссылки приложений.

Оболочка: сайдбар с группами «Портал» и «Админ», переключатель на 8
приложений, свёрнутый вид с точками проблем, шапка с крошками и
монитором, меню пользователя с темой/плотностью/контрастом, палитра ⌘K,
панель «Не сохранено» с diff. Данные — суррогатные, названия из
@authportal/shared. В audit-log-timeline добавлены min-w-0, чтобы лента
не вызывала горизонтальный скролл на узких экранах.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
2026-10-17 22:05:52 +07:00
Denozordec 5acff590bc docs(deploy): чинить SQLITE_READONLY после перехода на не-root образ
quality / commitlint (push) Skipped
quality / changes (push) Successful in 6s
quality / web (push) Skipped
quality / api (push) Skipped
quality / docker-check (push) Skipped
CD / quality (push) Successful in 8s
CD / publish (push) Successful in 24s
./data и app.db, созданные старым root-контейнером, нужно один раз
отдать uid 1000 (node) — иначе migrateSchema падает с SQLITE_READONLY.
2026-09-23 18:45:48 +07:00
Denozordec 2e947b5a31 fix(ci): мульти-коммит пуш ломал детект путей
quality / changes (push) Successful in 7s
quality / commitlint (push) Skipped
quality / docker-check (push) Skipped
quality / web (push) Successful in 1m5s
quality / api (push) Successful in 53s
CD / quality (push) Successful in 2m8s
CD / publish (push) Successful in 2m33s
checkout для push-событий был fetch-depth: 2, но github.event.before
при пуше пачки коммитов лежит глубже HEAD~1 — git diff падал с
'bad object'. Теперь fetch-depth: 0 + fallback на полный пайплайн,
если before-SHA недоступен (переписанная история).
2026-09-23 16:57:38 +07:00
Denozordec 8d8bddb454 ci(cd): turbo-кэш, гейты typecheck/lint, таймауты, non-root образ
quality / commitlint (push) Skipped
quality / changes (push) Failing after 8s
quality / web (push) Skipped
quality / api (push) Skipped
quality / docker-check (push) Skipped
CD / quality (push) Failing after 11s
CD / publish (push) Skipped
- .turbo в actions/cache (пересборки shared/db переиспользуются между прогонами)
- typecheck в web/api джобах, lint бэкенда в api-джобе
- убран пустой turbo test --filter=web (в web нет тестов)
- timeout-minutes на все джобы
- Dockerfile: USER node + --chown; прекомпрессия статики gzip+brotli на этапе
  сборки (Traefik не сжимает); compose: chown 1000:1000 data в инструкции
2026-09-23 14:51:38 +07:00
Denozordec 3cef8c33c2 build(monorepo): catalog, typecheck/lint задачи, унификация версий
- pnpm catalog: один typescript 6.0.3 и vitest 4.1.10 на весь монорепо
- задача turbo typecheck; tsc вынесен из build web (блокировал vite build)
- eslint-конфиги для api/db/shared (бэкенд не линтился)
- turbo test больше не зависит от ^build (тесты идут по исходникам)
- react-day-picker перенесён из web в ui (потребитель calendar.tsx)
- из web удалены неиспользуемые motion/@dnd-kit×4/react-virtual/date-fns
2026-09-23 14:51:38 +07:00
Denozordec e135150c2d test(api): общий хелпер с фиксированным RSA-ключом
Фиксированный ключ (OIDC_RSA_PRIVATE_KEY) вместо generateKeyPair
на каждое построение приложения: фаза тестов 9.9с → 1.6с (×6).
Локальные копии buildTestApp/adminToken в 4 файлах заменены на helpers.ts
2026-09-23 14:51:38 +07:00
Denozordec c48132e89e fix(api): ошибки типов, скрытые отсутствием typecheck
- jose v6 не экспортирует KeyLike → CryptoKey
- SimpleWebAuthn v13 требует Uint8Array<ArrayBuffer>
- targetType 'credential' в AUDIT_TARGET_TYPES (писался в аудит passkey-ов)
- target-app: начальные значения host/path/search никогда не читались
2026-09-23 14:51:38 +07:00
Denozordec e107af8e43 refactor(web): удалить мёртвый код (~5.9К строк)
- демо-блоки blocks/ (sheet-9, solution-users-1/6, settings-5, auth-18) —
  не импортировались; auth-logo перенесён в components/auth-logo.tsx
- варианты грида data-grid-table-dnd/-dnd-rows/-virtual и ui/svgs — не импортировались
- убраны исключения blocks из tsconfig и eslint
- AGENTS.md: добавить apps/api/db/shared в описание стека
2026-09-23 14:51:25 +07:00
Denozordec 15073f53d9 perf(web): разбиение бандла и runtime-оптимизации
- autoCodeSplitting роутов: начальный JS 1012КБ/298гз → 426КБ/131гз (−58%),
  админ-чанки грузятся по требованию
- фильтры грида: убрана искусственная задержка 200мс
- SystemMonitorPopover: поллинг 4 запросов/30с только при открытом поповере
- /me в beforeLoad через ensureQueryData (кэш вместо запроса на каждую навигацию)
- глобальный staleTime 30с (мутации инвалидируют кэш явно)
- режим analyze + rollup-plugin-visualizer (pnpm --filter web analyze)
2026-09-23 14:51:14 +07:00
Denozordec 87f35631b4 perf(api): горячие пути OIDC и батч-запросы
- кэш importJWK: не импортировать RSA-ключ на каждый /oauth/userinfo
- Cache-Control для /.well-known/openid-configuration и jwks.json
- индекс refresh_sessions(token_hash) — было full scan на каждом authorize/logout
- GET /admin/users: 3 SELECT на пользователя → батч-запросы (N+1)
- revokeAllSessionsForUser: цикл UPDATE → один UPDATE
- preCompressed статики (файлы готовит Dockerfile)
2026-09-23 14:51:14 +07:00
DenozordecandCursor fd7d9fd13c feat(apps): добавить MikrotikManager app id mm
quality / commitlint (push) Skipped
quality / changes (push) Successful in 7s
quality / docker-check (push) Skipped
quality / web (push) Successful in 40s
quality / api (push) Successful in 36s
CD / quality (push) Successful in 1m37s
CD / publish (push) Successful in 1m40s
Регистрация mm в каталоге приложений, permissions mm:*, target-app и docs.

Co-authored-by: Cursor <[email protected]>
2026-09-04 20:38:27 +07:00
DenozordecandCursor 01d3a79e13 test(app-switcher): add tests for CDN app integration
quality / commitlint (push) Skipped
quality / changes (push) Successful in 5s
quality / web (push) Skipped
quality / docker-check (push) Skipped
quality / api (push) Successful in 34s
CD / quality (push) Successful in 43s
CD / publish (push) Successful in 1m25s
- Updated app-switcher tests to include verification for the newly integrated CDN app.
- Added assertions to check the presence and authentication mode of the CDN app in the response.

Co-authored-by: Cursor <[email protected]>
2026-09-04 14:18:00 +07:00
DenozordecandCursor 0f1f89776b feat(cdn): integrate CDN Manager into the application
quality / commitlint (push) Skipped
quality / changes (push) Successful in 5s
quality / docker-check (push) Skipped
quality / web (push) Successful in 57s
quality / api (push) Failing after 30s
CD / quality (push) Failing after 1m36s
CD / publish (push) Skipped
- Updated environment configurations to include CDN Manager in the RETURN_TO_ALLOWLIST.
- Enhanced target app resolution to recognize CDN-related hosts.
- Added CDN Manager to the application switcher and updated relevant documentation.
- Included tests to verify the correct mapping of CDN hosts.

Co-authored-by: Cursor <[email protected]>
2026-09-04 14:11:34 +07:00
DenozordecandCursor a591d12c69 chore(reui): обновить ReUI agent skill до актуальной версии
quality / changes (push) Successful in 6s
quality / web (push) Skipped
quality / api (push) Skipped
quality / commitlint (push) Skipped
quality / docker-check (push) Skipped
CD / quality (push) Successful in 8s
CD / publish (push) Successful in 33s
Co-authored-by: Cursor <[email protected]>
2026-08-19 20:03:54 +07:00
DenozordecandCursor 46dc2f714c feat(auth): добавить вход по passkey
quality / commitlint (push) Skipped
quality / changes (push) Successful in 8s
quality / docker-check (push) Skipped
quality / web (push) Successful in 1m11s
quality / api (push) Successful in 47s
CD / quality (push) Successful in 2m10s
CD / publish (push) Successful in 1m50s
Альтернатива паролю на портале; SSO приложений без изменений.

Co-authored-by: Cursor <[email protected]>
2026-08-19 10:24:46 +07:00
DenozordecandCursor f76b89c1df ci: перевести пайплайн на quality bake и alpine
quality / commitlint (push) Skipped
quality / changes (push) Successful in 7s
quality / docker-check (push) Skipped
quality / web (push) Successful in 1m7s
quality / api (push) Successful in 44s
CD / quality (push) Successful in 2m3s
CD / publish (push) Successful in 3m31s
Co-authored-by: Cursor <[email protected]>
2026-08-19 01:30:57 +07:00
DenozordecandCursor a59e173f6d ci: переключить registry на git.shx.one
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 46s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
Обновить Gitea Actions, compose и ссылки в документации.

Co-authored-by: Cursor <[email protected]>
2026-08-17 16:43:39 +07:00
DenozordecandCursor 778c42bad8 fix(ui): добавить монитор системы и выровнять chrome
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 2m18s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
Подключить SystemMonitor, IconTile, QuickActionGrid на /apps и skip-link.

Co-authored-by: Cursor <[email protected]>
2026-08-17 15:36:55 +07:00
DenozordecandCursor 4ce05a6669 feat(oidc): enhance SSO target app resolution and audit logging
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 2m5s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
- Updated targetAppFromReturnTo function to handle OIDC authorization unwrap and added search parameter processing.
- Integrated target app resolution into the OIDC route for improved audit logging of SSO handoffs.
- Added a test case to verify the logging of the target app during the authorization process.
- Updated documentation to reflect changes in audit logging for the Technitium DNS application.

Co-authored-by: Cursor <[email protected]>
2026-08-11 20:01:51 +07:00
DenozordecandCursor 36c4091dbf feat(oidc): add CreateOidcClientSheet component and update imports
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 2m25s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
- Introduced the CreateOidcClientSheet component for OIDC client creation.
- Updated the index export to include the new component.
- Modified the OIDC admin route to import and utilize the new CreateOidcClientSheet.

Co-authored-by: Cursor <[email protected]>
2026-08-11 19:40:39 +07:00
DenozordecandCursor 0b6fa65b08 feat(reui): update ReUI components and documentation
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 2m30s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
- Added new OIDC configuration options in `.env.example`.
- Expanded documentation in `AGENTS.md` to include OIDC endpoints and admin UI.
- Updated ReUI skill version and component count from 17 to 20 across various documentation files.
- Enhanced `README.md` and other related files to reflect the new component structure and usage guidelines.

Co-authored-by: Cursor <[email protected]>
2026-08-11 16:58:47 +07:00
DenozordecandCursor cc38bf06f8 feat(admin): журналы входов и изменений с IP/UA и сессиями
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 1m57s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
Разделены экраны «Входы» и «Изменения»; логин пишет IP/UA и last_login_ip;
SSO handoff и revoke refresh-сессий; улучшены audit-карточки.

Co-authored-by: Cursor <[email protected]>
2026-07-31 03:12:39 +07:00
DenozordecandCursor 8b1203f5e9 fix(db): индексы audit source_app/event_id только после ALTER
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 1m59s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
На существующей audit_log CREATE INDEX по source_app падал до добавления колонки — контейнер crash-loop / Traefik 404.

Co-authored-by: Cursor <[email protected]>
2026-07-21 13:36:10 +07:00
DenozordecandCursor 57e34ff5e9 feat(admin): ingest аудита из apps и users 1:1 с Sheet журнала
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 1m46s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
Добавлен POST /api/v1/ingest/audit, фильтры source_app/user_id, last_login_at; таблица пользователей по solution-users-1 с журналом в Sheet.

Co-authored-by: Cursor <[email protected]>
2026-07-21 13:24:28 +07:00
DenozordecandCursor 26fc8253c3 feat(admin): журнал аудита с ротацией и апгрейд таблицы пользователей
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 1m37s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
Добавлен audit log (solution-users-6) с retention N дней и hourly purge; таблица пользователей приведена к DNA solution-users-1 (Filters, avatar, sorting).

Co-authored-by: Cursor <[email protected]>
2026-07-21 04:20:47 +07:00
DenozordecandCursor e430abe98b chore(rules): правило kpi-hybrid — только hybrid KPI из kit
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 48s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
Co-authored-by: Cursor <[email protected]>
2026-07-21 02:35:52 +07:00
DenozordecandCursor 4a4e3c7c46 chore(security): игнорировать локальные mcp.json
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 46s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
.cursor/mcp.json и .mcp.json в gitignore; убраны из индекса; добавлен mcp.json.example без секрета.

Co-authored-by: Cursor <[email protected]>
2026-07-21 00:30:08 +07:00
Denozordec ece2b1e7b9 feat(mcp): add ReUI server configuration to mcp.json
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 50s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
- Introduced ReUI server details with the API URL for mcp integration.
- Updated mcpServers structure to include the new server entry.
2026-07-21 00:25:14 +07:00
DenozordecandCursor 779186f1e4 feat(web): добавить ReUI PRO rules, KpiStatGrid и убрать ModeToggle
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 1m40s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
Полный комплект frontend-правил, hybrid KPI/QuickAction kit, contract NavUser; удалён мёртвый ModeToggle.

Co-authored-by: Cursor <[email protected]>
2026-07-21 00:23:04 +07:00
DenozordecandCursor 82fb47b610 fix(web): добавить иконку fw в AppsMenu
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 1m57s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
AppId fw уже в каталоге, но APP_ICONS не содержал ключ — ломал tsc build.

Co-authored-by: Cursor <[email protected]>
2026-07-20 19:59:18 +07:00
DenozordecandCursor 9b4c7b8b9d feat(auth): добавить приложение fw для EvoFirewall
Build and Push Auth Portal Docker Image / build-and-push (push) Failing after 1m15s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
Каталог permissions fw:*, app switcher и docs; убран bgp:firewall после cutover.

Co-authored-by: Cursor <[email protected]>
2026-07-20 19:50:54 +07:00
Denozordec 143db3d72e feat(auth): add user directory endpoint for listing active users
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 2m7s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
- Introduced a new endpoint '/api/v1/directory/users' to retrieve a filtered list of active users.
- Implemented query handling to allow searching by email, name, or ID.
- Limited the response to the first 50 matching users for performance optimization.
2026-07-19 12:49:42 +07:00
Denozordec 09ed7f4dc4 feat(auth): refactor authentication routes and enhance JWT handling
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 1m49s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
- Removed unused permission and app retrieval logic from the login process.
- Introduced a new endpoint for reissuing access tokens to handle role changes and account switches.
- Updated JWT payload handling to improve clarity and maintainability.
- Enhanced the readJwtPayload function for better decoding of JWT claims.
2026-07-19 02:22:23 +07:00
Denozordec ed1699503a feat(sidebar): integrate NavUser component into SidebarFooter and clean up SiteHeader
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 1m54s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
- Added NavUser component to the SidebarFooter for user information display.
- Refactored SiteHeader by removing unused imports and components related to user account management.
- Updated breadcrumbs logic to include a new path for admin apps.
- Adjusted SidebarMenuItem formatting for improved readability.
2026-07-19 02:13:08 +07:00
Denozordec bb17ad6f4d feat(auth): enhance JWT claims and app switcher configuration
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 1m44s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
- Added support for optional tenant IDs in JWT claims for user permissions.
- Updated auth routes to include tenant information in the JWT payload.
- Enhanced app switcher configuration to handle tenant IDs without exposing them publicly.
- Improved documentation for EvoBGP tenant ID integration and its usage in JWT.
2026-07-19 01:00:37 +07:00
Denozordec 21d6603b57 feat(auth): integrate normalizePermissionKeys for consistent permission handling
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 1m54s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
- Updated auth, admin, and auth-guards routes to utilize normalizePermissionKeys for permissions.
- Enhanced permission mapping to ensure legacy keys are correctly transformed to current catalog keys.
- Improved overall permission validation and user access management across the application.
2026-07-19 00:19:18 +07:00
Denozordec cfbe1fceda docs(README): добавлена ссылка на интеграцию с EvoBGP в документацию; обновлено описание приложения BGP и расширен каталог разрешений
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 2m56s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
2026-07-18 23:24:00 +07:00
DenozordecandCursor 0fa4b7adea feat(app-switcher): централизовать ссылки приложений в portal settings
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 1m49s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
Публичный GET и admin PUT/UI /admin/apps; каталог и chrome читают URL из store.

Co-authored-by: Cursor <[email protected]>
2026-07-18 20:59:01 +07:00
Denozordec 83bfc0355d feat(auth): enhance CreateUserSheet with improved layout and error handling
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 1m39s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
- Added useEffect to reset admin state when the sheet is closed.
- Updated SheetContent to include a close button and improved styling.
- Enhanced form structure with better accessibility and user experience.
- Integrated error display using Alert component for form submission feedback.
2026-07-18 20:24:51 +07:00
Denozordec b5a50ac3b3 docs: update deployment instructions for Auth Portal with Traefik in a single Docker Compose stack
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 46s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
2026-07-18 19:33:22 +07:00
Denozordec 638df5d679 docs(README): добавлены инструкции по локальному запуску и развертыванию с Traefik
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 46s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
2026-07-18 18:56:37 +07:00
Denozordec a4ece3d344 refactor(auth): streamline logout route and update route tree for logout integration
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 3m15s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
2026-07-18 18:36:21 +07:00
Denozordec 2a6adf7af8 feat(docs): добавить ссылку на интеграцию с Cloudflare Domain Manager в README
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 47s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
2026-07-18 18:26:28 +07:00
DenozordecandCursor c23eb5ead0 fix(auth): не отдавать SSO с просроченным JWT и не бить /me
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 1m38s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
getToken чистит expired; при плохом return_to остаёмся на login без /me.

Co-authored-by: Cursor <[email protected]>
2026-07-18 16:08:50 +07:00
DenozordecandCursor e2c45cf0fa feat(vps): добавить permission vps:spaces:admin и docs Spaces
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 1m42s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
Каталог RBAC и секция Spaces в integrate-vps-tracker для multi-user пространств.

Co-authored-by: Cursor <[email protected]>
2026-07-18 15:42:54 +07:00
DenozordecandCursor 4ff440fb34 fix(auth): SSO return_to без /me чтобы не бить rate limit
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 2m49s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
Co-authored-by: Cursor <[email protected]>
2026-07-18 14:09:21 +07:00
DenozordecandCursor 961242506b fix(auth): runtime allowlist return_to с private для LAN SSO
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 3m15s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
Co-authored-by: Cursor <[email protected]>
2026-07-18 14:00:05 +07:00
DenozordecandCursor 1cc58977fd feat(auth): allowlist private для LAN return_to
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 3m37s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
Co-authored-by: Cursor <[email protected]>
2026-07-18 13:49:37 +07:00
Denozordec bac95bdb2e First Commit
Build and Push Auth Portal Docker Image / build-and-push (push) Successful in 5m26s
Build and Push Auth Portal Docker Image / create-release (push) Skipped
2026-07-18 13:27:37 +07:00