HCL VersionVault Express, HCL Software’s latest offering in the DevOps space, recently launched with an all-new web UI, REST APIs, and more. VersionVault Express is based on the foundation of VersionVault, bringing with it everything you know and love about HCL’s secure version control and configuration management software, all while making it a breeze to get up and running.
Compass 2.0 launched last year with a similar visual and functional overhaul, and its new REST APIs and webhook capabilities make it the perfect companion for VersionVault Express.
A great example of this is our open-source, sample integration. Built with Node-Red, we were able to quickly create two webhook receivers to connect VersionVault Express and Compass.
For information on how to install the Webhooks package for Compass, which is required for this integration, check out .
The idea behind the integration is simple: when a Feature, Task, or Story is created and assigned to a user in Compass, a corresponding activity is created on that user’s stream in VersionVault Express.
Then, when they’ve delivered that activity to the project’s integration stream, the Compass record is updated with a note listing the files that were added, modified, and deleted.
To view the flow containing the integration, grab the “flows.json” file from the GitHub repository and open the Node-Red web interface (wherever Node-Red is deployed, for example https://localhost:1880).
From the hamburger menu on the top right of the screen, choose Import -> Clipboard, then browse for the file and open it.
There should now be a flow named Compass/VVE Integration; this is where everything happens.
The SF_Constants subflow is where you’ll configure the integration.
It has a “Set Flow Constants” node, which is where you’ll set various properties relating to your VersionVault Express and Compass instances. They’re pretty straight-forward, but you can find more details about each one in the GitHub repository’s README.
Be sure to deploy the flow to ensure the constants are set and the webhook endpoints are listening for payloads.
Next, notice there are two “HTTP in” nodes, one labeled [POST] /compass and another labeled “[POST] /vve”, each handling the webhook payload from the product they’re labeled for.
When a payload comes in from Compass, the flow will do a few things in sequence:
- Authenticate with VersionVault Express
- Pull out the username that the record was assigned to, and the name of the solution the record was added to
- Use the solution name to find the project in VersionVault Express
- Use the name of the project and the username to get their development stream
- Create an activity on that stream with the name being the Compass record ID
Delivering the activity will send a payload to the VersionVault Express webhook receiver, kicking off the following sequence:
- Authenticate with Compass and VersionVault Express
- For each activity that was delivered:
- Get its changeset and work out which files were added, modified, and deleted
- Use the activity’s name to modify the associated Compass record, adding the file information as a note
It’s important to note that we deliberately kept this sample simple. To do that, we built a couple assumptions into it:
- A user will exist in both VersionVault Express and Compass, and their username will be the same for both
- A user will have only one development stream in a project (with the name format of <project name>_<username>) and that’s the project that the activity will be created on
- The project in VersionVault Express should match the Solution being used in Compass
The various webhook events available in the latest releases of VersionVault Express and Compass make it easy to extend their functionality, whether it’s a simple notification receiver or a complex integration between multiple products.