Repository navigation
2.28.0
Хранение истории и снимков
На странице «История и восстановление» теперь можно задать, сколько записей истории и снимков конфигурации хранить, и очистить их вручную. Длинные списки свёрнуты, страница стала короче. Обновление ставится поверх, настройки переносятся сами.
Что нужно знать при обновлении
- Снимков по умолчанию хранится 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 записей.