Moderne CLI license
In order to run recipes against private repositories you will need to ensure that the Moderne CLI is configured with a license. If you are using the CLI to run recipes against public repositories, you do not need to worry about a license. The only thing you will need to do in that instance is authenticate with app.moderne.io and create a Moderne token.
In this doc, we will walk through everything you need to know about the Moderne CLI license – from how to get one to how to configure one to all the details about how data flows through the systems.
How to receive a license key
If you are a single-tenant Moderne customer, you don't need to configure a license as it will be automatically configured when you connect the CLI to Moderne.
If you're a Moderne DX customer, please jump to the configure the CLI with a license key section as you do not need a special license key.
If you are a multi-tenant Moderne customer or a CLI only customer, please reach out and we will provide you with a license key.
If you aren't a Moderne customer, but still want to use the Moderne IDE plugin, please fill out our try the Moderne IDE plugin signup form and we will coordinate with you.
How to configure the CLI with a license key
Moderne DX customers
To configure the license, please run the following command:
mod config license moderne sync
Everyone else (including multi-tenant Moderne customers)
Please run the following command:
mod config license edit <license-you-were-provided>
License check flow
The following diagram shows the flow of what checks will happen when you attempt to run a recipe with the CLI:
Some important details about the license check:
- The license check does NOT make any call home requests to Moderne (the public key packaged inside of the CLI is enough to verify the integrity of the signature).
- Verification of the Moderne tenant configuration only makes a call to the Moderne tenant. If you are using DX, this is a call to inside of your private network. If you are using the Moderne Platform, this is a call to your isolated tenant (and not Moderne as a whole).
- If you have configured a license key, no network calls will ever be made to GitHub to check to see if a repository is public.
License details
We use elliptic-curve cryptography to create the license key. A license is composed of two pieces that are encoded together:
- Data (base 64 encoded customer name + expiration date)
- A signature
The following diagram demonstrates how this license is created and used. Note that because the public key is bundled with the CLI, no external calls need to be made to verify the integrity of the license key: