# История изменений ## 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`).