With an SSH host configured, DataMind Oda can run files, commands, terminals and confined work on a remote computer over SSH, while the app itself stays on this computer. Use it when the work belongs on another machine, such as a shared build server. This page covers what the connection needs, how it is configured, and what happens when it is lost.
SSH runtime requires a POSIX client.Oda connects with these settings. Every value is checked before the connection starts.
| Setting | What it is | Default and limits |
|---|---|---|
| Host alias | An existing SSH host alias from your SSH setup. | A plain alias; a value that starts with a dash or carries a command is refused. |
| Remote runtime | The absolute path of the Node.js runtime on the remote computer. | Must be an absolute path. |
| Helper path | Where the helper program is installed on the remote computer. | Must be an absolute path. |
| Helper digest | The SHA-256 digest of the helper program. | 64 lowercase hexadecimal characters; checked before the connection is used. |
| Workspace folder | The folder on the remote computer that Oda works in. | Must be an absolute path. |
| Bootstrap path and digest | An optional pair for setups that use a bootstrap. | Set both or neither; an unpaired value is refused. |
| Request timeout | How long one request may wait. | 30 seconds. |
| Frame ceiling | The largest single message between Oda and the helper. | 64 MiB. |
| Pending requests | How many requests may be in flight at once. | 128. |
| Lease | How long the remote side keeps the connection alive without hearing from Oda. | 30 seconds, from 3 seconds to 10 minutes. |
A value that fails a check refuses the connection before anything starts: a host alias with a leading dash or a command in it, a relative path, a digest in the wrong form, one bootstrap value without the other, or a number out of range.
The helper program is versioned, and its digest must match the one you configured before Oda uses the
connection. If the installed helper is not the build you configured, the connection is refused with
SSH helper digest differs from the configured artifact.
Treat the remote computer and the helper as trusted infrastructure. The digest check catches an unexpected installed program, and confinement limits what Oda does to files. Neither guards against a hostile server, and confinement does not restrict network access or process visibility on the remote computer.
SSH process terminated before launch acknowledgement.For more on how remote files, processes and terminals behave, see SSH: files, processes and terminals.
SSH helper frame or write queue limit exceeded.SSH helper pending request limit reached.While the connection is still starting, a request is refused with SSH helper is not ready; after it
is closed, with SSH connection is closed.
A lost connection is never replayed. Oda cannot know what the remote side finished, so it reports an unknown outcome:
SSH connection lost; remote operation outcome and cleanup are unknownSSH helper disconnected; remote outcomes and cleanup are unknownCheck the remote computer before you repeat the work.
Cleanup on that side is the helper's job: it cleans up what it started when the connection closes,
when the stream ends, or when the lease expires. A cancelled operation is not rolled back either:
SSH operation cancelled; a completed remote mutation is not rolled back. If the remote side cannot
confirm its cleanup, Oda reports SSH process cleanup could not be confirmed.
Linux and macOS: both the remote computer and the computer you run Oda on must be POSIX systems.
Starting the connection from a non-POSIX computer is refused with SSH runtime requires a POSIX client.
A Node.js runtime at an absolute path, and the helper program, both outside the workspace folder and outside the computer's temporary areas. Oda does not install them for you.
No. Oda connects through the host alias on its own and never runs an interactive sign-in, so the alias must already authenticate without prompting.
Oda reports an unknown outcome (SSH connection lost; remote operation outcome and cleanup are unknown) and never repeats the operation. Cleanup on that side is the helper's job. Check the remote
computer before running the work again.
It is not rolled back: SSH operation cancelled; a completed remote mutation is not rolled back. A
cancelled operation is not undone, so check the remote computer for what completed before you
continue.
File changes stay inside the workspace folder, and they are guarded: Oda creates a file only when it is absent, or replaces one only when the version it read is still current. In Full access, remote requests run without confinement by design.
The bootstrap path and its digest go together: set both or neither. An unpaired value refuses the connection before anything runs.
The helper is versioned, and the digest shows that the installed program is the build you configured.
If it is not, the connection is refused with
SSH helper digest differs from the configured artifact. The check guards against an unexpected
installed program; it is not a defence against a hostile server.
Whole reads and windows inside a file are capped at 8 MiB each; larger files are read in parts. A single message between Oda and the helper is capped at 64 MiB.