Files
omc-servicedesk-monitor/HISTORY.md
2026-04-06 09:37:33 +00:00

80 lines
6.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# История изменений
## 2026-04-06 09:37 UTC Загрузка из БД при пустой таблице
**Проблема:** При открытии главной страницы данные из PostgreSQL подставлялись только если `GET /api/incidents` возвращал непустой `rows`; при пустой базе `processData` не вызывался, дашборд оставался скрытым до первой загрузки файла.
**Решение:** После успешного ответа API всегда вызывается `processData(rows)` (в том числе для пустого массива); показ индикатора «Загрузка данных из базы…», отдельные сообщения для непустой и пустой выборки, вывод ошибки при недоступности API.
**Изменения:** `index.html` (`tryLoadFromDb`).
**Проверка:** Открытие главной при пустой БД — видны KPI/диаграммы в нулевом состоянии и сообщение о пустой базе; при наличии записей — прежнее поведение.
---
## 2026-04-06 18:00 UTC Многостраничный UI: загрузка на data.html
**Проблема:** Источник данных и кнопка загрузки должны быть на отдельной странице; на ней же — сводка по числу объектов в БД и по последней загрузке.
**Решение:** Вынесены стили в `css/dashboard.css`; добавлены `data.html` (загрузка, блоки статистики, `upload-core.js`) и навигация в шапке между `index.html` и `data.html`. С главной убраны PapaParse/XLSX и логика выбора файла.
**Проверка:** Открытие `/data.html`, загрузка `sample-data.csv`, проверка счётчиков и переход на мониторинг.
---
## 2026-04-06 17:00 UTC Проверка docker compose api и Nginx для /api/
**Проблема:** Запросы к `https://sd.gen7x.ru/api/health` отдавали 404: регекс статики `~* \.(json|…)$` перехватывал URI раньше префикса `/api/`.
**Решение:** В `sd.gen7x.ru.conf` для API использован `location ^~ /api/`. Проверены `docker compose up -d api`, `curl` на `:3910` и через HTTPS.
**Изменения:** Nginx; README — блок «Проверка после развёртывания»; `/root/docs/docs/history.md`.
---
## 2026-04-06 16:00 UTC Сохранение загрузки в PostgreSQL (ключ «Название»)
**Проблема:** Нужно хранить выгрузки в БД: по ключу «Название» обновлять запись или вставлять новую.
**Решение:** Добавлен API на Node.js (Express + `pg`), таблица `incidents (number_key PK, data JSONB)`. После разбора файла фронт вызывает `POST /api/incidents/sync`; при открытии — `GET /api/incidents`. Nginx на `sd.gen7x.ru` проксирует `/api/` на `127.0.0.1:3910`. Контейнер `omc-sd-api` в сети `docker_gen7x_network`, БД `omc_sd_monitor` в существующем Postgres.
**Изменения:** каталог `server/`, `docker-compose.yml` (сервис `api`), `.env.example`, `index.html`, `README.md`.
**Проверка:** `docker compose up -d api`, `GET /api/health`, загрузка `sample-data.csv` на https://sd.gen7x.ru/.
---
## 2026-04-06 14:00 UTC Загрузка из Excel
**Проблема:** Нужна загрузка выгрузки в формате Excel при той же структуре колонок, что у CSV/JSON.
**Решение:** Подключён SheetJS (`xlsx` с CDN), разбор первого листа через `sheet_to_json`; расширены `accept` у поля файла и подсказки в шапке.
**Изменения:** `index.html` (скрипт, `parseExcelToRows`, ветка `handleFile` для `.xlsx`/`.xls`); README.
**Проверка:** Загрузка таблицы, сохранённой из Excel с заголовками как в CSV.
---
## 2026-04-06 08:00 UTC Публикация на sd.gen7x.ru
**Проблема:** Нужен доступ к дашборду по постоянному URL извне.
**Решение:** Включён виртуальный хост Nginx на хосте: `sd.gen7x.ru` → каталог проекта `/opt/omc-servicedesk-monitor`, HTTPS, те же Origin SSL, что у остальных поддоменов gen7x.ru.
**Изменения:** Файл `/opt/gen7x/nginx/conf.d/sd.gen7x.ru.conf`; обновлён README.
**Проверка:** `nginx -t`, `systemctl reload nginx`; локально `curl` с `--resolve` к 127.0.0.1 — ответ 200. В DNS Cloudflare для `sd.gen7x.ru` должна быть запись на сервер.
---
## 2026-04-06 12:00 UTC Начальная версия дашборда
**Проблема:** Нужен локальный мониторинг инцидентов ServiceDesk без сервера, в едином стиле «ситуационный центр».
**Решение:** Добавлен self-contained `index.html` (Chart.js, PapaParse, светлая тема), загрузка CSV/JSON, KPI, фильтры, вкладки, Docker с nginx для раздачи статики.
**Изменения:** Создан проект `/opt/omc-servicedesk-monitor`: `index.html`, `docker-compose.yml`, `.env.example`, `README.md`.
**Проверка:** Локальное открытие `index.html`; загрузка `sample-data.csv`; `docker compose up` — статика через nginx на порту из `.env` (по умолчанию 8080). Репозиторий создан в Gitea, ветка `main` запушена (`git@git.gen7x.ru:cursor-agent/omc-servicedesk-monitor.git`).