# Pipeline Licensing

## Content

A standard ComponentOne developer license can be activated on up to two development machines. In pipeline environments such as CI/CD systems, Docker containers, or cloud-hosted build agents, licenses must be activated on the machine or container that performs the build.
If your pipeline uses **dynamic agents** (for example, Azure Pipelines with Microsoft-hosted agents), the license must be activated during the build process. The standard developer license has limitations on the number of times a key can be activated per day, and how many machines can be concurrently activated.
For pipelines and dynamic agents, it's recommended to use a **Pipeline License**. For more information, please contact sales at [us.sales@mescius.com](mailto:us.sales@mescius.com).

## Using a Pipeline License

A pipeline license is designed specifically for CI/CD and containerized build environments.
**Key Characteristics:**

* Supports **dynamic build agents**
* Does **not require deactivation after each build**
* Supports **offline activation**
* Cannot be used for interactive design-time development
* Intended exclusively for build and pipeline environments

**Pipeline License Package Contents:**

* **Pipeline Serial Key**
    Format: `Prefix-0000-0000-0000-0000-200`
* **Local Activation Package File**
    `Package_Prefix-XXXXXXXX.data`
    (The prefix and first 8 digits match the serial key.)
* **Password(s)**
    One or more passwords, optionally time-limited.

### Activate a Pipeline License in the Pipeline

**Install the Command-Line Tool**
`<span class="">dotnet tool install -g sa3client </span>`
**Prepare the Local Activation Package**
Copy the local activation package file to a directory accessible by the build script (for example, a tools or working directory).
**Activate Before the Build**
`<span class="">sa3client local-activate "\<serial-key>" "\<password>" --path "\<local-package-path>" </span>`

* Use `--path` to specify the folder containing the activation package file.
* If omitted, the current directory is used.

>type=note
> Notes for Pipeline Licenses
>
> * Deactivation is **not required** after the build.
> * Activation works **offline**; network access is not required during the build.
> * The license must still be activated before each build.
> * Pipeline licenses are not valid for interactive development in Visual Studio.

## Using a Standard Developer License in Pipelines

A standard developer license can be used in pipeline environments, but it has limitations when used with dynamic agents. You can use a standard developer license to test before acquiring a pipeline license.

>type=warning
> Behavior and Limitations:
>
> * The serial key **must be activated before each build**.
> * The license **should be deactivated after each build** so it can be reused by the next agent.
> * There is a **daily limit on activations and deactivations** (reactivations).
> * Reaching the reactivation limit may block subsequent builds.
> * The build will fail if the MESCIUS license server is under maintenance.

If these limitations are problematic, consider using a pipeline license.

### Activate and Deactivate in the Pipeline

**Prerequisites:**

* A valid ComponentOne serial key
* Network access to the licensing service
* The command-line licensing tool available on the agent

Install the tool if it is not already available:
`<span class="">dotnet tool install -g sa3client </span>`
**Activate Before the Build**
`<span class="">sa3client a "<serial-key>" </span>`
**Deactivate After the Build**
`<span class="">sa3client d "<serial-key>" </span>`

>type=note
> Notes for Standard Developer Licenses
>
> * Always attempt to deactivate the license **even if the build fails**.
> * If repeated deactivation failures occur, contact support to resolve the issue.
> * If deactivation becomes a recurring issue, upgrading to a pipeline license is strongly recommended.
> * The build environment must have network access to the licensing service.

## Legacy Pipeline Licensing (<span data-testid="definition-highlighter" class="_5pioz8co _189e1dm9 _1il9buyh _19lc184f _d0altlke" style="border-image: linear-gradient(90deg, rgb(0, 101, 255), rgb(191, 99, 243), rgb(245, 230, 168)) 0 0 100% / 1 / 0 stretch; border-width: 0px 0px 2px; border-bottom-style: solid; --_11qfq0e: solid;">GCLM</span>)

Older versions of ComponentOne use the **MESCIUS License Manager (<span data-highlighted="true" data-vc="highlighted-text">GCLM</span>)**. These instructions apply to environments that still rely on legacy licensing. See [What is the difference between SA3 and GCLM?](https://docapp.mescius.io/manage/ArticleEdit//componentone/docs/license/online-license/faqs#q:-what-is-the-difference-between-sa3-and-gclm?)

### Standard Developer License (<span data-highlighted="true" data-vc="highlighted-text">GCLM</span>)

>type=warning
> Behavior and Limitations
>
> * The serial key must be activated and deactivated for each build.
> * A single key can be activated/deactivated up to **9 times per day**.

#### Install the License Manager

If any MESCIUS product is installed, the tool is already available at:

* **Windows**:
    ``` C:\ProgramData\GrapeCity\``<span data-highlighted="true" data-vc="highlighted-text">gclm</span> ```

If not installed:

* **Windows**:
    Download `gclm_deploy.exe`
* **Linux / macOS**:
    `<span class="">dotnet tool install -g GrapeCity.LicenseManagerTool </span>`

**Activate Before the Build**

```auto
# Windows
C:\ProgramData\GrapeCity\gclm\gclm.exe "<product-id>" -a "<key>"
# Linux / macOS
gclm "<product-id>" -a "<key>"
```

**Deactivate After the Build**

```auto
# Windows
C:\ProgramData\GrapeCity\gclm\gclm.exe "<product-id>" -d
# Linux / macOS
gclm "<product-id>" -d
```

For a list of product IDs, see **Activation by Command Line**.

### Pipeline License (<span data-highlighted="true" data-vc="highlighted-text">GCLM</span>)

A legacy pipeline license allows unlimited activations without deactivation.
**Activate the License**

1. Install the License Manager.
2. Copy the local activation package file to:
    * **Windows**:
        ``` C:\ProgramData\GrapeCity\``<span data-highlighted="true" data-vc="highlighted-text">gclm</span> ```
    * **Linux / macOS**:
        ``` ~/.local/share/GrapeCity/``<span data-highlighted="true" data-vc="highlighted-text">gclm</span> ```
3. Activate using the serial key and password:

```auto
# Windows
C:\ProgramData\GrapeCity\gclm\gclm.exe "<product-id>" -a "<key>" "<password>"
# Linux / macOS
gclm "<product-id>" -a "<key>" "<password>"
```

>type=note
> **Note**
> For legacy pipeline licenses, the product ID is always `331cf6cd-b73c-429f-ba79-fa2f85eebd68` (Studio Enterprise).