{
 "body": {
  "build": {
   "base_image": {
    "digest_pinned": false,
    "reference": "python:3.11-slim"
   },
   "context": "git archive <commit>",
   "dockerfile": "Dockerfile.cluster-node",
   "non_reproducible_observed": [
    {
     "commit": "e1cf69c",
     "image_ids": [
      "sha256:1eec211ebbc029cdb48cb02c919afdbf5a8d08fa463550157cbd6fa5d52b792c",
      "sha256:95d0ddfb2401806daac805c03f7d0b87e34be908252b65f8b4700377c9262525"
     ]
    }
   ],
   "reproducible": false
  },
  "cluster_id": "cain-mr-01",
  "deployment": {
   "atl": {
    "image_id_on_host": "sha256:03a3004e8f2118ba7d2d47dfe5f6bc019aa0a84a0b7ff99c80905e6427564192",
    "replicas": [
     {
      "container": "cain-mr-node-1",
      "image": "cain-cluster-node:mr-81bdf84",
      "image_id": "sha256:03a3004e8f2118ba7d2d47dfe5f6bc019aa0a84a0b7ff99c80905e6427564192"
     }
    ]
   },
   "lax": {
    "image_id_on_host": "sha256:03a3004e8f2118ba7d2d47dfe5f6bc019aa0a84a0b7ff99c80905e6427564192",
    "replicas": [
     {
      "container": "cain-mr-node-3",
      "image": "cain-cluster-node:mr-81bdf84",
      "image_id": "sha256:03a3004e8f2118ba7d2d47dfe5f6bc019aa0a84a0b7ff99c80905e6427564192"
     },
     {
      "container": "cain-mr-node-2",
      "image": "cain-cluster-node:mr-81bdf84",
      "image_id": "sha256:03a3004e8f2118ba7d2d47dfe5f6bc019aa0a84a0b7ff99c80905e6427564192"
     }
    ]
   },
   "mia": {
    "image_id_on_host": "sha256:03a3004e8f2118ba7d2d47dfe5f6bc019aa0a84a0b7ff99c80905e6427564192",
    "replicas": [
     {
      "container": "cain-mr-node-4",
      "image": "cain-cluster-node:mr-81bdf84",
      "image_id": "sha256:03a3004e8f2118ba7d2d47dfe5f6bc019aa0a84a0b7ff99c80905e6427564192"
     }
    ]
   }
  },
  "generated_at": "2026-09-26T21:44:17Z",
  "git_commit": "81bdf8418178750be8def719d38c6739d291d0c5",
  "image": "cain-cluster-node:mr-81bdf84",
  "image_id": "sha256:03a3004e8f2118ba7d2d47dfe5f6bc019aa0a84a0b7ff99c80905e6427564192",
  "not_claimed": [
   "reproducible builds (the same commit rebuilt gave different image IDs)",
   "a pinned base image digest",
   "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": "81bdf8418178750be8def719d38c6739d291d0c5",
   "commit_files_sha256": "e25da5d656e70d673cc6b4c62a476a621f8ef5702d54bdf9676191115a9e39ef",
   "hardware_rooted": false,
   "image_files_sha256": "e25da5d656e70d673cc6b4c62a476a621f8ef5702d54bdf9676191115a9e39ef",
   "schema": "cain42.software_measurement_proof.v1",
   "verdict": "SOFTWARE_MEASURED_MATCH"
  },
  "type": "CAIN42/RELEASE-MANIFEST/v1"
 },
 "body_sha256": "e344d45a632c96750b979ae0f3770af854e791ebe02d6e10e8436ad2ca29071b",
 "release_public_key_b64": "5Q+M4XjBv4crEeecvf2Z/95q1e4tK3MONh6qGGeT5gU=",
 "signature_b64": "1unQBjB/iJIOLfRvSJ+lhBBBe+2imN8p10B/2EuX5NxflOnyNAz4f/ctSm7U0ddscy5BeM2jbbDKmEC7j/rGCA=="
}