Commit Graph
32 Commits
Author SHA1 Message Date
DenozordecandCursor 7480b9dc11 fix(geo): распознать CDN-локации и добавить иконки сервисов
Docker / build (push) Failing after 22s
CDN-значения вида SE (ARN) больше не помечаются как ошибка. У каждого GeoIP-сервиса — бренд-иконка, как в разделе блокировок.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 15:54:04 +07:00
DenozordecandCursor 235ae03489 feat(geo): добавить раздел IP-регионов
Docker / build (push) Failing after 26s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 15:16:17 +07:00
DenozordecandCursor 60a22b9450 feat(blocking): определять и показывать хостер в матрице блокировок
Docker / build (push) Failing after 26s
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-25 13:19:02 +07:00
DenozordecandCursor 5c43d88f1a feat(censorcheck): добавить статус блокировок и launcher curl | bash
Docker / build (push) Failing after 25s
Прогон с VPS через HMAC-токен матчится к существующим серверам; UI /blocking показывает текущие проверки и историю.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-22 10:52:22 +07:00
DenozordecandCursor 9e0311b53a feat(settings): добавить Bot API URL и ячейку ошибок уведомлений
Docker / build (push) Failing after 26s
Монитор больше не ставит «Внимание» по скрытому счётчику. Telegram можно слать через локальный telegram-bot-api.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-22 02:29:07 +07:00
DenozordecandCursor 619385981c fix(integrations): матчить CFDM-домены по dns и CNAME-цели
Docker / build (push) Failing after 20s
Плашка «без привязки» оставалась для CNAME: sync шёл, но матч был только по IP.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-01 01:16:26 +07:00
Denozordec fd2d5f39c0 feat(settings): add CFDM API URL handling and improve integration form
Docker / build (push) Failing after 22s
Introduced a new test to verify the persistence of the CFDM API URL via the settings endpoint. Updated the integration form to reflect saved credentials more clearly, enhancing user feedback for the API URL and integration token. Improved sync button behavior to prevent actions without saved credentials. Updated settings schema to include CFDM API URL validation.
2026-08-01 00:20:59 +07:00
DenozordecandCursor 033557a859 feat(integrations): добавить ручной sync с CFDM
Docker / build (push) Failing after 22s
Кнопка в настройках запрашивает полную выгрузку bindings из CFDM.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 23:24:04 +07:00
DenozordecandCursor 03e951af18 feat(app-switcher): читать конфиг из auth-portal вместо локального editor
Docker / build (push) Failing after 18s
CURRENT_APP_ID vps; настройка ссылок только на портале.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 20:59:03 +07:00
DenozordecandCursor da818fe104 feat(topology): добавить схему инфраструктуры на React Flow
Docker / build (push) Failing after 19s
Редактор схем с VPS-нодами, связями и персистом в SQLite по space.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-18 16:52:36 +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 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 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 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 ce6414c65f fix(veesp): обновление IP, характеристик и валюты при повторном синке
Docker / build (push) Failing after 21s
Перезапись vcpu/ram/disk/ip на update, fetch VM ips, приоритет валюты из balance API.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 12:10:47 +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 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 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 9df91bf2cc fix(build): сборка @cfdm/db и @cfdm/shared в dist для production
Docker / build (push) Has been cancelled
Node в Docker не мог импортировать .ts из workspace-пакетов; exports
переключены на dist, добавлен tsc build и сборка в Dockerfile.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 23:36:15 +07:00
DenozordecandCursor 836c8a2936 feat(web): связка страны и города в форме VPS
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 02:18:18 +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 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