{
  "generatedAt": "2026-07-22T01:54:21.916Z",
  "ok": false,
  "summary": {
    "fileCount": 7,
    "presentFileCount": 0,
    "missingFileCount": 7,
    "totalBytes": 0,
    "snapshotCount": 0,
    "recentEventCount": 0,
    "latestSnapshotId": "",
    "latestSnapshotGeneratedAt": "",
    "backupOk": false,
    "backupGitCommitted": false,
    "backupCommit": "",
    "screenshotCount": 0,
    "screenshotBrowser": "/usr/bin/google-chrome-stable",
    "chainOk": true,
    "chainCheckedCount": 0,
    "chainBrokenCount": 0,
    "headChainHash": ""
  },
  "exports": [
    {
      "kind": "events_json",
      "url": "/api/reports/store-audit/events",
      "filters": [
        "limit",
        "id",
        "source",
        "severity",
        "resource",
        "action",
        "key",
        "topic",
        "shopDomain",
        "webhookId",
        "apiVersion",
        "remoteAddress",
        "userAgent",
        "rawBodyHash",
        "payloadHash",
        "chainHash",
        "previousChainHash",
        "hmacVerified",
        "since",
        "until",
        "triggeredSince",
        "triggeredUntil",
        "q"
      ]
    },
    {
      "kind": "events_csv",
      "url": "/api/reports/store-audit/events/export.csv",
      "filters": [
        "limit",
        "id",
        "source",
        "severity",
        "resource",
        "action",
        "key",
        "topic",
        "shopDomain",
        "webhookId",
        "apiVersion",
        "remoteAddress",
        "userAgent",
        "rawBodyHash",
        "payloadHash",
        "chainHash",
        "previousChainHash",
        "hmacVerified",
        "since",
        "until",
        "triggeredSince",
        "triggeredUntil",
        "q"
      ]
    },
    {
      "kind": "events_ndjson",
      "url": "/api/reports/store-audit/events/export.ndjson",
      "filters": [
        "limit",
        "id",
        "source",
        "severity",
        "resource",
        "action",
        "key",
        "topic",
        "shopDomain",
        "webhookId",
        "apiVersion",
        "remoteAddress",
        "userAgent",
        "rawBodyHash",
        "payloadHash",
        "chainHash",
        "previousChainHash",
        "hmacVerified",
        "since",
        "until",
        "triggeredSince",
        "triggeredUntil",
        "q"
      ]
    },
    {
      "kind": "alerts_json",
      "url": "/api/reports/store-audit/alerts",
      "filters": [
        "limit",
        "status",
        "severity"
      ]
    },
    {
      "kind": "alerts_csv",
      "url": "/api/reports/store-audit/alerts/export.csv",
      "filters": [
        "limit",
        "status",
        "severity"
      ]
    },
    {
      "kind": "alerts_ndjson",
      "url": "/api/reports/store-audit/alerts/export.ndjson",
      "filters": [
        "limit",
        "status",
        "severity"
      ]
    },
    {
      "kind": "latest_snapshot_json",
      "url": "/api/reports/store-audit/snapshots/latest",
      "filters": [
        "limit",
        "id",
        "source",
        "severity",
        "resource",
        "action",
        "key",
        "topic",
        "shopDomain",
        "webhookId",
        "apiVersion",
        "remoteAddress",
        "userAgent",
        "rawBodyHash",
        "payloadHash",
        "chainHash",
        "previousChainHash",
        "hmacVerified",
        "since",
        "until",
        "triggeredSince",
        "triggeredUntil",
        "q"
      ]
    },
    {
      "kind": "latest_diff_json",
      "url": "/api/reports/store-audit/diff",
      "filters": [
        "limit",
        "id",
        "source",
        "severity",
        "resource",
        "action",
        "key",
        "topic",
        "shopDomain",
        "webhookId",
        "apiVersion",
        "remoteAddress",
        "userAgent",
        "rawBodyHash",
        "payloadHash",
        "chainHash",
        "previousChainHash",
        "hmacVerified",
        "since",
        "until",
        "triggeredSince",
        "triggeredUntil",
        "q"
      ]
    },
    {
      "kind": "backup_status_json",
      "url": "/api/reports/store-audit/backup",
      "filters": [
        "limit",
        "id",
        "source",
        "severity",
        "resource",
        "action",
        "key",
        "topic",
        "shopDomain",
        "webhookId",
        "apiVersion",
        "remoteAddress",
        "userAgent",
        "rawBodyHash",
        "payloadHash",
        "chainHash",
        "previousChainHash",
        "hmacVerified",
        "since",
        "until",
        "triggeredSince",
        "triggeredUntil",
        "q"
      ]
    },
    {
      "kind": "screenshots_json",
      "url": "/api/reports/store-audit/screenshots",
      "filters": [
        "limit",
        "id",
        "source",
        "severity",
        "resource",
        "action",
        "key",
        "topic",
        "shopDomain",
        "webhookId",
        "apiVersion",
        "remoteAddress",
        "userAgent",
        "rawBodyHash",
        "payloadHash",
        "chainHash",
        "previousChainHash",
        "hmacVerified",
        "since",
        "until",
        "triggeredSince",
        "triggeredUntil",
        "q"
      ]
    },
    {
      "kind": "integrity_json",
      "url": "/api/reports/store-audit/integrity",
      "filters": [
        "limit",
        "id",
        "source",
        "severity",
        "resource",
        "action",
        "key",
        "topic",
        "shopDomain",
        "webhookId",
        "apiVersion",
        "remoteAddress",
        "userAgent",
        "rawBodyHash",
        "payloadHash",
        "chainHash",
        "previousChainHash",
        "hmacVerified",
        "since",
        "until",
        "triggeredSince",
        "triggeredUntil",
        "q"
      ]
    }
  ],
  "backup": {
    "generatedAt": "2026-07-22T01:54:21.914Z",
    "ok": false,
    "reason": "No Store Audit versioned backup has been created yet.",
    "backupDir": "/opt/growthos-petvibess/runtime/audit/versioned-backup",
    "latestDir": "/opt/growthos-petvibess/runtime/audit/versioned-backup/latest",
    "files": [
      {
        "name": "manifest.json",
        "path": "/opt/growthos-petvibess/runtime/audit/versioned-backup/latest/manifest.json",
        "present": false,
        "sizeBytes": 0,
        "modifiedAt": ""
      },
      {
        "name": "snapshot.json",
        "path": "/opt/growthos-petvibess/runtime/audit/versioned-backup/latest/snapshot.json",
        "present": false,
        "sizeBytes": 0,
        "modifiedAt": ""
      },
      {
        "name": "diff.json",
        "path": "/opt/growthos-petvibess/runtime/audit/versioned-backup/latest/diff.json",
        "present": false,
        "sizeBytes": 0,
        "modifiedAt": ""
      },
      {
        "name": "resources-by-type.json",
        "path": "/opt/growthos-petvibess/runtime/audit/versioned-backup/latest/resources-by-type.json",
        "present": false,
        "sizeBytes": 0,
        "modifiedAt": ""
      }
    ],
    "missingFiles": [
      "manifest.json",
      "snapshot.json",
      "diff.json",
      "resources-by-type.json"
    ],
    "restorePlan": [
      {
        "step": 1,
        "title": "Pick the backup point",
        "detail": "Create a Store Audit snapshot before attempting restore.",
        "ready": false
      },
      {
        "step": 2,
        "title": "Review diff evidence",
        "detail": "Open diff.json and resources-by-type.json to confirm which Shopify resources changed before choosing manual rollback actions.",
        "ready": false
      },
      {
        "step": 3,
        "title": "Restore manually in Shopify Admin",
        "detail": "Use the recorded resource data as evidence for manual rollback. This app does not write rollback changes automatically without explicit implementation and approval.",
        "ready": false
      },
      {
        "step": 4,
        "title": "Run a fresh audit",
        "detail": "After rollback, let AI generate a fresh Store Audit snapshot and verify daily-work plus event-chain integrity evidence.",
        "ready": false
      }
    ]
  },
  "screenshots": {
    "generatedAt": "2026-07-22T01:54:21.915Z",
    "ok": false,
    "screenshotDir": "/opt/growthos-petvibess/runtime/audit/screenshots",
    "browser": {
      "path": "/usr/bin/google-chrome-stable",
      "candidates": [
        "/usr/bin/google-chrome-stable",
        "/usr/bin/google-chrome",
        "/usr/bin/chromium",
        "/usr/bin/chromium-browser",
        "/snap/bin/chromium"
      ]
    },
    "latestCapture": null,
    "summary": {
      "screenshotCount": 0,
      "browserAvailable": true,
      "latestCaptureAvailable": false,
      "latestCaptureOk": false
    },
    "screenshots": []
  },
  "chain": {
    "ok": true,
    "checkedCount": 0,
    "brokenCount": 0,
    "headChainHash": "",
    "broken": []
  },
  "files": [
    {
      "kind": "latest_snapshot",
      "path": "/opt/growthos-petvibess/runtime/audit/store-audit-latest.json",
      "present": false,
      "sizeBytes": 0,
      "modifiedAt": null,
      "sha256": "",
      "url": "/api/reports/store-audit/snapshots/latest"
    },
    {
      "kind": "latest_diff",
      "path": "/opt/growthos-petvibess/runtime/audit/store-audit-diff-latest.json",
      "present": false,
      "sizeBytes": 0,
      "modifiedAt": null,
      "sha256": "",
      "url": "/api/reports/store-audit/diff"
    },
    {
      "kind": "snapshot_index",
      "path": "/opt/growthos-petvibess/runtime/audit/store-audit-index.json",
      "present": false,
      "sizeBytes": 0,
      "modifiedAt": null,
      "sha256": "",
      "url": "/api/reports/store-audit/index"
    },
    {
      "kind": "event_log",
      "path": "/opt/growthos-petvibess/runtime/audit/events/store-audit-log.json",
      "present": false,
      "sizeBytes": 0,
      "modifiedAt": null,
      "sha256": "",
      "url": "/api/reports/store-audit/events"
    },
    {
      "kind": "alert_log",
      "path": "/opt/growthos-petvibess/runtime/audit/events/store-audit-alerts.json",
      "present": false,
      "sizeBytes": 0,
      "modifiedAt": null,
      "sha256": "",
      "url": "/api/reports/store-audit/alerts"
    },
    {
      "kind": "versioned_backup_status",
      "path": "/opt/growthos-petvibess/runtime/audit/store-audit-backup-latest.json",
      "present": false,
      "sizeBytes": 0,
      "modifiedAt": null,
      "sha256": "",
      "url": "/api/reports/store-audit/backup"
    },
    {
      "kind": "webhook_ensure",
      "path": "/opt/growthos-petvibess/runtime/audit/store-audit-webhooks-latest.json",
      "present": false,
      "sizeBytes": 0,
      "modifiedAt": null,
      "sha256": "",
      "url": "/api/reports/store-audit/setup"
    }
  ]
}