Скачивание и обновление приложения
Как устроено скачивание приложения Пассворк
Эта статья описывает, что происходит, когда пользователь в веб-интерфейсе нажимает кнопку Скачать приложение Пассворк или когда уже установленное приложение проверяет обновления.
Подбор подходящей версии приложения
- Серверная часть Пассворка знает, какие версии приложения совместимы с текущей версией бэкенда.
- В конфигурации бэкенда указывается базовый адрес сервера обновлений в переменной окружения
DESKTOP_SERVER_BASE_URL. - Опираясь на этот базовый адрес, бэкенд запрашивает на сервере обновлений специальный
.yaml‑файл (например,latest.yml,latest-linux.yml,latest-mac.yml) с метаданными доступных сборок:- конкретная версия приложения (формата
XXYYZZ); - ссылки на установщики для разных платформ;
- контрольные суммы и вспомогательные поля.
- конкретная версия приложения (формата
- На основе содержимого этого файла и поддерживаемой версией фичи Десктоп бэкенд:
- выбирает подходящую и совместимую с данным сервером версию приложения;
- формирует конечную ссылку на установщик для нужной платформы пользователя.
Важно: бэкенд не «угадывает» версии и не ходит в публичный репозиторий напрямую. Он всегда опирается на:
- своё понимание поддерживаемой версии фичи Десктоп;
.yaml‑манифесты, доступные поDESKTOP_SERVER_BASE_URL.
Подробнее про структуру сервера обновлений и сами файлы latest*.yml см. раздел Общее описание сервера обновлений.
Возврат ссылки и скачивание на стороне клиента
После того как бэкенд подобрал нужную версию и сформировал ссылку:
- Сформированная URL‑ссылка передаётся бэкендом клиенту:
- либо в ответ на запрос из веб-интерфейса;
- либо как часть проверки обновлений для уже установленного приложения.
- Уже клиентская сторона выполняет HTTP‑запрос к серверу обновлений:
- запрос уходит напрямую по адресу вида
DESKTOP_SERVER_BASE_URL/XXYY/XXYYZZ/на конкретный файл (.exe,.dmg,.deb,.rpmи т.п.); - файл устанавливается или используется механизмом автообновления (в зависимости от платформы и сценария).
- запрос уходит напрямую по адресу вида
Таким образом:
- сервер приложений Пассворка отвечает за логику выбора версии и формирование корректной ссылки;
- сервер обновлений (по адресу из
DESKTOP_SERVER_BASE_URL) отвечает за фактическую раздачу файлов; - клиент (браузер или уже установленное приложение Пассворк) выполняет скачивание, установку или обновление.
Для администраторов это означает:
- чтобы пользователи могли скачивать и обновлять приложение, достаточно:
- корректно настроить
DESKTOP_SERVER_BASE_URLна бэкенде; - обеспечить доступность сервера обновлений и наличие на нём актуальных
.yaml‑манифестов и инсталлеров;
- корректно настроить