Industry
Use Case
Favorite Feature
A company makes analysis software for laboratories and control rooms: places like research labs, utility control centres and government facilities. Many of its installations run on networks with no internet connection at all, by design. Some are a single workstation in a shielded room. Others are an isolated network with a few dozen workstations.
The company had used USB dongles. Shipping them through secure courier took weeks, a broken dongle stopped work until a replacement arrived, and dongles don’t work in the virtual machines these customers increasingly use. Every other customer used NetLicensing online already, and the company wanted to use the same licensing data for the disconnected sites too.
All customers, connected or not, are set up the same way in the Management Console: the same product, modules and license templates. What differs is how a disconnected installation gets its answer. There are two options, depending on the site.
Product: LabAnalyzer
├── Module "Core" – Subscription (yearly)
└── Module "Modules" – Multi-Feature
└── FEATURE templates: SPECTRAL, CHROMATOGRAPHY, REPORTING-21CFR
For a standalone machine, the licensee is the workstation itself, and its licensee number is a machine ID that the installer shows on screen. The vendor creates an offline validation file for that licensee, either in the Console or through the API:
curl -u apiKey:SIGNING_API_KEY -H "Accept: application/xml" \
-d "forOfflineUse=true" \
https://go.netlicensing.io/core/v2/rest/licensee/WS-7F3A-91C2-0B44/validate \
-o WS-7F3A-91C2-0B44.xml
The file is a normal validation result, signed with the private key attached to the API key. The customer’s administrator brings it into the secure area on approved media. The application checks the signature with the public key it ships with (the Java and C# client libraries do this in validateOffline), checks that the licensee number in the file matches its own machine ID, and then reads the result: subscription valid until a date, which modules are on.
A file is a snapshot. A renewal or a new module needs a new file. Because the file can’t count anything, the vendor uses only models that don’t change state on validation here: Subscription and Multi-Feature, no Floating and no Pay-per-Use.
For a site with many workstations, the vendor uses the NetLicensing Agent, available on selected plans. The Agent is a Java server that runs inside the customer’s network and answers validation requests in place of the cloud:
--action=export-assets. The export can be bound to a smart card, which protects against copying the Agent’s data and rolling it back to an older snapshot.--action=import-assets.--action=run-agent-offline, behind an HTTPS reverse proxy (Securing the Agent with SSL/TLS).The application only changes its API base URL to the Agent’s address. Everything else, including Floating seats for shared workstations, works as it does online. Updates are the same export and import again.
The Agent has known limitations that the vendor plans around. Licensee auto-create isn’t supported, so all licensees are created in the cloud beforehand. Floating sessions count as checked in right after an import, so the module’s maxCheckoutValidity is kept short. And Pay-per-Use isn’t recommended on the current Agent release.
Offline, the expiry check depends on the local clock. The application stores the latest time it has seen and refuses to start if the clock jumps backwards (see clock tampering). With a smart card, the Agent’s own time tracking is protected as well.
Licensing software for disconnected environments? Read Offline License Validation or contact us about the NetLicensing Agent.

Compliance & Licence Audit: Automated Overuse Detection and Audit-Ready Reporting
How an enterprise software vendor can prevent overuse instead of finding it in audits, using Node-Locked and Floating limits, warning levels and signed validation responses.

Multi-Product Bundle Licensing: Suite Management with Component Tracking
How a software suite vendor can sell all components under one renewal date with Bundles, while each application still checks its own entitlement.