
Jenkins
Configuration Management- Overview
- Setup
- Data & mappings
- Operations & API
- Changelog
This connector integrates with Jenkins CI/CD servers, enabling synchronization of build automation inventory into the Brinqa platform. It connects to the Jenkins Remote Access API using Basic Authentication with a username and API token, and retrieves the jobs defined on the Jenkins controller — along with their build status, health, and XML configuration — and the user accounts known to the controller.
Key capabilities:
- Job sync — Jobs discovered from the Jenkins root (
GET /api/json), mapped toCodeRepositoryassets. Each job merges three sources: the root listing (name, URL, class, color), the per-job status detail (GET {job}/api/json— buildable/queued/disabled flags, health report, and last build, successful, failed, completed, stable, unstable, and unsuccessful build numbers), and the per-job configuration (GET {job}/config.xml— plugin, pipeline definition, triggers, JDK, and SCM repository URL and branch) - Folder traversal — Jobs nested inside folders and multi-job pipelines are discovered one level deep by following each folder's
api/jsonendpoint; jobs are de-duplicated by URL - Parallel detail fetching — Per-job status and configuration are retrieved concurrently across a fixed thread pool, and a job whose status or config request fails is still synchronized from the data that did resolve
- People sync — Jenkins user accounts from
GET /asynchPeople/api/json, mapped toPersonassets with profile URL, associated project, and last-change timestamp - Configurable retry — Retry attempts on transient API failures driven by the
maxRetriesconfiguration property
Data retrieved from Jenkins
| Connector Object | Required | Maps to Data Model |
|---|---|---|
| Job | Yes | Code Repository |
| People | Yes | Person |
Model relationships
For detailed steps on how to view the data retrieved from Jenkins in the Brinqa Platform, see How to view your data.
Connection settings
When setting up a data integration, select Jenkins from the Connector dropdown and provide the following:
| Setting | Required | Default | Description |
|---|---|---|---|
| Jenkins URL | Yes | — | Jenkins API URL |
| User name | Yes | — | Jenkins user name |
| API token | Yes | — | Jenkins API token |
| Page size | No | 100 | Maximum number of records to get per API request |
| Maximum retries | No | 5 | The maximum number of retry attempts before giving up a request |
Authentication
The connector uses Basic Authentication with a Jenkins username and API token.
Endpoint
| Method | URL |
|---|---|
GET | {baseUrl}/api/json |
Request Headers
| Header | Value |
|---|---|
Content-Type | application/json |
Authorization | Basic base64({username}:{apiToken}) |
Sample Response
The connectivity test issues GET /api/json against the Jenkins root. A successful response looks like:
{
"_class": "hudson.model.Hudson",
"mode": "NORMAL",
"nodeDescription": "the master Jenkins node",
"nodeName": "",
"numExecutors": 2,
"jobs": [
{
"_class": "hudson.model.FreeStyleProject",
"name": "example-job",
"url": "https://jenkins.example.com/job/example-job/",
"color": "blue"
}
]
}
Response Fields
| Field | Description |
|---|---|
_class | Jenkins root object class |
mode | Node scheduling mode |
nodeDescription | Description of the master node |
numExecutors | Number of build executors |
jobs | Array of jobs discovered at the root (each with _class, name, url, color) |
Usage
All API requests include the Basic Authorization header:
Authorization: Basic base64(username:apiToken)
The API token can be generated from Jenkins at User → Configure → API Token.
Sync Behavior
Each sync is a full sync. The connector does not maintain a sync token between runs and does not apply an incremental since filter, so every run re-fetches the complete set of records for each enabled model. The Jenkins Remote Access API exposes no server-side timestamp filter on the job listing or user endpoints.
How to obtain Jenkins credentials
Obtain the required credentials (url, userName, apiToken) from your Jenkins administrator or the Jenkins admin console, then enter them in the connection settings above.
Attribute mappings
Expand the sections below to view the mappings between the source and the Brinqa data model attributes:
Job
| Source Field Name | SDM Attribute |
|---|---|
Build.building | LAST_BUILD_BUILDING |
Build.displayName | LAST_BUILD_DISPLAY_NAME |
Build.duration | LAST_BUILD_DURATION |
Build.timestamp (Instant) | LAST_BUILD_TIMESTAMP |
config.xml root attribute | PLUGIN |
config.xml → definition | DEFINITION |
config.xml → jdk | JDK |
config.xml → keepDependencies | KEEP_DEPENDENCIES |
config.xml → scm → branches → name | SCM_BRANCHES |
config.xml → scm → userRemoteConfigs → url | SCM_URL |
config.xml → triggers | TRIGGERS |
| Constant "Application" | CATEGORIES |
Instant.now() | LAST_CAPTURED |
JobResource.className | CLASS_NAME |
JobResource.color | STATUS |
JobResource.color | COLOR |
JobResource.name | UID |
JobResource.url | URL |
JobStatusResource.buildable | BUILDABLE |
JobStatusResource.concurrentBuild | CONCURRENT_BUILD |
JobStatusResource.description | DESCRIPTION |
JobStatusResource.disabled | DISABLED |
JobStatusResource.displayName | DISPLAY_NAME |
JobStatusResource.fullDisplayName | FULL_DISPLAY_NAME |
JobStatusResource.fullName (fallback: JobResource.name) | NAME |
JobStatusResource.healthReport[0].description | HEALTH_DESCRIPTION |
JobStatusResource.healthReport[0].score | HEALTH_SCORE |
JobStatusResource.inQueue | IN_QUEUE |
JobStatusResource.lastBuild.number | LAST_BUILD_NUMBER |
JobStatusResource.lastBuild.result | LAST_BUILD_RESULT |
JobStatusResource.lastBuild.url | LAST_BUILD_URL |
JobStatusResource.lastCompletedBuild.number | LAST_COMPLETED_BUILD_NUMBER |
JobStatusResource.lastFailedBuild.number | LAST_FAILED_BUILD_NUMBER |
JobStatusResource.lastStableBuild.number | LAST_STABLE_BUILD_NUMBER |
JobStatusResource.lastSuccessfulBuild.number | LAST_SUCCESSFUL_BUILD_NUMBER |
JobStatusResource.lastUnstableBuild.number | LAST_UNSTABLE_BUILD_NUMBER |
JobStatusResource.lastUnsuccessfulBuild.number | LAST_UNSUCCESSFUL_BUILD_NUMBER |
JobStatusResource.nextBuildNumber | NEXT_BUILD_NUMBER |
People
| Source Field Name | SDM Attribute |
|---|---|
| Constant "active" | STATUS |
| Constant "Identity" | CATEGORIES |
Instant.now() | LAST_CAPTURED |
PeopleResource.lastChange (Instant) | LAST_CHANGE |
PeopleResource.project | PROJECT |
PeopleResource.user.absoluteUrl | URL |
PeopleResource.user.fullName | UID |
PeopleResource.user.fullName | NAME |
Operations & API
Expand each connector object to see its operation options, delta-sync behavior, and the API it uses. See connector operation options for how to apply operation options (keys and values are case-sensitive).
Job
Operation options
This object does not support any operation options.
Delta sync
Not supported. The connector performs a full sync of Job on every run and applies no incremental date filter.
API
- Type: REST (JSON for listing/status, XML for configuration)
People
Operation options
This object does not support any operation options.
Delta sync
Not supported. The connector performs a full sync of People on every run and applies no incremental date filter.
API
- Type: REST · Endpoint:
GET /asynchPeople/api/json
Changelog
The Jenkins connector has undergone the following changes:
| Version | Description | Migration Steps |
|---|---|---|
| 3.0.0 | Overview The Jenkins connector integrates with Jenkins CI/CD servers to synchronize jobs—including their build status, health, and configuration—along with the users defined on the Jenkins instance. Category: Configuration Management Models | N/A |