API Development

How to Use Policy Studio, Configuration Studio and ES Explorer on a Mac using Docker

Policy Studio, Configuration Studio, and ES Explorer are development tools in our API Management toolset, part of our AMPLIFY™ platform. At the moment, we can install these tools on Windows and Linux. On Macs, there were some attempts to run Policy Studio using Wine like the one Erik Nord described here, unfortunately, it is not compatible with the latest macOS.

As I always try to use tools on my Mac without the need of license and as seamlessly as I can, I came up with an unofficial workaround using containers and a couple of scripts to make the whole process easy.

Installing XQuartz and Docker

To make it work, we still will need XQuartz installed:

brew cask install xquartz

The XQuartz will be managing the X11 windows created by the Docker containers and the main idea behind is to use containers to run Policy Studio, Configuration Studio, and ES Explorer using X11 to show the display on the Mac.

Please, make sure the settings are allowing connections from network clients.

Also, if you have not installed the Docker Desktop for Mac, just install it from here.

As a backup, the scripts will test if you have those installed, if not it will try to install XQuartz or Docker using Homebrew.

Prepare the environment

To make things user friendly, I created some shell scripts that you can clone from here, or download them directly from here. Then, make them executable by running the following command:

chmod +x configurationstudio tools esexplorer policystudio

The scripts above make use of long options and the getopt library from macOS is an ancient BSD library. So we need to update it to the GNU-getopt library:

brew install gnu-getopt

Finally, before running, just restart your machine, as there were some cases that the X11 server didn’t allow connections until a full restart happens.

How to execute

To execute, we need to proceed to the folder where the scripts are (unless you did as me and included on your $PATH). Then to run Policy Studio 7.5.3, for example (the first time it will take some minutes):

./policystudio 7.5.3

 

And voilà:

 

 

Or to run Configuration Studio 7.7.20200130:

./configurationstudio 7.7.20.01

And finally, to run ES Explorer 7.7.20200330:

./esexplorer 7.7.20.03

The idea behind is to type the tool you want (policystudio, configurationstudio, or esexplorer) plus the version you want. For now, the following versions are ready: 7.5.2, 7.5.2.5, 7.5.3, 7.5.3.13, 7.7.20.01, 7.7.20.03.

Just keep in mind that the first time will take longer to run as it will download the image. After that, it is pretty quick every time you run the same tag. Also, all scripts have -v to see the outputs and make them verbose.

Here are the list of folders shared between host and container:

  • ~/axway/apiprojects/$tag with the API projects related to that tag.
  • ~/axway/configurationstudio/$tag with the configuration related to the Configuration Studio where you can change the list of projects and the list of connections.
  • ~/axway/policystudio/$tag with the configuration related to the Policy Studio where you can change the list of projects and the list of connections.

 

Visit here for more information related to the Policy Studio container, here for the Configuration Studio container and here for the ES Explorer container.

Comparison with wine solution

These are the advantages in comparison to the Wine solution:

  • We have a 64-bit version of those tools, instead of the win32 bit version.
  • We can have as many windows as we need without being locked by only one Policy Studio/Configuration Studio window. That usually is a pain when developing using Policy Studio.
  • We can open multiple versions of the Policy Studio easily and when we don’t need anymore, just remove the image related to that version to free up some space.
  • Also, the Policy Studio and Configuration Studio images come pre-configured with Xmx1268m of memory, so it will have fewer memory issues out-of-the-box.

 Last words

As noted at the beginning of the blog, these tools are not officially supported on a Mac at this time. Thus, the products may not work the same.

Also, whenever Docker finds the container is idle, it will close it and the tool will show a screen that states that there is no more handler. This does not happen frequently, but usually after some hours with me.

Please, enjoy and I hope it can help you as well!

How to Use Policy Studio on a Mac.