JEF enables developers to manage Action and Resource versions. When defining the action configuration, plugin developers
- must specify the following fields:
- UUID: this stands for "Universally Unique Identifier" and is unique across all the action and resource configuration. This value should remain constant for the lifetime of the plugin.
- Action Type or Resource Type: this is a string that groups together all the actions that are from the same family. Please see the [Plugin Types](../enterprise_plugin_types/) section for a complete list of plugin types that are provided out-of-the box.
- Plugin: this is an identifying name for the particular plugin, conventionally written in kebab case e.g. "my-plugin".
Version: this must be a two part version number, e.g. `2.1`. Conventionally, the major version (the `X` in `X.Y`) is incremented for every breaking change or major feature upgrade (and `Y` in this case is reset to 0), while the minor version (`Y`) is incremented for less significant changes. During the plugin build, a third part will be appended to the version, namely the short hash identifying the Git commit corresponding to the code that was built.
In totality, the version in the UI will appear as e.g. `2.1.7b3eab9`.
Additionally, it is recommended to specify the following optional field:
Display Name: Explicitly specifies how the plugin name should appear in the UI. If not provided, this will be
derived from the Plugin field by converting from kebab case to title case e.g. "my-plugin" becomes "My Plugin".
Action and Resource versioning
- JEF Executor should support the latest plugin version
- Flex Enterprise, on creating new Action or Resource configuration, will always use the latest plugin definition version
- Flex Enterprise may reference older versions of Action or Resource configuration from Workflows (e.g. a Workflow created with Action definition versions before the latest plugin version was deployed)
- Flex Enterprise executing jobs in JEF will use the following high-level logic:
- If the latest version is used for execution this will be selected by JEF for execution
- If a previous version is used for execution, JEF will try to find the specific plugin version (see Developer Guide for description of how to host multiple Java beans)
- If the required version is not available in the JEF Executors, then JEF will delegate the execution to the latest plugin version
See Type, Plugin and Version in the image below.