Appian plug-ins allow you to extend the base Appian product with the powerful and specific functionality required by your use cases. When developing your plug-in, it is important to ensure that the planned functionality does not replicate out of the box (OOTB) functionality.
Plug-in fixes and development are not supported by Appian Support, so using OOTB features means that you can get the best support and fixes for your applications.
Sometimes, specific functionality intersects with functionality provided by an existing plug-in. In these instances, instead of developing a completely new plug-in, it is best to add functionality to the existing plug-in. This can reduce duplication, and reduce the development effort required as the new functionality can leverage utilities and work done for the existing component.
Finally, when defining the use case for your plug-ins, it is important to consider how the functionality addressing the use case could be expanded to other, similar use cases with minimal changes and effort. Spending time early in the development cycle reasoning about this can allow plug-ins to be developed against the “generic use case” instead of being tightly coupled to your business specific use case. Plug-ins that apply to the generic use case provide more longevity for your organization, and are more resilient to evolving requirements. Plug-ins that address generic use cases can also be submitted as Shared Components for community use and enhancement.
For more details regarding the different ways to extend Appian and general information about plugins, please reference the Appian documentation - Extending Appian.
Some plug-ins will require integration with other applications and services in order to fulfill your use cases. It is essential to remember the following points when integrating with external services, and to note that they also apply to connections obtained for any database access requirements:
A common use case for many plug-ins is advanced document manipulation and processing that often provides mission critical functionality for business operations. As such, when developing these plug-ins, special care needs to be taken to maintain the integrity of the operation and the system. The key things to keep in mind are:
Plug-ins in Appian are treated in the same manner by the application server as in-platform design objects in terms of execution and resource allocation. This means that a plug-in can cause a poor user experience when it is costly to run, poorly designed, or used incorrectly. Keep the following items in mind when developing your plug-ins:
To keep your Appian platform stable and secure, Appian regularly performs checks on all plug-ins for known vulnerabilities in third party libraries used by the plug-ins. If a vulnerability is uncovered, the corresponding plug-in may be removed from Appian Community until it is fixed.
In order to avoid known vulnerabilities, it is recommended that you use Common Vulnerabilities and Exposures (CVE) detection tools when developing your plug-ins. Tools such as OWASP Dependency Check are designed to detect all publicly disclosed vulnerabilities contained in a project dependencies. Fixing such vulnerability in a dependency library often involves updating to a newer version of said library that has been fixed by the library provider.
Plug-ins developed with the intention of being deployed on Appian Cloud have some additional restrictions on top of the best practice items outlined here. Please visit the documentation for additional details and guidelines.
As discussed in the Planning your Plug-in section, a well designed plug-in can extend to use cases beyond that that the plug-in was originally developed for. Suitably generic plug-ins that can address a variety of similar use cases should be considered for release on the Appian Community platform.
Releasing a plug-in to Appian Community means that it will be available as a Shared Component for other practitioners to use as part of their applications. Not only does this raise your own profile among other practitioners, but it allows others to contribute to the development and upkeep of the component, resulting in reduced development efforts and continued improvement of the component.
Find more details about submitting a plug-in as a Shared Component here and here
Plug-ins listed on Appian community are community supported. It is encouraged that practitioners maintain and update existing plug-ins as they see fit. Even if a plug-in has originally been developed and released by an Appian partner or by an Appian employee, practitioners can take an active role in fixing and enhancing existing plug-ins based on their needs and requirements.
When updating an existing plug-in, it is critical to keep the following in mind: