Skip to content
Platform > Plugins

Checking Installed Plugins

3forge Enterprise reports its plugins through the admin console and the Center SQL console. This page shows which command answers which question, what each listing covers, and what the version column does and does not tell you.

Overview

3 admin console commands answer the 3 usual questions, from the file on disk to the running plugin:

Question Command Lists
Did my bundle load? ami.showPluginBundles(); Every bundle the server read, with its path, checksum, plugin count, and version
What plugins does it provide? ami.showPluginRegistry(); Every registered plugin, enabled or not, with the bundle it came from
Is the plugin running, and what controls it? ami.showPlugins(); Every plugin enabled in the Center, the Relay, the Web, and the other components, with the plugin list that enabled it

Connect to the admin console over ssh with the same user name and password as the Web UI. The shipped port is 3285, set by f1.console.port:

ssh -p 3285 demo@localhost

Checking that a bundle loaded

ami.showPluginBundles() lists each bundle the server read at startup, one row per file, plus a <System> row for the plugins built into the server:

1
2
3
|Name           |Path                               |Cksum     |PluginCount|version  |
|<System>       |<javaclasspath>!null      |58         |32898.dev|
|amikafka.tar.gz|...\amicore\plugins\amikafka.tar.gz|3573968038|1          |31968.dev|

The console shows an empty value as !null, as in the <System> row's Cksum column. If a bundle is missing from this list, the server did not find the file. See No LOADING BUNDLE line for a bundle.

Finding a plugin's ID

ami.showPluginRegistry() lists every registered plugin as TYPE>ID, with the bundle it came from. Plugins built into the server have an empty Bundle column:

1
2
3
|ID                     |JavaClass                                          |Bundle         |Version  |SecurityWarnings                |
|DATASOURCE>SHELL       |com.f1.ami.center.ds.AmiShellDatasourcePlugin      |               |32898.dev|Allows access to run arbitrar...|
|RELAY_FEEDHANDLER>KAFKA|com.f1.ami.relay.fh.kafka.AmiKafkaFeedHandlerPlugin|amikafka.tar.gz|31968.dev|                                |

The plugin ID is the part after >. Find a newly installed bundle's plugins by its file name in the Bundle column. The same ID appears in the startup log, on the line REGISTERED PLUGIN: RELAY_FEEDHANDLER>KAFKA (...) FROM BUNDLE amikafka.tar.gz.

For datasource plugins, the Center SQL console also lists IDs, with a readable description:

SELECT I, Description, ClassType FROM __DATASOURCE_TYPE;

The registry includes plugins that are registered but not enabled. SHELL is listed on every startup because it is registered, although the shipped configuration excludes it.

Seeing which plugins are enabled

ami.showPlugins() lists the plugins enabled in each component in the process: the Center, the Relay, the Web, and any others running. The ManagerProperty column names the plugin list that enabled it, which is the property to change to turn it off:

1
2
3
|Type  |Component|Manager          |ManagerProperty              |Plugin |Class                                             |Version  |
|CENTER|center   |DATASOURCE       |ami.datasource.plugins       |AMIDB  |com.f1.ami.center.ds.AmiAmiDbDatasourcePlugin     |32898.dev|
|RELAY |relay    |RELAY_FEEDHANDLER|ami.relay.feedhandler.plugins|KAFKA  |com.f1.ami.relay.fh.kafka.AmiKafkaFeedHandlerPlugin|31968.dev|

A plugin used by several components appears once for each. A datasource plugin, for example, appears under both center and relay.

To list one component only, use that component's console object, e.g: ami_center.showPlugins();.

ami.showPlugins() does not list REST endpoint plugins, WebSocket endpoint plugins, or AI provider plugins, which are enabled outside any single component. For those, check the startup log for a CREATED PLUGIN line, e.g: CREATED PLUGIN: REST>MCP.

Checking from the Center SQL console

The Center SQL console lists Center plugins with SQL. Connect over ssh to port 3290, set by ami.db.console.port, and run:

SHOW PLUGINS;

This lists enabled datasource, procedure, trigger, persister, and timer plugins in the Center, with their arguments. SHOW PLUGIN_OPTIONS; lists each one's options.

Warning

SHOW PLUGINS lists Center plugins only. Relay and Web plugins, including feed handlers, never appear in it, even when they are enabled. Use ami.showPlugins() to check any plugin that is not a Center plugin.

Understanding plugin versions

Each bundle reports a version, shown in the version column of ami.showPluginBundles() and after @ in the log. Plugins built into the server report the server's own version.

A bundle's version can differ from the server's. The server does not compare them: a bundle built for a different server version loads and is enabled without any warning. The version column is the only place the difference shows.

We recommend using bundles provided for your server version.

Checking plugins over MCP

The MCP server's ami_console tool exposes the same listings: the pluginBundles, pluginRegistry, and plugins operations return the results of the matching admin console commands. Installing and enabling plugins cannot be done over MCP, because both need file changes and a restart.

What this does not support

  • A version compatibility check: bundle and server versions are shown but never compared.
  • Relay and Web plugins in SHOW PLUGINS: use ami.showPlugins() for those.
  • REST, WebSocket, and AI provider plugins in ami.showPlugins(): check the startup log's CREATED PLUGIN lines for those.