{
  "api_contract": "sourcey.catalog-api/v1",
  "release_id": "sha256:1042b2f7b6130b564b0059e00560960c50db2d7578dfa5178d401e5d14d9b11f",
  "artifact_sha256": "sha256:a695609a4d6872bd447e3125d912e7f84e605d0f064df0b08e62a9f24d9d2e80",
  "data": {
    "revision_contract": "sourcey.agent-readiness-revision/v1alpha1",
    "agent_readiness_profile_id": "arp_01kzf0m4xc6w3hq8r2f9bj5nta",
    "entity_id": "ent_01kyh8fpe42ws3zbxkkaybx2ea",
    "scope": {
      "product": {
        "key": "neon-api",
        "name": "Neon API"
      },
      "funnel": {
        "key": "project-database-lifecycle",
        "name": "Project and database lifecycle"
      }
    },
    "catalog_binding": {
      "base_release_id": "sha256:5082ec07047a2324648f569d234cc64342ce2707b2f3d77fde8fc06af517cee6",
      "entity_revision_digest": "sha256:f7efa8be65ed9dd1e5649201793fa6c168f217b8886de5764e635ced89e485cd"
    },
    "declaration_revision_digest": "sha256:969c4b8fcfff414e1ab1bfc5f386767e51c5c7b22f5b800ed769ac486729ef18",
    "declaration": {
      "declaration_id": "declaration_neon_api_project_database_lifecycle",
      "provenance": {
        "repository": "sourcey/agent-ready-services",
        "commit": "00f00edd170194cc1cf3081b97b218474537ffdb",
        "path": "vendors/ne/neon.yaml",
        "git_blob_oid": "aec2ea0150dd153d3547e1a58a6dff99ab352c44",
        "blob_digest": "sha256:172dd8de8c1804a7142f98ae719b525c6b79ca8c18f2697b9ba50e355d7701f1"
      },
      "status": "community_declared"
    },
    "lifecycle": "active",
    "effective_from": "2026-08-08T02:07:05.085Z",
    "signals": [
      {
        "stage": "evaluate",
        "signal_code": "decidable_eligibility",
        "value": "yes",
        "observed_at": "2026-08-07T21:13:38.722Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "service-terms"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Neon's platform terms explicitly outline decidable eligibility and terms governing customer access and platform use."
      },
      {
        "stage": "evaluate",
        "signal_code": "machine_discovery",
        "value": "yes",
        "observed_at": "2026-08-07T21:13:39.664Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "api-reference"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "The product and API endpoints for managing projects, branches, and databases are fully discoverable through public documentation."
      },
      {
        "stage": "evaluate",
        "signal_code": "readable_pricing",
        "value": "yes",
        "observed_at": "2026-08-07T21:13:40.980Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "pricing"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Neon provides structured, explicit pricing information across Free, Launch, and Scale tiers."
      },
      {
        "stage": "evaluate",
        "signal_code": "structured_terms",
        "value": "partial",
        "observed_at": "2026-08-07T21:13:38.722Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "service-terms"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "negative_coverage": {
          "kind": "complete-response-inspection",
          "scope": "exact-resource",
          "covered_surfaces": [
            {
              "node_kind": "resource",
              "node_id": "service-terms"
            }
          ]
        },
        "note": "Terms of service are available as readable HTML web pages but are not delivered as structured machine-readable contracts."
      },
      {
        "stage": "sign_up",
        "signal_code": "captcha_free",
        "value": "unknown",
        "observed_at": "2026-08-07T21:13:50.291Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "console-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "The retained evidence from the console signup target does not establish whether a CAPTCHA was present or absent on the signup path."
      },
      {
        "stage": "sign_up",
        "signal_code": "machine_operable_form",
        "value": "unknown",
        "observed_at": "2026-08-07T21:13:50.291Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "console-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Retained evidence from the signup page does not contain sufficient details to verify whether machine-operable form controls were exposed."
      },
      {
        "stage": "sign_up",
        "signal_code": "phone_verification_free",
        "value": "unknown",
        "observed_at": "2026-08-07T21:13:50.291Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "console-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Retained signup evidence does not establish whether phone or SMS verification is required during registration."
      },
      {
        "stage": "sign_up",
        "signal_code": "stable_entrypoint",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:06.695Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "console-signup"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "The console signup entrypoint at https://console.neon.tech/app/sign-up resolves reliably to the authentication entrypoint."
      },
      {
        "stage": "sign_up",
        "signal_code": "supported_identity_flow",
        "value": "yes",
        "observed_at": "2026-08-07T21:25:59.880Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "api-keys"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Neon documents personal, organization, and project-scoped API keys that are randomly generated, revocable, and manageable via Console, CLI, or API."
      },
      {
        "stage": "pay",
        "signal_code": "explicit_price",
        "value": "yes",
        "observed_at": "2026-08-07T21:13:40.980Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "pricing"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Neon provides explicit pricing details on its pricing page, including a free tier ($0) and detailed usage rates for compute and storage."
      },
      {
        "stage": "pay",
        "signal_code": "machine_operable_checkout",
        "value": "unknown",
        "observed_at": "2026-08-07T21:13:50.291Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "console-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "The available captured evidence for the console sign-up page does not contain sufficient details to verify whether the checkout process is machine-operable."
      },
      {
        "stage": "pay",
        "signal_code": "sales_intervention_free",
        "value": "unknown",
        "observed_at": "2026-08-07T21:13:50.291Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "console-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "The captured sign-up page evidence does not provide enough information to confirm whether purchase can complete without sales intervention."
      },
      {
        "stage": "pay",
        "signal_code": "supported_payment_rail",
        "value": "unknown",
        "observed_at": "2026-08-07T21:13:50.291Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "console-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "The captured evidence on the sign-up page does not provide sufficient details regarding supported payment rails."
      },
      {
        "stage": "provision",
        "signal_code": "automatic_activation",
        "value": "yes",
        "observed_at": "2026-08-07T21:13:54.282Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "create-project"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Calling the Neon API create project endpoint provisions a project with an initial database, non-protected role, and connection password automatically without requiring manual vendor intervention."
      },
      {
        "stage": "provision",
        "signal_code": "bounded_delay",
        "value": "unknown",
        "observed_at": "2026-08-07T21:13:43.735Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "create-project"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "The API documentation instructs users to wait until project operations finish before connecting, but no explicit bounded time completion delay limit is stated."
      },
      {
        "stage": "provision",
        "signal_code": "credential_delivery",
        "value": "yes",
        "observed_at": "2026-08-07T21:25:59.880Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "api-keys"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Neon API keys and database connection URIs containing generated passwords are generated and delivered via the Console, CLI, or API."
      },
      {
        "stage": "provision",
        "signal_code": "machine_readable_status",
        "value": "yes",
        "observed_at": "2026-08-07T21:13:43.735Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "create-project"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Neon provides machine-readable status via HTTP status codes and specific operation tracking endpoints to monitor background resource operations."
      },
      {
        "stage": "operate",
        "signal_code": "api_tool_access",
        "value": "yes",
        "observed_at": "2026-08-07T21:13:39.664Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "api-reference"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Neon provides a documented REST API reference covering project, branch, database, compute endpoint, and operational management."
      },
      {
        "stage": "operate",
        "signal_code": "delegated_recovery",
        "value": "yes",
        "observed_at": "2026-08-07T21:13:42.788Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "project-operations"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Neon documents delegated recovery capabilities including recovering deleted projects within 7 days, password resets, and branch restoration."
      },
      {
        "stage": "operate",
        "signal_code": "documented_limits_errors",
        "value": "yes",
        "observed_at": "2026-08-07T21:13:43.735Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "create-project"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Neon documents API rate limits, error responses, HTTP status code behaviors, and idempotent retry semantics for API requests."
      },
      {
        "stage": "operate",
        "signal_code": "usable_authentication",
        "value": "yes",
        "observed_at": "2026-08-07T21:13:45.434Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "api-keys"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Neon supports usable authentication via Personal, Organization, and Project-scoped API keys that are passed via standard Authorization Bearer headers."
      }
    ],
    "revision_digest": "sha256:53e6b2dfd896359b98749a14a14f2b3ad809cebc596571be16f985c23326cd73"
  }
}
