A Fork in the Code: cli and Powershell projects
Tags: opensource, community, github, terraform
Published: 2022-09-13 01:09:26

In this series, I’ll be highlighting open source projects and openly available code. You’ll find examples, tools, libraries, and projects that I’ve discovered or that are managed by members of the community to enable other developers.

In this first post, let’s look at **cli-jsonnet** and **akamaipowershell**.

[**cli-jsonnet**](https://github.com/akamai/cli-jsonnet) is used by service reliability engineers and software developers to manage Akamai delivery configurations and is known to be especially valuable for commerce and public sector customers using CDN services. It’s ideal for people in charge of managing multiple clones of the same configuration,  or who are managing many configurations with shared components. 

It was originally built to address the complexity of switching large configurations to an as-code model, making it easier to turn existing CDN delivery configurations into usable IaC code templates, ready to be committed to version control. cli-jsonnet can also output a ready-to-deploy project structure for [Terraform](https://registry.terraform.io/providers/akamai/akamai/latest/docs) and [Bossman](https://bossman.readthedocs.io/en/latest/quickstarts/akamai/parallel_environments.html).

The project is led by Akamai Sr Enterprise Architect and Developer Champion, Anthony Hogg. Anthony makes updates to address bug fixes and DX improvements based on developer feedback. The project has been stable, but evolution of products and APIs may require future commits. There is an accompanying [Postman collection](https://github.com/akamai-contrib/postman-jsonnet) available which helps customers maintain their unit tests as code and reuse their configuration data to generate Postman test suites which can be run in postman or on the command line.

Originally built to help support a particular customer, [**akamaipowershell**](https://github.com/akamai/akamaipowershell) now helps any Akamai admin who needs to use a combination of scripts and individual commands to manage their Akamai estate. According to project lead, Stuart Macleod, Enterprise Architect and Developer Champion at Akamai, the primary design tenet was “one CLI to rule them all”. As a result, all the PowerShell functions have a consistent interface, without any dependencies. 

akamaipowershell is used by admins performing day to day maintenance that might fall outside of IaC designs such as Terraform. The tool is also intended for users working more closely with the APIs as the PowerShell module tends to have a 1 to 1 relationship with the API endpoints as opposed to the CLI which masks a lot of what it does. It’s been found valuable by financial services customers who often have heavily locked down PCs and are able to use pre-installed PowerShell. 

Stuart maintains the project, making updates based on new API functionalities or finding a gap in capabilities. An upcoming release will cover the new AppSec endpoints that were recently released. Stuart has carefully accepted two relatively small contributions. Future improvements may include new documentation and some kind of automation where portions of the code writes itself based on RAML or Swagger docs. 

Thank you to [Anthony Hogg](https://twitter.com/ynohat), [Stuart Macleod](https://github.com/stuartio), [Julia Tetrud](https://twitter.com/JuliaTetrud), and [Mike Elissen](https://twitter.com/securitylevelup) for contributing to this post.