{
 "body": {
  "build": {
   "base_image": {
    "digest_pinned": true,
    "reference": "python:3.11-slim@sha256:e41613d42d4891e4930f79523f93f81bbc7632584ec65e36ab055f41a800b41e"
   },
   "context": "git archive <commit>",
   "dockerfile": "Dockerfile.cluster-node",
   "non_reproducible_observed": [
    {
     "commit": "e1cf69c",
     "image_ids": [
      "sha256:1eec211ebbc029cdb48cb02c919afdbf5a8d08fa463550157cbd6fa5d52b792c",
      "sha256:95d0ddfb2401806daac805c03f7d0b87e34be908252b65f8b4700377c9262525"
     ]
    }
   ],
   "reproducibility_evidence": {
    "independent_builds": [
     {
      "build_seconds": 199,
      "image_id": "sha256:075c2434dc725eadba0b2eb435fd9373ed96359bfac343ba0709ce727fee0f19",
      "tag": "cain-cluster-node:repro-948b189-a"
     },
     {
      "build_seconds": 215,
      "image_id": "sha256:075c2434dc725eadba0b2eb435fd9373ed96359bfac343ba0709ce727fee0f19",
      "tag": "cain-cluster-node:repro-948b189-b"
     }
    ],
    "method": "two independent builds from `git archive <commit>`, --no-cache, SOURCE_DATE_EPOCH=commit time, BuildKit rewrite-timestamp=true (image exporter, unpack=false), no BuildKit provenance/SBOM attestations (they embed per-build IDs), base pinned by digest, every Python package pinned (--no-deps)",
    "source_date_epoch": 1790482012
   },
   "reproducible": true
  },
  "cluster_id": "cain-mr-02",
  "deployment": {
   "atl": {
    "image_id_on_host": "sha256:075c2434dc725eadba0b2eb435fd9373ed96359bfac343ba0709ce727fee0f19",
    "replicas": [
     {
      "container": "cain-mr2-node-1",
      "image": "cain-cluster-node:mr-948b189",
      "image_id": "sha256:075c2434dc725eadba0b2eb435fd9373ed96359bfac343ba0709ce727fee0f19"
     }
    ]
   },
   "lax": {
    "image_id_on_host": "sha256:075c2434dc725eadba0b2eb435fd9373ed96359bfac343ba0709ce727fee0f19",
    "replicas": [
     {
      "container": "cain-mr2-node-2",
      "image": "cain-cluster-node:mr-948b189",
      "image_id": "sha256:075c2434dc725eadba0b2eb435fd9373ed96359bfac343ba0709ce727fee0f19"
     }
    ]
   },
   "mia": {
    "image_id_on_host": "sha256:075c2434dc725eadba0b2eb435fd9373ed96359bfac343ba0709ce727fee0f19",
    "replicas": [
     {
      "container": "cain-mr2-node-3",
      "image": "cain-cluster-node:mr-948b189",
      "image_id": "sha256:075c2434dc725eadba0b2eb435fd9373ed96359bfac343ba0709ce727fee0f19"
     }
    ]
   },
   "sjc": {
    "image_id_on_host": "sha256:075c2434dc725eadba0b2eb435fd9373ed96359bfac343ba0709ce727fee0f19",
    "replicas": [
     {
      "container": "cain-mr2-node-4",
      "image": "cain-cluster-node:mr-948b189",
      "image_id": "sha256:075c2434dc725eadba0b2eb435fd9373ed96359bfac343ba0709ce727fee0f19"
     }
    ]
   }
  },
  "generated_at": "2026-09-27T04:38:08Z",
  "git_commit": "948b1895bec0490279aff60b372d158c70722344",
  "image": "cain-cluster-node:mr-948b189",
  "image_id": "sha256:075c2434dc725eadba0b2eb435fd9373ed96359bfac343ba0709ce727fee0f19",
  "not_claimed": [
   "reproducibility on another day or machine (Debian packages come from the live apt index)",
   "hardware-rooted attestation (software measurement only)",
   "an independent builder or transparency log",
   "that the release key is held in an HSM"
  ],
  "sbom": {
   "format": "python-distributions/v1",
   "packages": [
    [
     "Authlib",
     "1.3.0"
    ],
    [
     "PyJWT",
     "2.14.0"
    ],
    [
     "PyYAML",
     "6.0.3"
    ],
    [
     "annotated-doc",
     "0.0.5"
    ],
    [
     "annotated-types",
     "0.8.0"
    ],
    [
     "anyio",
     "4.15.1"
    ],
    [
     "attrs",
     "26.1.0"
    ],
    [
     "certifi",
     "2026.7.22"
    ],
    [
     "cffi",
     "2.1.1"
    ],
    [
     "click",
     "8.5.0"
    ],
    [
     "cryptography",
     "50.0.0"
    ],
    [
     "fastapi",
     "0.141.1"
    ],
    [
     "h11",
     "0.16.0"
    ],
    [
     "httpcore",
     "1.0.9"
    ],
    [
     "httpcore2",
     "2.13.1"
    ],
    [
     "httptools",
     "0.8.0"
    ],
    [
     "httpx",
     "0.28.1"
    ],
    [
     "httpx2",
     "2.13.1"
    ],
    [
     "idna",
     "3.20"
    ],
    [
     "jsonschema",
     "4.26.0"
    ],
    [
     "jsonschema-specifications",
     "2025.9.1"
    ],
    [
     "mcp",
     "2.0.0"
    ],
    [
     "mcp-types",
     "2.0.0"
    ],
    [
     "numpy",
     "2.2.1"
    ],
    [
     "opentelemetry-api",
     "1.44.0"
    ],
    [
     "packaging",
     "26.3"
    ],
    [
     "pip",
     "24.0"
    ],
    [
     "prometheus-client",
     "0.19.0"
    ],
    [
     "pycparser",
     "3.0"
    ],
    [
     "pydantic",
     "2.13.5"
    ],
    [
     "pydantic_core",
     "2.46.5"
    ],
    [
     "python-dotenv",
     "1.2.3"
    ],
    [
     "python-multipart",
     "0.0.32"
    ],
    [
     "redis",
     "5.0.8"
    ],
    [
     "referencing",
     "0.37.0"
    ],
    [
     "rpds-py",
     "2026.6.3"
    ],
    [
     "setuptools",
     "79.0.1"
    ],
    [
     "sse-starlette",
     "3.4.11"
    ],
    [
     "starlette",
     "1.7.0"
    ],
    [
     "truststore",
     "0.10.4"
    ],
    [
     "typing-inspection",
     "0.4.4"
    ],
    [
     "typing_extensions",
     "4.16.0"
    ],
    [
     "uvicorn",
     "0.52.1"
    ],
    [
     "uvloop",
     "0.22.1"
    ],
    [
     "watchfiles",
     "1.3.0"
    ],
    [
     "websockets",
     "14.1"
    ],
    [
     "wheel",
     "0.46.3"
    ]
   ],
   "python": "3.11.16"
  },
  "software_measurement": {
   "attestation_class": "SOFTWARE_MEASUREMENT_UNROOTED",
   "claimed_commit": "948b1895bec0490279aff60b372d158c70722344",
   "commit_files_sha256": "52ad6f80becfd67e9f5c4c4e2a5628b618c39d62a59203855738dfa8a0117987",
   "hardware_rooted": false,
   "image_files_sha256": "52ad6f80becfd67e9f5c4c4e2a5628b618c39d62a59203855738dfa8a0117987",
   "schema": "cain42.software_measurement_proof.v1",
   "verdict": "SOFTWARE_MEASURED_MATCH"
  },
  "type": "CAIN42/RELEASE-MANIFEST/v1"
 },
 "body_sha256": "14fcbe52eb3f71f9b1795891d1a094afcb3b1449a7d98cb09423f3de71924dfe",
 "release_public_key_b64": "5Q+M4XjBv4crEeecvf2Z/95q1e4tK3MONh6qGGeT5gU=",
 "signature_b64": "3X8SjEVDyjf74vZih94n7xQFnEylWibEFvfnn47iN6WcZwrqf89AHE7ghjMeBZVmyH/t+lcJYk1hQwwmSEATDg=="
}