Skip to main content

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 insights and insights-collector binaries).
  • 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:

TypeDescription
trialTime-limited evaluation license issued through the trial sign-up flow.
stripeSelf-serve paid license managed through Synadia's billing portal.
contractEnterprise or negotiated contract license.
devDevelopment 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​