{
  "contract": "sourcey.site-record/v1alpha1",
  "release_id": "sha256:8e2973e6985881f473bd028a83a962338300e2fdf82cfaf95e77e216a0196d5f",
  "snapshot_id": "sha256:7d9ad9c2ccea7a047d8fd416b29897487a03dcf5808452d50f4bfa87429938e1",
  "artifact_sha256": "sha256:68136f9b2929e1e557a58d669b3c78c57688dfa3a9873b26088398a827a21bd9",
  "data": {
    "entity_id": "ent_01kyh8fpe29kn3bm05h7kyqyka",
    "entity_slug": "digitalocean",
    "profile": {
      "projection_contract": "sourcey.agent-readiness-projection/v1alpha1",
      "agent_readiness_profile_id": "arp_01m4pkxkxq7k6tc14djsqzdk73",
      "entity_id": "ent_01kyh8fpe29kn3bm05h7kyqyka",
      "scope": {
        "product": {
          "key": "digitalocean-managed-databases",
          "name": "DigitalOcean Managed Databases"
        },
        "job": {
          "key": "database-create",
          "name": "Create a database deployment"
        }
      },
      "catalog_binding": {
        "base_release_id": "sha256:cebfa768b333702fa64bd5d2496f6e0e7489b6a7eadbaeeac734dc320994d21b",
        "entity_revision_digest": "sha256:ae848b42b55678a40e1d909ec75667458026e40dffc7076f7915db2281bfd38a"
      },
      "declaration_revision_digest": "sha256:4094af5218c0ed3f39654bf496a723d61b382fdb7695bc2a2547547023e9a585",
      "declaration": {
        "declaration_id": "declaration_digitalocean_digitalocean_managed_databases_database_create",
        "provenance": {
          "repository": "sourcey/agent-ready-services",
          "commit": "d0349b59eac1f864862be6cae9c25d97bec9e731",
          "path": "entities/di/digitalocean.yaml",
          "git_blob_oid": "efcf2949a081c195108898023835c48c5b64472e",
          "blob_digest": "sha256:30998ea554e71466505b8d79db9cd4e7cce5cee0dc4d371ebe9e194ab8c3aa60"
        },
        "status": "community_declared"
      },
      "surface_catalog": {
        "participants": [
          {
            "participant_id": "digitalocean",
            "roles": [
              "access_operator",
              "identity_provider",
              "operations_provider",
              "payment_provider",
              "provisioning_provider",
              "subject"
            ],
            "identity": {
              "entity_id": "ent_01kyh8fpe29kn3bm05h7kyqyka"
            }
          }
        ],
        "resources": [
          {
            "resource_id": "api-overview",
            "uri": "https://docs.digitalocean.com/reference/api/",
            "roles": [
              "discovery",
              "documentation",
              "operations"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          },
          {
            "resource_id": "api-reference",
            "uri": "https://docs.digitalocean.com/reference/api/reference/public-apis/",
            "roles": [
              "documentation",
              "operations",
              "recovery",
              "status"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          },
          {
            "resource_id": "billing",
            "uri": "https://docs.digitalocean.com/platform/billing",
            "roles": [
              "checkout",
              "documentation"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          },
          {
            "resource_id": "billing-checkout",
            "uri": "https://docs.digitalocean.com/platform/billing/manage-payment-methods/",
            "roles": [
              "checkout",
              "documentation"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          },
          {
            "resource_id": "cloud-signup",
            "uri": "https://cloud.digitalocean.com/registrations/new",
            "roles": [
              "access"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          },
          {
            "resource_id": "database-api-reference",
            "uri": "https://docs.digitalocean.com/reference/api/digitalocean/",
            "roles": [
              "documentation",
              "operations",
              "status"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          },
          {
            "resource_id": "database-provisioning",
            "uri": "https://docs.digitalocean.com/products/databases/postgresql/how-to/create/",
            "roles": [
              "documentation",
              "operations",
              "provisioning"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          },
          {
            "resource_id": "mcp-docs",
            "uri": "https://github.com/digitalocean-labs/mcp-digitalocean/blob/main/pkg/registry/dbaas/README.md",
            "roles": [
              "discovery",
              "documentation",
              "operations"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          },
          {
            "resource_id": "pay-bills",
            "uri": "https://docs.digitalocean.com/platform/billing/pay-bills",
            "roles": [
              "checkout",
              "documentation"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          },
          {
            "resource_id": "personal-access-tokens",
            "uri": "https://docs.digitalocean.com/reference/api/create-personal-access-token/",
            "roles": [
              "authentication",
              "descriptor",
              "documentation",
              "provisioning"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          },
          {
            "resource_id": "pricing",
            "uri": "https://www.digitalocean.com/pricing",
            "roles": [
              "pricing"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          },
          {
            "resource_id": "service-terms",
            "uri": "https://www.digitalocean.com/legal/terms-of-service-agreement",
            "roles": [
              "terms"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          },
          {
            "resource_id": "support",
            "uri": "https://docs.digitalocean.com/support/",
            "roles": [
              "documentation",
              "recovery"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          }
        ],
        "endpoints": [
          {
            "endpoint_id": "digitalocean-api",
            "uri": "https://api.digitalocean.com/v2",
            "transport": "http",
            "roles": [
              "service",
              "status"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          },
          {
            "endpoint_id": "mcp-server",
            "uri": "https://databases.mcp.digitalocean.com/mcp",
            "transport": "http",
            "roles": [
              "protected_resource",
              "service"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          },
          {
            "endpoint_id": "registration",
            "uri": "https://cloud.digitalocean.com/registrations/new",
            "transport": "http",
            "roles": [
              "registration"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          }
        ],
        "interfaces": [
          {
            "interface_id": "api-authentication",
            "modality": "network_api",
            "functions": [
              "authentication"
            ],
            "endpoint_ids": [],
            "resource_ids": [
              "personal-access-tokens"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          },
          {
            "interface_id": "digitalocean-mcp",
            "modality": "tool_server",
            "functions": [
              "service_operation"
            ],
            "endpoint_ids": [
              "mcp-server"
            ],
            "resource_ids": [
              "mcp-docs"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          },
          {
            "interface_id": "resource-api",
            "modality": "network_api",
            "functions": [
              "service_operation"
            ],
            "endpoint_ids": [
              "digitalocean-api"
            ],
            "resource_ids": [
              "api-overview",
              "api-reference",
              "database-api-reference",
              "database-provisioning"
            ],
            "operated_by_participant_id": "digitalocean",
            "standard_bindings": []
          }
        ],
        "relations": [
          {
            "relation_id": "authentication-authenticates-api",
            "kind": "authenticates",
            "from": {
              "node_kind": "interface",
              "node_id": "api-authentication"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "resource-api"
            }
          },
          {
            "relation_id": "database-reference-describes-api",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "database-api-reference"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "resource-api"
            }
          },
          {
            "relation_id": "mcp-docs-describe-server",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "mcp-docs"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "digitalocean-mcp"
            }
          },
          {
            "relation_id": "overview-describes-api",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "api-overview"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "resource-api"
            }
          },
          {
            "relation_id": "provisioning-describes-api",
            "kind": "describes",
            "from": {
              "node_kind": "resource",
              "node_id": "database-provisioning"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "resource-api"
            }
          },
          {
            "relation_id": "signup-precedes-authentication",
            "kind": "precedes",
            "from": {
              "node_kind": "resource",
              "node_id": "cloud-signup"
            },
            "to": {
              "node_kind": "interface",
              "node_id": "api-authentication"
            }
          }
        ],
        "surface_exclusions": [
          {
            "exclusion_id": "separate-eligibility-resource",
            "role": "eligibility",
            "rationale": "Applicable access conditions are published within the service terms; no separate eligibility resource is declared."
          }
        ]
      },
      "lifecycle": "active",
      "effective_from": "2026-10-12T00:09:39.738Z",
      "revision_digest": "sha256:21e974776b393012592beba9221e2dd48fde5f955e1c4d2e355dedddf7b9dd08",
      "policy_digest": "sha256:0a4e4996176ce674b4f3ce910c5fca4f37c9b53bcdf51656d53a1a92fcf2c879",
      "policy_version": "kind-2026-10-12",
      "policy_as_of": "2026-10-05T00:00:00Z",
      "job": {
        "job_id": "database-create",
        "job_digest": "sha256:9485b35c7dbac6709e68cd09886ac8f2ae1e3163c4921a65aa70ee0809af5942",
        "category": "database",
        "name": "Create a database deployment",
        "statement": "Create a database deployment named with the run's nonce, then read it back."
      },
      "interface_id": "resource-api",
      "label": "probed",
      "label_run_at": null,
      "grade": {
        "letter": "B",
        "statement": "A card on file.",
        "steps": [
          {
            "step": "discover",
            "outcome": "machine",
            "timing": null
          },
          {
            "step": "authority",
            "outcome": "workaround",
            "timing": "setup"
          },
          {
            "step": "onboard",
            "outcome": "workaround",
            "timing": "setup"
          },
          {
            "step": "pay",
            "outcome": "workaround",
            "timing": "setup"
          },
          {
            "step": "confirm",
            "outcome": "machine",
            "timing": null
          },
          {
            "step": "sustain",
            "outcome": "workaround",
            "timing": "setup"
          }
        ],
        "job": "reachable",
        "approvals": [],
        "workarounds": [
          {
            "step": "authority",
            "timing": "setup"
          },
          {
            "step": "onboard",
            "timing": "setup"
          },
          {
            "step": "pay",
            "timing": "setup"
          },
          {
            "step": "sustain",
            "timing": "setup"
          }
        ]
      },
      "discovery": [
        {
          "fact": "oauth_protected_resource",
          "value": "https://databases.mcp.digitalocean.com/",
          "descriptor_url": "https://databases.mcp.digitalocean.com/.well-known/oauth-protected-resource",
          "attempt_digest": "sha256:cc8fd55751e94900ef97f2db128cb132434c1c605dc82030cb1b6c303d769fb5",
          "adapter": {
            "namespace": "rfc9728",
            "version": "1"
          }
        },
        {
          "fact": "oauth_authorization_server",
          "value": "https://cloud.digitalocean.com/",
          "descriptor_url": "https://databases.mcp.digitalocean.com/.well-known/oauth-protected-resource",
          "attempt_digest": "sha256:cc8fd55751e94900ef97f2db128cb132434c1c605dc82030cb1b6c303d769fb5",
          "adapter": {
            "namespace": "rfc9728",
            "version": "1"
          }
        },
        {
          "fact": "agent_documentation",
          "value": "https://docs.digitalocean.com/llms.txt",
          "descriptor_url": "https://docs.digitalocean.com/llms.txt",
          "attempt_digest": "sha256:d6fa78d3cec482a04c7dc4b90e446998746332bc0c908d92af6d2221e5f95860",
          "adapter": {
            "namespace": "llms.txt",
            "version": "1"
          }
        },
        {
          "fact": "documentation_route",
          "value": "https://api.digitalocean.com/",
          "descriptor_url": "https://docs.digitalocean.com/llms.txt",
          "attempt_digest": "sha256:d6fa78d3cec482a04c7dc4b90e446998746332bc0c908d92af6d2221e5f95860",
          "adapter": {
            "namespace": "llms.txt",
            "version": "route"
          }
        }
      ],
      "discovery_run_at": null,
      "run": {
        "started_at": "2026-10-12T00:07:55.642Z",
        "finished_at": "2026-10-12T00:09:39.738Z",
        "discovery_reads": 55,
        "exchanges": [
          {
            "purpose": "probe_operation",
            "role": "request",
            "method": "POST",
            "url": "https://api.digitalocean.com/v2/databases",
            "started_at": "2026-10-12T00:08:48.362Z",
            "finished_at": "2026-10-12T00:08:48.420Z",
            "response": {
              "status": 401,
              "media_type": "application/json",
              "content_bytes": 64,
              "content_digest": "sha256:2252fb0d5c47c925dd67efb2dae69dc3da2b98289c76280613e5e6d99ee35c6a"
            },
            "transport_error": null,
            "exchange_digest": "sha256:6ee2cb4e5bafa9f0bd2892e64f036ff0e11d09b904334ef7f4c02c9942f65b81"
          },
          {
            "purpose": "probe_resource_metadata",
            "role": "request",
            "method": "GET",
            "url": "https://api.digitalocean.com/.well-known/oauth-protected-resource/v2/databases",
            "started_at": "2026-10-12T00:08:52.546Z",
            "finished_at": "2026-10-12T00:08:52.587Z",
            "response": {
              "status": 404,
              "media_type": "application/json",
              "content_bytes": 64,
              "content_digest": "sha256:51e8592bf5972182324f84e6521251b75178e46f93f2cad024f802c66e58a3e0"
            },
            "transport_error": null,
            "exchange_digest": "sha256:ee2c4578e5c5c4eb216322bd41c127f3c5e9ce577bf9707f98586856cdf962a6"
          },
          {
            "purpose": "probe_resource_metadata",
            "role": "request",
            "method": "GET",
            "url": "https://api.digitalocean.com/.well-known/oauth-protected-resource",
            "started_at": "2026-10-12T00:08:55.741Z",
            "finished_at": "2026-10-12T00:08:55.796Z",
            "response": {
              "status": 404,
              "media_type": "application/json",
              "content_bytes": 64,
              "content_digest": "sha256:51e8592bf5972182324f84e6521251b75178e46f93f2cad024f802c66e58a3e0"
            },
            "transport_error": null,
            "exchange_digest": "sha256:3c3746a95af8bb12b3ebc2b68c11db5c4de18606d33d169c9d93cee12202b95a"
          },
          {
            "purpose": "probe_operation",
            "role": "session_opening",
            "method": "POST",
            "url": "https://databases.mcp.digitalocean.com/mcp",
            "started_at": "2026-10-12T00:08:59.637Z",
            "finished_at": "2026-10-12T00:08:59.698Z",
            "response": {
              "status": 401,
              "media_type": "text/plain",
              "content_bytes": 32,
              "content_digest": "sha256:4281d20d88c890da15847e3edc8560b17729deb04a7d14a715c7b27d88421a14"
            },
            "transport_error": null,
            "exchange_digest": "sha256:81904c0ab17c62add06924b69f625e47eb7f9cc71a0609b35d9ee168d508edff"
          },
          {
            "purpose": "probe_resource_metadata",
            "role": "request",
            "method": "GET",
            "url": "https://databases.mcp.digitalocean.com/.well-known/oauth-protected-resource",
            "started_at": "2026-10-12T00:09:03.672Z",
            "finished_at": "2026-10-12T00:09:03.751Z",
            "response": {
              "status": 200,
              "media_type": "application/json",
              "content_bytes": 211,
              "content_digest": "sha256:0e984546691002b621367672861e851ce8dbb8e02958b470535db7d13178a2af"
            },
            "transport_error": null,
            "exchange_digest": "sha256:5d7e1facaf532f4485d223c07d05141d02e8cbdc3ce19a1380e2891c10e90081"
          },
          {
            "purpose": "probe_authorization_server",
            "role": "request",
            "method": "GET",
            "url": "https://cloud.digitalocean.com/.well-known/oauth-authorization-server",
            "started_at": "2026-10-12T00:09:09.053Z",
            "finished_at": "2026-10-12T00:09:09.121Z",
            "response": {
              "status": 200,
              "media_type": "application/json",
              "content_bytes": 627,
              "content_digest": "sha256:d96b2abab1226e226b8b33598224c85e98f0d6f7523763b2a0b9f73cbb9bbe3c"
            },
            "transport_error": null,
            "exchange_digest": "sha256:368d43e926301b510b62afbb728b6c4e3366d858f46e08dac374db4f4cd1fd7c"
          },
          {
            "purpose": "probe_client_registration",
            "role": "request",
            "method": "POST",
            "url": "https://cloud.digitalocean.com/v1/oauth/register",
            "started_at": "2026-10-12T00:09:14.946Z",
            "finished_at": "2026-10-12T00:09:15.014Z",
            "response": {
              "status": 201,
              "media_type": "application/json",
              "content_bytes": 637,
              "content_digest": "sha256:0d7e032166f8f5c62a4ae306b3eaac2967571be5f83017a9a4c3dd7b47297a9e"
            },
            "transport_error": null,
            "exchange_digest": "sha256:29adcf832dccd2d13ebe4ff8389e2be3ff7122c1c14fa72fe9c76930612e9bf3"
          },
          {
            "purpose": "probe_authorization",
            "role": "request",
            "method": "GET",
            "url": "https://cloud.digitalocean.com/v1/oauth/authorize?response_type=code&client_id=345589d4c3a0ed100a69630486165caf6188b25abf39773145c0eb31c31ad5b2&redirect_uri=https%3A%2F%2Fapi.sourcey.com%2F.well-known%2Fagent-readiness%2Fcallback&state=e439ddb04555aed6c18812b8bb920cee&code_challenge=IMVQNUvRKLdLaJZXxgKj4tBeK9sWbED3e5d7qHQvK3w&code_challenge_method=S256&resource=https%3A%2F%2Fdatabases.mcp.digitalocean.com%2Fmcp&scope=read+write",
            "started_at": "2026-10-12T00:09:18.989Z",
            "finished_at": "2026-10-12T00:09:19.031Z",
            "response": {
              "status": 302,
              "media_type": "text/html",
              "content_bytes": 0,
              "content_digest": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
            },
            "transport_error": null,
            "exchange_digest": "sha256:70b842806c524f9007bcfaa5a5e97f060d66ba74d5b212f8d9dced54e76b2fcc"
          },
          {
            "purpose": "probe_page",
            "role": "request",
            "method": "GET",
            "url": "https://cloud.digitalocean.com/registrations/new",
            "started_at": "2026-10-12T00:09:22.624Z",
            "finished_at": "2026-10-12T00:09:22.651Z",
            "response": {
              "status": 403,
              "media_type": "text/html",
              "content_bytes": 4550,
              "content_digest": "sha256:f02625a695189bd8de84db5579b968db105e16db4a6e88d47bab31808f18f207"
            },
            "transport_error": null,
            "exchange_digest": "sha256:8091889f868173a0676e98050d6447186dca9c7f23bb02efd04a0d58c5e85981"
          },
          {
            "purpose": "probe_page",
            "role": "request",
            "method": "GET",
            "url": "https://docs.digitalocean.com/platform/billing",
            "started_at": "2026-10-12T00:09:27.276Z",
            "finished_at": "2026-10-12T00:09:27.382Z",
            "response": {
              "status": 301,
              "media_type": "text/html",
              "content_bytes": 0,
              "content_digest": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
            },
            "transport_error": null,
            "exchange_digest": "sha256:778a120f142876b2141f31c722ce3f8789e2e9161c8507e177d25fdb3c77d51a"
          },
          {
            "purpose": "probe_page",
            "role": "request",
            "method": "GET",
            "url": "https://docs.digitalocean.com/platform/billing/manage-payment-methods/",
            "started_at": "2026-10-12T00:09:31.233Z",
            "finished_at": "2026-10-12T00:09:31.302Z",
            "response": {
              "status": 200,
              "media_type": "text/html",
              "content_bytes": 55003,
              "content_digest": "sha256:52efdc7ae1c5f358b8be21b44ae5a066d03846073f41a6e423651102fc33e67d"
            },
            "transport_error": null,
            "exchange_digest": "sha256:86f9feb8f8e16d4af0cdcd0772d940c2187c59b606ddd9ca582b9e3786cd0a84"
          },
          {
            "purpose": "probe_page",
            "role": "request",
            "method": "GET",
            "url": "https://docs.digitalocean.com/platform/billing/pay-bills",
            "started_at": "2026-10-12T00:09:36.552Z",
            "finished_at": "2026-10-12T00:09:36.715Z",
            "response": {
              "status": 301,
              "media_type": "text/html",
              "content_bytes": 0,
              "content_digest": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
            },
            "transport_error": null,
            "exchange_digest": "sha256:3aa8ff99beb952cb37c8e7157256eb6ac4afbddd959bebd1ddfde168bbb5591e"
          }
        ],
        "assertions": []
      },
      "last_run_at": "2026-10-12T00:09:39.738Z",
      "publication": {
        "visibility": "discoverable",
        "reasons": []
      },
      "provenance": {
        "dispute": "none",
        "vendor_attestation": {
          "status": "none"
        },
        "basis_event_ids": []
      },
      "canonical_url": "https://sourcey.com/c/digitalocean/agent-readiness/digitalocean-managed-databases/database-create",
      "projection_digest": "sha256:59eac338588d13798d9066b49e9a24028f368d0d10716e23d6b82b48a1e1700b"
    }
  }
}
