{
  "compliance_frameworks": [
    {
      "control_id": "A1.3",
      "description": "The entity tests recovery plan procedures supporting system recovery to meet its objectives.",
      "evidence": "4 restore tests in drill_attestations, 4 of them signed with Ed25519.",
      "framework": "SOC 2"
    },
    {
      "control_id": "A.8.13",
      "description": "Information backup: backup copies of information, software and systems shall be maintained and regularly tested.",
      "evidence": "3 of 3 snapshots in retention_attestations written under S3 Object Lock; 4 restore tests in drill_attestations, 4 of them signed with Ed25519.",
      "framework": "ISO/IEC 27001:2022"
    },
    {
      "control_id": "45 CFR 164.308(a)(7)(ii)(A)",
      "description": "Data backup plan: establish and implement procedures to create and maintain retrievable exact copies of electronic protected health information.",
      "evidence": "Encrypted with Age (X25519) before upload. Only the organization can decrypt these backups. 3 of 3 snapshots in retention_attestations written under S3 Object Lock.",
      "framework": "HIPAA Security Rule"
    },
    {
      "control_id": "Article 32(1)(c)",
      "description": "The ability to restore the availability and access to personal data in a timely manner in the event of a physical or technical incident.",
      "evidence": "4 restore tests in drill_attestations, 4 of them signed with Ed25519, each comparing restored tables, rows and digests with the backup.",
      "framework": "GDPR"
    }
  ],
  "drill_attestations": [
    {
      "assertions": [
        {
          "actual": "Decrypted with the private key",
          "expected": "Age X25519 payload authenticates and decrypts cleanly",
          "name": "DecryptionIntegrity",
          "passed": true
        },
        {
          "actual": "6a5c2d9831f6a915963884a2113d06be361cdc3774a37c0e5209543366b50953",
          "expected": "6a5c2d9831f6a915963884a2113d06be361cdc3774a37c0e5209543366b50953",
          "message": "Decrypted stream SHA-256 matches the remote server record exactly",
          "name": "DigestIntegrity",
          "passed": true
        },
        {
          "actual": "6a5c2d9831f6a915963884a2113d06be361cdc3774a37c0e5209543366b50953",
          "expected": "6a5c2d9831f6a915963884a2113d06be361cdc3774a37c0e5209543366b50953",
          "message": "Sidecar, ciphertext and decrypted stream match the digests recorded at backup time",
          "name": "RemoteServerRecord",
          "passed": true
        },
        {
          "actual": "present",
          "expected": "present",
          "message": "Found sealed manifest with 39 declared entries",
          "name": "Sealed Manifest Verified",
          "passed": true
        },
        {
          "actual": "36 files",
          "expected": "36 files",
          "message": "Archive contains 36 files (sealed: 36)",
          "name": "Archive File Count Matches Manifest",
          "passed": true
        },
        {
          "actual": "2777088 bytes",
          "expected": "2777088 bytes",
          "message": "Archive contains 2777088 bytes (sealed: 2777088)",
          "name": "Archive Byte Volume Matches Manifest",
          "passed": true
        },
        {
          "actual": "0 mismatched",
          "expected": "39 entries as sealed",
          "message": "Every entry, type and symlink target matches the sealed manifest",
          "name": "Archive Entries Match Sealed Manifest",
          "passed": true
        },
        {
          "actual": "every file's digest as sealed",
          "expected": "every file's digest as sealed",
          "message": "All file digests match sealed manifest",
          "name": "File-Level SHA-256 Digests Verified",
          "passed": true
        }
      ],
      "certificate_hash": "cert_sg_66e1f51e331ac1a4c9eb86ec222a781e0942c7c7023f138306b243654a24dfc4",
      "completed_at": "2026-10-03T16:02:11.958721Z",
      "duration_ms": 12,
      "extensions_booted": null,
      "node_id": "node-1e59ab89--uploads",
      "prev_hash": "cert_sg_09a6960b7313eba9017d6110d0e79c50e3a84b1264e032e778f3a72f21b33137",
      "rows_restored": 36,
      "sandbox_engine": "in-memory-dry-restore",
      "signature": "34530aad4928c2c742ef1305e848cfa5d884b0c5b4cc0c56131808caf0ea50d8a8915bc1937cc8731406e083c315b26bff70e1f49599fd1e6ca2a115b1ea2b09",
      "signing_key_id": "sgd_attest_d0f18301ed04981f",
      "snapshot_id": "snap-20261003-160207-112a16",
      "started_at": "2026-10-03T16:02:11.947584Z",
      "status": "passed",
      "surface_type": "files",
      "tables_restored": 3,
      "total_containers": 3,
      "total_items": 36,
      "verification_id": "verif-dry-331c5c72"
    },
    {
      "assertions": [
        {
          "actual": "Decrypted with the private key",
          "expected": "Age X25519 payload authenticates and decrypts cleanly",
          "name": "DecryptionIntegrity",
          "passed": true
        },
        {
          "actual": "6a5c2d9831f6a915963884a2113d06be361cdc3774a37c0e5209543366b50953",
          "expected": "6a5c2d9831f6a915963884a2113d06be361cdc3774a37c0e5209543366b50953",
          "message": "Decrypted stream SHA-256 matches the remote server record exactly",
          "name": "DigestIntegrity",
          "passed": true
        },
        {
          "actual": "6a5c2d9831f6a915963884a2113d06be361cdc3774a37c0e5209543366b50953",
          "expected": "6a5c2d9831f6a915963884a2113d06be361cdc3774a37c0e5209543366b50953",
          "message": "Sidecar, ciphertext and decrypted stream match the digests recorded at backup time",
          "name": "RemoteServerRecord",
          "passed": true
        },
        {
          "actual": "present",
          "expected": "present",
          "message": "Found sealed manifest with 39 declared entries",
          "name": "Sealed Manifest Verified",
          "passed": true
        },
        {
          "actual": "36 files",
          "expected": "36 files",
          "message": "Archive contains 36 files (sealed: 36)",
          "name": "Archive File Count Matches Manifest",
          "passed": true
        },
        {
          "actual": "2777088 bytes",
          "expected": "2777088 bytes",
          "message": "Archive contains 2777088 bytes (sealed: 2777088)",
          "name": "Archive Byte Volume Matches Manifest",
          "passed": true
        },
        {
          "actual": "0 mismatched",
          "expected": "39 entries as sealed",
          "message": "Every entry, type and symlink target matches the sealed manifest",
          "name": "Archive Entries Match Sealed Manifest",
          "passed": true
        },
        {
          "actual": "every file's digest as sealed",
          "expected": "every file's digest as sealed",
          "message": "All file digests match sealed manifest",
          "name": "File-Level SHA-256 Digests Verified",
          "passed": true
        }
      ],
      "certificate_hash": "cert_sg_09a6960b7313eba9017d6110d0e79c50e3a84b1264e032e778f3a72f21b33137",
      "completed_at": "2026-10-03T16:02:08.390163Z",
      "duration_ms": 10,
      "extensions_booted": null,
      "node_id": "node-1e59ab89--uploads",
      "prev_hash": "genesis",
      "rows_restored": 36,
      "sandbox_engine": "in-memory-dry-restore",
      "signature": "f31dd96a91dee6598fe7268b68fd85336a65326da6589c5f8d40fc3d3eb6008b646ee8fb406dee8a282fc42a5ddce36c4255c68887011b0832d64cd596051c00",
      "signing_key_id": "sgd_attest_d0f18301ed04981f",
      "snapshot_id": "snap-20261003-160207-112a16",
      "started_at": "2026-10-03T16:02:08.380822Z",
      "status": "passed",
      "surface_type": "files",
      "tables_restored": 3,
      "total_containers": 3,
      "total_items": 36,
      "verification_id": "verif-dry-ef311891"
    },
    {
      "assertions": [
        {
          "actual": "da3ca6f50beebda676ad61c158deaa458d0c3c9dfca1715ce3a84c52d8af463b",
          "expected": "da3ca6f50beebda676ad61c158deaa458d0c3c9dfca1715ce3a84c52d8af463b",
          "message": "Decrypted stream SHA-256 matches the remote server record exactly",
          "name": "DigestIntegrity",
          "passed": true
        },
        {
          "actual": "da3ca6f50beebda676ad61c158deaa458d0c3c9dfca1715ce3a84c52d8af463b",
          "expected": "da3ca6f50beebda676ad61c158deaa458d0c3c9dfca1715ce3a84c52d8af463b",
          "message": "Sidecar, ciphertext and decrypted stream match the digests recorded at backup time",
          "name": "RemoteServerRecord",
          "passed": true
        },
        {
          "actual": "4 tables",
          "expected": "4 tables",
          "name": "TableCountMatch",
          "passed": true
        },
        {
          "actual": "45404 rows",
          "expected": "45404 rows",
          "name": "RowCountMatch",
          "passed": true
        },
        {
          "actual": "[]",
          "expected": "[]",
          "name": "ExtensionBootCheck",
          "passed": true
        },
        {
          "actual": "pg_dump 18.6",
          "expected": "schema from pg_dump",
          "name": "Schema Captured By pg_dump",
          "passed": true
        }
      ],
      "certificate_hash": "cert_sg_5589e8b170277fd955261211d9db3188e70566e1a5f7d8cc043edc3fddd18263",
      "completed_at": "2026-10-03T16:02:20.00928Z",
      "database_name": "shop",
      "duration_ms": 318,
      "extensions_booted": null,
      "node_id": "node-1e59ab89--shop-db",
      "prev_hash": "cert_sg_f891c53676758b875f59061327fa087f10c53f2ab5c35f66078a2f436ec51438",
      "rows_restored": 45404,
      "sandbox_engine": "ephemeral-postgres-sandbox",
      "signature": "343606bfea56845bef0dfc6e9528fa617c95d9995fba617587d3531935c0d551e78bcc7097948cedf7f78083e451a81b842ae255c15ae733f0ec9382c0514a0a",
      "signing_key_id": "sgd_attest_d0f18301ed04981f",
      "snapshot_id": "snap-20261003-160211-06e021",
      "started_at": "2026-10-03T16:02:19.691974Z",
      "status": "passed",
      "surface_type": "postgres",
      "tables_restored": 4,
      "verification_id": "verif-4075149c"
    },
    {
      "assertions": [
        {
          "actual": "aef961f5cdff93f3ef610bb3d1d181278c30b63276196d2a546aae64e5be73b5",
          "expected": "aef961f5cdff93f3ef610bb3d1d181278c30b63276196d2a546aae64e5be73b5",
          "message": "Decrypted stream SHA-256 matches the remote server record exactly",
          "name": "DigestIntegrity",
          "passed": true
        },
        {
          "actual": "aef961f5cdff93f3ef610bb3d1d181278c30b63276196d2a546aae64e5be73b5",
          "expected": "aef961f5cdff93f3ef610bb3d1d181278c30b63276196d2a546aae64e5be73b5",
          "message": "Sidecar, ciphertext and decrypted stream match the digests recorded at backup time",
          "name": "RemoteServerRecord",
          "passed": true
        },
        {
          "actual": "4 tables",
          "expected": "4 tables",
          "name": "TableCountMatch",
          "passed": true
        },
        {
          "actual": "45404 rows",
          "expected": "45404 rows",
          "name": "RowCountMatch",
          "passed": true
        },
        {
          "actual": "[]",
          "expected": "[]",
          "name": "ExtensionBootCheck",
          "passed": true
        },
        {
          "actual": "pg_dump 18.6",
          "expected": "schema from pg_dump",
          "name": "Schema Captured By pg_dump",
          "passed": true
        }
      ],
      "certificate_hash": "cert_sg_f891c53676758b875f59061327fa087f10c53f2ab5c35f66078a2f436ec51438",
      "completed_at": "2026-10-03T16:02:08.345314Z",
      "database_name": "shop",
      "duration_ms": 155,
      "extensions_booted": null,
      "node_id": "node-1e59ab89--shop-db",
      "prev_hash": "genesis",
      "rows_restored": 45404,
      "sandbox_engine": "ephemeral-postgres-sandbox",
      "signature": "5498fd23c7002e12623323da1c5018dc02490ea6bd69c767f9a7a942f318cd3db898766b58627744980190879020c3d8d0d0001f77ce29e008f79fc0c099b300",
      "signing_key_id": "sgd_attest_d0f18301ed04981f",
      "snapshot_id": "snap-20261003-160206-2e27d9",
      "started_at": "2026-10-03T16:02:08.191184Z",
      "status": "passed",
      "surface_type": "postgres",
      "tables_restored": 4,
      "verification_id": "verif-6ba04db5"
    }
  ],
  "export_id": "evd-a19a6bc3",
  "generated_at": "2026-10-03T16:02:20.029937Z",
  "key_custody": [
    {
      "key_held_by": "host",
      "name": "shop-db",
      "node_id": "node-1e59ab89--shop-db"
    },
    {
      "key_held_by": "host",
      "name": "uploads",
      "node_id": "node-1e59ab89--uploads"
    }
  ],
  "org_id": "org-97f7399f",
  "org_name": "Acme's Workspace",
  "plan": "scale",
  "recovery": {
    "as_of": "2026-10-03T16:02:20.029937Z",
    "gap_window_days": 30,
    "org_id": "org-97f7399f",
    "restore_window_days": 90,
    "surfaces": [
      {
        "counts": {
          "passed_drills_90d": 2,
          "restore_drills_90d": 2,
          "snapshots_30d": 2
        },
        "name": "shop-db",
        "node_id": "node-1e59ab89--shop-db",
        "project_id": "proj-17e2fa27",
        "recovery_point": {
          "age_seconds": 8,
          "anomalous": false,
          "snapshot_at": "2026-10-03T16:02:11.517922Z"
        },
        "restore_time": {
          "drills": 2,
          "median_raw_size_bytes": 1287680,
          "on_host": 2,
          "on_safegrd": 0,
          "p50_ms": 155,
          "p95_ms": 318,
          "window_days": 90
        },
        "surface_type": "postgres",
        "target": {
          "schedule": "@daily",
          "seconds": 86400
        },
        "verified_recovery_point": {
          "age_seconds": 8,
          "depth": "sandbox",
          "drilled_at": "2026-10-03T16:02:20.00928Z",
          "snapshot_at": "2026-10-03T16:02:11.517922Z"
        },
        "worst_gap": {
          "from": "2026-10-03T16:02:06.305775Z",
          "open": true,
          "over_target": false,
          "seconds": 8,
          "since_first_backup": true,
          "window_days": 30
        }
      },
      {
        "counts": {
          "passed_drills_90d": 2,
          "restore_drills_90d": 0,
          "snapshots_30d": 1
        },
        "name": "uploads",
        "no_restore_time": "in_memory_only",
        "no_restore_time_words": "Drilled in memory only. Those drills read the backup without writing it out, so they are not a restore time.",
        "node_id": "node-1e59ab89--uploads",
        "project_id": "proj-17e2fa27",
        "recovery_point": {
          "age_seconds": 13,
          "anomalous": false,
          "snapshot_at": "2026-10-03T16:02:07Z"
        },
        "restore_time": null,
        "surface_type": "files",
        "target": {
          "schedule": "@daily",
          "seconds": 86400
        },
        "verified_recovery_point": {
          "age_seconds": 13,
          "depth": "in_memory",
          "drilled_at": "2026-10-03T16:02:11.958721Z",
          "snapshot_at": "2026-10-03T16:02:07Z"
        },
        "worst_gap": {
          "from": "2026-10-03T16:02:07Z",
          "open": true,
          "over_target": false,
          "seconds": 13,
          "since_first_backup": true,
          "window_days": 30
        }
      }
    ]
  },
  "retention_attestations": [
    {
      "created_at": "2026-10-03T16:02:07Z",
      "node_id": "node-1e59ab89--uploads",
      "sha256_checksum": "6a5c2d9831f6a915963884a2113d06be361cdc3774a37c0e5209543366b50953",
      "snapshot_id": "snap-20261003-160207-112a16",
      "storage_uri": "s3://acme-backups/safegrd/snapshots/node-1e59ab89--uploads/snap-20261003-160207-112a16.safegrd",
      "surface_type": "files",
      "worm_mode": "COMPLIANCE",
      "worm_retention_until": "2026-10-17T16:02:07.100349Z"
    },
    {
      "created_at": "2026-10-03T16:02:11.517922Z",
      "node_id": "node-1e59ab89--shop-db",
      "sha256_checksum": "da3ca6f50beebda676ad61c158deaa458d0c3c9dfca1715ce3a84c52d8af463b",
      "snapshot_id": "snap-20261003-160211-06e021",
      "storage_uri": "s3://acme-backups/safegrd/snapshots/node-1e59ab89--shop-db/snap-20261003-160211-06e021.safegrd",
      "surface_type": "postgres",
      "worm_mode": "COMPLIANCE",
      "worm_retention_until": "2026-10-17T16:02:11.517897Z"
    },
    {
      "created_at": "2026-10-03T16:02:06.305775Z",
      "node_id": "node-1e59ab89--shop-db",
      "sha256_checksum": "aef961f5cdff93f3ef610bb3d1d181278c30b63276196d2a546aae64e5be73b5",
      "snapshot_id": "snap-20261003-160206-2e27d9",
      "storage_uri": "s3://acme-backups/safegrd/snapshots/node-1e59ab89--shop-db/snap-20261003-160206-2e27d9.safegrd",
      "surface_type": "postgres",
      "worm_mode": "COMPLIANCE",
      "worm_retention_until": "2026-10-17T16:02:06.305558Z"
    }
  ],
  "scope": "Evidence for the controls listed. It is not a certification or an audit opinion.",
  "signing_key": {
    "algorithm": "Ed25519",
    "key_id": "sgd_attest_d0f18301ed04981f",
    "public_key_hex": "d0f18301ed04981fb933aedb74512e5507d978fbbc32c14906f5b1423caec41e"
  }
}