Design Considerations

This page explains features, concepts, and considerations to use when building your connected system plug-in.

Branding

Good logos and descriptions will help users find and use your plug-in.

  • Add logos to your Connected System to show custom branding
  • Add a description that tells us how to use your system. Why would I use it? What is exciting about it?
  • For example, our Google Cloud Natural Language Connected System has the following description: Easily connect to Google Cloud Natural Language machine learning models. Extract structure and information from text, including both sentiment and key subjects such as people, places, and events. Integrations using this connected system will allow you to provide a text value and select which types of information to analyze.
  • Check out Appian's Connected Systems for more examples.

Authentication

When authentication is required to send and receive information, fields can be configured to securely store credentials. Appian supports the use of the following authentication types for API requests:

  • System username/password
    • Basic authentication
    • NTLM
    • Digest
    • Kerberos
    • SOAP request body
  • Prebuilt OAuth 2.0 (Authorization Code grant) - storage and retrieval of refresh and access tokens
  • Custom - you can configure many different kinds of auth. Below are a few examples

Known Unsupported Authentication Mechanisms

Currently, you cannot build a plug-in that authenticates using:

  • Anything Involving Certificate-Based Signing
    • OAuth 2.0 (JWT Bearer Token)
  • Per use credentials for anything other than OAuth 2.0 (e.g. Per-user creds for Basic auth)
  • Secure storage of Short-lived token authentication
    • OAuth 2.0 (Client Credentials)
    • Workaround: You can configure your Connected System Template to request a token on each request. Be sure to review the policies and rate limits for the the service you are connecting to.

File Transfer

System Wide Configurations

Proxy Support

  • If a proxy is enabled by an Appian administrator, you use the provided configuration data when making HTTP requests to non excluded hosts.
  • See an example of using the proxy data to configure the Apache HttpClient
  • Configuring HttpClient when a proxy is enabled

SSL

  • Not supported. We do not currently provide trusted or client certificates.

Give Feedback on Errors

Diagnostics

Timing

Import Customizable Fields

Use Sensitive Values on Connected Systems

Connected System Plug-ins Restrictions

Connected Systems

  • Must not implement both TestableConnectedSystemTemplate and OAuthConnectedSystemTemplate
  • Fields must have a RefreshPolicy of NEVER
  • Fields must not be expressionable
  • Fields must not be LIST type
  • Fields must not have deeply nested Local Types
  • Don’t call setErrors(), as errors are ignored

Integrations

  • isImportCustomizable should not be set to true
  • Fields must not be encrypted
  • Local Types must be expressionable
  • @TemplateId.majorVersion annotation is ignored

Choices

  • Each Choice must have a name and value

PropertyDescriptors

  • Fields that are DisplayHint.EXPRESSION must be expressionable
  • Required fields must not be hidden

EncryptedTextPropertyDescriptors

  • isImportCustomizable should be set to true

DocumentPropertyDescriptors

  • isImportCustomizable should not be set to true

ListTypePropertyDescriptors

  • Must be expressionable
  • Must not have a placeholder
  • displayHint() must be set to DisplayHint.Expression

LocalTypePropertyDescriptor

  • Must not have a null type
  • isImportCustomizable should not be set to true
FEEDBACK