Allows users to configure licensing entirely through environment variables, without touching the License.ini file. Useful for CI/CD pipelines, containers, and multi-user machines where writing to a shared INI is undesirable.
New Environment Variables
____________________________________________________________________________________________
| Variable | Purpose |
|---|---|
UNDERSTAND_LICENSE_CODE | Overrides the license code from the INI |
UNDERSTAND_LICENSE_SERVER | Overrides the license server from the INI |
STI_LICENSE_SERVER | Fallback server override (existing, now fully dynamic) |
Works across all apps: und, understand, uperl, upython, userver, C API.
Case sensitivity: Case-insensitive on Windows; must be uppercase on Linux/macOS.
Behavior
____________________________________________________________________________________________
Full override — both env vars set
set UNDERSTAND_LICENSE_CODE=XXXX set UNDERSTAND_LICENSE_SERVER=licensing.scitools.com
INI is ignored entirely.
Mixed mode — one env var set, the other falls back to INI
set UNDERSTAND_LICENSE_CODE=XXXX ← from env var ← server from INI
No env vars
Original INI behavior, unchanged.
Transparency
____________________________________________________________________________________________
und license
When env vars are active, und license notes the source:
Note: License code is from UNDERSTAND_LICENSE_CODE environment variable.Note: License server is from UNDERSTAND_LICENSE_SERVER environment variable.
-setlicensecode / -setlicenseserver
If you save to the INI while an env var is active, you are warned it will be overridden:
Warning: UNDERSTAND_LICENSE_CODE environment variable is set to "OLD_CODE" and will override the license code you just saved until the environment variable is unset.
-deregisterlicensecode
Clarifies which code is being deregistered:
Note: Deregistering license code from UNDERSTAND_LICENSE_CODE environment variable ("XXXX"), not the INI.
Key Technical Detail — Install Key Isolation
____________________________________________________________________________________________
Each env var code gets its own install key slot in the INI (license/installKeyFor_<code>), completely separate from the INI code's slot (license/installKey). This prevents error 103 when switching between codes or using a different env var code than what was previously registered.
⚠️ Error 103 previously occurred when the env var code sent the install key belonging to a different code in the INI. The per-code slot ensures each code's registration is fully independent.
