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 Rajsekhar, try following

    1. use Key from third-party credentials instead of name you created.

    2. in third-party credentials, add SFTP plug in under plug in list to allow access. 

  • Hi,

    We were using "Send File over SFTP(basic credentials) and recently after the Appian version upgrade 23.2, it started giving error "Requested Appian file resource could not be found. See application server log for more details. Error Message: Null Arguments are Invalid" and somehow the file transfer to SFTP server has stopped. We also found that the current plugin has been deprecated after the recent SFTP plugin update 3.0.2, so our concern is that what exactly is the cause of the error being thrown. Also, for its alternative which is the best option and how to configure it correctly for the smooth functionality?

    Thanks in advance.

  • Hey, 

    We are using the "SFTP Smart Services" (v3.0.2) - (SFTP) Send File [Smart Service] and I believe that I have set it up correctly, but unfortunately I am getting "Auth cancel" error message. 

    I am not sure where the connection / authentication is failing as it's not obvious from the error log. Previously we were able to make a connection successfully using the old version of the plugin. (now the previous version of this plugin is also failing, so we are updating to the newer version) Also, there has been no change on our infrastructure end. 

    I can also confirm that I am able to make the connection successfully using another "cross-platform FTP application" (FileZilla).

    Below are the setup details for the (SFTP) Send File smart service which I am using:

    Node's Data Inputs:

    File Transfer Configurations: 'type!{plugins.ps.appiancorp.com/.../}FT_Config'(
    serverHostName: "xyz-abc.au",
    serverPort: 22,
    scsExternalSystemKey: "thirdparty-cred-sftp-key",
    usePerUserCredentials: false(),
    privateKeyFile: "private-key-doc"
    )

    Remote File Path: "/home/xyzabc" | Type = Text

    Document to Send: "testDoc" | Type = Document


    NOTE: privateKeyFile parameter is a document.

    Below is the error message on the system logs:

    2023-08-31 00:36:51,263 [Appian Work Item - 7735 - WorkID 624 - execution02 - process 537169099 - model 27606 : UnattendedJavaActivityRequest] ERROR com.appiancorp.ps.plugins.filetransfer.sftp.SendFileOverSFTP - com.jcraft.jsch.JSchException: Auth cancel

    Any help on this issue would be much appreciated!

    Kind regards,
    Ankit

  • We are using this plugin for all of our SFTP processes.  Within our process model if the SFTP node is not able to connect to the SFTP server we have a timeout node set to 13 minutes.  Once the timeout is hit, we send a notification to the admins and terminate the process model.  Over the weekend we had an issue with as SFTP that was not able to connect, therefore the process model was terminated.  It appears when this happens the SFTP node does not terminate and causes long running nodes and memory issues with the Appian servers, which has cause the fix to be restarting the servers.

    Is there a fix in process to terminate the connection to the SFTP server if the process model is terminated? And/or is there a workaround so that we won't need to restart the servers when we have this issue.  We have this running in our production environment as well.

  • Hi.

    At the end we have detected the problem, and we think it could be a bug on the plugin.

    The key is in the error "Caused by: com.jcraft.jsch.JSchException: Session.connect: java.io.IOException: End of IO Stream Read"

    The problem is with the java library JSch. it seems that it does not follow the SSH protocol version exchange correctly.

    In the following link you can see more detailed documentation:

    https://support.solarwinds.com/SuccessCenter/s/article/SFTP-connection-not-established-for-legacy-Java-clients?language=en_US

    Is it reasonable to expect an upgrade of the affected client's JSch library to an RFC-compliant version in new releases?

    Thanks in advance.

  • Hi, we are experiencing similar issues with version 2.2.2. What version are you using?

  • We are using version 3.0.2.  Seems the problem has been going on for a couple of versions.  It would be nice to have a response.

  • Is there a file size limit on 'Send File Over SFTP' plugin 

  • Hi Ankit, I am facing similar issue...were you able to resolve this error? If yes then please let me know how, it would be of great help!

  • Hi,

    Plugin version used : 3.0.2

    Appian environment : Cloud

    We've been using this plugin for a while but with an older smart node "Send File Over SFTP (Basic Credentials)" which is Deprecated now.
    I was trying to use the newer smart node "Send File Over SFTP".

    I've set up a "Third-party credentials" config in the Appian Admin. Configured with fields "username" and "password" only.

    Smart node is configured as such :

    - File Transfer Configuration : = 'type!{plugins.ps.appiancorp.com/.../}FT_Config'(
    serverHostName: cons!hostname,
    serverPort: cons!port,
    scsExternalSystemKey: "sftpConfig", /* this is the third party credentials name*/
    usePerUserCredentials: false
    )

    - Remote file path : ="/directory"

    - Document to send : =testdocument.pdf

    I've tried running a process instance using the old deprecated smart node and the newer one. Bot hare using the same connexion parameters.

    The old smart node is in SUCCESS status, the newer one is FAILED with this error in the tomcat-stdout log file :

    2024-01-17 14:47:00,271 [Appian Work Item - 209342 - WorkID 41 - execution00 - process 117073 - model 11936 : UnattendedJavaActivityRequest] ERROR com.appiancorp.ps.plugins.filetransfer.sftp.SendFileOverSFTP - 24: 

    Just to make sure, I changed the "username" value in the third-party credentials configuration, and I got an "Auth failed" error which seems to indicate my Third-Party Credentials is configured correctly. Maybe missing some other parameter ? 

    Any help would be appreciated. Thank you in advance.

    Sébastien J.