Managing your licence
This page covers the practical steps. For how the licence model behaves — features vs limits, grandfathering, grace periods — see Licensing & entitlements.
Licence administration requires SUPER_ADMIN.
Check your current status
Go to Admin → License. The page shows:
| Field | Meaning |
|---|---|
| Tier | Active tier, or FREE if no valid licence |
| State | active, grace, or expired |
| Expires | Expiry date and days remaining |
| Organisation | Who the licence was issued to |
| Trial | Whether the current licence is a trial |
| Instance ID | This deployment's identifier — quote it when requesting a bound licence |
A banner appears across the application when a licence is in grace, expired, or absent, so the state is visible without visiting this page.
Start the self-service trial
New deployments can activate a 120-day (4-month) trial of PLAN_2 without
contacting anyone. It is self-issued, works offline, and unlocks every feature.
- Sign in as
SUPER_ADMIN. - Go to Admin → License.
- Select Start trial.
The trial can be started once, and the check counts both self-issued and vendor-issued trials — they cannot be stacked. Once used it cannot be reset, reissued, or recovered by reinstalling.
Start it when you are ready to evaluate, not before.
If the option is unavailable, a trial has already been used on this deployment.
Apply a licence key
- Sign in as
SUPER_ADMIN. - Go to Admin → License.
- Paste the licence token and select Apply.
The token is verified locally against a bundled public key. No outbound network access is required, so this works in air-gapped environments.
Applying a licence takes effect immediately — no restart. The action is written to the audit log.
If the licence is bound to a specific deployment, its instance ID must match
this one, or it is rejected with binding_mismatch. See
instance binding.
Before a licence expires
Expiry does not remove data, but it does restrict what you can change. To avoid surprises:
- Note your expiry date from Admin → License.
- Check whether you rely on licensed features — particularly
multi_tenant. If you run more than one workspace, those workspaces become read-only once the grace period ends. - Renew during the grace period (21 days by default), while entitlements are still fully active.
Grandfathering protects numeric limits, not features. Multi-tenancy is a
feature, so tenant workspaces become read-only when it is unlicensed —
even if you were using them beforehand. Writes are rejected with
TENANT_READ_ONLY; reads continue to work.
Troubleshooting
| Symptom | Likely cause | Resolution |
|---|---|---|
TENANT_READ_ONLY on save | multi_tenant not licensed | Apply a licence including multi-tenancy |
binding_mismatch | Licence issued for a different deployment | Request one for this instance ID |
| Cannot add a user | At your effective limit | Apply a licence with more seats |
Tier shows FREE after applying | Token invalid, expired, or not yet valid | Re-check the token; verify the server clock |
| Banner says clock suspect | Clock moved backwards significantly | Correct the clock and run NTP |
| Start trial unavailable | Trial already used | Trials are one per deployment |
Permissions
| Action | Permission |
|---|---|
| View licence status | Any authenticated user (banner) |
| View licence details | SUPER_ADMIN |
| Apply a licence | SUPER_ADMIN |
| Start a trial | SUPER_ADMIN |
API
| Endpoint | Method | Description |
|---|---|---|
/api/v1/license/status | GET | Current tier, state, expiry, instance ID |
/api/v1/admin/license | GET | Full licence detail (SUPER_ADMIN) |
/api/v1/admin/license | POST | Apply a licence token (SUPER_ADMIN) |
/api/v1/admin/license/trial | POST | Start the one-time trial (SUPER_ADMIN) |
See the API reference for full details.