Licensing
Installing and verifying a DBTrail EE license. The status words, expiry, the 30-day grace window, and the updates window

One binary for every customer; the license claims turn features on. A license never stops capture, query or recovery: Enterprise features.
Installing a license

sudo install -D -m 0644 acme.lic /etc/dbtrail/license.lic
# or an explicit path
export DBTRAIL_LICENSE=/opt/dbtrail/acme.lic
dbtrail-ee licenseDBTRAIL_LICENSEis authoritative: a missing or bad file there isinvalid, never a silent fall-through to another path. Unset it to use the chain.- Without it, the chain scans past unreadable or corrupt files. Nothing
verifies but a corrupt file was seen:
invalidat that file, notmissing.
Verifying a license
dbtrail-ee license prints the status, the claims and a verdict per candidate
path. It needs no license and changes nothing. Exit 0 when enterprise
features are on (valid or grace), 1 otherwise, so
dbtrail-ee license || alert works from cron.
$ dbtrail-ee license
status: valid
file: /opt/dbtrail/acme.lic
customer: Acme Corp
type: commercial
expires: 2027-07-03 (updates until 2027-07-03)
features: audit, forensics
enterprise features: true
candidate paths (priority order):
- /opt/dbtrail/acme.lic (DBTRAIL_LICENSE): valid
- /etc/dbtrail/license.lic: not found
- dbtrail.lic: not foundThe status words
| Status | Features | Meaning |
|---|---|---|
valid | on | Signature good, not expired, build inside the updates window |
grace | on | Up to 30 days past expires_at, commercial only. Warns on every start |
expired | off | Past grace (commercial) or past expires_at (trial) |
updates-lapsed | off | Binary built after updates_until. Run an older release or renew |
invalid | off | Bad signature or format, unusable DBTRAIL_LICENSE, or a claims schema newer than this build |
missing | off | No license anywhere in the chain |
Every "off" state still runs the full open-source core.
Expiry, grace, and the updates window
- Commercial: 30-day grace after
expires_at(the expiry day itself still counts). A late renewal never hard-stops a recovery tool mid-incident. - Trial: no grace. The banner says the trial ended.
- Empty or unknown
type: treated as commercial. updates_until: compared with the binary's build date, not today. Any build inside the window runs licensed forever. Dev builds carry no build date and skip this check.- Newer claims schema:
invalid, and the fix is to upgrade dbtrail-ee, not to renew. The command and the banner say so.
The startup banner
Any state other than valid and missing prints one warning line to stderr
before the command runs. A license file that exists but cannot be read (a
directory bind-mounted over a missing host file, a 0600 file owned by another
user) always warns, even when another path verified. A license claiming
audit that is not enabled prints a second line:
when an audit license lapses.
Claims
| Field | Meaning |
|---|---|
customer | Licensed organization |
type | commercial or trial |
expires_at | Expiry date, YYYY-MM-DD |
updates_until | Newest build date accepted, YYYY-MM-DD |
features | audit, forensics, rbac, sso (Enterprise features) |
instances | Contractual count: reported, never enforced |
Renewals and sales
dbtrail.com/pricing · contact@dbtrail.com. Every banner quotes these.