About license files

The Niagara license file is a structured XML file that has a .license file extension. It enables a set of vendor specific features. Each license file is valid for one specific host platform (controller, PC), matched by that host’s unique host ID. License files are digitally signed by the vendor to prevent tampering.

These items are common to all license files:

Item Syntax Description
license
<license>
</license>
These are the first and last lines in the license file. All contents (lines) in between are <feature> elements, plus one signature element.
<license vendor="Tridium" expiration="2025-03-31" 
hostId="ATLAS-SD-F84C-2E6D-D888-BB87" serialNumber="068" 
version="4.13" generated="2023-03-29" 
maintenanceExpiration="2025-03-31"
unreleasedSwAccessExpiration="2025-03-31">
vendor
vendor="Tridium"
This value is always Tridium.
expiration
expiration="never"
Defines the expiration date of the license file. After the expiration date Workbench fails to start due to a license expired error. Typically, engineering copies of Workbench have expiration dates that expire on an annual basis. License files for actual projects are issued with non-expiring licenses, where this attribute value is:
version
version="4.x"
Identifies the Niagara software version where 4.x is highest release version of software that can be installed in the controller. If a newer version of software is installed, the controller may fail on start up with a license version error.

Niagara 4 licenses, starting at version 4.0, are not backward compatible with NiagaraAX (version 3.x) software.

hostid
hostid="x"
Identifies with an alphanumeric code the unique identify of the host where x is the number. For example:
hostId="ATLAS-SD-XXXX-XXXX-XXXX-XXXX"
hostId="Qnx-TITAN-XXXX-XXXX-XXXX"
hostId="Win-XXXX-XXXX-XXXX-XXXX"

The hostId in the license file must match the hostId of the controller, otherwise the controller cannot run a station.

A hostId that begins with Win is for a PC.

serialNumber
serialNumber="n"
Designates a controller’s unique serial number assigned at the factory where n is a number. The serial number in the license file must match the serial number of the controller. For example:
serialNumber="329696"
generated
generated="<date>"
Records the <date> upon which the license file was generated. For example:
generated="2023-01-27"
brand
"brand"
For any license with vendor="Tridium", the NiCS (Niagara Compatibility Structure) provides a schema that OEMs can use to define the various levels and types of Niagara interoperability that their products support.

For example:

<feature name=accept.station.in="*" accept.station.out="*"
accept.wb.out="*" "brand" brandId="tridium"
accept.station.in
accept.station.in="*"
Provides a list of brands that this local station allows Niagara data to come in from. From the controller’s perspective, this is the list of brands that it can accept data from. The "*" is a wildcard designation to allow all brands.
accept.station.out
accept.station.out="*"
Provides a list of brands to which this local station allows Niagara to share data. This is the list of brands that the controller can share data with.
accept.wb.out
accept.wb.out="*"
Provides a list of brands that this tool is allowed to connect to and engineer. This is the list of brands that the station can engineer.
brandId
brandId=”tridium
Holds a text descriptor that acts as the identifier for the product line. Every licensed station and tool has a Brand Identifier (BrandID). Each station or tool can have only one BrandID entry.
accept.wb.in
accept.wb.in="*"
Provides a list of brands that this station allows to be connected to it for engineering of its application. This is the list of brands that can engineer the station.
about
"about"
Designates optional information and does not affect station operation in any way. This information can be useful for filtering records when searching the license database. Two attributes in this feature are typically designated when ordering product:
<feature name="about" project="Testing" 
owner="Tech Pubs"/>
project
project="x"
Is an optional attribute where x designates the name of a project. This grouping should typically be assigned to all controllers used for a particular project. For example:
project="Tech Pubs"
owner
owner="x"
Is an optional attribute where x identifies the name of a person or group responsible for the project, or possibly an end user. For example:
owner="Tech Pubs"
signature
<signature>
</signature>
This ending element contains a digital <signature> that is created when the license file is generated. It prevents tampering with the license file. Attempts to edit the license file to enable additional features render the license file useless.

Typically, the signature element is the last element contained in the license, so it is followed by the closing license tag as the last line in the license file. For example:

<signature>MCwCFFOdq4wJcYgvhTVtrf0oSyuCDCwjAhRj+
H9pNxQGStBnhEkIqK8rONB10g==</signature> </license>