Для разработчиков
Как программы «Техно без паники» узнают о новых версиях и безопасно обновляются.
1. Узнать последнюю версию
Для каждой программы и платформы сервер обновлений отдаёт файл с описанием последней версии:
GET https://updates.test.technobezpaniki.ru/<код программы>/<платформа>/stable.json
GET https://updates.test.technobezpaniki.ru/<код программы>/<платформа>/beta.json
Пример: https://updates.test.technobezpaniki.ru/zepp-desktop/windows/stable.json
Коды платформ: windows, android, linux. Код программы указан в админке на странице программы.
Ответ:
{
"schema": 1,
"app": "tbp-pogoda",
"platform": "windows",
"channel": "stable",
"version": "1.4.2",
"published_at": "2026-09-28T12:00:00+03:00",
"mandatory": false,
"min_version": null,
"notes": "- Исправлено определение города",
"file": {
"name": "tbp-pogoda-1.4.2-windows.zip",
"url": "https://updates.test.technobezpaniki.ru/files/…",
"size": 1048576,
"sha256": "9f86d081884c7d65…",
"kind": "zip"
},
"signature": "base64…",
"signature_algorithm": "ed25519"
}
2. Решить, обновляться ли
- Если
versionновее установленной — есть обновление. - Если установленная версия старее
min_version— обновление обязательное. - Сравнение версий: по числам через точку (1.10 новее 1.9), версия без суффикса новее, чем с
-beta/-rc.
Можно поручить сравнение серверу:
GET https://updates.test.technobezpaniki.ru/v1/check?app=<код>&platform=<платформа>&version=<текущая>[&channel=beta]
→ { "update_available": true, "mandatory": false, "latest": { …как stable.json… } }
3. Скачать и проверить
- Скачайте файл по
file.url. - Посчитайте SHA-256 файла и сравните с
file.sha256. - Проверьте подпись Ed25519 (
signature, base64) открытым ключом, встроенным в программу. Подписывается строка из пяти строк, разделённых\n:tbp-update-v1 <app> <platform> <version> <sha256> - Только если обе проверки прошли — устанавливайте.
Открытый ключ подписи
Встройте его в программу. Он же доступен по адресу https://updates.test.technobezpaniki.ru/v1/public-key.
1oGvnN2qNiBkN7aqxN9vVKtMVA0iYxQ0zo7NTg+yOlg=
В формате PEM
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEA1oGvnN2qNiBkN7aqxN9vVKtMVA0iYxQ0zo7NTg+yOlg=
-----END PUBLIC KEY-----
Автоматическая публикация версий
Скрипт сборки может выпускать версии сам — по ключу API, который создаётся в админке:
curl -H "Authorization: Bearer <ключ>" \
-F app=<код программы> -F platform=windows \
-F notes="Что нового" -F file=@build/setup.exe \
https://admin.test.technobezpaniki.ru/api/v1/releases
Необязательные поля: version (иначе берётся из файла), channel=beta, mandatory=1, published=0 (черновик).