retention в iobackup работает по
metadata/manifests, а не по glob-поиску файлов. При
удалении backup retention удаляет не только manifest, но и физические
объекты в destination (artifact + sidecar manifest-файл, если
поддерживается provider-ом).
bbolt.В job можно описывать правила вида:
keep_last_dayskeep_weekdayskeep_month_dayskeep_last_successfulBackup удаляется только если он не попадает ни под одно правило.
Это позволяет применять policy одинаково для local и S3 destination.
Каждое действие retention логируется в agent log как
retention cleanup event:
backup_id, job_id,
task_iddestination_typeartifact_pathstatus (deleted,
artifact_delete_failed,
manifest_delete_failed)error (если есть)Также события доступны через API:
curl -sS "http://127.0.0.1:8735/api/v1/retention/events"
curl -sS "http://127.0.0.1:8735/api/v1/retention/events?job_id=<job_id>"
curl -sS "http://127.0.0.1:8735/api/v1/retention/events?status=deleted"keep_*, плюс записи в metadata, на которые ссылается
политика (manifest/sidecar в пределах поддержки провайдера).metadata_retention / per-type дни —
отдельная эксплуатационная политика для истории в bolt
(runs, logs, events, revisions, …). В 0.17-fix.60 модель
foundation: per-type лимиты задаются в конфиге агента,
но отдельный worker, который агрессивно чистит каждый тип по
своим дням, может быть неполным — уточняйте по коду и
docs/architecture/metadata.md; не ожидайте, что «все типы
уже подчищены автоматически как в финальном дизайне».При успешном backup рядом с data-объектом создаётся
sidecar (role=manifest в
artifacts[]). При удалении по retention или явном delete
агент старается удалить оба объекта. Если sidecar
отсутствует (ручное вмешательство, сбой провайдера), rebuild
метаданных из object storage будет неполным — опирайтесь на
запись в bolt и резервные копии metadata DB.
Следующее поведение в roadmap / hardening, не полагайтесь на него в текущей версии как на гарантию:
enabled, dry_run, алиасы
keep_days / keep_last), dry-run audit.