Адбыўся першы значны выпуск сервера SFTPGo 1.0, які дазваляе арганізаваць выдалены доступ да файлаў пры дапамозе пратаколаў SFTP, SCP/SSH і Rsync. У тым ліку SFTPGo можа выкарыстоўвацца для падавання доступу да Git-рэпазітароў, выкарыстаючы пратакол SSH. Дадзеныя могуць аддавацца як з лакальнай файлавай сістэмы, так і са знешніх сховішчаў, сумяшчальных з Amazon S3 і Google Cloud Storage. Для захоўвання карыстацкай базы і метададзеных выкарыстоўваюцца СКБД з падтрымкай SQL або фармату ключ/значэнне, такія як PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x або bbolt 1.3.x. Маецца таксама рэжым захоўвання метададзеных у аператыўнай памяці, які не патрабуе падлучэння знешняй БД. Код праекта напісаны на мове Go і распаўсюджваецца пад ліцэнзіяй GPLv3.
Асноўныя асаблівасці:
Для кожнага ўліковага запісу прымяняецца chroot-ізаляцыя, якая абмяжоўвае доступ хатнім каталогам карыстальніка. Магчыма стварэння віртуальных каталогаў, якія спасылаюцца на дадзеныя па-за карыстацкім хатнім каталогам.
Уліковыя запісы захоўваюцца ў віртуальнай базе карыстальнікаў, якая не перасякаецца з сістэмнай БД карыстальнікаў. Для захоўвання БД карыстачоў могуць ужывацца SQLite, MySQL, PostgreSQL, bbolt і захоўванне ў памяці. Даюцца сродкі для супастаўлення віртуальных і сістэмных уліковых запісаў - магчыма прамое або адвольнае супастаўленне (адзін сістэмны карыстальнік можа быць супастаўлены з іншым віртуальным карыстальнікам).
Падтрымліваецца аўтэнтыфікацыя па адкрытых ключах, ключах SSH і паролям (у тым ліку інтэрактыўная аўтэнтыфікацыя з уводам пароля з клавіятуры). Магчыма прывязка некалькіх ключоў для кожнага карыстальніка, а таксама настройка мультыфактарнай і шматэтапнай аўтэнтыфікацыі (напрыклад, у выпадку паспяховай аўтэнтыфікацыі па ключы можа дадаткова быць запытаны пароль).
Для кожнага карыстальніка магчыма настройка розных метадаў аўтэнтыфікацыі, а таксама вызначэнне ўласных метадаў, якія рэалізуюцца праз выклік знешніх праграм-аўтэнтыфікатараў (напрыклад, для аўтэнтыфікацыі праз LDAP) або адпраўку запытаў праз HTTP API.
Магчыма падлучэнне вонкавых апрацоўшчыкаў ці выклікаў HTTP API для дынамічнай змены параметраў карыстача, выкліканых перад уваходам карыстача. Падтрымліваецца дынамічнае стварэнне карыстальнікаў пры падключэнні.
Падтрымка індывідуальных квот на памер даных і колькасць файлаў.
Падтрымка абмежавання прапускной здольнасці з паасобнай наладай абмежаванняў для ўваходнага і выходнага трафіку, а таксама абмежаванняў на лік адначасовых падлучэнняў.
Сродкі размежавання доступу, якія дзейнічаюць у прывязцы да карыстача або каталогу (можна абмежаваць прагляд спісу файлаў, забараніць загрузку, запампоўка, перазапіс, выдаленне, перайменаванне ці змена правоў доступу, забараніць стварэнне каталогаў ці сімвалічных спасылак і да т.п.).
Для кожнага карыстальніка можна вызначыць індывідуальныя сеткавыя абмежаванні, напрыклад, можна дазволіць уваход толькі з пэўных IP або падсетак.
Падтрымліваецца падлучэнне фільтраў загружанага кантэнту ў прывязцы да асобных карыстачоў і каталогам (напрыклад, можна блакаваць загрузку файлаў з вызначаным пашырэннем).
Магчымая прывязка апрацоўшчыкаў, якія запускаюцца пры розных аперацыях з файлам (загрузка, выдаленне, перайменаванне і да т.п.). Акрамя выкліку апрацоўшчыкаў падтрымліваецца адпраўка апавяшчэнняў у форме HTTP-запытаў.
Аўтаматычнае завяршэнне неактыўных злучэнняў.
Атамарнае абнаўленне канфігурацыі без разрыву злучэнняў.
Падтрымліваецца пратакол HAProxy PROXY для арганізацыі балансавання нагрузкі ці праксіравання злучэнняў да сэрвісаў SFTP/SCP без страты звестак аб зыходным IP-адрасе карыстача.
REST API для кіравання карыстальнікамі і каталогамі, стварэння рэзервовых копій і фарміравання справаздач аб актыўных злучэннях.
Web-інтэрфейс (http://127.0.0.1:8080/web) для налады і маніторынгу (падтрымліваецца і настройка праз звычайныя файлы канфігурацыі).
Магчымасць вызначэння настроек у фарматах JSON, TOML, YAML, HCL і envfile.
Падтрымка падлучэння па SSH з абмежаваным доступам да сістэмных каманд. Напрыклад, дазволены запуск каманд, неабходных для працы Git (git-receive-pack, git-upload-pack, git-upload-archive) і rsync, а таксама некалькіх убудаваных каманд (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy і sftpgo-remove).
рэжым партатыўны для сумеснага выкарыстання аднаго агульнага каталога з аўтаматычнай генерацыяй уліковых дадзеных для падлучэння, якія анансуюцца праз multicast DNS.
Убудаваная сістэма прафілявання для аналізу прадукцыйнасці.
Спрошчаны працэс міграцыі сістэмных уліковых запісаў Linux.