Capability classifications

Updated Jul 27, 2026

DigitalPuddle labels public DigitalOcean operations with one of four capabilities:

  • scriptable operations are handled by deterministic simulator state, validation, scheduler work, and worker transitions.
  • engine-backed operations are supported, but their lifecycle depends on worker-owned side effects such as k3d cluster creation or deletion.
  • stubbed operations return deterministic static or lightweight data and should not be treated as complete DigitalOcean control-plane modelling.
  • unsupported operations are intentionally unavailable in the current release. Once the /v2 operation registry is wired, matched unsupported operations return a DigitalOcean-shaped 501 Not Implemented response.

Unknown routes, unsupported methods on known paths, and known unsupported operations are distinct cases. DigitalPuddle preserves that distinction so normal routing misses, 405 Method Not Allowed, and 501 Not Implemented responses remain meaningful.

Inspecting the capability metadata

The capabilities endpoint returns JSON with legend and rows fields: the legend explains each capability label, while rows describe classified operations and their runtime behaviour.

curl http://localhost:3300/_digitalpuddle/capabilities

An abbreviated response looks like this:

{
  "legend": {
    "scriptable": "Deterministic state, validation, scheduler, or worker behaviour without an engine adapter.",
    "unsupported": "Known operation that is intentionally unavailable in this release."
  },
  "rows": [
    {
      "operationKey": "GET /v2/droplets",
      "capability": "unsupported",
      "runtimeBehaviour": "not-implemented"
    }
  ]
}