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:
updatePATCHes/v2/spaces/keys/undefined.syncreads/v2/spaces/keys/undefined, gets a 404, and overwrites the state withstatus: not_foundfor 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
Shipped
Click a lifecycle step above to view its details.
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.