Skip to content

Concepts ​

Organization ─┬─ Products ── Policies ── Licenses ── Machines (activations)
              ├─ Team members (roles)
              └─ API keys

Organization ​

Your company's account. Everything below belongs to exactly one organization, and organizations are isolated from each other at the database level.

Product ​

An app you sell, for example "Acme Editor". It has a name and a short code (acme-editor).

Policy ​

A license template for a product: type (PERPETUAL, SUBSCRIPTION or TRIAL), max machines and duration. Licenses are issued from a policy, so changing the policy's machine limit changes it for every license on that policy.

License ​

What your customer holds: a key (K7QX-M2PD-9HWT-R4CN), the customer's email, an expiry date from its policy, and a status:

StatusValidates?Can change to
ACTIVEYes, if not expired and a machine slot is freeSUSPENDED, REVOKED
SUSPENDEDNo (SUSPENDED)ACTIVE (reinstate), REVOKED
REVOKEDNo (REVOKED)Nothing. Revocation is permanent

Machine (activation) ​

A license in use on one computer, identified by a fingerprint your app sends (any stable machine id). The first validation from a new fingerprint activates it if the policy has a free slot. You can deactivate a machine from the dashboard, or the app can call deactivate when a user moves to a new computer.

Validation result codes ​

CodeMeaningWhat your app should do
VALIDLicense is active, not expired, machine allowedLet the user in
NOT_FOUNDNo license with this key in your organizationAsk the user to check the key
EXPIREDPast the license's expiry dateOffer a renewal
REVOKEDRevoked by youBlock
SUSPENDEDTemporarily blocked by youBlock, show a support contact
TOO_MANY_MACHINESAlready active on the maximum number of machinesAsk the user to deactivate another machine

SunLicense Cloud is in alpha.