Secrets never enter host profiles
ServerProfile never stores a password, passphrase, private-key content or vault master secret.
LOCAL-FIRST SECURITY ARCHITECTURE
Runory encodes security boundaries in its architecture: React is the interaction layer and Rust is the infrastructure engine. SSH, TCP, jump hosts and tunnels, credentials, key parsing, host verification, remote files and process execution never belong to the frontend.
CredentialsLocal Vault only
ConnectionsMandatory host checks
PermissionsBusiness-specific IPC
Core capabilities
ServerProfile never stores a password, passphrase, private-key content or vault master secret.
You may temporarily or permanently trust an unknown host; a changed known-host key blocks the connection; both ends of a jump path are verified.
Remote files, terminal output, HTTP bodies and MCP output are all treated as untrusted data.
In detail
CredentialService stores credentials through CredentialVault. The interface has no API for reading a remembered password in plaintext; transient secrets are submitted once for the current operation. Logs may include profile and session IDs, host, port and stable error codes, but never passwords, passphrases, keys or vault secrets.
Private keys support both File and Vault concepts. Desktop can reference a file, while mobile uses an opaque ID for an imported key instead of inheriting assumptions about desktop filesystem paths.
Runory exposes no accept-all, skip-verification or StrictHostKeyChecking=no shortcut. Unknown hosts require Trust Once, Trust & Remember or Cancel; changed keys block the connection. Jump hosts and tunnels reuse the same authentication and verification boundaries instead of opening a bypass.
Verification lives in KnownHostService inside Rust rather than relying on whether the frontend happens to show a warning correctly.
AI approval binds an exact command and session. Structured high-risk operations bind a ChangeSet version and require Verification. ChangeSet, Incident and Audit persistence retains only necessary content-free metadata; restarts invalidate old approval and never resume writes automatically.
Tauri uses least privilege and business-specific Commands. Terminal output travels over a Channel to xterm, avoiding generic event broadcasts, React state and persistence.
Frequently asked questions
No. Optional sync stores a locally encrypted inventory copy, and the web portal does not decrypt it.
No. Terminal output is not persisted; the raw stream travels through a Tauri Channel to xterm.
No. Skills, MCP and models remain subject to the same Tool Registry, Policy and approval boundaries.