Complete integrability: codeBeamer with REST API
Users don’t only love codeBeamer because it’s a complete, fully integrated end-to-end ALM tool that offers great functionality at affordable prices. They also love it because it’s a flexible system that fits snugly into their preexisting workflows. codeBeamer itself can be configured to suit the needs of any organization, but if that wouldn’t be enough, a web services API helps you integrate and connect the system to other tools your team uses. Thus, you can easily extend codeBeamer’s advanced functionality and keep using the tools you don’t want to replace.
Why use REST API?
The web services REST API makes the codeBeamer repository open to third party applications, as it lets you manipulate data within codeBeamer from remote applications. Data objects such as projects, users, trackers and documents can be manipulated through the API, with applications written in programming languages such as Java and C#.
Using the web services REST API, server and session information can be retrieved, and it also lets you create, retrieve, update, and delete entities. What’s more, through template-based artifact creation, you can clone the settings of previous items without leaving any links between the source and target artifacts. API can be used to set the name, ID, description, type, visibility, container project, access rights and other information for various types of artifacts. User data and login / session details, as well as workflows and transition-related information can also be managed via the API.
Importing and exporting data is simplified by using the API. Projects, trackers, tracker items or other simpler data chunks can be imported from other collaboration tool repositories, and exporting further enhances the “openness” of the codeBeamer repository. In addition to data management & exporting and importing, the API also helps you create custom reports by integrating proven reporting tools such as Crystal Reports, JasperReports or Eclipse BIRT.
Using various Java plug-ins of IDEs, you can access and change data on the codeBeamer server. For instance, you can use a plug-in to intercept and analyize source code commits in an IDE, and if it matches a predefined pattern, change the status of a bug tracker or change request.
Authentication and Authorization
To be able to access and alter data in the codeBeamer repository, users first need to authenticate themselves with their usernames and passwords, just like they would on the web-based GUI. Successful authentication triggers the start of a remote session that is bound to a user account. The session ends when the user logs out, or after a certain time in case an inactivity timer has been set on the server-side to end sessions. As the remote session is bound to an existing user account, it has the same permissions as the given account. What’s more, codeBeamer can also be configured to handle SSO (single sign-on) to make authentication as convenient as possible.
Setting up listener plug-ins through the API lets you implement event handlers for items in the repository. Great for notifications and automation purposes, these listeners allow you to set up actions triggered by events within the codeBeamer repository. They also let you set up custom validation rules to tailor codeBeamer to your organization’s internal rules. For instance, you can prohibit the deletion of tracker items unless their status is ‘Closed’ – if a user tries to delete a tracker with a different status, you can choose to cancel (veto) the deletion of the item.
A few examples of the events listeners can be used for:
- CRUD operations (create, read, update, delete) to any of the following entities: artifacts, associations, forums, projects, trackers and users, tracker items, tracker item attachments and comments
- “artifact opened” event in the artifact listener
- “transition taken” event in the workflow listener
The web service API is a powerful way to integrate codeBeamer into your preexisting workflow, and to extend its functionality with other tools. The API adds further flexibility to an already highly configurable architecture, letting you tailor your ALM platform to the needs, internal structure and rules of your organization.