Licensing

AppProfileSafe uses a file-based licensing system. A digitally signed License.json file contains the customer name, subscription end date, and an environment binding (AD domain or Azure tenant ID). The license is validated on every application start — both in GUI and CLI mode. Without a valid license, the application runs in trial mode with limited functionality.


License States

The license can be in one of the following states:

State Dashboard Tile Behavior
Valid Green — Customer name, expiry date, days remaining Full functionality. No warnings.
Expiring soon Yellow — "Expires in N days" Full functionality. Warning dialog shown on startup when ≤ 30 days remain.
Grace period Yellow — "Grace ends on date" Full functionality for 30 days after expiry. Warning dialog shown on startup.
Expired Application cannot start. Error message displayed (GUI) or exit code 3 returned (CLI).
Trial mode Red — "Test Mode" No valid license found. Max 2 apps selectable, mapping rules read-only. Trial dialog on startup.


License Files

File Purpose Default Location
License.json Signed license data (customer, expiry, domain/tenant, signature) %ProgramData%\IT-Consulting Kinner\AppProfileSafe\License\License.json
AppProfileSafe.pem RSA public key for signature verification %ProgramData%\IT-Consulting Kinner\AppProfileSafe\Key\AppProfileSafe.pem

Both paths are configurable in settings.xml via <LicenseFilePath> and <PublicKeyPemPath>.


Error Codes

Code Description
APS-1000 License file not found
APS-1001 License has expired (beyond grace period)
APS-1002 License signature invalid
APS-1003 Feature not covered by license

In CLI mode, all license errors result in exit code 3. See Exit Codes for the full reference.


Topics in This Section