SFTP Smart Services

Overview

Contains multiple Smart Services for interacting with a remote file server via SFTP, FTP, or SCP.  Using these services, an Appian application can be configured to send and receive files, folders, and metadata in a process.  Features support for zlib compression.

Key Features & Functionality

Smart Services included:

  • SFTP:
    • Remove Directory Over SFTP (Basic Credentials)
    • Send File Over SFTP
    • Send File Over SFTP (Basic Credentials)
    • Receive File Over SFTP
    • Receive File Over SFTP (Basic Credentials)
    • Rename File Over SFTP
    • Get Remote Directory Contents Over SFTP
    • Get Remote Directory Contents Over SFTP (Basic Credentials)
    • Create Directory Over SFTP
    • Create Directory Over SFTP (Basic Credentials)
  • SCP:
    • Send File Over SCP
    • Receive File Over SCP
  • FTP:
    • Send File Over FTP
    • Receive File Over FTP
    • Receive Folder Over FTP
  • FTPS
    • Receive Folder Over FTPS
    • Send File Over FTPS (Basic Credentials)

All smart services in the package use Secure Credentials Store.

Anonymous
  • Hi team!

    Using 'Get Remote Directory Contents Over SFTP' smart service we´re seeing the following error:

    2023-01-24 10:06:45,716 [ajp-nio-0.0.0.0-8009-exec-2111] ERROR com.appiancorp.process.engine.UnattendedJavaActivityRequest - An error occurred while executing activity: id=7559, classname=com.appian.ps.plugins.sftpsmartservices.GetRemoteDirectoryContentsOverSFTP
    com.appiancorp.suiteapi.process.exceptions.SmartServiceException: userMsg[error.sftp_conn=Error establishing SFTP connection. Confirm your hostname, username and password. See application server log for more details. Error Message: Session.connect: java.io.IOException: End of IO Stream Read]
    at com.appiancorp.suiteapi.process.exceptions.SmartServiceException$Builder.build(SmartServiceException.java:145)
    at com.appian.ps.plugins.sftpsmartservices.GetRemoteDirectoryContentsOverSFTP.createException(GetRemoteDirectoryContentsOverSFTP.java:203)
    ......................
    Caused by: com.jcraft.jsch.JSchException: Session.connect: java.io.IOException: End of IO Stream Read
    at com.jcraft.jsch.Session.connect(Session.java:565)
    at com.jcraft.jsch.Session.connect(Session.java:183)
    at com.appian.ps.plugins.sftpsmartservices.SFTPConfig.connect(SFTPConfig.java:179)
    at com.appian.ps.plugins.sftpsmartservices.GetRemoteDirectoryContentsOverSFTP.run(GetRemoteDirectoryContentsOverSFTP.java:66)

    Could you help us to identify the error?

    This communication has been in working until last week, so we know that its not a problem with hostname/username/pw.

    Thanks in advance.

  • Hi Arpit, I experienced the same issue when I upgraded from 1.6.2 and 2.2.2

    Had to revert to the 1.6.2 version. Is there a proper way to contact Vuram Technology?

  • Hi team,

    we are having intermittent connection timeout issue, so can we know what is the timeout set for  connection to SFTP application? as we are having trouble understanding issue from SFTP application end if there is any issue from SFTP or plug-in end 

  • Hi Santhosh,

    I have Checked path is correct and input file is available is was working in the past but now it stopped working with the error i mention. currently the plugin is in 1.8.1 Version can this be the reason?

    Thanks,

    Sourabh

  • Would the authors of this plug-in consider making this change in SFTPConfig.java?
    We were being prompted in the TomCat log to enter a password even though key exchange was being utilized.  Research into the jsch.jar  file showed that we needed to add the below line to SFTPConfig.java.  Would you consider adding that to your base code?

    session.setConfig("PreferredAuthentications", "publickey,keyboard-interactive,password");
  • I 'believe' I had a similar issue and had to reformat the key using this command: ssh-keygen -f <your_key> -m pem

  • Hello there, Can somebody please share some more documentation on connecting through ssh. How to generate ssh keys, etc. I generated keys in PuttyGen, and I am passing the ppk file while connecting, but it complains of having an invalid private key. 
    Any help is much appreciated

  • Hi,

    We are using 'Receive File Over SFTP' node as MNI and it is showing error intermittently as connection timeout, few files are getting transferred  but for one of file it fails, even though SFTP application is up and not having any connection issue. It is happening 3 or 4 times in a week, Can someone help us out of this issue or can any one of you can connect with us.

    Below is the error:

     

    com.jcraft.jsch.JSchException: java.net.ConnectException: Connection timed out (Connection timed out)
    	at com.jcraft.jsch.Util.createSocket(Util.java:349)
    	at com.jcraft.jsch.Session.connect(Session.java:215)
    	at com.jcraft.jsch.Session.connect(Session.java:183)
    	at com.appian.ps.plugins.sftpsmartservices.SFTPConfig.connect(SFTPConfig.java:179)
    	at com.appian.ps.plugins.sftpsmartservices.GetRemoteDirectoryContentsOverSFTP.run(GetRemoteDirectoryContentsOverSFTP.java:66)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.lambda$call$0(DefaultActivityExecutor.java:136)
    	at com.appiancorp.plugins.PluginUsageLogger.runWithPluginInformation(PluginUsageLogger.java:52)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:136)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor$1.call(DefaultActivityExecutor.java:130)
    	at com.appiancorp.common.ContextClassLoaderSwitcher.runInContext(ContextClassLoaderSwitcher.java:27)
    	at com.appiancorp.process.runtime.framework.DefaultActivityExecutor.execute(DefaultActivityExecutor.java:130)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute(UnattendedJavaActivityRequest.java:88)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequestResponseCreator.getJavaActivityResultResponse(UnattendedJavaActivityRequestResponseCreator.java:21)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.getJavaActivityResultResponse(UnattendedJavaActivityRequest.java:67)
    	at com.appiancorp.process.engine.UnattendedJavaActivityRequest.execute0(UnattendedJavaActivityRequest.java:55)
    	at com.appiancorp.common.persistence.data.AppianDataUserContextProvider.executeWithConsistentDataReads(AppianDataUserContextProvider.java:143)
    	at com.appiancorp.process.engine.ProcessContinuationRequest.executeOuter(ProcessContinuationRequest.java:68)
    	at com.appiancorp.process.engine.ContinuationRequest.execute(ContinuationRequest.java:129)
    	at com.appiancorp.process.workpoller.UnattendedRequestHandlerBean.onMessage(UnattendedRequestHandlerBean.java:36)
    	at com.appiancorp.process.workpoller.WorkItem.run(WorkItem.java:110)
    	at org.springframework.jca.work.SimpleTaskWorkManager$DelegatingWorkAdapter.run(SimpleTaskWorkManager.java:239)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    	at java.lang.Thread.run(Thread.java:750)
    Caused by: java.net.ConnectException: Connection timed out (Connection timed out)
    	at java.net.PlainSocketImpl.socketConnect(Native Method)
    	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    	at java.net.VPNSocketImpl.connect(VPNSocketImpl.java:50)
    	at java.net.Socket.connect(Socket.java:607)
    	at java.net.Socket.connect(Socket.java:556)
    	at java.net.Socket.<init>(Socket.java:452)
    	at java.net.Socket.<init>(Socket.java:229)
    	at com.jcraft.jsch.Util.createSocket(Util.java:343)
    	... 23 more
    2022-12-08 15:42:12,240 [Appian Work Item - 21 - WorkID 62 - execution02 - process 53970 - model 226 : UnattendedJavaActivityRequest] ERROR com.appiancorp.process.engine.UnattendedJavaActivityRequest - An error occurred while executing activity: id=536872158, classname=com.appian.ps.plugins.sftpsmartservices.GetRemoteDirectoryContentsOverSFTP
    com.appiancorp.suiteapi.process.exceptions.SmartServiceException: userMsg[error.sftp_conn=Error establishing SFTP connection. Confirm your hostname, username and password. See application server log for more details. Error Message: java.net.ConnectException: Connection timed out (Connection timed out)Up0
  • Hi Sourabh,

    This issue might happen when the provided path is not available or the path doesn't have any file within it. Kindly check with the input path provided and also the folder.

    Thanks.

  • Hi All,

    We are getting the Error while using Receive File Over SFTP (Basic Credentials)

    String index out of range: -1
    can you Please hep me with it
    Thanks in Advance!