Build Token Root Plugin

Skip to end of metadata
Go to start of metadata

Lets build and related REST build triggers be accessed even when anonymous users cannot see Jenkins.

Plugin Information

Plugin ID build-token-root Changes In Latest Release
Since Latest Release
Latest Release
Latest Release Date
Required Core
Dependencies
1.3 (archives)
Aug 11, 2015
1.580.1
Source Code
Issue Tracking
Pull Requests
Maintainer(s)
GitHub
Open Issues
Pull Requests
Jesse Glick (id: jglick)
Usage Installations 2014-Aug 1001
2014-Sep 1100
2014-Oct 1185
2014-Nov 1236
2014-Dec 1245
2015-Jan 1341
2015-Feb 1458
2015-Mar 1606
2015-Apr 1669
2015-May 1731
2015-Jun 1874
2015-Jul 2062

Usage

The use case is that Jenkins is secured so that anonymous users lack overall read permissions. Say you want to triggers builds of certain jobs from a script. You can pick a sufficiently authenticated user and use that person’s API token to POST to job/NAME/build. But this grants that person’s full permissions to anyone who can see the script, which is hazardous.

The usual workaround for this issue is to define a build authorization token in job configuration, and have the script ping job/NAME/build?token=SECRET. Unfortunately Jenkins checks URIs hierarchically and just getting as far as job/NAME/ requires authentication.

This plugin offers an alternate URI pattern which is not subject to the usual overall or job read permissions. Just ping buildByToken/build?job=NAME&token=SECRET. This URI is accessible to anonymous users regardless of security setup, so you only need the right token.

(The variant sub-URIs buildWithParameters and polling are also supported, as is the usual delay query parameter.)

To create a token for your job, go to the job configuration, select "Trigger Builds Remotely" in the build triggers section.  The token you set here is what you will pass via the url.

Examples

Trigger the RevolutionTest job with the token TacoTuesday

buildByToken/build?job=RevolutionTest&token=TacoTuesday

Trigger the RevolutionTest job with the token TacoTuesday and parameter Type supplied with the value Mexican

buildByToken/buildWithParameters?job=RevolutionTest&token=TacoTuesday&Type=Mexican

Changelog

Version 1.3 (2015 Aug 11)

  • issue #22849 Include queue item location in HTTP response, just like the core endpoint does.

Version 1.2 (2015 Mar 08)

Version 1.1 (2014 Feb 10)

  • Added logging to make it easier to diagnose why a given request was rejected. As a Jenkins admin, create a logger covering org.jenkinsci.plugins.build_token_root at FINE or below.

Version 1.0 (2013 May 14)

  • Initial release.

Labels

Edit
plugin-trigger plugin-trigger Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

Add Comment