UP-LINE — административная панель
-
Добавить получении сообщений с устройств
-
Дополнить аналитику событий ПО устройств тем, что не вошло в первую версию: периоды короче суток (час), heatmap распределения ошибок по часам и дням недели, MTBF (среднее время между отказами) по устройству и клиенту, а также сравнение двух периодов ("эта неделя vs прошлая") — чтобы после релиза сразу было видно, выросло число ошибок или нет
-
Реализовать историю установленных версий на устройстве — на странице устройства показывать список ранее установленных релизов с датой установки, версией и (если возможно) кто/как назначил. Сейчас в БД хранится только текущая установленная версия (InstalledReleaseId) и версия к обновлению (UpdateToReleaseId), смена этих полей не оставляет следа — при разборе инцидентов невозможно понять, на какой версии устройство было неделю назад. Нужна отдельная таблица device_release_history (device_id, release_id, installed_at, source) и запись в неё в момент подтверждения установки устройством
-
В релизе теперь обязателен apk ТСД: форма создания релиза без него не сохранит. Раньше релиз без apk считался корректным, и тогда в окне обновления у оператора и администратора не было ссылки на приложение ТСД
Сборка по-прежнему загружает пререлиз без apk — его прикладывают при оформлении. У пререлиза без apk на странице "Оформить релиз" появляется обязательное поле, а файл перед сохранением проверяется на целостность, как и при создании релиза
Уже созданные релизы без apk не меняются: их по-прежнему можно назначать устройствам
-
Предупреждения о недостающих миграциях теперь красные — на подтверждении назначения релиза и версии устройству, в форме и карточке поэтапной установки
-
Подстроки назначения в имени файла релиза чувствительны к регистру: панель узнаёт "update_hi-mark_back", но не "Update_Hi-Mark_Back" — такой файл остаётся без назначения. Так было и раньше, но гайд по загрузке пререлиза из Jenkins обещал обратное — теперь он исправлен. Расширение .apk распознаётся в любом регистре
-
В событиях устройства видно, когда установку запустили вручную с его экрана. Ручной запуск обходит расписание целиком — и окна установки клиента, и стандартный график, и выходные, — а в логе он выглядел ровно так же, как плановый: "Запуск установки нового релиза". Теперь у такого события стоит пометка "(запуск вручную с устройства)"
Пометку присылает само устройство, поэтому она появится только там, где установлено ПО с этой доработкой: на прежних версиях события остаются как были
-
В релизе теперь обязательны оба frontend — и оператора, и администратора. Раньше хватало любого одного, и в релиз мог уехать неполный комплект
У файлов релиза виден размер — в карточке релиза, на страницах назначения и сразу при выборе файлов на создании релиза. Оборванный при копировании установщик по имени и иконке не отличить от целого, а вес выдаёт его сразу
Установщики проверяются на целостность по их собственным метаданным: exe сверяется с полным размером, который Inno Setup пишет внутрь файла, apk — с записью конца архива. Оборванный файл отклоняется при сохранении релиза и при загрузке пререлиза сборкой, в карточке релиза он помечен как повреждённый
Exe и apk легче мегабайта не блокируются, но требуют подтверждения: панель переспрашивает, точно ли с файлами всё в порядке
-
Устройства больше не сваливаются в одного клиента. Устройство привязывается к клиенту по ИНН своих юрлиц, а когда ИНН не настроен, панель подставляла вместо него текст "Не указан" и искала клиента по нему как по настоящему ИНН — все ненастроенные устройства склеивались в того клиента, у которого такая запись появилась первой
Устройство без пригодного ИНН клиента теперь не получает вовсе и ждёт разбора вручную. Найти такие можно фильтром "Без клиента" в списке устройств
Обработчик устройства больше не удаляет юрлица клиента. Раньше каждое устройство при каждом обновлении данных сносило у своего клиента все юрлица, которых нет в его собственном списке, и вписывало своё — поэтому вычищенные вручную лишние ИНН возвращались через пару минут
Если ИНН устройства числится у другого клиента, устройство переезжает к нему само, с отметкой в логе. Перенос вручную сильнее: закреплённое устройство автопривязка не трогает, это видно на странице переноса
Клиенты из корзины в автопривязке не участвуют
-
У клиентов появилась корзина. Клиент в корзине не попадает в массовые обновления и в охват поэтапной установки, пропадает из всех списков выбора клиента — назначения релиза, переноса устройства, фильтров потока событий, событий ПО, аналитики и миграций. Раньше вывести клиента из раскаток можно было, только удалив его вместе с устройствами и юр.лицами
При перемещении в корзину снимаются все незапущенные назначения релизов, а устройства выходят из активных задач поэтапной установки — задача к ним больше не вернётся. Уже идущая установка не прерывается. В сообщении после перемещения видно, сколько назначений снялось и сколько устройств вышло из задач
Устройства клиента из корзины скрыты из списка устройств и из сводки на главной; показать их можно галочкой "Показать устройства клиентов из корзины" в фильтрах списка — там они помечены бейджем. История, события и задания в отчётах остаются как были, чтобы цифры за прошлые периоды не менялись задним числом
Обновить отдельное устройство такого клиента по-прежнему можно: на карточке устройства и на странице назначения релиза висит пометка, что клиент в корзине
Корзина открывается ссылкой из сводки на странице клиентов. Оттуда клиента возвращают в работу или удаляют насовсем — прямое удаление с карточки клиента убрано, сначала клиент кладётся в корзину. При возврате снятые назначения релизов не восстанавливаются, их назначают заново
В списке устройств появился фильтр по типу — оператор, администратор или совмещённое "оператор и администратор"
На странице создания релиза описание и список миграций можно подставить из прошлого релиза галочкой — текст попадает прямо в поле, его дополняют и правят как обычно. Снятая галочка убирает подставленное, набранное руками остаётся
Страница изменения версии и типа релиза приведена в порядок: правильный заголовок, блок последних версий сбоку, пояснения к полям. Поле описания с неё убрано — описание правится на странице редактирования релиза. Раньше сохранение версии с этой страницы затирало описание релиза
-
Поэтапная установка теперь берёт весь парк клиента, а не только операторов: админ-устройства и совмещённые "оператор и администратор" идут в задачу наравне с остальными. Раньше их приходилось обновлять отдельно и вручную по одному
Порядок внутри клиента задаётся сам: админ-устройство ничем не придерживается и уходит в первой же волне, а оператор получает релиз, только когда на админе его клиента уже стоит эта же или более новая версия. Пока админ не встал, операторы клиента ждут в очереди и место в пороге этапа не занимают — как и при нехватке миграций. На карточке задачи это видно строкой "Версия админов"
Проверка миграций в задаче теперь касается только операторов: админ и совмещённое устройство ей не держатся, потому что миграции накатывает как раз админ
У кнопок "Установить всем" и "Установить клиенту" появился выбор, кого обновлять — операторов или администраторов. Совмещённое устройство держит админку клиента, поэтому попадает под назначение только при выборе администраторов. Для администраторов проверка миграций не выполняется
При ручном назначении оператору версии новее той, что стоит на админе его клиента, панель показывает то же окно решения, что и при нехватке миграций: по каждому клиенту выбирается "пропустить" или "назначить всё равно", остальные клиенты назначаются сразу. Обе причины показываются в одном окне. Проверка версии не отключается галочкой "проверить миграции"
Админ без установленной версии держит операторов так же: сначала обновляется он, а при ручном назначении по такому клиенту спрашивается решение. Не проверяются только клиенты без админ-устройства — обновлять первым там некого
Поэтапная установка больше не откатывает версии: устройства, на которых уже стоит назначаемая или более новая версия, в задачу не попадают, и их прежние назначения при создании задачи не снимаются. Если более новую версию поставили, пока устройство ждало в очереди, задача его отпускает. Раньше задача ставила свою версию всем, у кого стояла другая, в том числе более новая. Откаты и прочие манёвры с версиями — через обычное назначение
Единственное исключение — тестовые релизы. Со снятой галочкой "пропустить устройства с установленным тестовым релизом" задача берёт такую станцию с любой установленной версией и может поставить версию ниже текущей: проверка кончилась, станция возвращается на общую версию. С включённой галочкой, как и раньше, задача тестовые станции не трогает вовсе
Проверка миграций и страница миграций смотрят на текущего админа клиента — последнего по активности. Если после переноса ПО на новый сервер в панели осталась старая оффлайн-запись админа, она больше не учитывается. Раньше проверка могла взять снимок миграций со старой записи
-
Кнопки, отправляющие данные, теперь показывают, что запрос ушёл: после нажатия на кнопке появляется индикатор ожидания, сама она блокируется до ответа сервера, а повторное нажатие ничего не отправляет. Раньше страница после нажатия просто стояла без признаков жизни, и было непонятно, идёт обработка или нажатие не сработало
Заметнее всего это при создании релиза, где загрузка установщиков занимает минуты: кнопка меняется на "Сохраняем релиз…", а под ней идёт счётчик времени ожидания и напоминание не закрывать и не обновлять страницу до конца загрузки
В действиях с окном подтверждения индикатор включается только после нажатия "Подтвердить": при отмене кнопка остаётся обычной. Если форма не прошла проверку на самой странице, индикатор тоже не появляется
Кнопки "Обновить" на странице устройства — миграции, производственные линии, конфигурация, дерево файлов логов — показывают индикатор на время запроса к устройству
-
В потоке событий ПО устройств появился канал "Очистка негативных статусов". Устройство раз в сутки чистит таблицу негативных статусов валидации от старых записей и шлёт сюда ошибку очистки и сообщение о том, что она давно не выполнялась. Канал виден в фильтре потока и в аналитике
-
В релиз можно класть apk приложения ТСД. Панель узнаёт его по подстроке "update_hi-mark_tsd" в имени файла или просто по расширению .apk. На устройство такой файл не скачивается и не устанавливается — он остаётся на панели, а модуль оператора и модуль администратора показывают на него прямую ссылку в окне с составом обновления, откуда его можно скачать на рабочее место. Apk необязателен: релиз без него корректен
Ссылки на apk в карточке релиза теперь открываются. Раньше панель не знала этот тип файла и отвечала 404, хотя сам файл лежал на диске
При создании релиза проверяется состав файлов: обязателен установщик backend, обязателен хотя бы один frontend — оператора или администратора, и на одно назначение допускается не больше одного файла. Раньше сохранить можно было любой набор, в том числе без единого установщика: устройство всё равно проводило полный цикл обновления — останавливало линии и отчитывалось об успешной установке, не установив ничего. Требования и причина описаны рядом со списком распознаваемых имён на самой странице создания релиза
Та же проверка стоит на загрузке пререлиза сборкой: неполный пакет отклоняется с понятной ошибкой вместо того, чтобы стать пререлизом, о неполноте которого узнают уже при оформлении релиза
-
В меню появился раздел "Установка" — поэтапная установка релиза вместо выкатки на весь парк разом. На странице релиза рядом с привычными кнопками появилась "Установить поэтапно": задаётся, какая доля устройств обновляется по дням (по умолчанию 10% → 30% → 100%), и панель сама выдаёт обновление волнами. Устройства, до которых очередь ещё не дошла, о новой версии не знают и файлы не качают
Задача берёт все операторские устройства, на которых стоит версия, отличная от нужной — настраивать тут нечего. При желании охват можно сузить до конкретных клиентов
Доля накопительная: если сегодня часть устройств не успела обновиться — были в работе, выключены или не на связи — они никуда не пропадают, а войдут в порог следующего дня. Поэтому установка не "сгорает": то, что не поставилось сегодня, поставится завтра вместе со следующей волной
Дни, когда обновления не ставятся — пятница, выходные и праздники производственного календаря — этап не расходуют. Задача, начатая в четверг, перейдёт ко второму этапу в понедельник, а не потеряет его на выходных
Очередь раскладывается вперемежку по клиентам, поэтому в первую волну не попадёт целиком один клиент — обновление разойдётся по разным. Устройства не на связи, занятые другой установкой и с работающей производственной линией место в волне не занимают: их черёд наступит, когда они освободятся. Иначе первый день установки мог бы пройти вхолостую — слоты заняты, а поставить релиз никто не может
Перед каждой волной проверяются миграции: если у админ-устройства клиента не хватает миграций, которые требует релиз, его операторы придерживаются в очереди и уходят в установку сами, как только миграции накатят. На странице задачи видно, сколько устройств придержано и каких клиентов ждём
Первый этап идёт осторожно: устройства берутся по три, и следующая тройка уходит только после того, как предыдущая встала успешно целиком. Если хоть одно устройство из тройки не встало, установка останавливается — разведка для того и нужна. Первый этап длится столько дней, сколько нужно на его долю парка, и только потом установка идёт по дням целыми волнами
Если установки начинают падать — задача останавливается сама (по умолчанию при доле неудач выше 20%) и пишет причину. Пауза, ручная или автоматическая, снимает установку с тех, кто ещё не начал ставить, и возвращает их в очередь — при продолжении их выдадут заново
На первом этапе, если станция не начала установку за 15 минут, оператор отменил её на месте или отложил — устройство возвращается в очередь на 2 часа, а его место в тройке сразу занимает следующее. Через 2 часа оно пробуется снова. Со второго этапа этого нет: волна идёт крупными порциями и просто добавляет новые устройства, ничего не забирая у уже назначенных
Если станция застряла на 15 минут в "В процессе установки" или "Проверка установки" — это считается ошибкой установки: она уже началась, и сама станция об этом больше ничего не сообщит. Такие устройства идут в долю неудач, по которой срабатывает автостоп. Если установка всё же доедет и версия встанет, запись сама поправится на "Установлено"
На странице задачи видно текущий этап, сколько устройств открыто к обновлению сегодня, история по дням (назначено / установлено / ошибок) и список устройств с фильтром по состоянию. Активные задачи показываются на главной и на странице релиза. Кнопки "Установить всем" и "Установить клиенту" никуда не делись — они по-прежнему выкатывают релиз сразу, для срочных случаев
Поэтапная установка не ставит обновления в пятницу: если что-то сломается, разгребать пришлось бы в выходные. Это касается и волн, и устройств, назначенных раньше — станция, получившая релиз в четверг, в пятницу его не поставит. На обычное назначение релиза и на собственные окна установки клиента запрет не распространяется, там пятница остаётся рабочим днём
Задачу можно завести заранее и начать позже: в поле "Начать с даты" указывается день, с которого пойдут волны. До него не назначается никто, и этапы считаются от этой даты — удобно завести релиз в четверг, а установку начать с понедельника
-
В карточке устройства появилась кнопка "Админка ТП" — она открывает админку техподдержки самой рабочей станции прямо из панели. Раньше попасть туда можно было только с площадки клиента: станции стоят в закрытых сетях и снаружи недоступны. Теперь страницы идут по тому же соединению, которое устройство само держит с админ-панелью, поэтому доступны все разделы техподдержки — партии, агрегация, коды маркировки, этикетки, заказы, отчёты, эмуляторы и оборудование линии
Отдельный вход на станции не нужен: сеанс техподдержки открывается автоматически под вашей учётной записью, код доступа и QR для этого не требуются
Доступны не только просмотр, но и действия: формы (например переподключение оборудования), кнопки, работающие без перезагрузки страницы ("Проверить наличие этикетки" и подобные), фильтры, постраничная навигация
Каждое изменяющее действие записывается в журнал устройства с указанием сотрудника — по журналу видно, кто и что делал на станции через админ-панель. У таких записей свой тип события — "Админка ТП", по нему можно отфильтровать журнал и посмотреть только работу техподдержки
Раздел закрыт ролью "Управление" и выше: через него доступны действия администратора рабочей станции, поэтому роли "Просмотр" кнопка не видна и адрес вручную тоже не откроется
Если устройство не на связи или не успело ответить, вместо страницы техподдержки открывается объяснение с кнопкой "Повторить" и ссылкой на карточку устройства. Действия ждут ответа до пяти минут — столько же живёт сеанс техподдержки на станции, и столько могут занимать операции, которые обращаются в "Честный знак" (например закрытие партии с отчётами). Если ответа так и не было, кнопка "Повторить" для таких действий не предлагается: операция могла выполниться, и повторный запуск сделал бы её дважды
-
Рядом появилась вторая кнопка — "Модуль админа". Она так же, через соединение устройства, открывает модуль администратора линии, который установлен на самой станции: партии, печать, коды маркировки, справочники и остальные его разделы
Вход в модуль остаётся его собственным — под учётной записью администратора линии. Админ-панель только доставляет запросы до станции и не подменяет авторизацию модуля
Модуль открывается в отдельной вкладке и работает как обычно: переходы по разделам, формы, запросы к линии. Единственное, чего в нём не будет, — живого уведомления о ходе установки релиза: оно приходит по веб-сокету, а он через это соединение не проходит. Статус установки по-прежнему виден в карточке устройства здесь, в админ-панели
Доступ к модулю — та же роль "Управление" и выше, что и к админке техподдержки
-
Фильтр по установленной версии на странице "Устройства" с операторами "меньше", "меньше или равна" и "не равна" теперь показывает и устройства без установленной версии: у такого устройства версия заведомо старее любой заданной и заведомо ей не равна. Раньше они не попадали в выборку ни под одним оператором сравнения и через фильтр по версии их было не найти — например "меньше 8.0.0" молча пропускал машины, которые ещё ни разу не обновлялись. Под фильтром появилась подсказка, что такие устройства включены в выборку, со ссылкой "Показать только их". Операторы "больше", "больше или равна" и "равна" работают как раньше
К срезу устройств без версии добавились ещё два перехода: счётчик "Без релиза" в сводке справа на странице устройств и строка "Без установленной версии" в блоке "Распределение по релизам" на главной стали ссылками на список с состоянием "Без установленного релиза" — раньше это число было видно, но посмотреть, какие именно это устройства, можно было только выставив фильтр вручную
-
Блок сводки на главной "Распределение по версиям" стал "Распределением по релизам". Строки идут от свежих релизов к старым — раньше порядок был по числу устройств, и только что вышедшая версия на паре машин терялась в конце списка. У каждой строки теперь видна дата создания релиза (полная дата со временем — в подсказке при наведении), а номер версии стал ссылкой на карточку релиза
Рядом с числом устройств выводится их доля от всего парка. Полоса под строкой тоже показывает эту долю, а не долю от самой массовой версии, как раньше. В списке — шесть самых новых релизов, остальные сворачиваются в строку "Остальные релизы" с общим числом устройств: вместе со строкой "Без установленной версии" доли складываются в весь парк
-
В разделе "События ПО устройств" добавлена колонка "Клиент" со ссылкой на его карточку — раньше, чтобы понять, чьё это устройство, приходилось открывать само устройство. Устройства без клиента показываются с прочерком. На странице конкретного устройства колонка не появляется — клиент там и так известен
-
В аналитике событий ПО график "События во времени" стал линейным, как в аналитике производства: у каждой критичности своя линия. Раньше это была стопка столбцов, где общая высота скрывала ход отдельных серий — не было видно, растут ошибки или просто прибавилось уведомлений. При наведении на дату показываются значения сразу по всем критичностям
В аналитике производства имя клиента в таблице заданий стало ссылкой на его карточку — как рядом сделано с устройством
-
Плитки сводки на главной теперь открывают раздел с уже выставленным фильтром, а не общий список: "Онлайн", "Оффлайн", "Ожидают обновления", "Ждут окна обновления" и "Сбои установки" ведут на страницу устройств, "Лицензии истекают" — на клиентов со статусом лицензии "Скоро истекает", "С ошибками · 24ч" — в поток событий за последние сутки. Фильтр виден в форме и сбрасывается кнопкой — раньше после перехода приходилось выставлять его вручную, а часть условий задать было нечем
Для этого на страницах появились новые фильтры. На "Устройствах" — "Состояние": онлайн, оффлайн, ожидают обновления, ждут окна обновления, сбои установки, без установленного релиза; сводка справа и постраничная навигация считаются по выбранному состоянию. В "Потоке событий" — период "с / по" и сводный вариант статуса "Ошибки и критические" (раньше выбирался только один статус, а ограничить период было нельзя); те же поля появились в блоке "Логи" на странице устройства. На "Клиентах" фильтр по статусу лицензии теперь можно задать ссылкой, и он подставляется при открытии страницы
-
Сборка теперь сама заливает свежие установщики в панель — выкладывать их вручную больше не нужно. Такая загрузка попадает в список релизов как "Предварительный": у неё пока нет ни номера версии, ни описания, ни типа
Предварительный релиз нельзя назначить на устройства: кнопок "Установить всем" и "Установить клиенту" на его карточке нет, и в списках версий на страницах устройства он тоже не появляется. Сначала его нужно оформить — кнопка "Оформить релиз" на карточке, где задаются номер версии, тип и описание. После этого он становится обычным релизом и ведёт себя как все остальные
Панель держит не больше трёх предварительных релизов одновременно: при загрузке нового самые старые удаляются вместе с файлами, чтобы ночные сборки не забивали диск
-
В списке релизов у предварительных вместо номера версии стоит пометка "Предварительный", а в сводке справа они считаются отдельной строкой. В "Всего релизов", разбивку по типам и "Последнюю версию" они не входят — иначе свежая ночная сборка выглядела бы как последний выпущенный релиз
По той же причине кнопка "Последний релиз" на главной ведёт на последний оформленный релиз, а не на предварительный
-
Описание релиза больше не может испортить вёрстку страницы: раньше текст описания подставлялся в страницу как есть, теперь он всегда выводится текстом. Заодно починились переносы строк — они не работали вовсе, и описание показывалось одним слипшимся абзацем
Номер версии проверяется строже. Раньше проходили значения вида "1a2b3" или "v1.2.3-beta", хотя подсказка к полю требует формат 0.0.0 — теперь принимается только он
-
Устранены зависания панели: страница могла на несколько минут перестать отвечать, причём каждый раз другая
Если база не отвечает, страница показывает ошибку за десятки секунд, а не висит молча до пяти минут
Данные мониторинга держатся в памяти за последние сутки — ровно за тот период, который показывают графики
-
Появились полноценные учётные записи. Раньше логины и пароли лежали в конфигурации админ-панели и были общими на всех — теперь у каждого своя запись, пароль хранится в защищённом виде и его не видит никто, включая администратора. Прежние логины перенесены автоматически, пароли у них остались те же — перенастраивать ничего не нужно
После обновления все открытые сеансы завершатся, потребуется войти заново. Это разовое действие
-
У администратора появился раздел "Пользователи": список всех учётных записей с ролью, состоянием и датой последнего входа, создание новых, изменение, задание пароля и удаление. Завести учётную запись можно только отсюда — самостоятельной регистрации в панели нет
Учётную запись можно не удалять, а отключить: вход сразу запрещается, а сама запись и её история остаются. Встроенного администратора и собственную учётную запись нельзя отключить или понизить в правах — чтобы панель не осталась без владельца
-
Появились три роли. "Просмотр" — только чтение: списки, карточки устройств и клиентов, аналитика, события; кнопки изменения такому пользователю не показываются. "Управление" — вся работа с релизами, обновлениями, устройствами, клиентами, лицензиями и конфигурациями, а также сканер QR и лог приложения, но без доступа к учётным записям. "Администратор" — то же самое плюс управление пользователями
Роль меняется на странице учётной записи и начинает действовать сразу: если пользователь в этот момент работает в панели, его сеанс завершится, и при следующем входе права будут уже новые. Так же работают отключение учётной записи и смена пароля
-
В шапке справа вместо кнопки "Выйти" теперь меню с именем и ролью: "Сменить пароль", "Пользователи" (у администратора) и "Выйти". Сменить свой пароль может любой вошедший — при этом остальные сеансы этой учётной записи (другой браузер, телефон) завершаются, а текущий остаётся
Вход защищён от подбора пароля: после пяти неудачных попыток подряд он блокируется на несколько минут. Снять блокировку раньше может администратор — кнопкой "Разблокировать" в списке пользователей или задав новый пароль
В потоке событий теперь видно, кто назначил обновление. К записям о смене версии ПО к установке, смене установленной версии и отмене установки в конце дописывается автор — имя сотрудника и его логин. Работает и для точечных действий на странице устройства, и для массовых назначений на всех или на клиента. У автоматических назначений по расписанию и у записей, которые присылает само устройство, автора нет — их делает не человек
Подтверждение входа техподдержки по QR тоже стало именным: в журнале устройства записывается, кто именно открыл доступ. Раньше там стояла общая учётная запись, и установить это было нельзя. Сам сканер QR доступен ролям "Управление" и "Администратор"
-
Появился раздел "События ПО" — поток событий, которые само ПО устройства отправляет в каналы мониторинга (ошибки, предупреждения, статистика). Раньше их можно было смотреть только в Telegram, теперь они собираются в админ-панели с фильтрами по клиенту, критичности (уведомление / предупреждение / критическое / ошибка), каналу (приложение, внешнее API, архивация кодов, дамп и доступность базы, конфигурации, статистика, очистка временных файлов, планировщик задач, поиск кодов), периоду и тексту события. У событий с приложенными данными есть кнопка "Подробнее" — она открывает то, что раньше приходило в Telegram отдельным файлом: данные события, лог запроса и лог ошибки. Со страницы устройства в раздел ведёт кнопка "Открыть" — поток сразу сужается до этого устройства
Если устройство было без связи, события копятся на нём и досылаются пачкой — у таких записей рядом с датой события показывается, когда его фактически приняли. События хранятся 30 дней, дальше удаляются автоматически
-
У раздела "События ПО" появилась аналитика (кнопка "Аналитика" на странице потока). За выбранный период показываются: сводка, разбивка по критичности, график событий во времени с разделением по критичности, топ повторяющихся ошибок, топ устройств по числу ошибок, распределение по клиентам и по каналам. Похожие ошибки группируются вместе: номера заказов и прочие числа в тексте не мешают увидеть, что это одна и та же проблема. Отдельным блоком выводятся "волны" — когда одна и та же ошибка за короткий срок повторилась на нескольких устройствах сразу (признак проблемы релиза или внешнего сервиса, а не одного устройства). Из любой строки аналитики можно провалиться в поток событий: период и текст ошибки подставятся в фильтры автоматически
-
Добавлены оповещения на почту при наплыве событий. Письмо уходит в двух случаях: когда за короткий промежуток набирается много ошибок и критических событий, и когда одна и та же ошибка бьёт сразу на нескольких устройствах. В письме — сводка, список чаще всего повторяющихся ошибок и ссылка на раздел в админ-панели. Повторное письмо того же типа не приходит, пока не пройдёт заданное время, чтобы затянувшийся сбой не превратился в поток писем. Список получателей, почтовый сервер и пороги срабатывания задаются в конфигурации админ-панели
Отправка событий с устройств в админ-панель включается на стороне ПО: уведомления, которые раньше уходили только в Telegram, теперь идут сюда. Если связи с админ-панелью нет, события копятся на устройстве и досылаются позже
Для каждого канала событий можно выбрать, что с ним делать: хранить целиком, хранить без вложений (текст события остаётся, приложенные данные и логи отбрасываются — именно они занимают основной объём) или не хранить вовсе. Настройка задаётся в конфигурации админ-панели и применяется без перезапуска. В фильтре по каналам такие каналы подписаны, чтобы не искать в них события впустую
-
Добавлен раздел "Лог" — то, что админ-панель пишет в консоль сервера, теперь видно прямо в браузере, без подключения к серверу. Показываются последние 5000 строк: запуск приложения, предупреждения и ошибки со стеком вызовов. Есть фильтр по уровню (все / info / warn / только ошибки), поиск по тексту, пауза, кнопка выгрузки всего лога в файл. Новые строки подтягиваются сами раз в 3 секунды, ошибки подсвечиваются. Раздел виден только администраторам — в логе попадаются внутренние детали. Лог хранится в памяти приложения и очищается при его перезапуске
-
В разделе "Аналитика" проценты выводятся с точностью до сотых. Раньше значения округлялись до целых, и на больших партиях доли процента брака и невалидных кодов были неразличимы — 0,4% и 0,04% одинаково показывались как 0%
-
Запрещена установка релиза старше 30 дней. На странице релиза кнопки "Установить всем" и "Установить клиенту" у такой версии заблокированы с подсказкой, в списке выбора на странице устройства устаревшие релизы не показываются, а при попытке назначить их в обход интерфейса выводится сообщение об ошибке. Правило действует для всех типов релизов, включая тестовые
-
При создании релиза файлы старше 30 дней больше не проходят молча: список устаревших файлов показывается в окне с пояснением, а не только строкой под полем выбора. Проверка продублирована на сервере — релиз не создастся, даже если проверка в браузере не сработала
-
На странице "Релизы" появилась постраничная навигация — по 10 записей на страницу (раньше весь список грузился в браузер целиком). Поиск по версии, фильтр по типу и "Скрыть архивные" учитываются при разбиении на страницы. Пейджер на "Релизах" и "Устройствах" теперь выглядит одинаково и сохраняет выбранные фильтры при переходе
-
Обратный отсчёт на кнопке подтверждения добавлен и в остальные окна подтверждения (назначение релиза клиенту и всем устройствам, изменение установленной версии, перенос устройства к другому клиенту, удаления на страницах клиента, устройства, релиза и конфигураций) — раньше он был только у части действий. Окно подтверждения больше не открывается повторно поверх уже открытого. Дата и время везде выводятся по-русски и в одном формате — раньше в некоторых местах день недели дублировался числом
-
Раздел "Аналитика" дополнен: появился блок "Агрегаты по статусам" с итогами по первому и второму уровню упаковки, брак (отбраковка линией) отделён от невалидных кодов и считается отдельной плиткой, в топе проблемных вместо продуктов — производственные линии с указанием клиента, а выполнение плана считается только по заданиям, где план задан, и больше не занижается заданиями без плана
-
Добавлен раздел "Аналитика" — сводка по производству со всех устройств. Вверху фильтры: клиент, устройство, период (произвольные даты либо быстрый выбор 7 / 30 / 90 дней). Далее плитки за период: заданий, отсканировано, валидных, выполнение плана, невалидных и брака — числом и в процентах. Ниже разбивка невалидных по причинам (несчитанные, не найдено в БД, дубликаты, невалидный GTIN, невалидная длина, тайм-аут валидации, сетевая ошибка, истёкший срок). Два графика — динамика по дням (отсканировано, валидно, невалидно, брак) и топ-10 продуктов по числу проблемных кодов. Внизу таблица заданий за период с постраничной навигацией: устройство, клиент, линия, продукт, номер задания, план, скан, валид, % плана, брак, проблемы, дата начала и статус; из таблицы можно перейти на страницу устройства
-
На странице "Устройства" появилась постраничная навигация. Раньше весь список грузился в браузер целиком, и на большом парке страница открывалась долго. Сводка сбоку (счётчики по типам, онлайн / оффлайн, без релиза, ожидают обновления) считается на сервере по всему отфильтрованному списку, а не только по видимой странице
-
Ускорена работа админ-панели под нагрузкой: сводка на главной, страницы устройств, клиентов и релизов, приём данных от устройств (конфигурации, миграции, информация о производственных линиях, лицензии, выдача релизов) переведены на более экономные запросы к базе, добавлены недостающие индексы, версия сервера БД определяется один раз при старте, а не при каждом запросе
-
Вход и выход перенесены из подвала в шапку — кнопка видна на любой странице и не прячется в сворачиваемое меню на телефоне. Сессия теперь живёт 30 дней и продлевается при работе: установленная как приложение (PWA) админ-панель больше не разлогинивает при каждом закрытии. В разделе "Сканер QR" камера включается сразу, если доступ к ней уже был разрешён — лишний раз нажимать "Включить камеру" не нужно
-
Начат сбор итогов производственных заданий с устройств — они хранятся в админ-панели полгода и стали основой для раздела "Аналитика". Раньше подобные данные были видны только в блоке "Информация о производственных линиях" на странице конкретного устройства и только на текущий момент, без истории и без возможности сравнить устройства между собой
-
На главной странице появилась сводка по парку устройств (видна после входа в систему). Вверху — плитки с ключевыми числами: всего устройств, сколько сейчас онлайн и оффлайн, у скольких были ошибки за последние сутки, сколько ожидают обновления и сколько из них ждут своего окна установки, сколько установок завершились сбоем и у скольких клиентов скоро истекает лицензия. Ниже — распределение устройств по установленным версиям ПО и сводка текущей установки релизов по стадиям. Данные обновляются автоматически раз в минуту и по кнопке «Обновить»; плитки кликабельны и ведут в соответствующие разделы
-
На странице релиза добавлен блок «Установка релиза» — наглядно видно, как идёт выкатка конкретной версии: сколько устройств уже установили релиз из общего числа (с полосой прогресса), сколько сейчас в процессе установки, сколько ожидают начала, у скольких установка завершилась сбоем и сколько отменено. Отдельно подсвечиваются «застрявшие» устройства — те, что дольше 6 часов остаются на одной стадии установки, чтобы такую проблему можно было заметить вовремя, а не искать вручную по каждому устройству
-
Режим планового обновления: при назначении релиза теперь можно указать дату установки — и одному устройству, и при массовом назначении (всем устройствам или по клиенту). До этой даты обновление не устанавливается, а начиная с неё установка пройдёт как обычно — в окно обновления клиента. Поле необязательное: без даты релиз ставится по расписанию, как раньше; при установке вне расписания дата не запрашивается. Назначенная дата видна в статусе устройства ("Ожидает: … установка на 25.07.2026") на страницах устройства, клиента и релиза, а также фиксируется в логе устройства
-
В дереве файлов на странице устройства появились галочки — отмеченные файлы скачиваются одной кнопкой "Скачать выбранные" единым zip-архивом с сохранением структуры папок. Отметка папки выбирает всё вложенное. Раньше файлы приходилось качать по одному — с диалогом сохранения на каждый и ограничением браузера на 6 параллельных загрузок. Файлы, ещё не полученные с устройства, при скачивании пропускаются с подсказкой; один выбранный файл скачивается напрямую, как раньше. Сам блок переименован из "Файлы логов" в "Файлы устройства" — в нём не только логи
-
Все страницы админ-панели теперь используют полную ширину экрана — на широких мониторах в таблицы устройств, клиентов, миграций и потока событий помещается заметно больше данных. Формы создания и редактирования конфигурации сервера тоже растянуты на всю ширину
-
Добавлен вход техподдержки по QR-коду. На странице входа сервера теперь показывается QR-код — вместо копирования ключа доступа его можно отсканировать телефоном и подтвердить вход одним нажатием. Прежний вход по коду сохранён как запасной (кнопка "Вход по коду" на форме входа сервера)
-
Админ-панель теперь можно установить как приложение (PWA) на телефон или компьютер — с иконкой на домашнем экране и запуском в отдельном окне. На мобильном появляется предложение установить приложение (закрывается крестиком и больше не показывается)
-
Добавлен раздел "Сканер QR" со встроенным сканером для подтверждения входа техподдержки прямо из приложения. При обрыве связи вместо ошибки открывается понятная страница "Нет соединения" с кнопкой повтора
-
Админ-панель адаптирована под телефон. Широкие таблицы — устройства, клиенты, релизы, поток событий, конфигурации, а также списки на детальных страницах и страницах назначения релиза — на узком экране показываются карточками, без горизонтальной прокрутки. Пагинация умещается в одну строку; описание релиза, список миграций и файлов раскрываются на всю ширину; на главной блок "Быстрый переход" поднят наверх; у сканера появилось общее меню; футер, подписи полей и раскладка приведены в порядок
-
Добавлена страница "Миграции" — сводка по миграциям БД по всем клиентам. Миграции идут от новых к старым, по каждой видно, сколько клиентов её применили: зелёный бейдж — применили все, жёлтый — не все, рядом перечислены клиенты, у которых миграция ещё не применена. Учитываются снимки миграций головных устройств (самый свежий по времени синхронизации); клиенты, не приславшие снимок, показаны отдельной плашкой и в подсчёте не участвуют. Есть поиск по имени миграции и фильтр по статусу
-
Добавлен раздел "Конфигурации серверов" — справочник рекомендуемых серверных конфигураций (процессор, оперативная память, диск и текстовое описание). Список доступен всем сотрудникам, добавление, редактирование и удаление — администраторам
-
Калькулятор серверных требований по результату расчёта подбирает и показывает подходящую готовую конфигурацию сервера из этого справочника, а сам расчёт можно выгрузить в PDF
-
На странице "Поток событий" добавлены фильтр по клиенту и поиск по тексту события — вместе с уже имевшимися фильтрами по типу и статусу события можно быстро найти нужные записи среди событий всех устройств. Поиск по тексту работает и в блоке "Логи" на странице устройства
-
Устройства в карточке клиента теперь отсортированы по типу — сначала администраторы, затем "оператор и администратор", затем операторы; внутри каждого типа — по имени. Раньше список шёл просто по имени, и админ-устройства терялись среди операторских
-
Настраиваемый график установки обновлений для каждого клиента. На детальной странице клиента можно задать окна времени (начало, конец и дни недели), в том числе переходящие через полночь. Автоматические обновления запускаются только внутри этих окон и только в рабочие дни производственного календаря — праздники и перенесённые выходные исключаются. Время задаётся в часовом поясе клиента, который выбирается на странице редактирования клиента. Если устройство ждёт наступления окна, это видно по его статусу. Без заданных окон действует стандартный график 08:00–17:00 МСК по рабочим дням
-
При назначении релиза галочки "Пропустить устройства с уже установленным этим релизом" и "Проверить миграции у админов клиентов" теперь включены по умолчанию — это самый частый и безопасный сценарий выкатки, раньше их приходилось ставить вручную
-
Страница устройства и связанные с ней данные — конфигурация, файлы логов, миграции, а также обновления в реальном времени — теперь доступны не только администраторам, но и пользователям с ролью "user". Раньше часть этих блоков у обычных пользователей не загружалась
-
Переработана очистка устаревших данных мониторинга, таблица мониторинга оптимизирована — меньше нагрузка на базу данных
-
Исправлено удаление устройств и клиентов
-
Добавлен блок "Быстрый переход" на главной странице — кнопки "Последний релиз" и "Создать новый релиз", выбор клиента и устройства из выпадающих списков с переходом на детальную страницу
-
Добавлен фильтр по версии установленного релиза на странице "Устройства" — операторы больше / меньше / равно / не равно (≥, >, ≤, <, =, ≠)
-
Добавлены понятные страницы ошибок (страница не найдена, нет доступа, сбой сервера и т. п.) — вместо пустой страницы с одной строкой видно описание проблемы и кнопки "На главную" / "Войти" / "Назад"
-
Если сессия истекла во время работы со страницей — кнопки обновления данных (шапка устройства, мониторинг, логи, конфигурация и т. п.) больше не зависают молча, а корректно сообщают, что нужно войти заново
-
Калькулятор серверных требований открыт без авторизации — это публичная утилита, не работает с данными админки
-
Ускорена загрузка страниц "Устройства", "Клиенты", детальных страниц клиента и релиза
-
Ускорена выдача файлов релиза устройствам — контрольные суммы файлов теперь кэшируются, а не пересчитываются при каждом запросе
-
На странице "Создание нового релиза" добавлена подсказка с распознаваемыми именами файлов (backend, frontend оператора, frontend администратора) — имя файла должно содержать одну из подстрок, иначе устройство не определит назначение
-
К релизу можно прикрепить список новых миграций БД (поле "Новые миграции БД в этом релизе" на страницах создания и редактирования релиза). На страницах назначения релиза ("Установить всем" и "Установить клиенту") появилась галочка "Проверить миграции у админов клиентов" — если её включить, перед назначением сверяется, что у админ-устройства каждого клиента эти миграции уже накатаны. Клиентам, у которых всё на месте, релиз отмечается к установке автоматически. Для клиентов с недостающими миграциями откроется страница с предупреждением и решением по каждому клиенту — "Назначить всё равно" или "Пропустить". На этой же странице видно, кому релиз уже назначен автоматически и сколько у каждого устройств
-
На страницах "Установить всем" и "Установить клиенту" появилась галочка "Пропустить устройства с уже установленным этим релизом" — если её включить, устройства, у которых этот же релиз уже стоит как установленный, не переназначаются повторно. Удобно при повторной массовой выкатке, когда часть устройств уже на нужной версии — не нужно вручную исключать их из назначения. Галочка прокидывается через страницу подтверждения миграций — фильтр применяется и к авто-назначенным клиентам, и к выбранным "Назначить всё равно"
-
При назначении релиза конкретному устройству-администратору (или "оператор и администратор") проверка миграций больше не выполняется — раньше админ-устройство сверялось само с собой и при отсутствии новой миграции из релиза релиз блокировался ровно тем, что он должен был принести. Теперь админам релиз назначается без самопроверки, а операторам — после (с галочкой проверки миграций)
-
Защита от случайных удалений: удаление клиента, юр. лица, устройства, релиза, очистка данных и кэша мониторинга, отмена установки релиза и выход из системы теперь требуют отправки формы с подтверждением. Случайный переход по ссылке, превью в мессенджере или предзагрузка браузером запустить операцию больше не могут. Окно подтверждения выглядит как раньше
-
Ошибки при сохранении (например, не указана дата окончания лицензии или выбран тот же клиент при переносе устройства) больше не открывают пустую страницу с одной строкой текста — сообщение появляется на той же странице в виде красной плашки сверху, форму можно сразу поправить и отправить заново
-
Общий редизайн страниц админки. На страницах создания и редактирования (релиза, клиента, лицензии), назначения и отмены установки релиза, настроек устройства, переноса устройства к клиенту форма больше не сидит одинокой узкой колонкой по центру с пустым правым краем — она расположена рядом со сводкой / справкой. На детальных страницах релиза, клиента и устройства информация о сущности и кнопки действий разнесены по двум колонкам, кнопки сгруппированы в карточку с понятными заголовками ("Назначение релиза", "Управление релизом", "Опасная зона" и т. п.). На страницах списков "Релизы", "Клиенты", "Устройства" появился сайдбар со сводкой — счётчики по типам, статусам лицензии, онлайн / оффлайн и т. п.
-
На странице "Релизы" — поиск по версии и фильтр по типу с мгновенной фильтрацией без перезагрузки страницы. Чекбокс "Скрыть архивные" включён по умолчанию, чтобы рабочий список не разбавляли старые архивные релизы. Длинные описания релизов в списке автоматически сворачиваются после ~5 строк, разворачиваются по кнопке "Показать целиком". Тестовые / development-релизы дополнительно помечены жёлтым баром слева — хорошо виден и в светлой, и в тёмной теме
-
На странице "Клиенты" — поиск по имени клиента и фильтр по статусу лицензии
-
Окна подтверждения на странице устройства теперь показывают конкретные данные: вместо "назначить выбранную версию" — "Назначить версию «1.2.3» устройству «My Device»". То же при изменении установленной версии и отмене запланированной установки. Кнопка "Сохранить" на формах назначения переименована в "Назначить релиз" / "Изменить версию" / "Назначить всем устройствам" / "Назначить клиенту" — чтобы понимать, что произойдёт после нажатия
-
На странице "Устройство → Установить новую версию ПО" появилась галочка "Проверить миграции у админ-устройства клиента" — по аналогии с галочкой на массовом назначении релиза. Если у админа клиента не хватает миграций из релиза, перед назначением открывается страница со списком недостающих миграций и кнопкой "Назначить всё равно" (либо "Отмена" — назад на страницу устройства)
-
На странице "Поток событий" пагинация теперь и сверху, и снизу таблицы — не нужно листать вниз, чтобы перейти на следующую страницу. Над таблицей показывается счётчик "Страница X из Y, всего N". Кнопка "Сбросить" появляется только когда выбран хотя бы один фильтр
-
Календарь автоматических обновлений переработан: на больших экранах четыре месяца в ряд вместо трёх, сегодняшний день и выходные выделены аккуратнее — без громоздких бейджей. Легенда вынесена в шапку календаря рядом с заголовком
-
Главная страница: сверху появилась карточка с кратким описанием панели. Неавторизованным пользователям больше не показываются ссылки на разделы под авторизацией ("Клиенты", "Релизы", "Устройства", "Поток событий") — раньше клик уводил на страницу с ошибкой "Требуется авторизация". В шапке подсвечивается раздел, в котором сейчас находитесь. Дата и время сервера выведены компактнее (с подсказкой при наведении). В подвале строка с состоянием автообновлений, копирайтом и навигацией собрана в одну строку (раньше занимала две)
-
Страница авторизации и калькулятор серверных требований переоформлены в стиле остальной админки. В калькуляторе форма и описание "что считает калькулятор" показаны рядом, результат — две крупные плитки "Размер БД" и "Операций в секунду". Страница "Политика конфиденциальности" заполнена реальным содержанием — раньше там был пустой стаб с английским текстом
-
Добавлена возможность отменить установку релиза у конкретного клиента — кнопка "Отменить установку у клиента" на странице "Релиз" с выбором клиента из списка тех, у кого запланирована установка
-
Добавлено редактирование описания релиза — кнопка "Редактировать релиз" на детальной странице "Релиз"
-
Добавлены окна подтверждения на критические действия: отмена установки релиза у всех / у клиента / на устройстве, назначение релиза клиенту, перенос устройства к другому клиенту
-
Увеличено количество строк до 50 на страницу в блоке "Логи" на странице "Устройство" и на странице "Поток событий"
-
Кнопка "Обновить" в шапке страницы "Устройство" теперь обновляет только шапку, не перезагружая всю страницу
-
Переработан блок "Конфигурация" на странице "Устройство": конфигурация устройства разбита на тематические карточки — Общее, Каналы, Параметры мониторинга, мониторинг внешних апи и ошибок, архивирование (с отдельным блоком сжатия), дамп БД, поиск кодов маркировки, 1С (по интеграциям), CSB, миграция БД, перезапуск, пинг, Modbus, режим приложения, параметры разработки (с переводом на русский и разделением на две колонки), очистка временных файлов, задачи планировщика — все с человеческими лейблами
-
Конфигурация устройства больше не передаётся в составе обычной синхронизации — она приходит отдельным сообщением, однократно при подключении устройства к админке (по аналогии с миграциями). Это разгружает регулярный обмен данными
-
Добавлена кнопка "Обновить" в блоке "Конфигурация" на странице "Устройство" — принудительная синхронизация без перезагрузки страницы; после обновления спойлер "Подробности" автоматически разворачивается
-
Добавлено визуальное уведомление на кнопках "Обновить" в блоках "Конфигурация", "Миграции БД" и "Файлы логов" при недоступности устройства (вместо тихой ошибки в консоли)
-
Конфигурация устройства корректно отображается независимо от регистра ключей в JSON — раньше при разном регистре часть полей могла не считаться
-
Кнопка "Обновить" в блоке "Информация о производственных линиях" на странице "Устройство" теперь запрашивает свежие данные у самого устройства, а не просто перерисовывает блок по уже имеющимся в админке данным
-
Добавлена авто-отправка информации о производственных линиях с устройства раз в 10 минут — блок "Информация о производственных линиях" на открытой странице "Устройство" обновляется без перезагрузки страницы
-
В блок "Информация о производственных линиях" добавлены недостающие счётчики статистики: с истёкшим временем валидации, сетевые ошибки при проверке в БД, с истёкшим сроком годности
-
Информация о производственных линиях теперь хранится компактнее — в шапке блока появилась дата последней синхронизации
-
Переработаны блок "Логи" на странице "Устройство" и страница "Поток событий": фильтры и пагинация без перезагрузки страницы, единый источник данных на бэке
-
Ускорена выборка логов: добавлены индексы по дате создания и составной (устройство, дата)
-
Добавлен блок "Миграции БД" на странице "Устройство" со списком миграций, статусом применения, счётчиками применённых/ожидающих и кнопкой принудительного обновления
-
Обновлён блок "Мониторинг" на странице "Устройство": вкладки вместо карусели, обновление графиков без перезагрузки страницы
-
Обновлён блок "Информация о производственных линиях" на странице "Устройство": вкладки со стрелочной навигацией вместо карусели, добавлена кнопка "Обновить" — обновление данных без перезагрузки страницы
-
Исправлен выбор диапазона дат в блоке "Мониторинг"
-
Ускорена работа графиков мониторинга и очистка устаревших данных
-
Добавлена кнопка "Удалить" в блоке "Файлы логов" на странице "Устройство" — удаляет локальную копию файла на сервере, на устройстве файл сохраняется
-
Добавлен приём конфигурации устройства из синхронизации (запуск, приложение, БД с маскировкой кредов, CSB, очистка временных файлов, планировщик задач, модули, master-slave, мульти-линии)
-
Добавлен блок "Конфигурация" на странице "Устройство" с датой последней синхронизации и сырым JSON
-
Добавлен калькулятор производства
-
Изменена сортировка на странице "Клиенты", по имени
-
Изменена сортировка юридических лиц на странице "Клиент", по названию
-
Изменена сортировка устройств на странице "Клиент", по названию
-
Изменена сортировка клиентов при назначении установки релиза на странице "Релиз", по имени
-
Добавлена возможность получить ключи доступа на странице "Устройство" в списке событий для в входа в административную панель технической поддержки устройства
-
Добавлена фильтрация на страницу "Поток событий"
-
Добавлена навигация и фильтрация на страницу "Устройство"
-
Реализовано автоматическое указание типа релиза "Тестовый", если любой из установочных файлов содержит текст "develop".
-
Добавлено удаление данных мониторинга устройств старше трех месяцев
-
Добавлено удаление данных релизов старше одного года
-
Добавлена индикация статуса релиза "Архивирован" и "Тип релиза" на странице списка релизов и на детальной странице релиза
-
Добавлена блокировка установки релиза если он архивирован
-
Добавлена фильтрация архивированных релизов в списках выбора релиза для назначения на установку и выбора в качестве установленного релиза на страницах устройства
-
Добавлен тип релиза "Продуктовый" и "Тестовый"
-
Добавлена индикация для типа релиза "Тестовый" на странице списка релизов
-
Добавлена возможность установить обновление на все устройства одного клиента
-
Добавлен мониторинг ресурсов на страницу "Устройства"
-
Добавлена информация о статусе производственных линий на страницу "Устройства" и в раздел "Устройства" детальной страницы "Клиента"
-
Перенос контроля расписания автоматической установки обновлений на сторону административной панели
-
Перенос лицензирования на сторону административной панели
-
Добавлен вывод информации об активности автоматической установки обновлений на текущий момент
-
Добавлен календарь установки обновлений в автоматическом режиме
Добавлен учет выходных и праздничных дней при проверки возможности запуска автоматической установки обновлений
-
Добавлена возможность запускать установку обновлений в автоматическом режиме вне расписания
-
Добавлена возможность запускать установку обновления на всех устройствах и отменять установку обновления на всех устройствах
-
Добавлена информация о производственных линиях на страницу "Устройство"
-
Добавлена возможность удаления "Устройства" и "Клиента"
-
Добавлена возможность изменения установленной версии ПО "Устройства"
-
Добавлена сортировка по дате последней активности на странице "Устройства" и детальной странице "Клиента"
-
Обновлена регистрация устройств, добавлено обновление информации устройства
-
Установлен русский язык даты для приложения по умолчанию
-
Добавлена в шапку дата и время сервера на момент обработки запроса
-
Для перевода в локальное время для приложения установлен часовой пояс +4 по умолчанию
-
Изменено отображение даты и времени последнего запуска и последней активности устройства
Теперь отображается сколько времени прошло с момента даты и времени с подсказкой в которой отображаются точные дата и время
-
Изменено отображение данных релиза устройства
-
Изменены размеры колонок таблиц
-
Добавлен вывод переносов строк в описании релиза и сообщении лога
-
Еще больше улучшений дизайна (отступы, тени), для большей читаемости интерфейса
-
Добавлены значки для: "Статус активности", "Статус релиза", "Статус установки релиза", "Статус лога"
-
Перевод времени в локальное
-
Обновление дизайна
-
Обновлена авторизация
-
Добавлен раздел "Устройства"
-
Добавлен раздел "Поток"
-
Упрощены таблицы
-
Релиз приложения
-
Добавлен раздел "Клиенты"
-
Добавлен раздел "Релизы"