railiance-platform/scripts/survey-backup-pair-metadata.sh
codex 9b658e3f19
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Admit and install the backup pair writer.
The OpenBao policy matches the reviewed file. Both publisher KV paths are still empty because the bootstrap key cannot create IAM applications.

Assistant: grok
Assistant-Session: 01a11cdb-f9fe-7011-947c-936e72007e54
2026-10-08 22:41:20 +02:00

36 lines
1.2 KiB
Bash
Executable file

#!/bin/sh
# Record KV metadata versions only. Silent for warden access.
set -eu
receipt_dir=/home/worsch/.local/state/railiance/receipts
umask 077
mkdir -p "$receipt_dir"
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' EXIT
python3 - "$tmp" "$receipt_dir/backup-pair-metadata.json" << 'PY'
import json, subprocess, sys
tmp, dest = sys.argv[1:]
paths = [
"platform/workloads/coulomb-social/backup-primary",
"platform/workloads/email-connect/backup-primary",
"platform/workloads/railiance/scaleway/bootstrap",
"platform/workloads/railiance/backup/object-storage",
]
rows = []
for path in paths:
out = subprocess.run(
["bao", "kv", "metadata", "get", "-format=json", path],
capture_output=True,
)
row = {"path": path, "returncode": out.returncode}
if out.returncode == 0:
data = json.loads(out.stdout)["data"]
row["current_version"] = data.get("current_version")
versions = data.get("versions") or {}
row["version_count"] = len(versions)
else:
err = (out.stderr + out.stdout).decode("utf-8", "replace")
row["absent"] = "No value found" in err
rows.append(row)
open(dest, "w").write(json.dumps({"paths": rows}, indent=2) + "\n")
PY
exit 0