Веб магазин
		    Материал из ROSA Wiki
		    
		    
		
		В РАЗРАБОТКЕ!
Веб магазин
Статья содержи сведения об устройстве веб магазина РОСА, а также способы добавления и редактирования карточек приложений в магазин.
Общие идеи
- Сайт с магазином отдает НЕ пакеты для скачивания, а специально оформленную ссылку. Ссылка открывается в программе rpmgrab, которая извлекает из ссылки имя пакета и устанавливает из репозитория ОС. То есть даже при компрометации магазина мимо репозитория ничего установить нельзя.
- Этот же магазин без каких либо изменений используется для BFRESH и Бария, просто вместо rpmgrab запускается другая утилита, которая создает модули вместо установки.
- ПО в магазине не имеет версий, это позволяет не пересобирать страницу после каждого изменения в репозитории, а также использовать один магазин для разных платформ.
- В текущей реализации страница статична, что одновременно является дополнительной защитой магазина, снижает нагрузку на сервер и позволяет установить Магазин локально без использования локального веб сервера.
- Для снижения трафика сервер отдает небольшую HTML страницу и базу с данными записанную в js файл, часть страницы с контентом формируется js на стороне браузера, а скриншоты догружаются с использованием механизма lazy download, то есть грузятся только видимые в данный момент.
- Html cтраница и js генерируются скриптом на основе базы данных, которая одновременно используется для генерации пакета со скриншотами и описаниями для dnfdragora.
- Сама база наполняется в полу-автоматическом режиме на основе данных dnf info и appstream метаданных.
- Магазин позволит достаточно просто интегрировать отличные от dnf способы установки софта. Первый на очереди epm.