License installation and lifecycle
Choose SDK capabilities, install an issued Chrovia License, inspect its state, and replace or revoke authorization correctly.
A Chrovia License is the signed authorization document for a browser instance. It is not an extension, an EP file, or a login session. All SDK capabilities use this authorization model.
Obtain the right License
Use Console to create a trial License or purchase a commercial License. Select the operating systems and capabilities your integration needs. Platform identifiers are windows, macos, and linux; authorization for a platform does not guarantee a downloadable binary is available for it.
Capabilities are case-sensitive boolean entries such as payload.entitlements.networkIntercept: true. The License also carries a license ID, licensee, expiration, platform list, and optional engine major-version limits. These are signed fields, not settings to edit after download.
A capability authorizes a feature; it does not necessarily enable it. For example, disableDevTools also needs EP internal.disable_devtools: true. extendedPrefs and signedExtendedPrefs are distinct: one permits the prefs API and supported Profile overrides, the other requires EP signature verification.
Install the file
Fully quit the instance, then copy the issued file without modification. Keep its exact name Chrovia License, with no .json or .txt suffix.
| Location | Behavior |
|---|---|
<user-data-dir>/Chrovia License | First choice; specific to this instance directory |
<Provision root>/Chrovia License | Read-only fallback, used only if the instance file is absent |
The user-data directory is the root passed to --user-data-dir, not its Default subdirectory. An existing unreadable or invalid file does not fall back to the Provision License. See Provision layout for the platform-specific root location.
Start with a dedicated absolute user-data path as shown in SDK quickstart. If neither location has a License, gated capabilities remain unavailable; deleting the file does not unlock the SDK.
Check the issued authorization
Check the License ID, recipient, expiration, allowed platforms, capabilities, and any Chromium major-version limits against your deployment. An engine range includes both stated bounds. If something is incorrect, request a replacement; do not edit the downloaded file.
Only a License issued with noLease: true is exempt from online leasing. If signedExtendedPrefs is granted, also obtain a compatible signed Extended Preferences file through your deployment's configuration provider.
Keep the complete License private. Do not send it to websites or print it in logs. Use the status API below instead.
Inspect without renewing
In a Provision Service Worker console:
const api = globalThis.chrovia?.license;
if (api) {
const state = await api.get();
console.log({
valid: state.valid,
requiresLease: state.requiresLease,
licenseId: state.licenseId,
leaseExpiresAt: state.leaseExpiresAt,
});
}get() does not consume quota or initiate renewal. valid describes the loaded License, not a complete live authorization decision. leaseExpiresAt may initially describe the startup grace deadline. Read leases before building status UI around the snapshot. No separate License API entitlement is required, but the normal execution-context gate still applies.
Replace, expire, or revoke
- Obtain a newly issued License if capabilities, platform access, or validity must change.
- Fully exit the browser instance.
- Replace the file in the location actually used by that instance, then relaunch.
- If
signedExtendedPrefsis now required or its signing authority changes, also supply a matching signed EP file.
License state and capability grants are loaded for the running process; replacing a file is not a hot update. Console revocation stops future online lease claims. It is not an instantaneous push to every browser and does not remotely revoke an offline noLease process. Online expiry and terminal renewal failures are handled by the lease flow.
Troubleshooting
- Invalid JSON or signature: restore the unedited download and exact filename.
- Wrong OS or engine: request a License covering the actual host platform and Chromium major version.
- Capability undefined: check both its issued entitlement and the JS execution context.
- License valid but a lock prompt appears: inspect Infra renewal errors, network connectivity, quota, and revocation status.
- Provision replacement has no effect: check whether the user-data directory contains a higher-priority License.