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

Relationships

#3140 @swamp/hetzner-cloud/servers: add power actions (poweron, shutdown, poweroff, reboot, reset)

Opened by mellens · 10/7/2026· Shipped 10/8/2026

Problem

@swamp/hetzner-cloud/servers covers a server's lifecycle (create, get, update, delete, sync, list, lookup, adopt, change_protection) but has no power actions. To start or stop an existing server you still need the Hetzner console or a separate tool, even when the server is already modelled and looked up in swamp.

Proposed solution

Add methods for the Hetzner server power actions (POST /servers/{id}/actions/{action}):

  • poweron
  • shutdown (graceful ACPI)
  • poweroff (hard)
  • reboot (graceful) and reset (hard), for completeness

Suggested behaviour:

  • Take the server id from the state resource that lookup/adopt already writes.
  • Read the current status first. Make a no-op (power on while running, power off while off) either a clear error or a success that does nothing, so workflows can use the methods safely.
  • Wait for the action to finish (GET /actions/{id}) or for the target status, with a configurable timeout. shutdown needs a longer default, because it depends on the guest OS.
  • Refresh state afterwards so status is current.

Alternatives considered

We added these as a third-party type extension (export const extension on @swamp/hetzner-cloud/servers), published as @mesgme/hetzner-cloud-power with poweron, poweroff and shutdown. It works, but power control is basic enough that it belongs in the official type, and a first-party version would also cover reboot/reset.

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

Environment

  • Extension: @swamp/hetzner-cloud@2026.10.06.1
  • swamp: 20261006.231101.0-sha.9a8ec977
  • OS: darwin (aarch64)
  • Deno: 2.9.7
  • Shell: /bin/zsh
02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 5 MOREREVIEW+ 10 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

10/8/2026, 7:38:39 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack7210/8/2026, 6:43:05 PM
Editable. Press Enter to edit.

system commented 10/7/2026, 3:58:16 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/8/2026, 7:38:42 PM

Thanks @mellens for reporting this! We shipped: Add poweron, shutdown, poweroff, reboot and reset methods to the generated @swamp/hetzner-cloud/servers model by extending the Hetzner codegen action allowlist, adding action and status waiting helpers to the generated lib, and emitting table-driven power methods that skip no-ops, wait under a configurable timeout, and refresh state. Includes a migration note for users of the third-party @mesgme/hetzner-cloud-power extension, whose method names now collide.. The fix has been merged and a release is on its way. We appreciate your contribution to swamp.

Sign in to post a ripple.