Commit Graph
43 Commits
Author SHA1 Message Date
DenozordecandCursor a61b352f0a fix(auth): остановить SSO-цикл редиректов после handoff
Docker / build (push) Failing after 19s
Cooldown 12с между portal handoff и страница sso_loop вместо бесконечного редиректа.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 16:08:50 +07:00
DenozordecandCursor e360efb885 feat(spaces): добавить изолированные пространства и multi-user
Docker / build (push) Failing after 20s
Полная изоляция данных по space, Share (ACL) и Assign, switcher и участники в UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 15:42:54 +07:00
DenozordecandCursor f26b2c8777 fix(auth): убрать SSO-цикл на /auth/callback после replaceState
Docker / build (push) Failing after 18s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 14:09:21 +07:00
DenozordecandCursor 812aa614df fix(auth): редирект на portal по runtime /api/auth/config при 401
Docker / build (push) Failing after 20s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 13:49:36 +07:00
Denozordec 84cc800d54 fix(web): улучшить адаптивность сетки графиков и дашборда
Docker / build (push) Failing after 22s
Добавлены классы для двухколоночного макета в компоненты ChartsGrid и OpsDashboard, улучшая отображение на больших экранах. Теперь элементы будут более эффективно использовать доступное пространство.
2026-07-18 13:26:16 +07:00
Denozordec 29e096862a feat(web): обновить AppShell и добавить новый элемент EvoBGP в App Switcher
Docker / build (push) Failing after 20s
- Обновлены стили компонента AppShell для улучшения макета и адаптивности.
- Добавлен новый элемент EvoBGP в конфигурацию App Switcher с соответствующими параметрами.
- Обновлена документация интерфейса для отражения изменений в AppShell и новых элементах навигации.
2026-07-17 23:14:35 +07:00
DenozordecandCursor d52c633d90 feat(web): добавить поддержку быстрого доступа на дашборде и обновить настройки интерфейса
Docker / build (push) Failing after 19s
- Внедрён компонент QuickActionGrid для отображения часто используемых разделов на дашборде, управляемый настройкой showQuickActions.
- Добавлен новый параметр showQuickActions в схему настроек для управления видимостью быстрого доступа.
- Обновлён интерфейс настроек для включения переключателя отображения быстрого доступа.
- Добавлен компонент SystemMonitorPopover в заголовок приложения для мониторинга системы.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 20:32:59 +07:00
DenozordecandCursor 9c43b45245 refactor(web): улучшить компоненты KpiStatGrid и KpiStatCardBody для более компактного отображения
Docker / build (push) Failing after 18s
- Обновлены стили и структура компонентов KpiStatGrid и KpiStatCardBody для улучшения визуального представления.
- Изменены классы и добавлены новые стили для более гибкого и компактного макета.
- Обновлена документация для отражения изменений в интерфейсе и описания нового визуального представления KPI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 18:36:47 +07:00
DenozordecandCursor 52665843d6 feat(web): обновить компоненты KpiStatGrid и SectionCards для улучшения интерфейса
Docker / build (push) Failing after 19s
- Добавлен новый тип KpiStatVariant для управления визуальными состояниями карточек KPI.
- Обновлены компоненты SectionCards и KpiStatGrid для поддержки новых свойств, таких как iconClassName и footer с Badge.
- Изменены стили и логика отображения для улучшения визуального представления и взаимодействия с пользователем.
- Обновлена документация для отражения изменений в интерфейсе.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 17:14:55 +07:00
DenozordecandCursor 35e5d8430d feat(web): обновить компоненты и добавить новые элементы интерфейса
Docker / build (push) Failing after 22s
- Добавлены новые правила для использования ReUI и обновлены существующие правила.
- Внедрены новые компоненты, такие как Frame, Alert, IconStack и DetailPanel, для улучшения интерфейса.
- Обновлены существующие компоненты, включая DataGridCard и EmptyState, с использованием новых элементов.
- Добавлены новые утилиты для фильтрации данных и управления состоянием.
- Обновлен .gitignore для исключения файлов окружения.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 15:30:16 +07:00
DenozordecandCursor a11fbc6efd fix(web): заполнить график расходов на дашборде
Docker / build (push) Failing after 19s
Учитывать списания из журнала баланса и не-пополнения; при отсутствии истории показывать оценку по активным VPS. Год по умолчанию — текущий.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 21:25:14 +07:00
DenozordecandCursor 77099b9ab0 feat(web): переработать дашборд по эталону REUI
Docker / build (push) Failing after 19s
Привести layout к эталону: alert с CTA, 6 KPI в ряд, помесячные графики платежей и расходов с фильтром года.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 20:57:43 +07:00
DenozordecandCursor 0e9a6a6a21 feat: интеграция с CF Domain Manager
Docker / build (push) Failing after 22s
Синхронизация bindings в vps_domains с привязкой по IP, API приёма с Bearer-токеном, настройки и App Switcher из SQLite, UI доменов на VPS и уведомление CFDM при vps_down.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 16:45:16 +07:00
DenozordecandCursor 2b01063279 chore(web): обновить дефолтные URL App Switcher для prod
Docker / build (push) Failing after 19s
VPS Tracker — http://192.168.100.67:3001, CF Domain Manager — http://192.168.100.67:6363.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 16:01:40 +07:00
DenozordecandCursor ea9c996838 feat(web): добавить App Switcher для перехода между приложениями
Docker / build (push) Failing after 21s
Dropdown в sidebar с настраиваемым списком ссылок через VITE_APP_SWITCHER и дефолтами для VPS Tracker и CF Domain Manager.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 15:11:53 +07:00
DenozordecandCursor 447d499a8d feat(projects): переработать проекты и отчётность по проектам
Docker / build (push) Failing after 20s
Добавлены карточка проекта, KPI и фильтры на /projects, отчёты с разрезом по проектам, cascade rename и защита удаления на API.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 19:21:04 +07:00
DenozordecandCursor 0bcea39868 fix(web): объединить типы пополнения на графике платежей
Docker / build (push) Failing after 19s
topup и provider_balance_topup из разных API — один тип; добавлена легенда с русскими подписями.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 18:34:30 +07:00
DenozordecandCursor 46267669ce fix(web): корректная валюта VPS в отчётах по месячным расходам
Docker / build (push) Failing after 23s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 18:08:27 +07:00
DenozordecandCursor 0682dd0e2f fix(web): не отправлять Content-Type на DELETE без тела
Docker / build (push) Failing after 21s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 15:32:18 +07:00
DenozordecandCursor 60332db1e4 fix(web): конвертировать тарифы VPS в базовую валюту настроек
Docker / build (push) Failing after 21s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 15:19:22 +07:00
DenozordecandCursor 9a29d88b95 feat(api, web): интеграция RuVDS API v2
Docker / build (push) Failing after 21s
Синк VPS, баланса, платежей и тарифов через Bearer-токен из личного кабинета.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 14:10:15 +07:00
DenozordecandCursor 5983c911f2 fix(veesp): IP и характеристики VPS при синке, валюта аккаунта
Docker / build (push) Failing after 21s
Парсинг object-map ответов API (vms/ips), cpus, memory в МБ, IP-массив.
Приоритет валюты аккаунта над baseCurrency хостера; поле в UI для Veesp.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 11:50:25 +07:00
DenozordecandCursor 87aa6949b3 fix(userapi): период тарифа Macloud и отображение ставки на списке VPS
Docker / build (push) Failing after 1m45s
Месячные планы Macloud определяются через inferPlanPeriod; в UI показывается суточная или месячная ставка по tariffType, а не месячный эквивалент.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 11:21:44 +07:00
DenozordecandCursor 579c00392d feat(api, web): интеграция Veesp client area API
Docker / build (push) Has been cancelled
Добавлен отдельный модуль veesp для синка VPS, баланса, счетов и тарифов через JWT/Basic auth.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 10:25:12 +07:00
DenozordecandCursor 87ab13e9f6 fix(accounts): учитывать baseCurrency хостера при отображении и синке баланса
Docker / build (push) Has been cancelled
API не всегда возвращает валюту (VDSina UserAPI); раньше подставлялся RUB вместо USD из настроек провайдера.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 02:18:40 +07:00
DenozordecandCursor f2c4c7a412 feat(api, web): интеграция Macloud и VDSina через унифицированный UserAPI
Docker / build (push) Has been cancelled
Один модуль userapi для идентичного API обоих хостеров: синк VPS, баланса, тарифов и пополнений.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 02:02:03 +07:00
DenozordecandCursor 9be50aa03b feat(api, web): интеграция хостера 4VPS.SU — синк VPS, баланса и тарифов
Docker / build (push) Has been cancelled
Добавлен адаптер 4vps, обобщён pipeline синхронизации через ProviderAdapter и обновлён UI для Panel ID и API Key.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 01:13:50 +07:00
DenozordecandCursor 05e7bf829e feat(api, web): тест Telegram из формы, подсказки ошибок API и UX настроек
Docker / build (push) Has been cancelled
Тест отправки использует значения формы без предварительного сохранения; пустой токен при сохранении не затирает сохранённый. Добавлены подсказки по частым ошибкам Telegram API и колонка ошибок в журнале уведомлений.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 00:54:51 +07:00
DenozordecandCursor 7f91bc3624 feat(api, web): добавить поддержку уведомлений и журнал уведомлений
Docker / build (push) Has been cancelled
Добавлены новые функции для отправки уведомлений через Telegram и webhook, включая настройки для интервалов уведомлений и проверки uptime. Реализован журнал уведомлений для отслеживания статуса отправленных сообщений. Обновлены схемы и интерфейсы для поддержки новых полей и функционала.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 00:36:05 +07:00
DenozordecandCursor 2c66d0c0ee fix(dashboard): унифицировать расчёт проблем инвентаря между API и UI
Docker / build (push) Has been cancelled
Счётчик issuesCount и таблица «Проблемы» теперь используют общую логику в @cfdm/shared; добавлены категории «истекает 7 дн» и «низкий баланс».

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 00:24:49 +07:00
DenozordecandCursor 31a4798d78 fix(web): привести UI к правилам ReUI — фильтры, badge, токены
Docker / build (push) Has been cancelled
Подключены DateSelector и number-field в VPS-фильтры, semantic StatusBadge, --focus токены и переименование DataGridColumn.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 23:37:30 +07:00
DenozordecandCursor baa13260c6 feat(web, db): autocomplete проекта VPS, защита полей при синке и стиль Command
Docker / build (push) Has been cancelled
Проект выбирается из справочника; ручные правки автоматически попадают в userOverrides без сброса при сохранении. CommandDialog приведён к эталону shadcn/ReUI.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 22:22:21 +07:00
DenozordecandCursor 5a3241a7d1 feat(vps): визуальный редактор кастомных полей и колонки в таблице
Docker / build (push) Has been cancelled
Заменён JSON-редактор в настройках на UI с drag-reorder, добавлены динамические колонки VPS с picker видимости и типизированные контракты в @cfdm/shared.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 19:28:32 +07:00
DenozordecandCursor c80090ed08 feat(accounts): доработать управление аккаунтами хостеров
Docker / build (push) Has been cancelled
Добавить apiLogin из credentials, сводку и health-индикаторы на /accounts, фильтры, раздельную форму логина и пароля, безопасное удаление с 409 и тесты API/repository.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 16:53:51 +07:00
DenozordecandCursor 11b67a1cef feat: расширить инвентарь, ops и интеграции по roadmap
Docker / build (push) Has been cancelled
Добавлены bulk-операции VPS, карточка /vps/:id, CRUD проектов, Command Palette,
календарь продлений, webhooks, uptime-проверки, audit log, кастомные поля и адаптеры провайдеров.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 15:28:35 +07:00
DenozordecandCursor 0ea92746e4 refactor(web): унифицировать UI по паттернам ReUI на всех 12 страницах
Docker / build (push) Has been cancelled
Ввести CrudListPage, AnalyticsPage, RowActions и domain edit sheets с FormSheetRhf; убрать устаревшие TableCard/DataTableCard.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 13:16:00 +07:00
DenozordecandCursor 5d83b1a95d fix(web): фильтры VPS, вкладки дашборда и здоровье инвентаря
Docker / build (push) Has been cancelled
Фильтры стран и городов показывают только значения из БД; отключено автозаполнение поиска. Вкладки дашборда приведены к line tabs по REUI. VPS без проекта больше не считается проблемой.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 01:15:57 +07:00
DenozordecandCursor 1e291b3759 feat(web): доработка UX/UI — дашборд, навигация и data foundation
Docker / build (push) Has been cancelled
Добавлены syncLog в snapshot, API статистики дашборда и маппинг цен тарифов; переработаны shell, главная страница, empty states и новые экраны журнала синка и проектов.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 00:27:09 +07:00
DenozordecandCursor f681f72e8c fix(web): флаги стран, FormDatePicker и плоские таблицы без двойной рамки
SVG-флаги через flagcdn и resolveCountryCode; поле «Оплачено до» — компактный Popover+Calendar на русском; DataGridCard без вложенной обводки.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 01:59:50 +07:00
DenozordecandCursor db1d26d324 feat(web): стандартизированный справочник стран и городов в @cfdm/shared/geo
- packages/shared/src/geo: страны ISO 3166-1 alpha-2 + топ-города по странам
- vps.tsx: countryOptions/cityOptions из справочника + существующих VPS,
  города фильтруются по выбранной стране
- auto-complete-input: убран onBlur-хак с setTimeout, фильтрация по
  основному полю, initialFocus=false чтобы popover не закрывался
- vite.config.ts + tsconfig.json: алиас @cfdm/shared/geo

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 22:56:54 +07:00
DenozordecandCursor 6310ed8e02 fix(web): форма VPS — возвращены поля Страна/Город/Дата-центр
Поля country/city/datacenter были потеряны при миграции формы на shadcn.
Добавлены в zod-схему, EMPTY_FORM, openEdit и в JSX формы (грид из 3
колонок после «Проект»).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 22:36:17 +07:00
DenozordecandCursor 525eff0d09 feat(web): фильтры на странице VPS — полный набор + пресеты
Восстановлены фильтры, потерянные при миграции на shadcn:
поиск, хостер/аккаунт, проект (с опцией «Без проекта»), статус,
окружение, тип тарифа, мониторинг/бэкап, страна/город/дата-центр,
минимумы vCPU/RAM/Disk, группировка по проекту, компактная таблица.
Пресеты сохраняются в localStorage. Добавлен shadcn-компонент checkbox.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 17:31:45 +07:00
DenozordecandCursor 6fbd1a9113 refactor(repo): переход на pnpm monorepo с shadcn/ui и Fastify+Drizzle
Frontend:
- apps/web (Vite+TS, TanStack Router/Query, shadcn/ui @cfdm/ui base-nova)
- 10 страниц в routes/_auth/, Recharts через shadcn Chart, lucide-react
- формы на RHF + Zod (FormSheet/FormField)
- удалены Tabler, Chart.js, react-router-dom

Backend (параллельный трек):
- apps/api (Fastify 5 + Drizzle + better-sqlite3)
- packages/db: Drizzle-схема и repositories по сущностям
- packages/shared: Zod-контракты
- роуты с валидацией и единым форматом ошибок { error: { code, message } }
- sync/backup — заглушки 501 (billmanager-адаптеры переносятся отдельно)
- legacy Express оставлен как runtime по умолчанию (RUNTIME=express)

Infra:
- Dockerfile multi-stage под pnpm workspaces
- .dockerignore и docker-compose обновлены под monorepo

Rules:
- удалены нерелевантные правила (rust, cloudflare, server/frontend-conventions)
- project-structure.mdc и AGENTS.md переписаны под monorepo
- frontend-shadcn.mdc, shadcn-ui-production.mdc, sqlite.mdc обновлены

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-26 13:42:05 +07:00