Extension Points defined in Jenkins Core

Table of Contents

AbstractProject.LabelValidator

Plugins may want to contribute additional restrictions on the use of specific labels for specific projects. This extension point allows such restrictions.

Implementations:

(no known implementations)

AdministrativeMonitor

Checks the health of a subsystem of Jenkins and if there's something that requires administrator's attention, notify the administrator.

Implementations:

AgentProtocol

Pluggable Jenkins TCP agent protocol handler called from TcpSlaveAgentListener .

Implementations:

AlternativeUiTextProvider

Provides the alternative text to be rendered in the UI.

Implementations:

AperiodicWork

Extension point which allows scheduling a task with variable interval. Interval in evaluated every time before next task is scheduled by calling #getRecurrencePeriod() . Task to be scheduled is obtain by calling #getNewInstance() .

Implementations:

ArtifactManagerFactory

Pluggable ability to manage transfer and/or storage of build artifacts. The descriptor should specify at least a display name, and optionally a {@code config} view. Since the user can configure this class, you must have a DataBoundConstructor .

Implementations:

AuthorizationStrategy

Controls authorization throughout Hudson.

Implementations:

BasicHeaderAuthenticator

When Jenkins receives HTTP basic authentication, this hook will validate the username/password pair.

Implementations:

BuildDiscarder

Implementation of "Discard old build records" feature.

Implementations:

BuildReference.HolderFactory

Extensible factory for creating build references.

Implementations:

BuildStepListener

Receives events that happen as a build executes BuildStep s.

Implementations:

BuildVariableContributor

Contributes build variables to builds.

Implementations:

BuildWrapper

Pluggability point for performing pre/post actions for the build process.

Implementations:

Builder

BuildStep s that perform the actual build.

Implementations:

CLICommand

Base class for Hudson CLI.

Implementations:

CaptchaSupport

Extension point for adding Captcha Support to User Registration Page CaptchaSupport .

Implementations:

ChangeLogAnnotator

Performs mark up on changelog messages to be displayed.

Implementations:

ChannelConfigurator

Intercepts the new creation of Channel and tweak its configuration.

Implementations:

CliTransportAuthenticator

This extension point has no Javadoc documentation.

Implementations:

(no known implementations)

Cloud

Creates Node s to dynamically expand/shrink the agents attached to Hudson.

Implementations:

CloudProvisioningListener

Allows extensions to be notified of events in any Cloud and to prevent provisioning from a Cloud .

Implementations:

ComputerConnector

Factory of ComputerLauncher .

Implementations:

ComputerLauncher

Extension point to allow control over how Computer s are "launched", meaning how they get connected to their agent program.

Implementations:

ComputerListener

Receives notifications about status changes of Computer s.

Implementations:

ComputerPanelBox

Adds box rendered in the computer side panel.

Implementations:

ComputerPinger

A way to see if a computer is reachable.

Implementations:

ComputerSet.ComputerSource

Allows plugins to override the displayed list of computers.

Implementations:

ConsoleAnnotationDescriptor

Descriptor for ConsoleNote .

Implementations:

ConsoleAnnotatorFactory

Entry point to the ConsoleAnnotator extension point. This class creates a new instance of ConsoleAnnotator that starts a new console annotation session.

Implementations:

ConsoleLogFilter

A hook to allow filtering of information that is written to the console log. Unlike ConsoleAnnotator and ConsoleNote , this class provides direct access to the underlying OutputStream so it's possible to suppress data, which isn't possible from the other interfaces. ( jenkinsdoc:ArgumentListBuilder#add(String, boolean)[] is a simpler way to suppress a single password.)

Implementations which are Serializable may be sent to an agent JVM for processing. In particular, this happens under JEP-210. In this case, the implementation should not assume that JenkinsJVM#isJenkinsJVM , and if generating ConsoleNote s will need to encode them on the master side first.</p>

Implementations:

ConsoleNote

Data that hangs off from a console output.

Implementations:

CrumbExclusion

Allows plugins to define exceptions to the CSRF protection filter.

Implementations:

CrumbIssuer

A CrumbIssuer represents an algorithm to generate a nonce value, known as a crumb, to counter cross site request forgery exploits. Crumbs are typically hashes incorporating information that uniquely identifies an agent that sends a request, along with a guarded secret so that the crumb value cannot be forged by a third party.

Implementations:

CustomClassFilter

Allows extensions to adjust the behavior of ClassFilter#DEFAULT . Custom filters can be called frequently, and return values are uncached, so implementations should be fast.

Implementations:

DescriptorVisibilityFilter

Hides Descriptor s from users.

Implementations:

DownloadService.Downloadable

Represents a periodically updated JSON data file obtained from a remote URL.

Implementations:

EnvVarsFilterGlobalRule

Environment variables filter rule that is configured globally for all jobs.

The job types can be filtered using jenkinsdoc:#isApplicable(Run, Object, Launcher)[] </p>

Implementations:

EnvVarsFilterLocalRule

Environment variables filter rule that is specific to a job configuration, using script-specific variables, etc.

The job types can be filtered using EnvVarsFilterLocalRuleDescriptor#isApplicable(Class) </p>

Implementations:

EnvironmentContributor

Contributes environment variables to builds.

Implementations:

ExecutorListener

A listener for task related events from executors. A Computer#getRetentionStrategy or SlaveComputer#getLauncher may implement this interface. Or you may create an implementation as an extension (since 2.318).

Implementations:

ExtendedReadRedaction

Redact {@code config.xml} contents for users with ExtendedRead permission while lacking the required Configure permission to see the full unredacted configuration.

Implementations:

ExtensionFilter

Filters out ExtensionComponent s discovered by ExtensionFinder s, as if they were never discovered.

Implementations:

ExtensionFinder

Discovers the implementations of an extension point.

Implementations:

FederatedLoginService

Abstraction for a login mechanism through external authenticator/identity provider (instead of username/password.)

Implementations:

FilePath.FileCallableWrapperFactory

This extension point allows to contribute a wrapper around a fileCallable so that a plugin can "intercept" a call.

The #wrap(hudson.remoting.DelegatingCallable) method itself will be executed on the controller (and may collect contextual data if needed) and the returned wrapper will be executed on remote.</p>

Implementations:

FingerprintFacet

Plugin-specific additions to fingerprint information.

Implementations:

FingerprintStorage

Pluggable fingerprint storage API for fingerprints.

Implementations:

GlobalBuildDiscarderStrategy

Extension point for global background build discarders.

Implementations:

GlobalConfiguration

Convenient base class for extensions that contributes to the system configuration page but nothing else, or to manage the global configuration of a plugin implementing several extension points.

Implementations:

GlobalConfigurationCategory

Grouping of related GlobalConfiguration s.

Implementations:

GlobalSettingsProvider

This extension point has no Javadoc documentation.

Implementations:

Extension point that provides capabilities to render a specific header.

Implementations:

HttpServletFilter

More convenient and declarative way to use PluginServletFilter . Register an implementation if you wish to intercept certain HTTP requests. Typical implementations will inspect HttpServletRequest#getPathInfo to determine if they should be active.

Implementations:

HttpSessionListener

jakarta.servlet.http.HttpSessionListener ExtensionPoint for Jenkins.

Allows plugins to listen to HttpSession lifecycle events.</p>

Implementations:

HudsonHomeDiskUsageMonitor.Solution

Extension point for suggesting solutions for full JENKINS_HOME. Views are as follows:

Implementations:

(no known implementations)

IdStrategy

The strategy to use for manipulating converting names (e.g. user names, group names, etc) into ids.

Implementations:

InstallState

Jenkins install state.

Implementations:

InstallStateFilter

Allows plugging in to the lifecycle when determining InstallState from InstallUtil#getNextInstallState(InstallState)

Implementations:

(no known implementations)

InstanceIdentityProvider

A source of instance identity.

Should not be used from plugins, except to be implemented by {@code instance-identity}. Other plugins wishing to get the RSA key may depend on {@code instance-identity} directly.</p>

Implementations:

ItemCategory

A category for hudson.model.Item s.

Implementations:

ItemListener

Receives notifications about CRUD operations of Item .

Implementations:

JnlpAgentReceiver

Receives incoming agents connecting through the likes of JnlpSlaveAgentProtocol4 or WebSocketAgents .

Implementations:

Job

A job is an runnable entity under the monitoring of Hudson.

Implementations:

Job.BuildNumberAssigner

Alternate strategy for assigning build numbers.

Implementations:

JobProperty

Extensible property of Job .

Implementations:

LabelAtomProperty

Extensible property of LabelAtom .

Implementations:

LabelFinder

Automatically adds labels to Node s.

Implementations:

LabelValidator

Plugins may want to contribute additional restrictions on the use of specific labels for specific context items. This extension point allows such restrictions.

Implementations:

(no known implementations)

LauncherDecorator

Decorates Launcher so that one can intercept executions of commands and alters the command being executed, such as doing this in fakeroot, sudo, pfexec, etc.

Implementations:

Lifecycle

Provides the capability for starting/stopping/restarting/uninstalling Hudson.

Implementations:

ListViewColumn

Extension point for adding a column to a table rendering of Item s, such as ListView .

Implementations:

LoadBalancer

Strategy that decides which Task gets run on which Executor .

Implementations:

LoadPredictor

Predicts future load to the system, to assist the scheduling decisions

Implementations:

Extension point to add icon to {@code http://server/hudson/manage} page.

Implementations:

MarkupFormatter

Generalization of a function that takes text with some markup and converts that to HTML. Such markup is often associated with Wiki.

Implementations:

MyViewsTabBar

Extension point for adding a MyViewsTabBar header to Projects MyViewsProperty .

Implementations:

Node

Base type of Jenkins agents (although in practice, you probably extend Slave to define a new agent type).

Implementations:

NodeListener

Listen to Node CRUD operations.

Implementations:

NodeMonitor

Extension point for managing and monitoring Node s.

Implementations:

NodeProperty

Extensible property of Node .

Implementations:

NodeProvisioner.Strategy

Extension point for node provisioning strategies.

Implementations:

Notifier

BuildStep s that run after the build is completed.

Implementations:

PageDecorator

Participates in the rendering of HTML pages for all pages of Hudson.

Implementations: