Understanding EngageOne Vault license keys.

Product Versions: 5.3 onwards
In all versions of EngageOne Vault 5.3 or later the Vault licenses are stored in an XML file.  Typically this file is named G1Keys.xml, but it can have any name as long as it is specified in the server.ini file.  (In earlier versions of Vault the license is not stored in an XML file but that is beyond the scope of this article.)
The following server.ini settings relate to the license (server.ini can be found in the root of the Vault installation\server folder):
LicenceFile= specifies the name and optionally the path of the license file currently in use.  If no path is specified the location is assumed to be the InstallPath/Vault/Server directory.
Environment= specifies the section of the license currently in use.  This is important because a Vault license file can contain more than one Environment, but Vault will only recognize one environment at a time, so it is important to specify the correct Environment in server ini.
Example XML file contents at a high level:
-   <customer>XYZ Office</customer>
+ <environment id="1" name="cstest">
+ <environment id="3" name="RealProof">
+ <environment id="10" name="e2class">
+ <environment id="11" name="e2x">
+ <environment id="13" name="e2">
+ <environment id="14" name="EngageOne">
+ <environment id="18" name="iproof">
+ <environment id="19" name="DOC1">
+ <environment id="20" name="CCM QA">
+ <environment id="21" name="eMessaging">
Note the multiple environments.  Each environment could potentially be configured for different features.
An expanded view of the license file (environments 1 and 3):
<customer>XYZ Office</customer>
- <environment id="1" name="cstest">
+ <module enabled="True" expiration="" id="4" moduleVersion="1.0" name="e2 Reprint Admin">
+ <module enabled="True" expiration="" id="2" moduleVersion="1.0" name="Rendering Engine">
+ <module enabled="True" expiration="" id="1" moduleVersion="1.0" name="e2 Vault">
+ <module enabled="True" expiration="" id="3" moduleVersion="1.0" name="e2 Service">
- <environment id="3" name="RealProof">
+ <module enabled="True" expiration="2013-06-19" id="7" moduleVersion="1.0" name="RealProof">
+ <module enabled="True" expiration="2013-06-19" id="1" moduleVersion="1.0" name="e2 Vault">
Note the modules that are enabled.  If a vault server that includes the "e2 Service" client is required, it would be necessary to specify Environment=1 in server.ini (as this includes the Service Client module).  If a vault server that includes RealProof is required, it would be necessary to specify environment=3.  The environment used should contain all the required elements.  For example if environment 3 is selected, there is a vault license, but no Rendering Engine, so although it would be possible to load documents, it would not be possible to view these documents.
Note that environments can have expiration dates, as seen above in environment 3.  Lack of a date means that the license does not expire.  Any manual editing of this file will render it invalid.
The license XML can be opened in Internet Explorer, where it is possible to expand the nodes in the XML to see more detail in each environment regarding licensed features.
The environment numbers will vary between XML files.  The environment numbers can also change when a license is updated so it is important to look at the XML file and set the correct environment number.
Vault services need to be restarted for the license updates to take effect.
UPDATED:  September 23, 2019