Module Licensing
Any and all use of Smile CDR products requires that appropriate licensing be in place between each customer and Smile Digital Health. These licenses are legal and financial instruments and for most of our products are not enforced through technical controls. However, from v2023.02.R01 onward, certain Premium Solution modules also have a technical control: the use of an alpha-numeric license key. The modules which require a license key to use currently include:
The license key is a JSON Web Token (JWT) that enables you to activate the module within your Smile CDR deployment. The absence of a license key will not interfere with the normal operation of Smile CDR, except the modules listed above. The license key issued to a customer is time-bound and tied specifically to the module(s) licensed. Each customer is only permitted to use the product in accordance with their signed license agreement and applicable order form(s).
In order for the premium solution modules to operate, the license key is required for use in all environments including development, testing, user acceptance testing, and production environments. In order to get a license key for any of the above modules, please reach out to your Customer Success Manager or Account Manager.
Due to the nature of JWTs and how separate claims are used for the various licensed modules, if a customer acquires a license and license key for an additional module, users will need to obtain a newly minted license key (JWT) which includes claims for all licensed modules.
License keys are a simple string of code. Upon receiving the license module, you will be prompted to fill in the license key via either a string configuration value or a file location value. Once installed, this license key will permit the operation of the modules specified therein. Attempting to boot one of the above licensed modules without an appropriate license will result in a InsufficientLicenseException
error message.
It is important to note that license keys are only verified on application or module startup. Once a license has expired for a given module, it will continue to function until the individual module is restarted, or the entire application reboots.
Once a license module is added, diagnostics will be displayed upon saving the configs.
The status of the JWT can be checked at any time in the license module's configuration screen on the admin console.
License status will also be checked daily and the results will be logged as either WARNING, ERROR, or no message at all, depending on the status of the license.
License Situation | Log Level | Results |
---|---|---|
Missing (no JWT) | WARNING | No JWT is provided. Licensed modules cannot be used, but non-licensed Smile modules will still function |
Good | NONE | JWT is valid and license expiration is more than a month away. Licensed modules can be used. |
Expires in less than a month | WARNING | JWT is valid, but the license will expire within a month. |
Expires in less than a week | ERROR | JWT is valid, but the license will expire within a week. |
Expired (but within grace period) | ERROR | JWT is valid, but the license has expired. License modules will still function, even after restart, until grace period has expired (12 weeks) |
Expired (out of grace period) | ERROR | JWT is no longer valid and the license has expired. Licensed modules will continue to function until they are shut down. Attempting to restart a module with an expired or missing license will result in a InsufficientLicenseException error message. |
Other than in the event of a missing license JWT, log messages will either inform how long the license has until expiration, or how long ago the license had already expired
Examples:
Licenses for the following modules (module list) will expire in XX days.
The license JWT, and thus all licenses for licensed modules, expired XX days ago!