Skip to main content
Version: Next

Licensing & Modules New in 1.0.0

QUBIQ is licensed per module, per machine, and offline. There is no phone-home, no licence server to keep reachable, and no outbound connection at any point — activation is a file you send us and a file we send back.

The Modules page​

Licensing (/licensing) is the source of truth for what this installation owns. Every View modules link in the product lands there, and the licence status in the status bar is a shortcut to it.

It opens with a summary — Modules owned, Licence type, Version, Expires, Support and Issued to — and then lists every module in three groups:

GroupWhat it holds
Protocol driversThe connections to plant equipment
Plant capabilitiesThings a running plant depends on
ToolsThings an engineer uses, which a plant does not depend on to keep running

A licensed module carries no badge — only the things you do not own are labelled, because badging everything makes the labels invisible.

This is not the open-source notices page

Two different things share the word "licence". /licensing is your product licence — what this installation is entitled to run. /notices lists the licences of the open-source libraries inside QUBIQ and their required notices. The pages link to each other.

The module catalogue​

Protocol drivers​

ModuleCovers
OPC-UA DriverOPC-UA connections, browsing, subscriptions
MQTT DriverMQTT and Sparkplug B connections — inbound, and publishing out to a broker
Modbus DriverModbus TCP/RTU connections
SNMP DriverSNMP v1/v2c/v3 connections, walks, MIBs and traps
TCP/UDP DriverRaw socket connections

Plant capabilities​

ModuleCovers
Database BridgeSQL, MongoDB and QuestDB connections, and the pipeline nodes that use them
HistorianTag history — storage, rollups and historical queries
AlarmingThe alarm engine, the lifecycle, shelving and the journal
Expression TagsTags whose value is calculated rather than read
ScriptingGateway scripts, client scripts, Python execution
REST APIInbound and outbound REST endpoints
Audit JournalThe tamper-evident audit journal
NotificationEmail, Telegram and WhatsApp delivery, wherever it is triggered from
Media ServerCamera and video-stream connections

It is called Database Bridge, not SQL Bridge, because it covers MongoDB and QuestDB too — a customer who only uses MongoDB should not have to buy something called SQL.

Tools​

ModuleCovers
AI AssistantThe assistant, its specialists and playbooks
Knowledge BaseThe document store and vector search behind the assistant
Bulk ImportBulk tag and namespace import

A module is a capability, not a menu entry​

Nothing is hidden. A module you have not bought stays visible, labelled, and one click from a quote. Hiding it would buy no enforcement at all — the capability is already withheld — while costing you the ability to find out that it exists.

That has three consequences worth knowing:

  • A sidebar entry never moves. The navigation is the same shape on every installation, which is what makes this manual and its screenshots correct for all of them.
  • A widget on a saved screen never disappears. A component placed while licensed and now locked renders a placeholder naming the module. It does not crash, it does not vanish, and saving the view does not drop it — a licence change must never damage an artifact you authored.
  • A locked pipeline node is greyed in the palette, not removed.

The trial​

A fresh installation runs a 21-day trial of everything. It starts by itself on first install — there is no button, and no per-module trial, because the trial is the whole product.

While it runs, every module reads Trial — n days remaining, and the summary shows the licence type as Trial, with the trial's end date under Expires. 1.0.8 Earlier builds reported no licence type during the install trial. When it ends, the installation behaves as an expired licence does, below.

One per machine. That the trial has been used is recorded in several places at once Changed in 1.0.4 — the data directory, the other data directory a different install mode would use, the installation folder, and on Windows a machine-wide registry key. Any surviving record refuses a second trial, so deleting the data folder and reinstalling does not buy another 21 days.

Every one of those reads fails open: a permissions problem on a marker is treated as "this record has nothing to say", never as a refusal. Licensing must never be the reason a plant does not boot.

Activating an installation​

Two steps, with a human round trip in the middle. Nothing leaves the machine on its own.

1. Send us your licence request​

Open Licensing and click Install licence. Step 1 of the Install a licence dialog shows this machine's code and a Download request file button.

The request file is what to send — email it with your order. The code beside it is the same machine, in a form a person can read down a phone: it is what a support call runs on, and it is the string that appears in logs and in a support bundle so two people can confirm they are talking about the same installation.

If the machine is virtualised or containerised, the step names the environment it detected. Mention it when you order.

2. Upload the licence file we send back​

We send a .qlf file. Drop it on step 2, or click to browse. It is read and verified on this machine — nothing is uploaded anywhere.

A licence installed on a running installation needs no restart Changed in 1.0.6​

Every service re-reads and re-verifies the signed licence file the moment one is installed — within the same second, across the whole fleet. Buy the Siemens S7 module at 10am and a connection created at 10:01 works, with no maintenance window.

This is a real change, and the failure it removes was a confusing one. Only two processes used to hear about a new licence; every other service held the entitlements it read at boot for its whole life. So the supervisor would start the newly bought worker — visible proof that the purchase had landed — while the connection monitor went on stamping module not licensed on the connection, the bridge declined to subscribe its tags, and the node executor refused the pipeline nodes, all against a snapshot from before the purchase. The only cure was the restart the whole mechanism exists to avoid.

The message on the wire carries no entitlements. It is a nudge: each process re-reads the signed file from disk and verifies it itself, so nothing is granted by a message.

Two consequences worth stating:

  • Entitlements now narrow as well as widen. A licence that genuinely expires or is reissued smaller takes effect on running services, where before it could only take effect at a restart.
  • A licence file that cannot be re-read changes nothing. A process keeps the entitlements it is already running under rather than dropping to unlicensed, so a damaged file cannot strip a running fleet — and a genuine narrowing or expiry still installs, so a damaged file is not a way to keep modules forever either.

What a licence is bound to​

The licence is signed and bound to the hardware it was issued for. Copying the file to another machine does not activate that machine — request a new one instead.

A licence also names the versions it covers, shown on the summary as the 1.0 series, any version, and so on. Running a build newer than your licence covers is reported as its own state, not as an unlicensed installation, because the remedy is different and entirely yours: install the version you own, or extend the licence.

What the status means​

StatusMeans
(no label)Licensed, in date, and covering this build.
Trial — n days remainingThe automatic post-install trial is running.
Trial period has endedThe trial ran out and nothing has been installed.
Licence expiredA licence was installed and its term has ended.
Not licensedThis module was not purchased.
Licensed, but inactive — …You own it, but something it depends on is missing. It names what.

That last one is worth reading carefully: "you own this but part of it is off" and "you did not buy this" point in opposite directions, and they are deliberately worded differently. A module reported as inactive will not be fixed by buying it again.

If the licence file itself cannot be read — a disk fault, a truncated file — everything keeps running and the state is flagged rather than enforced. A licensing subsystem must never take a plant down over an I/O error.

When a licence lapses​

The guiding rule: a lapsed licence never stops a running process. A plant that is running continues to run. What changes is what happens next.

  • Configuration freezes. You can operate, but not change the shape of the installation.
  • A watermark appears on every view, in LiveView, and on exports. It becomes non-dismissible as time passes.
  • A system alarm is raised, so it is visible where operators already look.
  • Tools stop; plant capabilities do not. Modules whose absence cannot affect a running plant stop at expiry. Anything on the control path keeps running — it is simply not restarted.
  • Further out, new pipeline executions are refused. Running pipelines continue.

Every one of those escalations is decided on the server, on one clock, so the banner, the watermark and an exported document cannot disagree about what day it is.

The restart that does not come back​

This is the trap the product goes out of its way to prevent. After expiry, an installation gets one free start — after that, a service belonging to a lapsed module does not start again.

So:

  • The Licensing page shows a restart impact panel naming, by module, exactly what will not come back. "Your licence expired" is abstract; "Historian will not come back" is not. It appears only once the trial has ended or a licence has expired — never during a running trial, when the next restart still runs everything. 1.0.8
  • Restarting a service from Settings → System Services asks you to confirm when that service is one of them, naming it in the sentence. On a healthy installation the confirmation never appears, so it has not been trained away by the time it matters.

Take the warning literally. Restarting a gateway to clear an unrelated problem is how an expired licence turns into an outage.

About & licences Changed in 1.0.8​

About & licences, in the user menu, answers "which build is this?" and points at both kinds of licence. It shows the QUBIQ mark, by QUBIQ Inovasi Digital, the Version — the same string the status panel and the Licensing page show, including the build's commit — and two links, each opening in a new tab so an unsaved Designer underneath is not lost:

LinkOpens
Product licence and modules/licensing — what this installation is entitled to run
Open source notices/notices — the licences of the open-source libraries inside QUBIQ

The copyright line at the foot names the publisher; the company name links to goqubiq.com.

On the Open source notices page, every library's link now goes to a real web address — over a hundred libraries used to carry a repository shorthand that led nowhere — and the search field has a clear button.

The License Agreement​

Every installer shows the QUBIQ End-User License Agreement and installs nothing until it is accepted — QUBIQ Setup, the Linux install.sh (type accept, or --accept-eula), and the macOS package. The text ships as EULA.txt with every download. The licensor is QUBIQ Inovasi Digital; notices under the agreement go to [email protected]. 1.0.8

The License Agreement is the terms of use; the licence file is what switches modules on. Accepting one does not install the other.

Where licensing does not appear​

Deliberately, so that a commercial state is never mistaken for a fault:

Not hereWhy
The services listA module you do not own is absent, not stopped or failed. A withheld module is not a fault.
The logsNo periodic warnings. Silence in the logs, visibility in the interface.
Health and telemetryNever counted as degraded.
Login and the setup wizardLicensing is configured after you sign in.
A toast on every blocked actionThe lock is already visible at the point you would click.
Operator screensAn operator cannot buy a licence and is often watching a wall-mounted screen mid-shift. Expiry still reaches them, through the watermark.

The one exception is the startup report: when modules really were withheld at boot, that is said loudly, once, and the modules are named — otherwise it gets misread as a crash.

See also​