Files
mont_vendor_maps/README.md

3.0 KiB
Raw Blame History

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

Запуск локально

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

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/