Files
mont_vendor_maps/README.md

75 lines
3.0 KiB
Markdown
Raw 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.

# MONT Vendor Maps
Flask-приложение для визуализации и редактирования матрицы:
- `вендор -> продукты -> категории`
- два контура: `Инфраструктура` и `ИБ`
## Возможности
- фильтрация по вендорам и категориям на главной
- отображение продуктов по выбранным фильтрам
- переключение контура `Инфраструктура / ИБ`
- админ-панель:
- добавление/удаление вендоров
- добавление/удаление категорий
- добавление/удаление продуктов
- редактирование матрицы `продукт × категория` (автосохранение по чекбоксам)
- удобная прокрутка матрицы (вертикальная + горизонтальная)
## Текущая структура проекта
- `main.py` - минимальный entrypoint
- `zkart_app/__init__.py` - `create_app`, регистрация роутов, `init_db`
- `zkart_app/config.py` - конфиг/константы (`ADMIN_PATH`, env, пути)
- `zkart_app/routes.py` - HTTP-роуты
- `zkart_app/db.py` - работа с SQLite, импорт и bootstrap
- `templates/` - HTML-шаблоны (`index.html`, `admin.html`, `login.html`)
- `static/css/` - CSS
- `static/js/` - JS
- `matrix.db` - рабочая SQLite БД
## Роуты
- `/` - главная страница
- `/api/data?scope=infra|ib` - API данных матрицы
- `/health` - healthcheck
- `/assets/mont-logo` - логотип
- `/{ADMIN_PATH}` - админка (секретный путь в `zkart_app/config.py`)
## API
`GET /api/data?scope=infra|ib`
Возвращает:
- `vendors`
- `categories`
- `products`
- `product_links`
- `links`
## Запуск локально
```bash
python3 -m venv .venv
.venv/bin/python -m ensurepip --upgrade
.venv/bin/python -m pip install -r requirements.txt
.venv/bin/python main.py
```
## Docker
```bash
docker compose up -d --build
```
Порт: `5000`.
## Переменные окружения
- `SECRET_KEY` - секрет Flask-сессии
- `ENABLE_BOOTSTRAP`:
- `0` (по умолчанию) - не выполнять автосидинг/автоимпорт
- `1` - разрешить bootstrap (seed + импорт)
- `WEB_CONCURRENCY` - число gunicorn worker-процессов (по умолчанию `4`)
- `GUNICORN_THREADS` - число потоков на worker (по умолчанию `5`)
По умолчанию Gunicorn дает минимум `20` параллельных обработок (`4 x 5`).
## Данные
- Инфраструктурные пакеты импорта: `infra1..infra4`
- ИБ-пакеты импорта: б1..иб4` (используются для массового заполнения `ib_*` таблиц)
- Бэкапы БД: директория `backups/`