Публикация релиза
Релиз — это один неизменяемый версионированный widget.zip, примечания к версии и снимок карточки маркетплейса. У приложения остаётся один постоянный client_id; релиз — исполняемый код, проходящий модерацию.
Состояния релиза
| Состояние | Значение |
|---|---|
draft | Редактируется и доступен для локального предпросмотра/тестирования |
queued | Отправлен и ждёт модератора |
testing | Модератор начал проверку |
approved | Запускаемый код. Может быть активирован локально или одобрен модератором; публичное приложение допускает только второй вариант |
rejected | Возвращён с причиной; можно исправить и отправить повторно |
withdrawn | Отозван разработчиком из очереди и снова редактируется |
draft -> загрузка/валидация -> сохранить локально
| |
+-> отправить -> queued -> testing -> одобрено модератором
\-> rejected -> исправить -> отправить снова
queued/testing -> отозвать -> withdrawnДействия и эндпоинты
| Действие | Эндпоинт | Примечание |
|---|---|---|
| Создать | POST /admin/settings/widget/release/create | client_id, уникальная семантическая version, необязательные release_notes |
| Изменить | POST /admin/settings/widget/release/update | Только редактируемые состояния |
| Загрузить | POST /admin/settings/widget/release/upload | Multipart; добавьте _id перед file. Архив хранится только после успешной валидации |
| Сохранить (локальная активация) | POST /admin/settings/widget/release/activate | Только private-приложение; запускает версию в developer tenant без модерации маркетплейса |
| Отправить | POST /admin/settings/widget/release/submit | Редактируемый релиз → queued |
| Отозвать | POST /admin/settings/widget/release/withdraw | queued/testing → withdrawn |
| Список | POST /admin/settings/widget/release/get-paging | Фильтры по client_id, состоянию и пагинации |
| Получить один | POST /admin/settings/widget/release/get-by-id | { "_id": "..." } |
Изменяющие эндпоинты требуют активного статуса разработчика и владельца аккаунта Bito. Приостановленный разработчик может читать историю своих релизов.
Что проверяется при отправке
До постановки релиза в очередь:
- архив должен быть прикреплён;
- сохранённый результат валидации должен содержать
ok: true; - снимок каждого выбранного в приложении языка должен содержать название, описание до установки, URL конфиденциальности и URL или email поддержки;
- у того же приложения не должно быть другого релиза в
queuedилиtesting.
Главный источник — языки приложения. Языки в архиве не компенсируют незаполненную карточку маркетплейса.
Локальный тест — не публикация
Кнопка Сохранить в строке версии (локальная активация) — аналог приватного этапа тестирования из руководства amoCRM по загрузке виджета: код работает в аккаунте владельца до модерации. Это не делает приложение публичным и не считается одобрением модератора.
При локальном тестировании проверьте:
- все объявленные точки в настоящей админ-панели;
- callback установки, удаления и повторной установки;
- текст согласия, права и объявленные сетевые адреса;
- сохранение настроек и teardown;
- поведение при недоступности внешнего сервиса.
Что меняет одобрение релиза
Когда модератор одобряет релиз:
- релиз получает
approved, автора и время проверки; - текущая версия приложения указывает на него;
- архив извлекается в production asset origin;
- после установки и согласия на конкретный релиз он может монтироваться.
Одобрение релиза не публикует карточку. Публичная видимость относится к отдельной проверке карточки. Модератор карточки не опубликует приложение, если его текущий релиз только локально активирован или не прошёл модерацию.
Публикация обновлений
Для уже публичного приложения:
- обновите Основную информацию, если менялись карточка или права;
- создайте новую семантическую версию;
- загрузите, провалидируйте и просмотрите её;
- отправьте релиз и дождитесь одобрения;
- отдельно отправьте изменённую карточку, если Основная информация менялась.
Каждая новая одобренная версия требует повторного согласия всех установивших клиентов до запуска нового кода. Учитывайте это даже для косметического обновления.
Общая структура похожа на этапы модерации amoCRM, однако Bito показывает карточку и релиз как две отдельные машины состояний.