#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" cd "$ROOT_DIR" SEVERITY="MEDIUM" CATEGORY="PDN_SUSPECTED" SUMMARY="" REQUEST_ID="" TRACK_NUMBER="" REPORTER="" OUTPUT_FILE="" usage() { cat < --category --summary --request-id --track-number --reporter --output Explicit output markdown file path -h, --help Examples: scripts/ops/incident_checklist.sh --severity HIGH --category UNAUTHORIZED_ACCESS --summary "Suspicious request card reads" USAGE } while [[ $# -gt 0 ]]; do case "$1" in --severity) SEVERITY="${2:-}"; shift 2 ;; --category) CATEGORY="${2:-}"; shift 2 ;; --summary) SUMMARY="${2:-}"; shift 2 ;; --request-id) REQUEST_ID="${2:-}"; shift 2 ;; --track-number) TRACK_NUMBER="${2:-}"; shift 2 ;; --reporter) REPORTER="${2:-}"; shift 2 ;; --output) OUTPUT_FILE="${2:-}"; shift 2 ;; -h|--help) usage; exit 0 ;; *) echo "[ERROR] Unknown argument: $1" >&2; usage; exit 1 ;; esac done case "$(echo "$SEVERITY" | tr '[:lower:]' '[:upper:]')" in LOW|MEDIUM|HIGH|CRITICAL) ;; *) echo "[ERROR] Invalid severity: $SEVERITY" >&2; exit 1 ;; esac SEVERITY="$(echo "$SEVERITY" | tr '[:lower:]' '[:upper:]')" if [[ -z "$SUMMARY" ]]; then SUMMARY="Initial triage started via incident checklist" fi TS_UTC="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" TS_FILE="$(date -u +"%Y%m%d-%H%M%S")" HOSTNAME_VALUE="$(hostname)" if [[ -z "$OUTPUT_FILE" ]]; then mkdir -p reports/incidents OUTPUT_FILE="reports/incidents/incident-${TS_FILE}.md" else mkdir -p "$(dirname "$OUTPUT_FILE")" fi BACKEND_HEALTH="unknown" CHAT_HEALTH="unknown" EMAIL_HEALTH="unknown" if curl -fsS http://localhost:8081/health >/dev/null 2>&1; then BACKEND_HEALTH="ok"; else BACKEND_HEALTH="failed"; fi if curl -fsS http://localhost:8081/chat-health >/dev/null 2>&1; then CHAT_HEALTH="ok"; else CHAT_HEALTH="failed"; fi if curl -fsS http://localhost:8081/email-health >/dev/null 2>&1; then EMAIL_HEALTH="ok"; else EMAIL_HEALTH="failed"; fi cat > "$OUTPUT_FILE" < reports/incidents/logs-${TS_FILE}.txt ~~~ REPORT echo "[OK] Incident checklist created: $OUTPUT_FILE"