Testing the licensing server

This task is part of the end-to-end process for setting up the Unity Licensing Server.

After you've downloaded and imported the license archive file, test the licensing server by retrieving either of the following levels of feedback:

  • Basic: Status, time since last started, and server version.
  • Extended: Basic information, plus machine bindings, license configuration, and database information.

To test the server:

  1. From a PowerShell or Terminal window, navigate to the Unity Licensing Server launch directory and run the following command:

    • Linux: ./Unity.Licensing.Server
    • Windows: .\Unity.Licensing.Server.exe
  2. Access one of the following two server endpoints:

    • For Basic: http[s]://<SERVER-IP-ADDRESS>:<PORT>/v1/status
    • For Extended: http[s]://<SERVER-IP-ADDRESS>:<PORT>/v1/admin/status

The server is functioning properly when the serverStatus information appears as Healthy.

Support for multiple product licenses

You can configure the server with licenses for multiple different products. A license file with a specific set of entitlements represents each product. All files are available as an archive, which you can import by using the import command.

If multiple product licenses are available on the server, you can set one license as the default and optionally configure client computers to use specific licenses. You can configure a client to request specific licenses by using the toolset client configuration key. For details, refer to Copying the configuration file in Client setup.

If the client isn't configured to request a specific product license, the server provides a default license. If the client is configured to request a specific product license, the server provides it, as long as a license is available.

Basic test report

For version 2.0 or later, you can use the administration dashboard to get basic server information, including status. Check the Overview page > Server Health Report to check if the Server status is Healthy.

For all versions, to check basic information about the server, go to:
<PROTOCOL>://<SERVER-IP-ADDRESS>:<PORT>/v1/status, where:

  • <PROTOCOL> is http or https, depending on the protocol selected during setup.
  • <SERVER-IP-ADDRESS> and <PORT> are the values specified during setup.

Example:

http://10.255.255.192:80/v1/status

Information returned by this endpoint includes:

EntryDescription
serverStatusA value of Healthy indicates the configuration of the server is correct and ready to serve licenses.
serverUpTimeThe amount of the time since the last server startup and the current date time.
serverUpTimeMsThe amount of the time in milliseconds since the last server startup and the current date time.
versionThe version of the licensing server.

For example, the output looks similar to this:

{
"serverStatus": "Unhealthy",
"serverUpTime": "0 days 1 hours 41 minutes 3 seconds",
"serverUpTimeMs": 6063668,
"version": "1.7.0.7cc2de3"
}

Extended test report

For version 2.0 or later, you can log in to the administration dashboard as admin to get detailed information about the server, including status. Check the Overview page > Server Health Report to check if the Status values are all Healthy.

For all versions, to access the extended test report, go to:
<PROTOCOL>://<SERVER-IP-ADDRESS>:<PORT>/v1/admin/status, where:

  • <PROTOCOL> is http or https, depending on the protocol selected during setup.
  • <SERVER-IP-ADDRESS> and <PORT> are the values specified during setup.

Example:

http://10.255.255.192:80/v1/admin/status

The extended test report includes information from the basic report, plus information about the server, including machine bindings, license configuration, and database information.

To access the extended test report, your IP address must be in the administrator IP allow list. For more information, refer to the adminIpAllowlist key in Advanced server configuration. Unauthorized attempts to access the administrative API return an error:

"title": "Unauthorized Admin Action"
"status": 401
"detail": "The administrative request could not be completed because the user is not authorized"

Output from the administrative API's extended test report looks similar to this:

{
    "serverContext": {
        "data": {
            "FirstPhysicalAddress": "42:01:00:00:00:1b",
            "Platform": "Unix",
            "ProcessorCount": "2",
            "MachineName": "license-server-linux-v1-12"
        },
        "status": "Healthy",
        "statusMessage": "Found 4 out of 4 context values"
    },
    "serverLicenses": {
        "data": [
            {
                "fileName": "/home/lit/.config/unity3d/Unity/licenses/linuxUicFormaEntitlement_1-20221026_852034.xml",
                "status": "Ok",
                "message": "EntitlementGroup: linuxUicFormaEntitlement_1 (from: linuxUicFormaEntitlement_1-20221026_852034.xml) has valid server entitlements",
                "licenseEntitlementGroupId": "linuxUicFormaEntitlement_1",
                "product": "Unity for Enterprise for Product Lifecycle + Forma (Floating)",
                "licenseCount": 100,
                "activeLicenseCount": 0,
                "validFrom": "2022-06-08T00:00:00Z",
                "validTo": "2025-06-08T00:00:00Z"
            }
        ],
        "status": "Healthy",
        "statusMessage": "Found 1 valid server license(s)"
    },
    "licenseSigningCertificateStatus": {
        "status": "Healthy",
        "statusMessage": "Successfully loaded license signing key"
    },
    "serverDelegations": {
        "data": [
            {
                "fileName": "license-server-linux-v1-12.delegation-20221026_852034.xml",
                "status": "Ok",
                "message": "Found valid server delegation: /home/lit/.config/unity3d/Unity/licenses/delegations/license-server-linux-v1-12.delegation-20221026_852034.xml",
                "delegationId": "Delegation",
                "organizationId": "hq.unity",
                "serverId": "license-server-linux-v1-12",
                "delegationStart": "2022-10-25T00:00:00Z",
                "delegationEnd": "2025-06-08T00:00:00Z"
            }
        ],
        "status": "Healthy",
        "statusMessage": "Found 1 valid server delegations"
    },
    "databaseStatus": {
        "data": {
            "connectionStatus": "Open",
            "connectionType": "Microsoft.Data.Sqlite.SqliteConnection"
        },
        "status": "Healthy",
        "statusMessage": "Connection state for Microsoft.Data.Sqlite.SqliteConnection is Open"
    },
    "plugins": {
        "data": [],
        "status": "Healthy",
        "statusMessage": "Plugins"
    },
    "httpConfigStatus": {
        "data": [],
        "status": "Healthy",
        "statusMessage": "HTTP config is healthy"
    },
    "serverStatus": "Healthy",
    "serverUpTime": "369 days 22 hours 41 minutes 20 seconds",
    "serverUpTimeMs": 31963280970,
    "version": "1.12.1+9338cad"
}

Next steps

Proceed to setting up a service to continue setting up your licensing server.