Licensing & Trial
The Insights build needs no license. A trial runs a separate build that does. This page covers how to get a trial build, when it needs its license, how to configure the license, and what happens when it expires.
Getting a Trial
To get a trial, sign up at https://www.synadia.com/insights/trial. The trial email includes:
- Download links for the trial archives (the
insightsandinsights-collectorbinaries). - Credentials for the trial image,
registry.synadia.io/insights-licensed:1.2.0(linux/amd64,linux/arm64). - A time-limited trial license.
Apart from the artifact names and the license, a trial build installs and runs like any other. Follow Installation with the trial archives or image in place of the ones named there.
When a License Is Required
A trial build needs a license JWT whenever it scrapes or indexes a real NATS system, including as a collector (insights-collector) and as a node running without the web UI. It needs none in simulator mode (--simulator), which skips license validation entirely.
A separate web UI (insights web) validates no license of its own either: it runs no scraper, indexer, or database. It discovers the backend system's license and other capabilities over $INS.sys.<id>.ops.info, so only the node it connects to needs a license.
Contract Types
The license JWT carries a contract type that identifies how the license was issued. A trial sign-up issues trial:
| Type | Description |
|---|---|
trial | Time-limited evaluation license issued through the trial sign-up flow. |
stripe | Self-serve paid license managed through Synadia's billing portal. |
contract | Enterprise or negotiated contract license. |
dev | Development license, used internally and for preview builds. |
The contract type is logged at startup. It enables no features: the entitlement that unlocks the product is the insights feature flag embedded in the license, which every valid Insights license carries. A trial license is also shown in the web UI toolbar, as a Trial mode badge while it is valid and Upgrade to unlock once it has expired.
Configuring the License
There are two ways to supply the license JWT. If both are set, the file takes precedence.
License file
Store the JWT in a file and point Insights at it. This is the recommended form, because a file is easier to rotate and stays out of shell history:
insights --license.file /etc/insights/license.jwt
license:
file: /etc/insights/license.jwt
The environment variable equivalent is INSIGHTS_LICENSE_FILE. The file should contain the JWT string; surrounding whitespace is trimmed.
Inline token
Pass the raw JWT string:
insights --license.token "eyJhbGciOi..."
Or via environment variable:
export INSIGHTS_LICENSE_TOKEN="eyJhbGciOi..."
Or in your config file:
license:
token: "eyJhbGciOi..."
Container image
Run the trial image with the license mounted:
docker run -p 8080:8080 \
-v insights-data:/var/lib/insights \
-v /path/to/license.jwt:/etc/insights/license.jwt:ro \
-v /path/to/sys.creds:/etc/insights/sys.creds:ro \
registry.synadia.io/insights-licensed:1.2.0 \
--license.file /etc/insights/license.jwt \
--sys.server nats://your-nats:4222 \
--sys.creds /etc/insights/sys.creds \
--data-dir /var/lib/insights \
--web.hostname 0.0.0.0
Helm
Setting config.license.token or config.license.file makes the chart deploy registry.synadia.io/insights-licensed instead of registry.synadia.io/insights. Registry credentials and the license are separate: a trial deployment needs both, so create the pull secret described in Installation. A config mounted from configSecret.existingSecret is opaque to the chart, so set image.repository to insights-licensed yourself.
Expiry
Every license has an expiry timestamp embedded in the JWT.
At startup, Insights logs the expiry and contract type:
level=INFO msg="license validated" expires_at=2026-12-31T23:59:59Z contract_type=trial
An expired license does not stop Insights from starting. It stops scraping: a node that starts with an expired license logs scraper disabled: license expired, and a running node checks once a minute and logs license expired, stopping scrapers when the expiry passes. The web UI, query API, and CLI keep serving the data collected before expiry, and live views hold at the last collected epoch. Scraping resumes after you configure a valid license and restart.
The JWT can also carry a grace period; Insights does not extend scraping past the expiry for it. Watch the startup log line so the license is renewed before it expires. For a renewal, contact Synadia.
A backup viewed with insights ops backup view opens read-only and validates no license.
Next Steps
- Quick Start: run Insights with the built-in simulator
- Configuration: license configuration flag reference
- Installation: release archives, container images, and the Helm chart
- Deployment Guide: production deployment options