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
- How Licensing Works — Signature verification, environment binding, and the validation sequence
- Installing or Updating a License — How to deploy License.json and the public key
- Grace Period Behavior — What happens during the 30-day grace period after expiry
- License Troubleshooting — Common errors and how to resolve them