{
  "api_contract": "sourcey.catalog-api/v1",
  "release_id": "sha256:aee4e70d2be957fa9235c225748a328e4eefc0252882edd6db0342960161d941",
  "artifact_sha256": "sha256:080dc492f41a47f5d3867feb3411f6cfb6bdc66901f15581220373a644ef392e",
  "data": {
    "revision_contract": "sourcey.agent-readiness-revision/v1alpha1",
    "agent_readiness_profile_id": "arp_01m4t6w5qc7kz13svbdsk5jn3h",
    "entity_id": "ent_01kyy6rm10g6b7jtmft8n6qr0n",
    "scope": {
      "product": {
        "key": "heroku-platform",
        "name": "Heroku Platform"
      },
      "job": {
        "key": "deployment-create",
        "name": "Create a deployment"
      }
    },
    "catalog_binding": {
      "base_release_id": "sha256:a9835876058c8d85e09b4ddaa097aaa0496254356174dfa72a962973a5001d3f",
      "entity_revision_digest": "sha256:692d610f1102ca2580828e0d8ef648bca2276f19a9a5cdb3119c2b5df74481b9"
    },
    "declaration_revision_digest": "sha256:3dd2c799b7f4203022a4b34b29e331f705c424d93aa367c0d2038ca2b8b0c329",
    "declaration": {
      "declaration_id": "declaration_heroku_heroku_platform_deployment_create",
      "provenance": {
        "repository": "sourcey/agent-ready-services",
        "commit": "ea92d50c8d45b15cfc66aaa8871f3694808428bb",
        "path": "entities/he/heroku.yaml",
        "git_blob_oid": "1aa77c3887c68768476cef33fde4ae3323a37b9e",
        "blob_digest": "sha256:1307f456e42e89b84ab25e0d0f5a693f9c36fd93794f130dd6e949d6c8434e1b"
      },
      "status": "community_declared"
    },
    "lifecycle": "active",
    "effective_from": "2026-10-13T08:45:27.746Z",
    "job_digest": "sha256:ddf2fde714184f458c1d0cbc53e3a9a4522174f2d2d792b2abbe8b9a54eecd36",
    "engine": {
      "name": "sourcey-agent-readiness-engine",
      "version": "0.2.2",
      "engine_digest": "sha256:c1c44a32d96674078f89e96e82a5a2b2d43303e6631cdb61b4a17a391d08d9ca"
    },
    "interface_id": "service-api",
    "binding_id": null,
    "binding_digest": null,
    "runs": [
      {
        "run_digest": "sha256:85bd7f44b3d4511d9abf58bc589b151458e22190f21c1ddae66b841bf2b8b317",
        "label": "probed",
        "finished_at": "2026-10-13T08:45:27.746Z"
      }
    ],
    "steps": [
      {
        "step": "discover",
        "outcome": "machine",
        "timing": null,
        "evidence": [
          {
            "kind": "discovery",
            "run_digest": "sha256:85bd7f44b3d4511d9abf58bc589b151458e22190f21c1ddae66b841bf2b8b317",
            "attempt_digest": "sha256:abefb17b22a570fa0b14a7088ea288db6f0c92f540a87f9fa986cb279722faa1"
          }
        ]
      },
      {
        "step": "authority",
        "outcome": "workaround",
        "timing": "setup",
        "evidence": [
          {
            "kind": "exchange",
            "run_digest": "sha256:85bd7f44b3d4511d9abf58bc589b151458e22190f21c1ddae66b841bf2b8b317",
            "exchange_digest": "sha256:2d7648db96cce300400721b3e31b49822958b056cac8f2d52e5f6ffd69e24b83"
          },
          {
            "kind": "exchange",
            "run_digest": "sha256:85bd7f44b3d4511d9abf58bc589b151458e22190f21c1ddae66b841bf2b8b317",
            "exchange_digest": "sha256:800e601911fd6a80411688c40990e50c8ea50497d64645e336b8edc156a05b70"
          },
          {
            "kind": "exchange",
            "run_digest": "sha256:85bd7f44b3d4511d9abf58bc589b151458e22190f21c1ddae66b841bf2b8b317",
            "exchange_digest": "sha256:16a990cc76eb8877b89329332c517d5a859d556257f26bd15087966cbcdfb2a1"
          }
        ]
      },
      {
        "step": "onboard",
        "outcome": "workaround",
        "timing": "setup",
        "evidence": [
          {
            "kind": "exchange",
            "run_digest": "sha256:85bd7f44b3d4511d9abf58bc589b151458e22190f21c1ddae66b841bf2b8b317",
            "exchange_digest": "sha256:2d7648db96cce300400721b3e31b49822958b056cac8f2d52e5f6ffd69e24b83"
          },
          {
            "kind": "exchange",
            "run_digest": "sha256:85bd7f44b3d4511d9abf58bc589b151458e22190f21c1ddae66b841bf2b8b317",
            "exchange_digest": "sha256:1582b803a30fcf203252cca0ec8ba02f5d185cfa03b104d2c557c75c473f775b"
          },
          {
            "kind": "exchange",
            "run_digest": "sha256:85bd7f44b3d4511d9abf58bc589b151458e22190f21c1ddae66b841bf2b8b317",
            "exchange_digest": "sha256:800e601911fd6a80411688c40990e50c8ea50497d64645e336b8edc156a05b70"
          },
          {
            "kind": "exchange",
            "run_digest": "sha256:85bd7f44b3d4511d9abf58bc589b151458e22190f21c1ddae66b841bf2b8b317",
            "exchange_digest": "sha256:16a990cc76eb8877b89329332c517d5a859d556257f26bd15087966cbcdfb2a1"
          }
        ]
      },
      {
        "step": "pay",
        "outcome": "workaround",
        "timing": "setup",
        "evidence": [
          {
            "kind": "exchange",
            "run_digest": "sha256:85bd7f44b3d4511d9abf58bc589b151458e22190f21c1ddae66b841bf2b8b317",
            "exchange_digest": "sha256:e8e048b7bab8344c5532b26761f3b92783e1c68ae15fde5c88f4af0a0b50342c"
          }
        ]
      },
      {
        "step": "confirm",
        "outcome": "machine",
        "timing": null,
        "evidence": [
          {
            "kind": "exchange",
            "run_digest": "sha256:85bd7f44b3d4511d9abf58bc589b151458e22190f21c1ddae66b841bf2b8b317",
            "exchange_digest": "sha256:2d7648db96cce300400721b3e31b49822958b056cac8f2d52e5f6ffd69e24b83"
          }
        ]
      },
      {
        "step": "sustain",
        "outcome": "workaround",
        "timing": "setup",
        "evidence": [
          {
            "kind": "exchange",
            "run_digest": "sha256:85bd7f44b3d4511d9abf58bc589b151458e22190f21c1ddae66b841bf2b8b317",
            "exchange_digest": "sha256:2d7648db96cce300400721b3e31b49822958b056cac8f2d52e5f6ffd69e24b83"
          },
          {
            "kind": "exchange",
            "run_digest": "sha256:85bd7f44b3d4511d9abf58bc589b151458e22190f21c1ddae66b841bf2b8b317",
            "exchange_digest": "sha256:800e601911fd6a80411688c40990e50c8ea50497d64645e336b8edc156a05b70"
          },
          {
            "kind": "exchange",
            "run_digest": "sha256:85bd7f44b3d4511d9abf58bc589b151458e22190f21c1ddae66b841bf2b8b317",
            "exchange_digest": "sha256:16a990cc76eb8877b89329332c517d5a859d556257f26bd15087966cbcdfb2a1"
          }
        ]
      }
    ],
    "job": {
      "outcome": "reachable",
      "evidence": [
        {
          "kind": "exchange",
          "run_digest": "sha256:85bd7f44b3d4511d9abf58bc589b151458e22190f21c1ddae66b841bf2b8b317",
          "exchange_digest": "sha256:2d7648db96cce300400721b3e31b49822958b056cac8f2d52e5f6ffd69e24b83"
        }
      ]
    },
    "discovery": [
      {
        "fact": "agent_documentation",
        "value": "https://heroku.com/llms.txt",
        "descriptor_url": "https://heroku.com/llms.txt",
        "attempt_digest": "sha256:34d91ea2ce61ffebd189252dbfa177b315b8e7cf8fc39b3b0c59400be3d5da41",
        "adapter": {
          "namespace": "llms.txt",
          "version": "1"
        }
      },
      {
        "fact": "agent_documentation",
        "value": "https://devcenter.heroku.com/llms.txt",
        "descriptor_url": "https://devcenter.heroku.com/llms.txt",
        "attempt_digest": "sha256:80778bbe6a41e932ec0e708ec0e81e2e2576513fdc08d871263d5c9346d22f2a",
        "adapter": {
          "namespace": "llms.txt",
          "version": "1"
        }
      },
      {
        "fact": "documentation_route",
        "value": "https://api.heroku.com/",
        "descriptor_url": "https://devcenter.heroku.com/articles/platform-api-reference",
        "attempt_digest": "sha256:abefb17b22a570fa0b14a7088ea288db6f0c92f540a87f9fa986cb279722faa1",
        "adapter": {
          "namespace": "llms.txt",
          "version": "route"
        }
      }
    ],
    "discovery_run_digest": "sha256:85bd7f44b3d4511d9abf58bc589b151458e22190f21c1ddae66b841bf2b8b317",
    "latest_run": {
      "started_at": "2026-10-13T08:44:29.578Z",
      "finished_at": "2026-10-13T08:45:27.746Z",
      "discovery_reads": 30,
      "exchanges": [
        {
          "purpose": "probe_operation",
          "role": "request",
          "method": "POST",
          "url": "https://api.heroku.com/apps/example-app/builds",
          "started_at": "2026-10-13T08:45:03.976Z",
          "finished_at": "2026-10-13T08:45:04.036Z",
          "response": {
            "status": 401,
            "media_type": "application/json",
            "content_bytes": 229,
            "content_digest": "sha256:caef36bf595bc7ec1c486584b13705d158ab647b68cbf62224bc24f0b8107013"
          },
          "transport_error": null,
          "exchange_digest": "sha256:2d7648db96cce300400721b3e31b49822958b056cac8f2d52e5f6ffd69e24b83"
        },
        {
          "purpose": "probe_resource_metadata",
          "role": "request",
          "method": "GET",
          "url": "https://api.heroku.com/.well-known/oauth-protected-resource/apps/example-app/builds",
          "started_at": "2026-10-13T08:45:08.576Z",
          "finished_at": "2026-10-13T08:45:08.633Z",
          "response": {
            "status": 400,
            "media_type": "application/json",
            "content_bytes": 159,
            "content_digest": "sha256:17bb5365f1c019631af252678a17993a99956b07e627ae87a3d6b711eb4af36e"
          },
          "transport_error": null,
          "exchange_digest": "sha256:800e601911fd6a80411688c40990e50c8ea50497d64645e336b8edc156a05b70"
        },
        {
          "purpose": "probe_resource_metadata",
          "role": "request",
          "method": "GET",
          "url": "https://api.heroku.com/.well-known/oauth-protected-resource",
          "started_at": "2026-10-13T08:45:13.260Z",
          "finished_at": "2026-10-13T08:45:13.300Z",
          "response": {
            "status": 400,
            "media_type": "application/json",
            "content_bytes": 159,
            "content_digest": "sha256:17bb5365f1c019631af252678a17993a99956b07e627ae87a3d6b711eb4af36e"
          },
          "transport_error": null,
          "exchange_digest": "sha256:16a990cc76eb8877b89329332c517d5a859d556257f26bd15087966cbcdfb2a1"
        },
        {
          "purpose": "probe_page",
          "role": "request",
          "method": "GET",
          "url": "https://signup.heroku.com",
          "started_at": "2026-10-13T08:45:17.115Z",
          "finished_at": "2026-10-13T08:45:17.232Z",
          "response": {
            "status": 200,
            "media_type": "text/html",
            "content_bytes": 283846,
            "content_digest": "sha256:d4e059b4e14bd480a73d9993718ac344cdc6138721000ba6a0dd2c998153e05a"
          },
          "transport_error": null,
          "exchange_digest": "sha256:1582b803a30fcf203252cca0ec8ba02f5d185cfa03b104d2c557c75c473f775b"
        },
        {
          "purpose": "probe_page",
          "role": "request",
          "method": "GET",
          "url": "https://dashboard.heroku.com/account",
          "started_at": "2026-10-13T08:45:22.287Z",
          "finished_at": "2026-10-13T08:45:22.349Z",
          "response": {
            "status": 200,
            "media_type": "text/html",
            "content_bytes": 271800,
            "content_digest": "sha256:d872032c3c188d0492006935a9c3cab516c73ff75309ac890b66d425bbf187ab"
          },
          "transport_error": null,
          "exchange_digest": "sha256:e8e048b7bab8344c5532b26761f3b92783e1c68ae15fde5c88f4af0a0b50342c"
        }
      ],
      "assertions": []
    },
    "revision_digest": "sha256:fbd8880f28f51d4821e613e5ea28a7bcbc99d4aa07bd088f99b32d68aeabf029"
  }
}
