specs/042-ssh-run.md
Rama main · réplica de lectura del repositorio original.
# Spec: SSH Run Action
## Status
Partially implemented.
Conformance covers action configuration without an SSH server. Authentication,
remote shell behavior, and cancellation belong in executor unit and integration
tests.
## Scope
This spec defines the configuration boundary for `ssh.run`.
It does not define SSH protocol behavior, host-key management, SFTP transfers,
or the lifetime of remote processes after disconnection.
## Goal
Workflow authors can validate an SSH command before connecting to its host.
## Behavior
`ssh.run` accepts connection fields under `with` and requires `with.command`.
The command follows [Spec 014: Step Run Command](014-step-run-command.md).
`dagu validate` accepts a configured SSH action without contacting the host or
requiring its private key to exist locally.
DAG-level `ssh` supplies connection defaults for `ssh.run`. Its string fields
resolve Dagu-owned references as defined by
[Spec 003: Value Resolution](003-value-resolution.md).
## Errors
Omitting `with.command` fails validation with a diagnostic naming that field.
## Examples
```yaml
steps:
- action: ssh.run
with:
host: example.invalid
user: deploy
key: ~/.ssh/id_ed25519
command: echo hello
```