Skip to content

📁 SFTP-сервер (демон) ​

📌 Описание ​

Встроенный SFTP-сервер с изоляцией по приложению: пользователь получает доступ к файлам конкретного приложения, а не всего сервера — через свой SFTP-клиент (FileZilla, WinSCP, sftp), а не вкладку браузера. Это отдельная фича от файлового менеджера UI платформы, который показывает всю файловую систему ноды через FileService демона.

🎯 Сценарии использования ​

  • 🔧 Разработчик подключается FileZilla к sftp://node:2022 с credentials, выданными платформой, и видит только каталог своего приложения.
  • 🎮 Геймдизайнер заливает моды на игровой сервер, не имея доступа к ОС.

🏗️ Техническое решение ​

  • Сервер: встроенный SSH/SFTP-субсистема на Rust (russh), отдельный порт (по умолчанию 2022), без системных пользователей ОС.
  • Изоляция: виртуальный chroot на каталог приложения (volumes для Docker, рабочий каталог для нативных); path traversal исключён на уровне резолвера путей.
  • Учётки: временные credentials/ключи выдаёт платформа с привязкой пользователь → приложение → права (ro/rw); TTL и ревокация.
  • Права: выдача SFTP-доступа — право apps.files (🔐 access-control).
  • Квоты и лимиты: ограничение размера загрузки, скорости — по тарифу/конфигу.
  • Аудит: лог сессий и операций записи.

🔗 Связанные задачи ​

DMN-010 в ROADMAP.md.

Распространяется по лицензии MIT.