Differences between using Java Specs via an IDE and Repository Stored Specs in Bamboo

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Summary

Bamboo uses the Java Specs format since a long time ago. Some customers understand Java Specs can only be used through a Repository as Configuration as code, whilst others understand Java Specs can only be used together with an IDE or Maven. It actually can work both ways. This article will explains the difference between both techniques, and their advantages and disadvantages.

Solution

Specs

Using an IDE or Maven to control Bamboo Specs

By using an IDE or Maven, any pushed changes are considered "manual pushes", I.E. they are not coming from a Repository. In other words, if you decide to use an IDE to push your Bamboo Specs, you will also have to remember to actually "push" the changes to Bamboo after your Plan is modified.

By choosing this strategy, customers still have the ability to make changes to the Plans via the Bamboo UI. Whilst this imposes you certain flexibility, it also introduces some potential risk as any manual Plan changes in Bamboo will not reflect the ones published through the IDE/Maven, so that may require some extra control from the developers.

One additional advantage of using the manual push method is that the whole request is placed over a valid username and password, making certain requests that require an authenticated user such as adding a Linked Repository work.

More information here:

Using Repository Stored Specs (RSS)

Bamboo's Repository Stored Specs allows the developers to have total control and assurance over each Plan's content. By enabling RSS, your Plan modification will be "locked" in the UI and any changes to it will only be allowed through your Linked repository. This strategy assures that any changes to your plan are to be approved as code in your repository before being published.

When using the menu option Specs -> Setup Specs repository, RSS will be enabled on the Linked repository and added to the indicated Project in Bamboo, while at the same time enabling Bamboo Specs and triggering the first Scan. After enabling it your Plans will get updated based on your repository's Bamboo Specs content and locked for any manual changes if any Spec Plans are found. You can then start using Bamboo Specs immediately via RSS. Enabling RSS can be also done on the Repository Settings -> Bamboo Specs tab.

Using RSS does not allow certain operations such as adding Linked Repositories as the changes will come without an authenticated user, making Bamboo not sure if such transaction is allowed or not.

To disable Repository Stored Specs (RSS) for a Plan, you will need to undo the changes in the UI (Remove any Linked repository and disable Bamboo-Specs) then push the change via Maven/IDE. After this, the Plan will be unlocked in the UI for any manual changes.

Updated on April 2, 2025

Still need help?

The Atlassian Community is here for you.