{
  "schema_version": 1,
  "channel": "homelab-runtime",
  "command_id": "BACKUP-UNSAFE-SOURCE-CAPTURE-072",
  "status": "OK",
  "rc": 0,
  "host": "pve01",
  "mode": "change",
  "component": "backup-audit",
  "started_at_utc": "2026-07-21T12:25:10Z",
  "finished_at_utc": "2026-07-21T12:25:10Z",
  "reference_register_checked": true,
  "reference_sha256": "5763f2f8edc75fcf6f3951f8c95896d1cc112ceccb6cf5b64a383f540a4deb8e",
  "error_register_checked": true,
  "error_register_sha256": "f6d592c8d53021fe9feeb81a7e0cca33f4b44501143f6378290486e46d250bb1",
  "command_sha256": "f79a127b4f27e1cdf886c681d5c7257244ec31a6c903e96cd53fc75d7a1ed8d4",
  "duplicate_failed_command_blocked": false,
  "block_reason": null,
  "execution_started": true,
  "changes_made": true,
  "sanitized": true,
  "secrets_included": false,
  "private_addresses_included": false,
  "raw_evidence_retained_locally": true,
  "raw_evidence_sha256": "b3a164a5b5260930b012305a47a24bc11db166e2bf6a6f25bfd1e1914941c5c7",
  "sanitized_output_sha256": "b3a164a5b5260930b012305a47a24bc11db166e2bf6a6f25bfd1e1914941c5c7",
  "output_truncated_in_json": false,
  "full_sanitized_output_url": "https://git.gram1.ru/.well-known/homelab-runtime/latest.txt",
  "output": "========== NODE=pve01 PIPELINE=/usr/local/sbin/appbackup-dockge-stacks ==========\nFILE=/usr/local/sbin/appbackup-dockge-stacks,MODE=700,OWNER=root:root,SIZE=4097,MTIME=2026-07-10 04:14:10.050376764 +0300\n--- RELEVANT_LINES ---\n14:RA=\"${REMOTE_A%/}/${NODE}/apps/${APP}/${JOB}\"\n15:RB=\"${REMOTE_B%/}/${NODE}/apps/${APP}/${JOB}\"\n16:RAL=\"${REMOTE_A%/}/${NODE}/apps/${APP}/latest-backup-index.json\"\n17:RBL=\"${REMOTE_B%/}/${NODE}/apps/${APP}/latest-backup-index.json\"\n30:rm -rf \"$PAYLOAD\"\n32:SHA=\"$(sha256sum \"$STAGE/$ARCHIVE\" | cut -d\" \" -f1)\"\n51:echo \"[STEP] local checksum\"\n52:(cd \"$STAGE\" && sha256sum \"$ARCHIVE\" manifest.json latest-backup-index.json > checksums.sha256 && sha256sum -c checksums.sha256 && tar -tzf \"$ARCHIVE\" >/dev/null && jq -e . manifest.json >/dev/null)\n54:echo \"[STEP] upload cloud A metadata\"; rclone copy \"$STAGE\" \"$RA\" --exclude \"$ARCHIVE\" --exclude \"$ARCHIVE.sha256\" --transfers=4 --checkers=8 --retries=5 --low-level-retries=20 --stats=30s\n55:echo \"[STEP] upload cloud A archive chunks\"; rclone deletefile \"$RA/$ARCHIVE\" >/dev/null 2>&1 || true; CHUNK_TMP_BASE=\"${CHUNK_TMP_BASE:-/mnt/staging/rclone-chunks}\" homelab-rclone-copy-chunked \"$STAGE/$ARCHIVE\" \"$RA/$ARCHIVE\"\n56:echo \"[STEP] upload cloud B metadata\"; rclone copy \"$STAGE\" \"$RB\" --exclude \"$ARCHIVE\" --exclude \"$ARCHIVE.sha256\" --transfers=4 --checkers=8 --retries=5 --low-level-retries=20 --stats=30s\n57:echo \"[STEP] upload cloud B archive chunks\"; rclone deletefile \"$RB/$ARCHIVE\" >/dev/null 2>&1 || true; CHUNK_TMP_BASE=\"${CHUNK_TMP_BASE:-/mnt/staging/rclone-chunks}\" homelab-rclone-copy-chunked \"$STAGE/$ARCHIVE\" \"$RB/$ARCHIVE\"\n58:echo \"[STEP] verify cloud A chunked\"; CHUNK_TMP_BASE=\"${CHUNK_TMP_BASE:-/mnt/staging/rclone-chunks}\" homelab-stage-verify-chunked \"$RA\" \"$ARCHIVE\" \"$VERIFY/a\" \"$JOB\"\n59:echo \"[STEP] verify cloud B chunked\"; CHUNK_TMP_BASE=\"${CHUNK_TMP_BASE:-/mnt/staging/rclone-chunks}\" homelab-stage-verify-chunked \"$RB\" \"$ARCHIVE\" \"$VERIFY/b\" \"$JOB\"\n60:echo \"[STEP] upload latest index\"; rclone copyto \"$STAGE/latest-backup-index.json\" \"$RAL\"; rclone copyto \"$STAGE/latest-backup-index.json\" \"$RBL\"; rclone cat \"$RAL\" | jq -e --arg job \"$JOB\" \".job_id == \\$job\" >/dev/null; rclone cat \"$RBL\" | jq -e --arg job \"$JOB\" \".job_id == \\$job\" >/dev/null\n76:rm -rf \"$STAGE\" \"$VERIFY\"\n--- UNIT_REFERENCES ---\nUNSAFE_SOURCE_CAPTURE=COMPLETE\n"
}
