LicenPro
DocumentationNode-locked license

Node-locked license

A node-locked license binds entitlement to one machine via a stable hardware fingerprint. Copying the license file to another PC fails validation. Choose Auto-bind (instant lock on first validation) or Product owner approval (review in the Device Binding tab before the end user can run the app).

One machine

Hardware ID stored on server and in license.bin.

Binding modes

Auto-bind or product-owner approval at create time.

Device tab

Binding status, approve/reject, transfer, history.

Create a node-locked license (dashboard)

Open LicensesGenerate License. The wizard has four steps: Activation, License Type, Basic Info, and Details.

Step 1 — Activation mode

  • Offline — typical for node-locked desktop apps. Distribute license.bin; the SDK validates locally after an optional online bootstrap.
  • Online — live API validation on each run; activations and sessions appear in the dashboard in real time.

Step 2 — License type

Select Node-Locked. The card explains that hardware is captured on first run and the license is bound to that device.

License Type — select Node-Locked.

Step 3 — Basic info

  • Product (required) — e.g. IntelliJ IDEA.
  • Software release (required) — version line the license is tied to (e.g. 1.0.2).
  • Issued to (required) — end user assigned to that release. The SDK sends this as IssuedTo during validation; it must match the license record.
  • License name (required) — internal label shown in lists and exports.
Basic Info — product, release, and assigned end user.

Step 4 — Details (device binding mode)

On the Details step, choose how the first device is locked:

  • Auto-bind — first validation locks that machine immediately. No dashboard action required. Best for trusted or single-user deployments.
  • Product owner approval — first validation submits a binding request. The product owner must click Approve Device in License details → Device Binding before the license works on that machine.

Also set optional Entitlement sets and Notes, then click Generate License.

Details — Device binding mode (same card style as Activation mode).

After creation — licenses list

Node-locked rows show Type: NodeLocked, Mode: Online or Offline, Status: Valid, and Activations (e.g. 1 / 1 when one device is bound).

Licenses list — compare Node-Locked (1/1) vs Perpetual (unlimited activations).

Machine workflow (SDK / WinForms test app)

  1. Download license.bin and copy the license key from license details.
  2. Configure the SDK: product public key, API key, and ServerBaseEndpoint in licenpro.settings.json.
  3. Load the license file and key in your app, then Validate License (online).
  4. The SDK sends a stable hardware fingerprint, IssuedTo, and device metadata to POST /api/Licenses/validate.
  5. On success, the SDK may start an online session (heartbeat while the app runs).

Auto-bind — first validation on machine

Expected result

VALID on the client. Dashboard → Device Binding shows Bound with hardware ID, device name, and OS. Activations tab shows one active device.

Product owner approval — first validation on machine

Expected result (before approval)

INVALID on the client with a pending-binding message. Dashboard shows a yellow banner and Pending Approval on Device Binding. The end user must wait until the owner clicks Approve Device, then validate again.

Second machine (same license file)

Validation fails with a hardware mismatch message — the license is already bound to the first fingerprint.

License details — Overview tab

Use Overview for license metadata and binding summary:

  • License type — NodeLocked
  • Validation mode — Online or Offline
  • Binding mode — Auto-bind or Product owner approval
  • Binding status — Not bound, Pending confirmation, Bound to device, or Rejected
  • Hardware ID — full fingerprint hash (copy button)
  • Usage statistics — active devices vs allowed (typically 1 / 1)
  • Online activity — links to Activations and Active Sessions counts
Overview — binding mode, status, and hardware ID.

Device Binding tab

Primary operator view for node-locked hardware:

  • Bound device — hardware ID, device name, OS, activated time, last seen
  • Pending state — requested hardware ID with Approve Device / Reject (product owner only)
  • Activation history — table of Activated / Deactivated / Transferred events with IP and timestamp
  • Unbind / transfer — reset binding for legitimate hardware moves (owner actions)
Device Binding — bound machine and activation history.

Activations tab (per license)

Shows the device record created when the license validated or activated. For node-locked online licenses there is typically one activation per license.

ColumnMeaning
DeviceHostname (e.g. DESKTOP-…) and hardware fingerprint prefix
UserWindows / SDK user name reported at activation
IPPublic IP at activation time
ActivatedRelative time since first bind
StatusActive, inactive, or blocked
ActionsBlock, deactivate, or manage device (owner)
Activations — one row per bound device.

Active Sessions tab (online node-locked)

When validation mode is Online, the SDK opens a live session and sends heartbeats while the app runs. This tab lists current connections for this license only.

ColumnMeaning
UserSession user name and app version (e.g. v1.0.0)
DeviceHostname and operating system string
IP AddressMasked public IP of the client
ConnectedWhen the session started (relative time)
HeartbeatLast SDK ping — proves the app is still running
ActionsView session details or disconnect remotely

Use Live auto-refresh and filters (All / Online / Offline) to monitor usage.

Active Sessions — live SDK connection for this license.

Global Activations & Sessions pages

Sidebar Activations and Sessions show records across all products and licenses — useful for support desks. See Sessions & Activations for column definitions and lifecycle.

Server messages (end user)

When validation or binding fails, the API returns clear messages (also shown in the SDK test app status detail):

  • Binding submitted / pending — approval mode; wait for owner action
  • Binding rejected — owner rejected; contact support or reset binding
  • Hardware mismatch — wrong machine
  • Credential mismatch — Issued To does not match validation params
  • Device blocked — operator blocked this device from Activations

Compare with other models

  • vs Perpetual — node-locked is one machine; perpetual may allow many activations (∞).
  • vs Concurrent — node-locked is exclusive binding; concurrent is N simultaneous devices.
  • vs Floating — node-locked is fixed hardware; floating is a shared seat pool.

See also