Upgrade from Profinity 2.2
Upgrade a production system by following the numbered steps in order. Profinity 2.3 changes:
- Where data is stored.
- How security is configured.
- Which features need a licence.
- How the Representational State Transfer (REST) API reports errors.
Read the breaking changes first.
Before you start, take the backup in step 1, and test the upgrade on a non-production instance if you can.
- Back up the
config/andprofiles/folders of the artefacts directory, together withlicense/andcertificates/. These folders are namedConfigandProfilesuntil 2.3 starts for the first time. On a 2.2 system the artefacts directory is%LOCALAPPDATA%\Prohelion\Profinityon Windows,~/Library/Application Support/Prohelion/Profinityon macOS, and~/.local/share/Prohelion/Profinityon Linux. - Install Profinity 2.3 and start it once.
The first start moves data from older locations into the 2.3 artefacts directory.
It renames
Config,Profiles, andLogsto lowercase. It rewritessecurity.yamlandprofile.yamlin the 2.3 camelCase format when it loads them. It rewritesconfig.yamlon that first load when the file still has legacy Pascal keys or an older version stamp. Before it rewrites a file, it keeps the file it replaces beside it as<file>.bak. Profinity 2.3 reads a profile only fromprofile.yaml, so refer to Profile files if a profile uses another file name. Profinity does not move data whenPROFINITY_HOMEis set, so copy anything you need into that location yourself. -
Open ADMIN > License and confirm the state and the edition. A 2.2 installation upgraded without a licence file is unlicensed once any trial ends. These features then stop being available until you upload a licence:
- Remote web access.
- User and role administration.
- Two-factor authentication.
- Profinity AI.
- The Email, Slack, Webhook, and Message Queuing Telemetry Transport (MQTT) rule actions.
Refer to Apply a licence and Licensing. 4. Sign in as an administrator, open ADMIN > Users & Groups, and check the Roles tab and each user's assigned roles. Existing passwords keep working, because Profinity converts them to one-way hashes at first start. Change the default
adminpassword if you have not already. A defaultadminaccount that Profinity creates must change its password at first sign-in. 5. Open ADMIN > System Configuration and confirm these settings: - The Sign-in method. - The password policy. - The settings for single sign-on (SSO), System for Cross-domain Identity Management (SCIM), and Security Information and Event Management (SIEM). 6. Open ADMIN > Logs and read the messages from first start. On Linux, the migration messages name each file that moved. 7. Open each custom dashboard. Profinity 2.3 does not convert dashboards written for 2.2. A dashboard that no longer matches the current format shows This dashboard no longer matches the schema. Select Reset from Template to replace it with the latest template, or open Edit Dashboard and repair the file.Reset removes customisations
Resetting removes any customisations, so save a copy of the dashboard first.
A user who cannot modify dashboards sees a message to contact an administrator instead. Binds written in the dotted 2.2 form, such as
Component.Message.Signal, return no data, so change them to slash paths. 8. Unlock the firmware of each Gen2 battery management system once, and enter its passcode again, because 2.3 does not keep passcodes in the profile. 9. Run every integration that calls/api/v2against a test instance, because error responses changed. Check that each integration reads the HTTP status code and the problem body, and not asuccessflag or amessagefield. Integrations that call the older data endpoints must move to the tag, collection, rule, and alert endpoints. Refer to REST API errors. 10. Open each Building Automation and Control Networks (BACnet) component and set Device instance to the instance number of its device. Profinity now checks this number against the device, and stops reading points from a device that reports a different number. Refer to BACnet device instance.
To return to 2.2, reinstall 2.2 and restore the backup you took in step 1.
Linux and Docker data locations
On Linux, 2.3 moves data from ~/.local/share/Prohelion/Profinity, the 2.2 location, to /var/lib/prohelion/profinity the first time it starts.
A Docker container follows the same rule unless PROFINITY_HOME is set, and the Docker compose file Prohelion publishes sets it to the container path that holds your mounted data.
For a Docker upgrade, set PROFINITY_HOME to the container path of your existing mount and keep that mount.
Copy any legacy Config and Profiles folders into it before you start the 2.3 image.
Refer to Install Profinity with Docker.