Introducing the SailPoint Velocity Playground πŸŽ‰

SailPoint has just released a velocity playground tool on the Developer Portal. This tool is maintained by SailPoint but is different from the others in one awesome way: It was developed by one of our very own community members! Prasad Uplenchwar reached out to us not too long ago to see if we would be interested in having a tool to test out velocity code in real time.

You can paste in your json input for testing, and write your velocity code in the editor right next door. As you change your template you will see the updates in the output in real time.

A special thank you to Prasad for developing this tool for other community members to use :tetry:

Apache Velocity is used in various SailPoint features. While this implementation may not match exactly to those implementations we have work in our backlog to update the tool to reflect each environments nuances.

If you find any issues with this new tool, please open a topic in the Feedback > Bugs category.

47 Likes

Thank you for the update, this is fantastic news! :clap:

A big congratulations and appreciation to @iampdu for creating such a valuable tool for the SailPoint community. I’m excited to start using it and explore how it can enhance our workflow. Thanks again for making this available to all of us!

19 Likes

Thanks @tyler_mairose for this announcement and for sure a special thank you to @IAMpdu!!!

1 Like

This is amazing! :tada: Having a playground to test Velocity in real time will make it much easier to develop and validate templates.

Congratulations to @IAMpdu and @tyler_mairose, for the initiative and to the SailPoint team for making this tool available to the community.

I can’t wait to try it out and see how it can optimize our workflow! :clap:

1 Like

This is great! Thank you!

1 Like

This is great!

I would love to see a dropdown of sample output based on flow. Like a list of email templates so that the expected payload is pasted for you.

2 Likes

This is cool and useful, thank you @IAMpdu!
Especially appreciate the evaluation happening real time without having to press enter.

I have two questions on this.

  1. Is it possible to display the version of the velocity engine that is being used on this page?
  2. How can we test the velocity used on the Web Services SaaS connector here, i.e. how does the syntax relate to this?

Kind regards,
Angelo

1 Like

@IAMpdu - Great job :clap:

1 Like

This tool is very helpful. Thanks Prasad and Tyler.

2 Likes

Hey Angelo!

The backend to this tool is currently using https://github.com/shepherdwind/velocity.js, it is our plan to implement a few different backend functions to mimic the exact behavior of each individual features syntax like we did with our json path evaluator.

The few that I can think of are:

Email Templates
Workflows
Transforms
Web Services SaaS connectors - thanks to you :slight_smile:

I will do my own research once we are at that point but please add any implementations I am not thinking of.

2 Likes

Excellent work and thank you for sharing.

1 Like

The timing of this is great as i literally struggle with an Identity attribute transform.

question: Where can i find samples of different JSON objects? For example, when working on an identity attribute transform, how do I know the JSON input?

1 Like

We can consider the service desk integration as well, where we calculate fields(description , short description) using Velocity

4 Likes

@IAMpdu Holy cow! This is amazing! Nice work!

And thanks @tyler_mairose for the support as well! <3

2 Likes

@IAMpdu Thank you for developing this tool; it will help us to optimize workflows more efficiently.

1 Like

Can you give some real-world use case examples where it can be useful and what we can achieve using this that we couldn’t earlier
Thank You

1 Like

Hello @nikhilkatoch ,

Let’s take a simple example using an email template.

Assume you have the following JSON data and you want to check whether your Velocity code works correctly.

JSON:

{
  "request": {
    "approverGroup": {
      "name": "Approval group: Test"
    }
  }
}

Now, suppose you want to perform a string operation (like replace) on the approver group name and test the result. To do this, you can use a Velocity Playground.

Example Velocity code:

#set($groupName = $!{request.approverGroup.name})
#set($cleanGroupName = $groupName.replace("Approval group: ", ""))
$cleanGroupName

Or you can write it in a shorter way:

$!{request.approverGroup.name.replace("Approval group: ", "")}

This code removes "Approval group: " from the string and outputs only:

Test

This helps you validate that your Velocity logic is working as expected.

Thanks.

@IAMpdu