{
  "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_01kzf0m4xh9j6rz3b1v8mp5td2",
    "entity_id": "ent_01kyxthgq3w0q894h0tadvr0cq",
    "scope": {
      "product": {
        "key": "sentry-web-api",
        "name": "Sentry Web API"
      },
      "funnel": {
        "key": "issue-operations",
        "name": "Issue and project operations"
      }
    },
    "catalog_binding": {
      "base_release_id": "sha256:5082ec07047a2324648f569d234cc64342ce2707b2f3d77fde8fc06af517cee6",
      "entity_revision_digest": "sha256:0acca7e30e16523f5718208ac027acb0b1b432e023c6310e1ae7161a05b6f422"
    },
    "declaration_revision_digest": "sha256:bfc4d61dd14cc8f4967c6b9c62f39ea6d22f15053a51182eb5b9b767211dcd46",
    "declaration": {
      "declaration_id": "declaration_sentry_api_issue_operations",
      "provenance": {
        "repository": "sourcey/agent-ready-services",
        "commit": "00f00edd170194cc1cf3081b97b218474537ffdb",
        "path": "vendors/se/sentry.yaml",
        "git_blob_oid": "92325caefc5fbb52b23c56fdc8fb70c0c486f3fe",
        "blob_digest": "sha256:ee4caa899b1af3daaef66b257b1a721eb02f7d3b22ad212ad7cdec28e6443704"
      },
      "status": "community_declared"
    },
    "lifecycle": "active",
    "effective_from": "2026-08-08T02:07:11.096Z",
    "signals": [
      {
        "stage": "evaluate",
        "signal_code": "decidable_eligibility",
        "value": "no",
        "observed_at": "2026-08-07T21:15:02.532Z",
        "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": "Sentry's Terms of Service state that users must be over 16 years old and represent authorized capacity, but eligibility depends on subjective compliance criteria and judgment rather than purely decidable machine criteria."
      },
      {
        "stage": "evaluate",
        "signal_code": "machine_discovery",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:03.868Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "api-reference"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "The Sentry Web API and issue/project management endpoints are fully discoverable via the public API documentation."
      },
      {
        "stage": "evaluate",
        "signal_code": "readable_pricing",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:06.460Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "pricing"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Sentry's pricing page provides structured pricing details across developer, team, business, and pay-as-you-go event tiers."
      },
      {
        "stage": "evaluate",
        "signal_code": "structured_terms",
        "value": "partial",
        "observed_at": "2026-08-07T21:15:02.532Z",
        "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": "Sentry provides its Terms of Service in a stable HTML format on its website, including basic schema.org metadata, but lacks a complete structured terms contract."
      },
      {
        "stage": "sign_up",
        "signal_code": "captcha_free",
        "value": "no",
        "observed_at": "2026-08-07T21:15:18.553Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "account-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "negative_coverage": {
          "kind": "bounded-rendered-flow-inspection",
          "scope": "tested-surfaces",
          "covered_surfaces": [
            {
              "node_kind": "resource",
              "node_id": "account-signup"
            }
          ]
        },
        "note": "The Sentry signup form explicitly states 'This form is protected by reCAPTCHA.' which blocks autonomous CAPTCHA-free signup."
      },
      {
        "stage": "sign_up",
        "signal_code": "machine_operable_form",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:18.553Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "account-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "The Sentry web signup page presents standard form fields (Name, Organization, Email, Password, Data Storage Location) accessible on the web page."
      },
      {
        "stage": "sign_up",
        "signal_code": "phone_verification_free",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:18.553Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "account-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "The signup form requires name, organization, email, password, and data storage location without requiring phone or SMS verification."
      },
      {
        "stage": "sign_up",
        "signal_code": "stable_entrypoint",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:40.065Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "account-signup"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "A stable signup endpoint is publicly accessible and returns the standard trial registration interface."
      },
      {
        "stage": "sign_up",
        "signal_code": "supported_identity_flow",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:38.342Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "authentication"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Sentry documents OAuth2 authorization code flow with PKCE, internal integrations with granular permissions, user personal tokens, and RFC 8628 Device Authorization Flow."
      },
      {
        "stage": "pay",
        "signal_code": "explicit_price",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:06.460Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "pricing"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Sentry explicitly discloses pricing tiers on its pricing page, including $0 for Developer, $26/mo for Team, and $80/mo for Business when billed annually."
      },
      {
        "stage": "pay",
        "signal_code": "machine_operable_checkout",
        "value": "partial",
        "observed_at": "2026-08-07T21:15:18.553Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "account-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "negative_coverage": {
          "kind": "bounded-rendered-flow-inspection",
          "scope": "tested-surfaces",
          "covered_surfaces": [
            {
              "node_kind": "resource",
              "node_id": "account-signup"
            }
          ]
        },
        "note": "The sign-up flow provides interactive input controls and buttons, but requires reCAPTCHA protection and human account creation steps."
      },
      {
        "stage": "pay",
        "signal_code": "sales_intervention_free",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:18.553Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "account-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Self-service account sign-up is available online for free trial and self-serve plans without mandatory sales intervention."
      },
      {
        "stage": "pay",
        "signal_code": "supported_payment_rail",
        "value": "unknown",
        "observed_at": "2026-08-07T21:15:18.553Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "account-signup"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Evidence on the sign-up page does not detail the specific automated payment rails or credit card processing mechanisms accepted during checkout."
      },
      {
        "stage": "provision",
        "signal_code": "automatic_activation",
        "value": "unknown",
        "observed_at": "2026-08-07T21:15:28.286Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "issue-operations"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "The retained documentation for events and issues does not establish whether service resource activation is fully automatic during onboarding."
      },
      {
        "stage": "provision",
        "signal_code": "bounded_delay",
        "value": "unknown",
        "observed_at": "2026-08-07T21:15:08.539Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "issue-operations"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "The documentation does not document or observe a bounded duration or delay bound for provisioning."
      },
      {
        "stage": "provision",
        "signal_code": "credential_delivery",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:38.342Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "authentication"
          }
        ],
        "assessment_method": {
          "name": "headless",
          "version": "1",
          "method_digest": "sha256:5c58a6d3f59d1910064324a215209f16f177b8021442dcbf1465f4c3ccd78ed1"
        },
        "note": "Sentry documents credential delivery mechanisms including personal auth tokens, OAuth2 authorization code flow, and device authorization flow."
      },
      {
        "stage": "provision",
        "signal_code": "machine_readable_status",
        "value": "unknown",
        "observed_at": "2026-08-07T21:15:08.539Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "issue-operations"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "The retained evidence does not document or demonstrate machine-readable provisioning status tracking or terminal state reconciliation for issue operations."
      },
      {
        "stage": "operate",
        "signal_code": "api_tool_access",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:03.868Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "api-reference"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Sentry provides a documented web API surface for programmatically managing organizations, teams, projects, events, and issues."
      },
      {
        "stage": "operate",
        "signal_code": "delegated_recovery",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:07.532Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "rate-limits"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "OAuth refresh tokens, token revocation (401 handling), and retry paths based on rate limit reset headers are documented within delegated authorization boundaries."
      },
      {
        "stage": "operate",
        "signal_code": "documented_limits_errors",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:08.539Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "issue-operations"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Sentry's API reference documentation provides dedicated documentation sections for Rate Limits, Paginating Results, and Requests."
      },
      {
        "stage": "operate",
        "signal_code": "usable_authentication",
        "value": "yes",
        "observed_at": "2026-08-07T21:15:09.623Z",
        "tested_surfaces": [
          {
            "node_kind": "resource",
            "node_id": "authentication"
          }
        ],
        "assessment_method": {
          "name": "http",
          "version": "1",
          "method_digest": "sha256:2d2f445064222c234cbaf541a627226a2c4be06a90e226b98a4389cb49e2d66b"
        },
        "note": "Sentry supports multiple authentication mechanisms including internal integration auth tokens, user personal tokens, OAuth2 authorization code with PKCE, and device authorization flow."
      }
    ],
    "revision_digest": "sha256:1cf63efa0ac6c25f42246dac4c834a0ea32e3414d7a1fb666fedd071f8279016"
  }
}
