Licensing
Profinity uses a signed licence file to control which commercial features and components are available on an instance. Profinity checks the file's signature on the instance itself, so licensing works offline. To apply a licence file, refer to Apply a licence, and to read the licence state of an instance, refer to License manager or the licence summary in System Information.
A licence sets the most that an instance can use, and configuration can switch parts of it off.
A licensed feature, such as Profinity AI, is available whenever the licence includes it, unless the site configuration (config.yaml) switches it off. Scripting and Profinity AI each have a setting that does this: the Enable C# scripting, Enable Python scripting and Enable Lua scripting settings on the Application config tab, and the AI settings.
Components work differently.
A component is available only when the licence, the original equipment manufacturer (OEM) customisation file (custom.yaml), and config.yaml all allow it, so either file can hide a component group or type that the licence includes.
Data Relay is a licensed feature that works through components (Tag Relays, the MQTT Publisher and Subscriber, the Webhook Publisher and the ThingsBoard Logger), so these components follow the component rule.
Refer to Choose available components.
What each edition includes
The features an instance can use depend on its edition. Some features are included in every edition, and a licence adds the rest. In the tables in this section:
- means the feature is included.
- means it is not included.
- Add-on means it is licensed separately.
Features by edition
The rows from Local web UI to Loggers are included in every edition. Each edition also includes everything in the edition before it. The remaining rows differ by edition:
- No licence: only the rows included in every edition.
- Desktop: adds Scripting, Custom components, Custom plugins, Historians, and Themes and branding, and has Industrial Protocols and the Profinity software development kit (SDK) as separately licensed extras.
- Server: adds Tag Rule Actions, Data Relay, Two-Factor Authentication, Profinity AI, and Profinity Server, and has the same two separately licensed extras.
- Enterprise: adds Enterprise Security, so only the two separately licensed extras remain.
- A Desktop installation is free for personal, non-commercial use, under the Desktop free-use policy. Every other installation starts with the 14-day local trial, unless an OEM-customised build leaves the trial out or the machine has already used it.
- User accounts, roles, and the Users & Groups page come with the Profinity Server feature. For who can sign in on each installation type, refer to Who can sign in, by installation type.
- Kiosk Mode is included in every edition, but setting it up needs Profinity Server. It signs a display in as an enabled Profinity user, and you create that dedicated kiosk user in Users & Groups, which comes with Profinity Server. Refer to Kiosk Mode.
- Themes and branding need a Desktop or higher licence.
Until one is installed, the instance keeps its
theme.yamlfile and shows the default Profinity appearance. - The 14-day local trial and signed trial licences from Prohelion include everything in the Server edition.
- Add-on means something licensed separately from the edition, available on any commercial edition. Industrial Protocols is a component group. Each protocol, such as Modbus or S7, also needs its own plugin installed, and that plugin requires the Industrial Protocols licence. The Profinity SDK is a developer kit that Prohelion supplies on request. To ask for it, contact Prohelion.
- Pages for licence-dependent features carry a Licence required note near the top.
The License page is always the authority for your instance, because
custom.yamlandconfig.yamlcan hide components that the licence includes.
Remote web access needs a Server licence
Until it has a Server licence, a Desktop host listens for web connections on 127.0.0.1 only, so the web interface and API work from the same computer only.
Profinity does this whatever is entered under Profinity Web, and records a message beginning "Remote web access requires a Server license" in the Profinity log.
If you cannot reach Profinity from another computer, check the licence on the License page before you change the address or the firewall.
Opening the web interface from another computer, and creating user accounts and roles, need the Profinity Server feature, which the Server and Enterprise editions and the 14-day local trial include. Every edition includes access from the same computer. Production use of Profinity Server on Docker, Linux, or macOS needs a licence from Prohelion. A Windows desktop or service host has no 14-day trial, so it needs a licence from Prohelion too. You can request a licence through the Prohelion contact page.
The 14-day local trial
A new server installation, meaning a Linux, macOS, or Docker installation, starts a one-time, 14-day trial the first time it runs with no licence installed.
The Windows desktop application, and the Windows service it installs, are Desktop hosts that follow the Desktop free-use policy instead. A Windows installation running the console build of Profinity is a server host., and an OEM-customised build leaves the trial out when its config/custom.yaml sets trialEligible to false under license. A custom.yaml that Profinity cannot read also leaves the trial out.
The trial:
- Works offline.
- Runs for 14 days from first startup.
- Grants the Server features, the same set as a standard
CommercialServer licence. - Runs once per installation. Upgrading or reinstalling Profinity over an existing installation keeps the original trial, because the trial is recorded against the machine fingerprint.
- Reports the state
Trialwhile more than 7 days remain, andExpiringfor the last 7 days. A signed trial licence file from Prohelion reportsTrialwhile more than 30 days remain.
Before the trial ends, the Home screen shows an expiry notice that links to the License page under ADMIN.
When it ends, the state becomes Expired, and the installation runs in restricted mode until you apply a licence that includes the Server feature, such as a Server or Enterprise licence.
When a licence is missing or has expired
The State on the License manager page shows whether a licence is in force. In these three states, every feature the licence includes works:
| State | What it means |
|---|---|
Valid |
A commercial or evaluation licence from Prohelion is applied and current |
Trial |
The 14-day local trial, or a signed trial licence from Prohelion, is running, with the Server features |
Expiring |
30 days or fewer remain on a licence, or 7 days or fewer on the local trial, and the Home screen shows the days remaining |
An expiry date is final: the licensed features stop on that date.
Profinity checks the date while it runs, so it notices the expiry as soon as the date passes.
It then restarts itself once and starts with the state Expired.
Scripting, AI, custom plugins, and the Extensions Web server are among the features that stop.
In these five states, a Desktop installation falls back to the features every edition includes, shown in Features by edition, and a server installation runs in restricted mode, described after the table:
| State | What it means |
|---|---|
Expired |
The licence's expiry date has passed |
Missing |
The instance has no licence file and no trial running, which is the usual state of a Desktop host under the free-use policy |
Invalid |
The licence file fails its signature check, has a start date in the future, or has an unrecognised type |
WrongInstance |
The licence file was issued for a different installation |
UnsupportedVersion |
The licence covers only earlier releases of Profinity |
A server installation in any of these five states runs in restricted mode:
- It stays reachable on its configured address, so you can still replace the licence from a browser.
- A banner on every page says why.
- Users with the Security administration permission can sign in, open the License page to upload a new licence, read the Logs, and change their own password. The side menu shows only ADMIN and LOGOUT.
- Other users can sign in and see only a message that the licence needs renewing.
- Profinity refuses every other page and API request, including from the same computer, until you apply a licence that includes the Server feature. A Desktop licence does not include it, so it does not end restricted mode on a server installation.
To leave restricted mode, apply a licence as described in Apply a licence. Profinity restarts, the License page waits for it to come back, and then it reloads with everything available again.
Use HTTPS where you can
Over plain HTTP, sign-in details are sent without encryption. To use HTTPS, turn on Enable HTTPS in Profinity Web. Restricted mode works over HTTP, so a server that can only be reached that way can still be renewed, but the License page warns you.
A Desktop host in these states keeps working with the features every edition includes, as described in Desktop free-use policy.
Desktop free-use policy
A Desktop installation is free for personal, non-commercial use, and commercial use needs a Desktop licence from Prohelion. It runs with the features every edition includes for as long as you use it. The Home screen shows a notice that explains the personal-use limit and directs commercial users to contact Prohelion.
A signed trial or commercial license.yaml installed on a Desktop host is validated and applied in the same way as on a server host.
With a Server licence, a Desktop host also accepts connections from other computers and creates the default admin account, as a server host does.
The built-in desktop sign-in used by the application window still works from the same computer only.
Do not put a reverse proxy on the same computer in front of a Desktop host. Requests that come through the proxy look as if they came from the computer itself, so Profinity refuses the desktop sign-in on any request that carries forwarding headers. To use a reverse proxy, run Profinity as a server host behind it instead.
The machine fingerprint
The fingerprint is the identity of one Profinity installation, and the License page shows it with a button to copy it.
It is a random value that Profinity creates on first startup and keeps in the license folder of the artefacts directory.
It has two purposes:
- It ties a signed
license.yamlto one installation, so a licence file works only on the installation it was issued for. - It is the only information an administrator sends to Prohelion to request a licence or evaluation, so an offline instance can be licensed too.
The fingerprint travels with the artefacts directory.
It stays the same when the computer's name changes, when a Docker container is recreated, and when the artefacts directory is moved.
Back up the artefacts directory with the rest of your Profinity data.
If the license folder is lost, Profinity creates a new fingerprint, and you need a new licence from Prohelion for it.
Profinity rejects an upload of a licence issued for a different installation, and reports the state WrongInstance if such a file is copied into the license folder.