UP-LINE — административная панель
Управление релизами, клиентами, устройствами и автообновлениями.

  • Добавить возможность удаленного создания релизов

  • Добавить получении сообщений с устройств

  • Добавить новую страницу по типу "Поток событий" с событиями самих устройств (то что сейчас отправляется в Telegram), с фильтрацией по типу, критичности и т.д.

    Вторым этапом — аналитика событий: отдельная страница со сводкой и графиками за выбранный период (час / день / неделя / месяц). Топ-N повторяющихся ошибок, распределение по уровню критичности, по типу, по клиенту и устройству. Детектирование "волн" — резкого роста однотипных ошибок за короткий промежуток (например, всплеск одной и той же ошибки на ≥3 устройствах в течение 10 минут) с подсветкой в сводке и переходом в фильтрованный поток. Графики: ошибки во времени (stacked по критичности), heatmap по часам/дням, топ-устройств по числу ошибок, MTBF по устройству / клиенту. Возможность сравнения двух периодов ("эта неделя vs прошлая") для отслеживания регрессий после релиза

  • На странице релиза добавить отдельную кнопку "Установить админам" — массовое назначение нового релиза устройствам с типом "Администратор" / "Оператор и администратор". Сейчас "Установить всем" и "Установить клиенту" фильтруют целевые устройства по типу Operator и админ-устройства туда не попадают, релиз на них приходится ставить руками по одному. Логичный порядок выкатки: сначала админам клиента (они применят миграции), потом операторам — с включённой галочкой "Проверить миграции у админов клиентов"

  • Реализовать историю установленных версий на устройстве — на странице устройства показывать список ранее установленных релизов с датой установки, версией и (если возможно) кто/как назначил. Сейчас в БД хранится только текущая установленная версия (InstalledReleaseId) и версия к обновлению (UpdateToReleaseId), смена этих полей не оставляет следа — при разборе инцидентов невозможно понять, на какой версии устройство было неделю назад. Нужна отдельная таблица device_release_history (device_id, release_id, installed_at, source) и запись в неё в момент подтверждения установки устройством

  • Реализовать поэтапную раскатку релиза. Первая итерация — только операторы: при назначении "Установить всем" / "Установить клиенту" выбирается процент (10% → 50% → 100%), релиз назначается только этой доле случайно выбранных операторских устройств. На странице релиза видна текущая стадия раскатки и кнопки "Расширить до 50%" / "Расширить до 100%". Расширение добавляет новые устройства к уже назначенным, а не пере-выбирает их заново — устройства, на которые релиз уже выкатывается, остаются в выборке

    Вторая итерация — порядок "сначала админы, потом операторы": первый этап — все админы/админ-операторы клиента (миграции применятся), второй этап — 10% операторов с проверкой миграций, далее 50% и 100% операторов. Между этапами админ-панель должна подтверждать, что предыдущий этап завершился без ошибок (status = Installed, нет UpdateCanceled)

  • Добавлен блок "Быстрый переход" на главной странице — кнопки "Последний релиз" и "Создать новый релиз", выбор клиента и устройства из выпадающих списков с переходом на детальную страницу

  • Добавлен фильтр по версии установленного релиза на странице "Устройства" — операторы больше / меньше / равно / не равно (≥, >, ≤, <, =, ≠)

  • Добавлены понятные страницы ошибок (страница не найдена, нет доступа, сбой сервера и т. п.) — вместо пустой страницы с одной строкой видно описание проблемы и кнопки "На главную" / "Войти" / "Назад"

  • Если сессия истекла во время работы со страницей — кнопки обновления данных (шапка устройства, мониторинг, логи, конфигурация и т. п.) больше не зависают молча, а корректно сообщают, что нужно войти заново

  • Калькулятор серверных требований открыт без авторизации — это публичная утилита, не работает с данными админки

  • Ускорена загрузка страниц "Устройства", "Клиенты", детальных страниц клиента и релиза

  • Ускорена выдача файлов релиза устройствам — контрольные суммы файлов теперь кэшируются, а не пересчитываются при каждом запросе

  • На странице "Создание нового релиза" добавлена подсказка с распознаваемыми именами файлов (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 по умолчанию

  • Изменено отображение даты и времени последнего запуска и последней активности устройства

    Теперь отображается сколько времени прошло с момента даты и времени с подсказкой в которой отображаются точные дата и время

  • Изменено отображение данных релиза устройства

  • Изменены размеры колонок таблиц

  • Добавлен вывод переносов строк в описании релиза и сообщении лога

  • Еще больше улучшений дизайна (отступы, тени), для большей читаемости интерфейса

  • Добавлены значки для: "Статус активности", "Статус релиза", "Статус установки релиза", "Статус лога"

  • Перевод времени в локальное

  • Обновление дизайна

  • Обновлена авторизация

  • Добавлен раздел "Устройства"

  • Добавлен раздел "Поток"

  • Упрощены таблицы

  • Релиз приложения

  • Добавлен раздел "Клиенты"

  • Добавлен раздел "Релизы"