Skip to main content
← Back to list
01Issue
BugShippedExtensionsPublic
Assigneesstack72

Relationships

#2834 @swamp/digitalocean/space-key: update and sync call /v2/spaces/keys/undefined

Opened by sntxrr · 9/30/2026· Shipped 10/6/2026

update and sync look the key up by existing.accesskey ?? existing.id (space_key.ts#L229, #L291, #L304). The persisted resource has access_key (with an underscore) and no id (key.yml), so both expressions are undefined:

  • update PATCHes /v2/spaces/keys/undefined.
  • sync reads /v2/spaces/keys/undefined, gets a 404, and overwrites the state with status: not_found for a key that still exists.

Fix: use existing.access_key (the identifying field of this resource) in the generator's lookup for space-key.

Test: create (fake fetch) → sync. Assert that the GET path is /v2/spaces/keys/<access_key>.

Upstream repository: https://github.com/swamp-club/swamp-extensions

Environment

  • Extension: @swamp/digitalocean@2026.09.29.1
  • swamp: 20260929.154804.0-sha.80c0526f
  • OS: darwin (aarch64)
  • Deno: 2.9.7
  • Shell: /bin/zsh
02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 10 MOREREVIEW+ 17 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

10/6/2026, 6:32:17 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack7210/6/2026, 5:06:33 PM
Editable. Press Enter to edit.

system commented 9/30/2026, 7:38:40 PM

Classified automatically when this issue was filed.

  • Source: Extensions

If you feel this classification is incorrect, add a ripple to tell us so.

stack72 commented 10/6/2026, 6:32:24 PM

Thanks @sntxrr for reporting this! We shipped: Fix DigitalOcean codegen so every generated model can address its own resource. Schema-aware identifier resolution with a generation guard; identifiers persisted from get args where the API returns none (monitoring sink); get and sync emitted only when a GET-by-id exists (action-gateway session); a clear error instead of /undefined requests; non-secret create-response siblings kept (session mcpUrl, connection authorization) with an explicit envelope key; stable get/delete argument names; a correct checkExists condition; and orphan model pruning for DigitalOcean, Hetzner, and Tailscale (removes the stale security_secret).. The fix has been merged and a release is on its way. We appreciate your contribution to swamp.

Sign in to post a ripple.