CJE study materials
CJE study resources

CJE key terms

CJE · Get comfortable with the vocabulary.

Jenkins WAR file

A Java web application archive that contains the Jenkins core and can be run standalone with java -jar or deployed to a servlet container. It is the standard distribution format and includes the embedded Jetty server for standalone execution.

Related: JENKINS_HOME, Jenkins CLI
JENKINS_HOME

The directory where Jenkins stores all configuration, job definitions, build records, plugins, and user data. Its location is set via the JENKINS_HOME environment variable or system property and is critical for backups and migrations.

Related: Jenkins WAR file, Plugin Manager
Jenkins CLI

A command-line interface that allows administrators to interact with a Jenkins instance remotely, for example to create jobs, trigger builds, or install plugins. It is accessed via the jenkins-cli.jar client and supports authentication and SSH modes.

Related: Jenkins WAR file, Script Console
Plugin Manager

The Jenkins UI and API for installing, updating, and removing plugins. It resolves dependencies, shows available updates, and can be configured for offline or behind-a-proxy installations. It is essential for extending Jenkins functionality.

Related: Update Center, Plugin Dependencies
Update Center

A remote repository of plugin and core metadata that Jenkins queries to discover available plugins and updates. It can be mirrored internally for air-gapped environments. The default is the Jenkins project's public update site.

Related: Plugin Manager, Plugin Dependencies
Plugin Dependencies

The set of other plugins that a given plugin requires to function. Jenkins automatically resolves and installs these when possible, but version conflicts can cause startup failures. Administrators must manage them during upgrades.

Related: Plugin Manager, Update Center
Matrix-based security

A Jenkins authorization strategy that lets administrators assign permissions to users and groups in a grid. Each row represents a user or group, and each column represents a permission such as Job/Build or Overall/Administer. It provides fine-grained control.

Related: Role-based Access Control, Authentication Realm
Role-based Access Control (RBAC)

An authorization model where permissions are assigned to roles, and roles are assigned to users or groups. In Jenkins, this is typically implemented via the Role Strategy plugin, which allows defining global, item, and agent roles for granular access management.

Related: Matrix-based security, Authentication Realm
Authentication Realm

The configured source of user identities in Jenkins, such as Jenkins' own user database, LDAP, Active Directory, or OAuth. It determines how users log in and is separate from authorization, which decides what they can do.

Related: Matrix-based security, Role-based Access Control
API Token

A secret token associated with a Jenkins user that can be used instead of a password for API authentication. It is commonly used in scripts and integrations to avoid exposing the user's actual password. Tokens can be revoked individually.

Related: Credentials Plugin, Authentication Realm
Credentials Plugin

A core plugin that provides a centralized store for secrets such as usernames, passwords, SSH keys, and secret files. Credentials are scoped to Jenkins globally or to specific folders and are referenced in jobs by their ID.

Related: API Token, Folder
Freestyle job

A traditional Jenkins job type that offers a web form for configuring source control, triggers, build steps, and post-build actions. It is simple to set up but less flexible than Pipeline for complex workflows. It remains widely used for simple tasks.

Related: Pipeline job, Build Trigger
Pipeline job

A Jenkins job type that runs a scripted or declarative pipeline defined in code. It supports complex workflows, stages, and parallel execution, and the pipeline definition can be stored in a Jenkinsfile under source control.

Related: Jenkinsfile, Declarative Pipeline, Freestyle job
Parameterized build

A build that accepts user-defined parameters at trigger time, such as string, boolean, or choice inputs. Parameters are exposed as environment variables to build steps. They enable reuse of a single job for multiple scenarios.

Related: Build Trigger, Environment Variables
Build Trigger

A mechanism that automatically starts a build, such as polling SCM, a webhook, a schedule (cron), or an upstream job. Triggers are configured per job and determine when Jenkins executes the build. They are essential for continuous integration.

Related: Webhook, SCM Polling, Parameterized build
Jenkinsfile

A text file that contains the definition of a Jenkins Pipeline, typically stored in the root of a source code repository. It enables pipeline-as-code, allowing the build process to be versioned alongside the application code.

Related: Declarative Pipeline, Scripted Pipeline, Multibranch Pipeline
Declarative Pipeline

A structured pipeline syntax introduced in Pipeline 2.5 that uses a predefined hierarchy of blocks such as pipeline, agent, stages, and steps. It is easier to read and validate than scripted syntax and is the recommended approach for most users.

Related: Scripted Pipeline, Jenkinsfile
Scripted Pipeline

The original Pipeline syntax based on Groovy that uses a node block and imperative programming constructs. It offers maximum flexibility but requires more programming knowledge and lacks built-in validation of structure.

Related: Declarative Pipeline, Jenkinsfile
Shared Library

A collection of reusable Groovy code stored in a separate source control repository that can be loaded into Pipelines. It promotes DRY principles by centralizing common pipeline logic and is configured globally or per folder.

Related: Jenkinsfile, Folder
Multibranch Pipeline

A job type that automatically discovers branches and pull requests in a repository that contain a Jenkinsfile, creating a sub-job for each. It enables branch-specific builds and is central to modern CI workflows.

Related: Jenkinsfile, GitHub Organization Folder
Webhook

An HTTP callback sent by a source control provider to Jenkins to notify it of events such as pushes or pull requests. Jenkins uses the payload to trigger builds immediately, reducing latency compared to polling. Webhooks require network accessibility and proper authentication.

Related: SCM Polling, Build Trigger
SCM Polling

A trigger mechanism where Jenkins periodically checks the source control repository for changes and starts a build if modifications are detected. It is simpler to set up than webhooks but introduces delay and unnecessary load.

Related: Webhook, Build Trigger
GitHub Organization Folder

A Jenkins item that scans a GitHub organization or user account, automatically creating Multibranch Pipeline jobs for repositories that contain a Jenkinsfile. It simplifies onboarding of many repositories and supports automatic branch and PR discovery.

Related: Multibranch Pipeline, Webhook
Build Agent

A machine or container that executes builds on behalf of the Jenkins controller. Agents can be static (permanently connected) or dynamic (provisioned on demand), and they distribute workload to improve scalability and isolate build environments.

Related: Cloud Agent, SSH Agent, Agent Label
Cloud Agent

A build agent that is dynamically provisioned in a cloud environment, such as a virtual machine or container, and terminated after use. This approach, often implemented via plugins like Kubernetes or EC2, provides elastic scalability and cost efficiency.

Related: Build Agent, Agent Label
Agent Label

A tag assigned to agents to control which jobs can run on them. Jobs specify a label expression to restrict execution to agents with matching labels. Labels are essential for routing builds to appropriate environments.

Related: Build Agent, Cloud Agent
SSH Agent

A method of connecting a build agent to the controller over SSH. The controller uses SSH keys to authenticate and launch the agent process. It is a common approach for managing static Unix-like agents securely.

Related: Build Agent, Agent Label
Artifact Archiving

The process of saving build outputs (such as binaries or reports) in Jenkins so they can be downloaded later. Archived artifacts are stored on the controller and are subject to retention policies. They are accessible via the build's web page.

Related: Workspace, Build Record
JUnit Plugin

A plugin that publishes JUnit-format test results, providing trends, failure analysis, and a web UI for test reports. It is fundamental for visualizing test outcomes in Jenkins and integrates with Pipeline via the junit step.

Related: Artifact Archiving, Pipeline job
Workspace

A directory on a build agent where Jenkins checks out source code and runs build steps for a job. Each job has its own workspace, which persists between builds unless cleaned. Workspaces can be shared across parallel builds with caution.

Related: Artifact Archiving, Build Agent
Build Record

The stored metadata and logs for a single build, including console output, duration, result, and archived artifacts. Build records are kept according to retention settings and are essential for auditing and troubleshooting.

Related: Artifact Archiving, Log Rotation
Log Rotation

A configuration that limits the number of build records and console logs kept for a job, preventing unbounded disk usage. It can be set by count or age. Proper log rotation is critical for maintaining Jenkins performance.

Related: Build Record, Disk Space Management
Script Console

A web-based Groovy script execution interface available to administrators at /script. It is powerful for diagnosing issues, modifying configuration, and automating maintenance tasks. Access should be restricted due to its security implications.

Related: Jenkins CLI, Log Rotation
Disk Space Management

The practice of monitoring and controlling disk usage in JENKINS_HOME, including workspaces, build records, and artifacts. Tools like the Disk Usage plugin help identify large items. Neglect can lead to build failures and instability.

Related: Log Rotation, Workspace
Folder

A Jenkins organizational container that groups jobs and provides scoped configuration, including credentials and shared libraries. Folders enable hierarchical project structures and simplify permission management through inheritance.

Related: Credentials Plugin, Shared Library
Environment Variables

Named values available to build steps during execution, such as BUILD_NUMBER or custom variables set in job configuration. They facilitate parameterization and integration with scripts. Jenkins provides many built-in variables.

Related: Parameterized build, Jenkinsfile
Node

A machine that is part of the Jenkins architecture, either the controller (built-in node) or an agent. Nodes are configured with labels and executors. The term is often used interchangeably with agent, but technically the controller is also a node.

Related: Build Agent, Agent Label