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
  • Currently we upgraded our SFTP plugin to version 4.1.0. Configured the plugin to use the File Transfer Configurations with the proper mappings as below  

    'type!{plugins.ps.appiancorp.com/.../}FT_Config'{

    serverHostName:"text value", 

    serverPort: 22,

    scsExternalSystemKey: "text value",

    usePerUserCredentials: false(),

    privateKeyFile: "document"

    }

    we get the following error in the logs

    ERROR com.appiancorp.process.engine.UnattendedJavaActivityRequest - An error occurred while executing activity: id=704, classname=com.appiancorp.ps.plugins.filetransfer.sftp.SendFileOverSFTP

    Caused by: java.lang.ClassCastException: class com.appiancorp.ps.plugins.typetransformer.AppianPrimitive cannot be cast to class com.appiancorp.ps.plugins.typetransformer.AppianObject (com.appiancorp.ps.plugins.typetransformer.AppianPrimitive and com.appiancorp.ps.plugins.typetransformer.AppianObject are in unnamed module of loader org.apache.felix.framework.BundleWiringImpl$BundleClassLoader @789e2dec) at com.appiancorp.ps.plugins.typetransformer.AppianTypeFactory.toJavaObject(AppianTypeFactory.java:174) at com.appiancorp.ps.plugins.filetransfer.AbstractActionOverProtocol.setConfig(AbstractActionOverProtocol.java:54)

    The old version of the plugin with the same credentials works fine

  • For anyone else getting the argon2 error, it is fixed by converting the private key file (in my case PuTTy format) into an OpenSSH file. I used PuttyGen for this.

  • Appian 24.4

    SFTP Utilities 4.1.0

    I am trying to connect with an SFTP server using a passphrase-protected private key.

    The private Key contains the lines:

    PuTTY-User-Key-File-3: ssh-rsa
    Encryption: aes256-cbc
    Comment: rsa-key-20240730
    Public-Lines: 12
    ...
    Key-Derivation: Argon2id
    Argon2-Memory: 8192
    Argon2-Passes: 34
    Argon2-Parallelism: 1
    Argon2-Salt: 25ae650a118fe9de89eccbe43fc34e0f
    Private-Lines: 28
    ...

    I have configured the FT_Config to use an scsExternalSystemKey and reference the above private key file.

    in the third party credentials I have included the fields "username" and "passphrase"

    In the tomcat logs I'm receiving the error:

    UnattendedJavaActivityRequest] ERROR com.appiancorp.ps.plugins.filetransfer.sftp.ReceiveFileOverSFTP - com.jcraft.jsch.JSchException: 'argon2' is required, but it is not available.

    I have tried adding "argon2" as a field in the third party credentials, but same error occurs.

  • Hi, did you find a solution? We are receiving the same error

  • Using version 4.1.0. When using the (SFTP) Receive File smart service, if a file path is invalid/file doesn't exist the plugin is still creating an empty file with the Document Name in the Destination Folder. The output Error and Success are set but New Document is blank (even though empty doc created). Destination Document input is not being used in this scenario.

  •   yes, This issue got resolved. Thanks for your update.

  •   There was a temporary issue with the appmarket yesterday that has been resolved so you should be able to try again.

  • Why am I getting this warning sign?

  • Hi, we're using version 4.1.0 and we'd like to be able to enabled Debug/Trace lvl logging for the plugin since we're encountering an issue when moving files to a different location on the filesystem. We've modified appian_log4j.properties with the following entries, but still see no logs in tomcat-stdOut.log:

    log4j.rootLogger=ERROR, CONSOLE, METRICS log4j.logger.com.appiancorp.a2.process.runtime.activities.sftp=DEBUG log4j.logger.com.appiancorp.ps.plugins.filetransfer.sftp=DEBUG log4j.properties.com.appiancorp.ps.plugins.filetransfer.sftp.SendFileOverSFTP=DEBUG

    Can you please let me know the precise entries that we should put in log4.properties file in order to get enhanced logging for the plugin?

  • When we upgraded the plugin from version 3.0.3 to the latest version that is 4.1.0, we started facing the following error:

    2025-01-17 19:24:41,547 [http-nio-8080-exec-804] ERROR com.appiancorp.ps.plugins.filetransfer.sftp.ReturnRemoteFolderContentsOverSFTP - com.jcraft.jsch.JSchException: Auth fail for methods 'publickey,password,keyboard-interactive'

    Please advise.