1. Scan
2. Upload
3. S3 Storage
4. Audit
5. Restore
Pipeline
config.yaml
app.log
data/records.db
reports/q1.pdf
reports/q2.pdf
media/logo.png
static/style.css
keys/cert.pem
config.yaml
app.log
data/records.db
reports/q1.pdf
reports/q2.pdf
media/logo.png
static/style.css
keys/cert.pem
x-amz-meta-crc32 · x-amz-meta-compressed
✓ /restore/config.yaml — CRC32 match
✓ /restore/app.log — CRC32 match
✓ /restore/data/records.db — CRC32 match
✓ /restore/reports/q1.pdf — CRC32 match
✓ /restore/reports/q2.pdf — CRC32 match
✓ /restore/media/logo.png — CRC32 match
✓ /restore/static/style.css — CRC32 match
✓ /restore/keys/cert.pem — CRC32 match
Audit — 3-check integrity verification
📄
latest_file
At least one snapshot document exists in MongoDB
pending
🔑
s3_metadata
x-amz-meta-crc32 on the latest S3 object matches MongoDB
pending
💾
restore & verify
Download a random file, recompute CRC32, compare with stored checksum
pending
Structured JSON log output
backup-framework — structured logs