IskFileGuardian
--------------------
Author: Ivan Sergeevish K.
ivan@ivan345.com

--------------------
https://ifgdoc.ivan345.com/en/
https://ifgdoc.ivan345.com/ru/

For MODx Revolution 3.x.

IskFileGuardian
Описание
IskFileGuardian — компонент для MODX3, реализующий автоматическую систему мониторинга целостности файлов
всего сайта и ядра MODX. Позволяет выявлять любые изменения, модификации, добавления и удаления файлов,
а также отправлять уведомления администратору в Email и Telegram.
Все действия логируются, а результаты сканирования доступны через встроенный интерфейс.

Ключевые возможности
•	Мониторинг изменений файлов
	Отслеживает изменения, появление новых и удаление старых файлов в указанных директориях сайта.
	Автоматическое создание и обновление хэшей файлов, включая ядро MODX и пользовательские папки.
•	Контроль целостности ядра MODX
	Сравнивает файлы с официальным релизом, вычисляет контрольные суммы и отслеживает любые отличия.
	Можно настроить любые "ядровые" пути и шаблоны исключений.
•	Расширенные настройки исключений
	Исключайте из проверки любые файлы и папки с помощью паттернов (маски, поддиректории, расширения и т.д.).
	Раздельные списки для сканирования сайта и ядра.
•	Гибкая система уведомлений
	Уведомления о любых изменениях по Email (настраиваемые шаблоны, множественные получатели).
	Мгновенные оповещения в Telegram.
	Настраиваемый формат сообщений через чанки MODX.
	Раздельные настройки уведомлений для сайта и ядра.
•	Подробная история и отчеты
	Все результаты проверок и статусы файлов записываются в отдельные таблицы.
	Встроенный интерфейс для просмотра истории, логов и уведомлений.
	Сохраняются отчеты о каждом запуске проверки, с детализацией по каждому файлу.
•	Высокая производительность и безопасность
	Работает по расписанию (cron).
	Удаляет все временные файлы и не блокирует работу сайта.
________________________________________
Основные настройки
Компонент полностью настраивается через системные параметры MODX (System Settings):
•	Основные:
	iskfileguardian.enabled — Включить/выключить компонент.
	iskfileguardian.scan_dirs — Директории для сканирования (каждая с новой строки).
	iskfileguardian.exclude_paths — Паттерны исключения (каждый с новой строки).
	iskfileguardian.hash_algo — Алгоритм хеширования (sha256/md5).
•	Ядро MODX:
	iskfileguardian.core.enabled — Включить отдельную проверку ядра.
	iskfileguardian.core_modx_ver — Версия ядра для сравнения (определяется автоматически).
	iskfileguardian.core.hashes_url — Путь для хранения хэшей ядра.
	iskfileguardian.core_paths — Пути, считающиеся ядром.
	iskfileguardian.exclude_patterns — Исключения для ядра.
•	Уведомления (Email):
	iskfileguardian.em.enabled — Включить уведомления по email.
	iskfileguardian.em.to_addr — Email-адреса получателей (через запятую).
	iskfileguardian.em.from_addr — Email-отправителя.
	iskfileguardian.em.subj_chunk — Чанк для темы письма.
	iskfileguardian.em.body_chunk — Чанк для тела письма.
	iskfileguardian.em.site_notify — Оповещать о файлах сайта.
	iskfileguardian.em.core_notify — Оповещать о файлах ядра.
•	Уведомления (Telegram):
	iskfileguardian.tg.enabled — Включить уведомления в Telegram.
	iskfileguardian.tg.bot_token — Токен Telegram-бота.
	iskfileguardian.tg.chat_id — Chat ID получателя.
	iskfileguardian.tg.site_notify — Оповещать о файлах сайта.
	iskfileguardian.tg.core_notify — Оповещать о файлах ядра.
•	Логирование:
	iskfileguardian.log_level — Минимальный уровень логирования.
	iskfileguardian.log_storage — Способ хранения логов (Database/файл).

Примеры сценариев
•	Автоматическая проверка по cron:
Просто вызовите скрипт из поставки компонента — и он сам выполнит сканирование, сравнит хэши, запишет отчет, отправит уведомления, если есть изменения.
•	Контроль ядра:
Сравнение текущего состояния файлов ядра с эталонным, скачанным из официального дистрибутива MODX.
•	Мониторинг пользовательских файлов:
Можно настроить любые папки и исключения (например, чтобы отслеживать только core/components/ и assets/components/).
________________________________________
Встроенный интерфейс
•	ExtJS-грид для просмотра файлов и хэшей, журналов и отчетов.
•	Быстрый запуск генерации новых хэшей прямо из панели администратора.
•	Кнопки для ручной очистки, перегенерации, просмотра отчета и поиска по файлам.
________________________________________
Уведомления
•	Email: Поддержка многоадресных рассылок, кастомизация темы и тела через чанки.
•	Telegram: Простая интеграция с ботом (требуется только токен и chat_id), сообщения отправляются только при обнаружении изменений.
•	Уведомления отправляются только при наличии новых/изменённых/удалённых файлов.
________________________________________
База данных
•	Все найденные файлы и их статусы (added, modified, deleted, current) — хранятся в таблице iskfileguardian_hashes.
•	Хэши ядра MODX — в отдельной таблице iskfileguardian_core_hashes.
•	Все результаты сканирований и отчеты — в таблице iskfileguardian_reports.
•	Поддержка расширенного логирования через таблицу iskfileguardian_logs.
________________________________________
Требования
•	MODX Revolution 3.x
•	PHP 7.2+
•	Расширения PHP: curl, zip

Установка
1.	Установите компонент, через репозиторий.
2.	Настройте параметры в "Системных настройках" компонента.
3.	Во вкладке «Хеши ядра» нажмите «скачать ядро» - подождите около минуты или более, пока скачается дистрибутив MODX вашей версии и создаются хеши.
4.	Создайте задание CRON.
/usr/bin/php8.1 ваш путь/core/components/iskfileguardian/elements/cron/scan_core.php – проверка только ядра

/usr/bin/php8.1 ваш путь/core/components/iskfileguardian/elements/cron/scan_site.php -
Проверка всех сайтов

IskFileGuardian — ваш персональный страж для файлов MODX.
Контролируйте всё. Получайте уведомления мгновенно.

