Files
carmanagement/scripts/backup-restore-smoke-check.sh
T
root 8fc88ffc14
Build & Push / Pipeline Tests (push) Failing after 59s
Build & Push / Build & Push Docker Image (push) Has been skipped
Test / Type Check (all packages) (push) Failing after 51s
Test / API Unit Tests (push) Has been skipped
Test / Homepage Unit Tests (push) Has been skipped
Test / Carplace Unit Tests (push) Has been skipped
Test / Admin Unit Tests (push) Has been skipped
Test / Dashboard Unit Tests (push) Has been skipped
Test / API Integration Tests (push) Has been skipped
fix production issues
2026-08-12 16:48:41 -04:00

49 lines
1.2 KiB
Bash

#!/usr/bin/env bash
# Validates that a backup directory contains the artifacts required for restore evidence.
# Usage: bash scripts/backup-restore-smoke-check.sh backups/rentaldrivego-prod-<timestamp>
set -euo pipefail
BACKUP_DIR="${1:-}"
if [[ -z "${BACKUP_DIR}" || ! -d "${BACKUP_DIR}" ]]; then
echo "Usage: $0 <backup-directory>" >&2
exit 2
fi
required=(
"postgres.dump"
"manifest.txt"
)
missing=0
for file in "${required[@]}"; do
if [[ ! -f "${BACKUP_DIR}/${file}" ]]; then
echo "MISSING: ${file}"
missing=1
else
echo "OK: ${file}"
fi
done
# Uploads archive is strongly recommended for full RPO evidence.
if [[ -f "${BACKUP_DIR}/api-uploads.tar.gz" ]]; then
echo "OK: api-uploads.tar.gz"
else
echo "WARN: api-uploads.tar.gz missing (object/file restore evidence incomplete)"
fi
if [[ ! -s "${BACKUP_DIR}/manifest.txt" ]]; then
echo "MISSING: manifest.txt is empty"
missing=1
else
echo "---- manifest ----"
cat "${BACKUP_DIR}/manifest.txt"
fi
if [[ "${missing}" -ne 0 ]]; then
echo "Backup smoke check FAILED"
exit 1
fi
echo "Backup smoke check PASSED"
echo "Record RPO/RTO evidence: restore this directory with scripts/docker-prod-restore.sh and time the exercise."