File size: 800 Bytes
33962ff | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | """Retention planning; deleting Git files does not erase historical Git blobs.
Archive/compact history only in an approved maintenance procedure after restore.
"""
import argparse,json,sys
from pathlib import Path
sys.path.insert(0,str(Path(__file__).resolve().parent.parent))
from vrag.backup import retention_keep
p=argparse.ArgumentParser();p.add_argument('snapshots',type=Path);p.add_argument('--apply',action='store_true')
if __name__=='__main__':
args=p.parse_args();rows=[(f,json.loads(f.read_text())) for f in args.snapshots.glob('*.json')];keep=retention_keep([e for _,e in rows])
for f,e in rows:
if e.get('coverage_verified') and e.get('ciphertext_sha256') not in keep:
print('Expire',f.name)
if args.apply:f.with_suffix('.age').unlink();f.unlink()
|