feat: mount spaces/folders over SFTP with SSH-key auth

Add an in-process SFTP server (russh) backed directly by the nodes
table, so a space can be edited from nvim or synced with sshfs without
a separate filesystem mirror. Access is authenticated by public key
against a new ssh_keys table, managed via :sshkey in the app; the
feature stays off until WORKSPACE_SFTP_BIND is set.
This commit is contained in:
nvrl committed 2026-09-21 15:36:36 +02:00
1 parent ab8712559e
commit 747332153c
12 files changed
+1950 -93

No files matched your search

+2 -1
View File
@@ -100,7 +100,7 @@ impl FromRequestParts<AppState> for Session {
#[cfg(test)]
mod tests {
use super::{credentials_match, issue_token, verify_token};
use crate::config::{BackupConfig, Config, MailConfig};
use crate::config::{BackupConfig, Config, MailConfig, SftpConfig};
fn config(session_days: i64) -> Config {
Config {
@@ -128,6 +128,7 @@ mod tests {
digest_at: None,
kinds: Vec::new(),
},
sftp: SftpConfig { bind: None },
}
}