Release 8.3.0
PhixFlow Ltd. is pleased to announce the release of PhixFlow 8.3.0. This page describes the improvements and fixes in this version. This major release includes some important fixes.
Installing or Upgrading to PhixFlow Version 8.3.0
To install a new PhixFlow instance:
- Check System Requirements and Compatibility for details of the PhixFlow system requirements and update any dependencies.
- Follow the instructions in Installing PhixFlow.
To upgrade an existing PhixFlow instance:
- Check System Requirements and Compatibility for changes to the system requirements or supported database versions. For example, you may need to upgrade your database or Java version.
- Ensure you have a backup of the database before upgrading PhixFlow.
Follow the Upgrading PhixFlow steps. It is important to complete Step 8, in which you apply any Special Upgrade Instructions for all the intermediate releases between your current version and the version to which you are upgrading. See below for the special instructions for this version.
- This release includes changes that affect the PhixFlow database. After upgrading, remember to republish the PhixFlow data as described in Step 10 of Upgrading PhixFlow.
Special Instructions
Special Instructions
This upgrade includes instructions to add a pepper string and alias to the keystore. See:
- Adding Data to a Keystore for the keystore command syntax and how the keystore works
- Understanding Password Encryption for information about the pepper key and how to ensure user security information is migrated to use the most secure encryption
- Considerations for Pepper Strings for whether or not to use different pepper keys for different instances.
Run the PhixFlow upgrade script
Running the upgrade script makes essential security improvements to passwords.
If you are upgrading from a version earlier than 8.2.0, please read the special upgrade instructions for 8.2.0. This release introduced the keystore and encryption of security data. It also changed the database indexing scheme for stream data tables.
Updating the indexing scheme in a large Oracle database may take a long time. If this is an issue for you, please contact PhixFlow Support. You may be able to use the --skip-superceded
option to prevent re-indexing. However, this will affect some PhixFlow features.
After upgrading your database in Step 10 of Upgrading PhixFlow, make sure you have sufficient disc space, memory and time to run the PhixFlow upgrade script. There is advice in the special upgrade instructions for 8.2.0.
Run the PhixFlow upgrade script from the installation directory .../phixflow-version-date/install
. To see information about all the options, run the upgrade script with the -help
option.
java -jar bin/upgrader.jar -help
The command returns:
[Boot] INFO: loading properties from one-jar.properties 2021-02-09 10:52:19,475 [main] INFO phixflow.upgrader.main.UpgraderMain - PhixFlow Upgrade starting Option Description ------ ----------- --skip-superceded Skip upgrading the superceded_dtm column on stream data tables (Oracle only; only use if advised by PhixFlow support) --help Print this message --match-streams Only streams matching this regexp are upgraded (Oracle only) --pass The database password --test Test the database connection properties --upgrade Upgrade the PhixFlow database schema --url The database url, e.g. jdbc:mysql://hostname/database --user The database username
To upgrade PhixFlow, run the upgrade script with the -upgrade
option, for example.
java -jar bin/upgrader.jar -url="jdbc:mysql://localhost/phixflow" -user=<myuser> -pass=<mypass> -upgrade
After the upgrade script completes, continue with the following configuration steps.
Add a pepper string to the keystore
PhixFlow now requires a pepper string to be added to the keystore. When a local user sets their password, the pepper string is added to it and the combined string is encrypted. This means user passwords are tied to a PhixFlow instance.
- Run the
-importpass
command, specifying the alias:pepperkey
The alias is case-sensitive. If you use a different alias, update phixflow-instance.xml to use the same alias. - When prompted, enter the keystore password.
- When prompted for the password, enter the pepper string you want to add to user passwords.
We recommend this string has the same characteristics as a password. For example it should be a random string containing at least 6 letters, numbers and special characters.
Keep a secure record of the pepper sting.
Merge changes in configuration files
You must create new versions of the following configuration files in $webapp/WEB-INF/classes
:
-
phixflow-instance.xml
- phixflow-datasource.xml
- phixflow-login.xml
- phixflow-secret.xml
To do this we recommend you:
- Rename your existing configuration file, for example by adding a
.bak
suffix. - Follow the Install the PhixFlow Webapp instructions for creating a new file from the
.example
file provided. - Copy the individual values from your existing configuration file and paste them into the new file.
Avoid copying entire XML blocks into your new configuration files, as you may overwrite a section of the configuration file that PhixFlow needs.
If you choose to merge the changes from the new .example
file into your existing configuration file, the following notes indicate where there are changes.
phixflow-instance.xml
The new section for configuring the pepper alias is required.
<!-- The pepper key is instance specific so extra caution has to be taken when changing the pepper key value in keystore, changing the value in keystore will cause login issue for user's migrated to new password encryption --> <util:properties id="instanceProperties"> <prop key="pepperkey">pepperkey</prop> </util:properties>
The default value is pepperkey
. If you have multiple PhixFlow instances, each instance must have a pepper string and alias; see Considerations for Pepper Strings.
phixflow-datasource.xml
1. You can no longer specify the database username and password directly in phixflow-datasource.xml
.
If you have not already done so, you must add the database username and password to the keystore.
Specify the keys for the username and password in the new bean <bean id="externalCredential"
by replacing demo.
<bean id="externalCredential" class="com.accipia.centerview.util.ExternalCredentialProvider"> <property name="secretService"> <ref bean="secretService"/> </property> <property name="usernameKey"> <value>demo</value> </property> <property name="passwordKey"> <value>demo</value> </property> </bean>
2. In <bean id="dataSource"
- the class name has changed from
class="com.accipia.centerview.util.PhixFlowDataSource">
toclass="org.apache.commons.dbcp2.PhixFlowDataSource">
property name
andref bean
have changed fromsecretService
tocredentialProvider
andexternalCredential
respectively- the following lines have been removed, because they are now in the
<bean id="externalCredential"
:<property name="username">
<value>demo</value>
</property>
<property name="password">
<value>demo</value>
</property>
phixflow-login.xml
1. New <bean id="passwordEncoder"
specifies the encryption method for passwords; see Understanding Password Encryption.
2. New <bean id="securityQuestionEncoder"
specifies the encryption method for security question.
3. New <bean id="sameSiteCookieFilter"
. If you use SAML for login, uncomment this.
4. <bean id="exampleAuthenticationOnlySamlAttributeMap"
has an additional property: <property name="globalLogout" value="false" />
5. <bean id="idpFileMetadataProvider"
has additional property: <property name="requireLogoutResponseSigned" value="true" />
<bean id="passwordEncoder"
specifies the encryption method for passwords. For greater security, you can remove any encoders you do not require; see Removing Old Encoders.
phixflow-secret.xml
- The new
is required.<bean id="keyStoreSecretService"
<bean id="secretService"
has changed.
After restart, configure datasources and email accounts
For all datasource modelling objects and email accounts, upgrading to 8.3.0 will migrate all existing:
- datasource instances to Authorisation Type Local
- email accounts to Authorisation Type None
After the upgrade is complete and PhixFlow has been restarted, review each datasource instance and email account. For those that require a username and password, we recommend these are stored securely; see the release note on Secure Credentials for Datasource and Email Account.
- Save the username and password with their alias to the keystore; see Adding Data to a Keystore.
- In the properties for the datasource instance or email account:
- Set Authorisation Type External.
- Add the aliases to the Username Key and Password Key fields.
Discontinued Features
PhixFlow no longer supports:
- Tomcat 8.5.
- Microsoft Internet Exporer.
Please email support@phixflow.com if you are planning to run PhixFlow 8.3.0 on an unsupported version of a database or Tomcat.
DEV-7988 When accessing a datasource or HTTP datasource, you can no longer configure PhixFlow to pass the username and password of the current user; see Secure Credentials for Datasource and Email Account, below. The following properties have been removed.
- Datasource/HTTP datasource instance:
Use User Credentials on Export
Allow Anonymous Export
- System Configuration Allow anonymous export by default
DEV-7660 In a file collector, you can no longer select a File Type of HTML File. This feature was unused.
Changes to Privileges
- Removed
- Allow Anonymous updates on datasources: all access to datasource instances is now via specified user credentials; see Secure Credentials for Datasource and Email Account, below.
- New; see Restricting Access During System Maintenance.
- Restricted Login Only Usually for administrators. Allows PhixFlow login during system maintenance down-time.
- Restricted Login TaskPlan Processing Usually for administrators. Allows running a task plan during system maintenance down-time.
Features and Improvements
Performance
DEV-7454 After a server restart, PhixFlow automatically re-caches frequently-used models and dashboards in the background. Once re-caching is complete, the first user to access the model or dashboard no longer experiences a delay. The period over which PhixFlow tracks object usage is set in System Configuration Delete DTO Usage Records after Days. Upgrading to version 8.3.0 sets this option to 7 days.
Secure Credentials for Datasource and Email Account
DEV-7988, DEV-7934, DEV-7662, DEV-7988, DEV-7466 When accessing a datasource or HTTP datasource, you can no longer configure PhixFlow to pass the username and password of the current user. You must provide a username and password in the datasource instance. This applies to datasources and HTTP datasources. You now have the option to configure access to a datasource instance or an email account more securely. You can:
- either pass credentials stored in the PhixFlow database, using the properties:
- Authorisation Type Local
- Username
- Password
- or securely pass credentials from a keystore using aliases. Add the details to your keystore; see Adding Data to a Keystore. Then provide the aliases in the properties:
- Authorisation Type External
- Username Key
- Password Key
Email accounts can also have the Authorisation Type No Authorisation.
Improvements to Translation
DEV-7786 You can now configure translation of values displayed in a filter using the Show the list of values button. To translate these values, PhixFlow requires:
- a translation table for the logged-in user's locale and the current application
- the translation table has a translation string for the value
- the stream attribute property Translate Values to be ticked.
DEV-7588 There is a new translateTo function that you can use to translate values according to the application running and the language name supplied.
PDF Conversion
DEV-7930 PhixFlow can now convert exported Excel files into PDFs.
- Administrators must configure LibreOffice to be available: see Configuring PDF Conversion
- Data modellers can specify PDF conversion using the new file exporter options Convert to PDF and PDF Target Path; see File Exporter
- PhixFlow reports on PDF conversion processes on a new console tab called PDF Chore.
Restricting Access During System Maintenance
DEV-7918 In previous versions of PhixFlow, during system mainenance or upgrade, only administrators could access PhixFlow or initiate processes when the following system configuration options were selected:
- Restrict non admin logins only
- Suspend processing for non admin users
These options have been changed so that access can be granted to other roles or user groups. For example a PhixFlow consultant may need access. To support this:
- Restrict non admin logins only has been renamed to Only allow users with the restricted login permission to log in.
You must add the new Restricted Login Only privilege to the Administrators role, and any other role or user group that requires access. - Suspend processing for non admin users has been renamed to Only allow users with the restricted permission to run task plans.
You must add the new Restricted Login TaskPlan Processing privilege to the Administrators role, and any other role or user group that needs to run processes, such as analysis or task plans, during system maintenance.
There are also dto usage and rebuild options in the server.properties configuration file related to database management.
# the dto usage service polling interval in ms dtoUsageService.pollingInterval=60000 # the dto rebuild service polling interval in ms dtoRebuildService.pollingInterval=60000 # the dto rebuild service delay before building the dtos dtoRebuildService.dtoRebuildDelay=300000
For more details, see Restricting Access During System Maintenance.
Improved Security and More Use of Keystore
DEV-7935 phixflow-datasource.xml now requires keystore aliases rather than the PhixFlow database credentials.
DEV-5937, DEV-6604 To improve security, any new or reset user passwords and security answers will be one-way encrypted using BCrypt. In addition, the password encryption uses a pepper string. See the special instruction Add a pepper string to the keystore, above, for details of how to set this.
We recommend users reset their passwords and secure answers as soon as possible; see Understanding Password Encryption.
DEV-7797 Changes to the keystore no longer require PhixFlow to restart to take effect. By default PhixFlow rechecks keystore values every 10 seconds.
Other Changes
DEV-7645 From a file exporter or task plan, you can now send HTML emails. Tick Email as HTML and include HTML tags in Message Expression. This means you can format the email text and include links.
DEV-7579 For grid views, you can now use an expression to determine whether or not an attribute's field is displayed: Grid View → Hide if evaluates to True; see Stream View.
DEV-7585 Styles now have a DateTimeFormat, which is applied to grid columns when triggered by a formatting rule; see Style.
Bug Fixes
DEV-7812 In the user group properties → Users section, the list displayed by the Show Users button now includes mixed and external users, not just local users. For information about user types, see the User page.
DEV-7877 When you change a user account from local to mixed, PhixFlow now deletes the security questions and answers, as they are not required. For information about user types, see the User page.
DEV-8030 You can select the text of error messages even when there is a network error.
DEV-7974 On a layout template, using the Display option no longer occasionally displays a white screen.
DEV-8061 When Tomcat is restarted local users will now remain logged in.