Skip to content

2.28.0

Choose a tag to compare

@github-actions github-actions released this 05 Oct 21:32
c70bda9

Хранение истории и снимков

На странице «История и восстановление» теперь можно задать, сколько записей истории и снимков конфигурации хранить, и очистить их вручную. Длинные списки свёрнуты, страница стала короче. Обновление ставится поверх, настройки переносятся сами.

Что нужно знать при обновлении

  • Снимков по умолчанию хранится 20 вместо 10, ручных из них может быть до 18 (было 8). Два места по-прежнему всегда остаются для автоматических снимков перед восстановлением, «Сохранить и применить» и автоподбором.
  • История по умолчанию показывает 50 последних записей (было до 200). Если журнал длиннее, при следующей записи в нём останутся 50 последних.

Что изменилось

Лимиты хранения

  • Новая карточка «Хранение»: сколько записей истории (от 20 до 200) и сколько снимков (от 6 до 50) хранить, и сколько их сейчас.
  • Лимиты хранятся в /etc/prokop/retention.json, а не в конфигурации Prokop. Восстановление снимка их не меняет, и для их смены не нужна перезагрузка.
  • Уменьшенный лимит действует сразу: лишние старые записи и самые старые автоматические снимки удаляются. Перед этим страница говорит, что именно будет удалено, и просит подтверждения.

Автоматическая очистка и «Очистить…»

  • Сверх лимита удаляются только старые записи истории и автоматические снимки. Ручные снимки автоматически не удаляются никогда.
  • «Очистить…» у снимков удаляет все автоматические снимки, которые ничем не защищены. Ручные остаются.
  • Никакая очистка не трогает последний рабочий снимок, снимок, к которому ещё можно откатить автоподбор (в том числе если автоподбор прервался до того, как записал его), снимок неприменённого изменения из «Сохранить и применить», а также снимки «Перед восстановлением» и «Параллельная правка», пока стоит DPI-защита незавершённого восстановления или её состояние нельзя проверить. Такие снимки нельзя удалить и по одному: меню объясняет почему.
  • «Очистить…» у истории удаляет записи журнала, в нём остаётся одна запись об очистке. Состояние восстановления от журнала не зависит: неудачное изменение по-прежнему потребует восстановления.
  • Очистка и смена лимитов идут под блокировкой снимков и ждут, пока закончится автоподбор: проверка нового кандидата приняла бы их за помеху и откатила бы хорошую стратегию.
  • Очистка и лимиты доступны только администратору. Пользователь с доступом только на чтение видит лимиты и счётчики, но кнопок не видит, и ACL на чтение новых команд не даёт.

Списки

  • История показывает 10 последних событий, дальше кнопка «Показать ещё». Снимков сначала видно 5, остальные по кнопке «Показать все».

Что проверено

  • PASS: полный прогон автоматических тестов бэкенда от root и от непривилегированного пользователя. Падают только тесты, которые так же падают на 2.27.0 в этом окружении (нет jq, Node 18, нет nft для непривилегированного пользователя). readonly_hostile_env от root дважды упал при параллельном прогоне (другие тесты пишут в /var/run/prokop хоста) и трижды прошёл отдельно. Новые команды проверены: они не пишут в /var/run/prokop хоста. Фронтенд: prettier, eslint, tsc, vitest, сборка.
  • PASS: новый тест history_retention проверяет границы лимитов, удаление сверх лимита, все виды защищённых снимков, отказ при занятой блокировке снимков и журнала, и что очистка истории не скрывает неудачное изменение.
  • PASS: вкладка «История и восстановление» отрисована в Chromium на 1440/1024/768 по-русски с раскрытыми списками, ошибкой ввода и диалогом подтверждения. Горизонтальной прокрутки и обрезанных кнопок нет, режим только чтения тоже проверен (без темы LuCI, данные подставлены).
  • NOT TESTED: на роутере. В первую очередь стоит проверить: карточку «Хранение» и уменьшение лимита на настоящих снимках; «Очистить…» у снимков, когда стоит DPI-защита незавершённого восстановления; что история после обновления показывает 50 записей.