Plugin Synchronization

Digital.ai Release 10.2.0 introduces new way of managing plugins. Once you upgrade your Digital.ai Release to 10.2.0 or higher version there is no more manually copying of plugin files. Everything is handled by Digital.ai Release GUI and internal API. Plugins are now being stored in the database as a central location to remove the manual manipulation of files across the cluster.

Synchronization between filesystem and database occurs during system startup to facilitate the plugin management process.

How synchronization works

Since Release 22.0.0 and later versions, a new option -plugin-source is available to add when starting the distribution. The value of the option can be either database or filesystem. If the option is not given, database is used as default.

The -plugin-source startup parameter defines the source location for the plugins. It helps in synchronizing the contents of the database and filesystem.

If the plugin source is defined as database or -plugin-source option is not defined:

  • All plugins on the filesystem that are not in the database will be deleted
  • All plugins from the database that do not exist on the filesystem will be written on the filesystem

If the plugin source is filesystem:

  • All plugins from the database that do not exist on the filesystem will be deleted
  • All plugins on the filesystem that are not inserted into the database will be inserted into the database

Plugin synchronization is skipped in certain cases (even if the -plugin-source option is defined) in the following scenarios:

  • When you start a fresh installation for the first time
  • When you start the system the first time after upgrading to a new version

If there are different versions of a plugin in the database and filesystem the one from -plugin-source will override the one on the other location. This will happen irrespective of the version and source, thereby allowing version upgrades and downgrades.

NOTE The default value of the -plugin-source is database when Digital.ai Release is run as a service. To modify the -plugin-source value, configure the value of wrapper.app.parameter.1 property from -plugin-source=database to -plugin-source=filesystem in the following file:

  • conf/xlr-wrapper-linux.conf if you are running Linux
  • conf/xlr-wrapper-win.conf if you are running Windows

Examples

  • If plugin source is filesystem and a plugin that is inserted into the database does not exist on the filesystem, the plugin will be deleted from the database.

    Log output:

    Plugins Manager version

  • If plugin source is database and a plugin that is inserted into the database does not exist on the filesystem, the plugin will be written to the filesystem.

    Log output:

    Plugins Manager version

  • If plugin source is database and a plugin that is inserted into the database exist on the filesystem, but a different version, the plugin on the filesystem will be removed and the plugin from the database will be written to the filesystem.

    Log output:

    Plugins Manager version

Plugins

Bundled plugins

Plugins that come with the distribution are called bundled plugins. They are automatically placed on your filesystem.

When you start your distribution of Digital.ai Release 10.2.0 and later versions for the first time, you will see a message that these plugins are being inserted into the database and synchronized with the message below:

Plugin synchronization bundled

Official plugins

Official plugins are plugins that you can find under the Browse tab in the Plugins menu.

Once you install a new official plugin it means it is being inserted into the database.

You will get a message that the plugin is ready for installation. Once you restart the system, synchronization will happen and the new plugin gets written to the filesystem after which it is ready for usage.

Log output:

Plugin synchronization official

Local plugins

  • Local plugins are plugins that you can manually upload by clicking the Installed tab under the Plugins menu. Once you upload a new local plugin it means it is being inserted to the database. You will get a message that the plugin is ready for installation. Once you restart the system, synchronization will happen and the new plugin gets written to the filesystem after which it is ready for usage.
  • If plugin exists both on filesystem and database (which means plugin with the same name was already uploaded before), only plugins from plugin source will get materialized
  • Type validation is introduced as of Digital.ai Release 22.0.0, so there cannot be duplicated types.