Skip to main content
Version: 3.0

Manifest

Configuring and integrating plugins into an application ecosystem requires detailed specifications to ensure compatibility and smooth functionality. This guide explains how to create a JSON manifest for the PluginDescription entity, which outlines the essential characteristics, dependencies, and validation rules of a plugin. By following this structure, developers can ensure their plugins are accurately defined, validated, and integrated into the application.

The configuration file for a plugin must be named manifest.json and includes key attributes that describe the plugin's functionality, versioning, and dependencies.

PluginDescription JSON Structure

The JSON manifest for a plugin provides all necessary information about the plugin's identity, its type, and its dependencies. Below is an example structure of the manifest.json file:

{
"PluginCode": "Core.Example01.AE",
"PluginName": "Example Plugin",
"Icon": "sap-icon://activate",
"Assembly": "ConsoleApp.AE.dll",
"Company": "Your Company Name",
"PluginVersion": "1.0.5",
"Remarks": "Example Plugin Remarks that will be displayed in the plugin list",
"ReadmeFile": "README.md",
"ReleaseNotes": "RELEASE_NOTES.md",
"DocumentationLink": "http://example.com/plugin-docs",
"PluginType": "AppEnginePlugin",
"MinimumCoreLevel": "1.0.0",
"Dependencies": [
{
"PluginCode": "Core.Example01.API",
"minVersion": "1.0"
}
]
}

Field Descriptions and Validation Rules

FieldField DescriptionValidation Rules
PluginCodeThe unique code for the plugin. Must be a non-empty string.Required
PluginNameThe name of the plugin. Must be a non-empty string.Required
IconSpecifies the icon for the plugin, often as a URI or a reference to an icon library.Optional
AssemblyThe filename of the assembly containing the plugin. Must be a non-empty string.Required
CompanyThe name of the company or individual who owns the plugin.Optional
PluginVersionVersion of the plugin, following semantic versioning (must be in a valid CTVersion format).Required
RemarksAdditional information about the plugin.Optional
ReadmeFilePath to the README file for the plugin.Optional
ReleaseNotesPath to the release notes file for the plugin.Optional
DocumentationLinkA URL pointing to the plugin’s documentation.Optional
PluginTypeType of plugin, which must be one of the following: Standalone, BusinessLogic, AppEnginePlugin, SapUserInterface, Other.Required
MinimumCoreLevelMinimum version of the core application required for the plugin (must follow CTVersion format).Required
DependenciesArray of objects specifying the plugin dependencies, where each object includes:
PluginCode - The dependent plugin's code.
minVersion - Minimum required version of the dependent plugin.
Optional

Plugin Type

The PluginType field categorizes the plugin, determining how it’s deployed, integrated, and used within the application ecosystem.

Conversion Logic

Conversion between string representations and ApplicationTypes enum values ensures compatibility across different environments. Below is the table with the supported plugin types, descriptions, and acceptable string representations:

Plugin Type DescriptionApplicationTypes Enum ValueAcceptable String Representations
Business LogicBusinessLogic"BusinessLogic", "DiAPI", "Di"
SAP User InterfaceSapUserInterface"SapUserInterface", "SapUI", "UI"
StandaloneStandalone"Standalone", "exe", "app"
App Engine PluginAppEnginePlugin"AePlugin", "plugin", "AEComponent", "AppEnginePlugin"
OtherOther"Other"

Validation Logic

Below is the validation logic for the plugin configuration fields to ensure proper functionality and integration:

  • PluginCode and Assembly fields must not be empty. PluginCode serves as a unique identifier, while Assembly specifies the main assembly.
  • PluginVersion and MinimumCoreLevel must be in a valid version format to ensure correct handling of version dependencies. Follows Semantic Versioning.
  • PluginType must match one of the predefined types for correct integration into the application ecosystem.
  • Dependencies (if specified): Each dependency must include both PluginCode and minVersion to verify compatibility with necessary components.

By following the guidelines provided in this document, developers can effectively configure and validate plugins for seamless integration into application ecosystems. The PluginDescription manifest ensures clarity, compatibility, and maintainability for plugin-related processes, empowering users to build robust and scalable solutions.