Manage User Plugins
Deploy Groovy-based user plugins on self-managed Artifactory and understand their local-only execution in a Federation.
Deploy and manage Groovy-based user plugins that extend Artifactory's functionality. In a Federation, user plugins execute locally on each member and are not synchronized or distributed automatically.
Who can perform this task: Platform Administrators
Prerequisites:
- Admin access to the JFrog Platform
- Self-managed Artifactory (user plugins are not supported on SaaS)
- Plugin files written in Groovy
User plugins are available only on self-managed Artifactory instances. They aren't supported on SaaS deployments.
Using the Platform UI
View and Reload Plugins
View the plugins currently installed on this instance, and reload them after adding or modifying plugin files.
To manage user plugins:
- In the Administration module, navigate to Artifactory Settings > User Plugins.
- The installed plugins are listed with their type, version, and status.
- To reload plugins after adding or modifying plugin files, click Reload Plugins.
Plugin Types
The following plugin types are available.
| Plugin Type | Description |
|---|---|
| Download | Intercept and modify download requests. |
| Before Download | Execute logic before download starts. |
| After Download | Execute logic after download completes. |
| Deploy | Intercept and modify deploy requests. |
| Before Create | Execute logic before an artifact is created. |
| After Create | Execute logic after an artifact is created. |
| Before Delete | Execute logic before an artifact is deleted. |
| After Delete | Execute logic after an artifact is deleted. |
| Before Move | Execute logic before an artifact is moved. |
| After Move | Execute logic after an artifact is moved. |
| Before Copy | Execute logic before an artifact is copied. |
| After Copy | Execute logic after an artifact is copied. |
| Storage | Respond to storage-related events. |
| Build | Execute logic during build lifecycle events. |
| Promotions | Custom promotion logic. |
| Realms | Custom authentication realms. |
| Scheduled Jobs | Periodic tasks using cron expressions. |
Install a Plugin
Deploy a new Groovy plugin file to this Artifactory instance.
To install a plugin:
- Place the Groovy plugin file in the
$JFROG_HOME/artifactory/var/etc/artifactory/plugins/directory. - In the UI, click Reload Plugins to load the new plugin.
Using the REST API
Reload plugins using the Reload Plugins REST API:
POST /artifactory/api/plugins/reloadList installed plugins:
GET /artifactory/api/pluginsExecute a plugin (replace {pluginName} with the plugin's name):
POST /artifactory/api/plugins/execute/{pluginName}For example:
POST /artifactory/api/plugins/execute/cleanupPluginFederation Considerations
- Plugins are local: User plugins are deployed to the local file system and execute only on the member where they are installed. They aren't synchronized or distributed to other Federation members.
- Deploy consistently: If a plugin modifies deployment behavior (for example, adding metadata, validating content, or transforming artifacts), install the same plugin on all Federation members to ensure consistent behavior regardless of which member receives the deployment.
- Event-triggered plugins: Plugins that respond to events (for example,
afterCreate,afterDelete) execute when artifacts are synchronized to a member. A deployment on member A triggersafterCreateon member A, and when the artifact synchronizes to member B, theafterCreateplugin on member B also fires (if installed). - Avoid conflicting side effects: If a plugin modifies artifacts (for example, adds properties, moves files), ensure these modifications don't create circular Federation events. Modifications made by a plugin generate new Federation events that propagate to other members.
- Scheduled jobs: Plugins with scheduled jobs run independently on each member. Coordinate schedules to avoid duplicate operations across Federation members (for example, a cleanup plugin running on all members simultaneously).
Warning
Plugins that create, modify, or delete artifacts in Federated repositories generate Federation events. Poorly designed plugins can cause event storms or circular replication loops. Test plugins thoroughly in a non-production Federation before deploying to production.
Frequently Asked Questions
This section provides answers to frequently asked questions.
FAQs
Q: Are user plugins synchronized across Federation members?
A: No. User plugins execute locally on each member and aren't synchronized or distributed automatically. See Federation Considerations for details.
Q: Are user plugins supported on JFrog SaaS?
A: No. User plugins are available only on self-managed Artifactory instances.
Q: How do I reload a plugin after editing it?
A: Click Reload Plugins in the Platform UI, or send a POST request to the Reload Plugins REST API.
Q: Can a plugin cause a Federation event storm?
A: Yes. Plugins that modify artifacts can generate circular Federation events. Test plugins thoroughly in a non-production Federation before deploying them.
Related Topics
Updated about 7 hours ago
