Appearance
Configuration Changes
This page provides you with instructions on version-specific configuration changes that you need to implement when updating your UPPS!E version from a prior release. If you are skipping versions, ensure that all configuration changes of each intermediate version was also performed.
Version 1.11.0
Supports Polarion 2410
UPPS!E now supports Polarion 2410.
Required polarion.properties changes
Add following configuration to your polarion.properties file if you use Polarion 2410:
ini
# Enable limited sql commands which are by default disabled in Polarion 2410 and are required by the UPPS! Extensions.
com.polarion.platform.sql.restrictedQueryCommandsLevel=NONESALT licensing support
UPPS!E now includes support for Polarion installations that are licensed with SALT. Be aware that due to technical challenges, the Grace Period granted by UPPS!E licenses is not supported with SALT licenses. Grace period is a timeframe where an UPPS!E license is still considered valid for 30 days. The grace period starts from the date where the license factor of a Polarion license is not covered by the license factor granted by the UPPS!E license. This usually occurs if Polarion is (re-)activated using a Polarion license with a higher license factor.
Version 1.10.1
Support dropped for Polarion releases older than 2304
Due to the changed Polarion development baseline for UPPS!E, only Polarion releases 2304 to 2404 are supported.
Intelligent Navigator feature "Navigation Optimizer" now experimental
Due to technical challenges in Polarion as well as the different browser behaviors, the Navigation Optimizer feature is now in experimental state. This leads to following user-observable changes:
- The UPPS!E IN user configuration option
Enable Navigation Optimizeris disabled by default for new users. - If a user made changes to the user configuration in earlier releases and the
Navigation Optimizerfeature was enabled, it will stay enabled for that user. - Information about the experimental state of this feature has been added to the the UPPS!E IN user configuration menu.
Version 1.8.1
License Monitor configuration changes
Configurations related to the UPPS!E feature License Monitor were changed to implement the ability to show peak stats of concurrent licenses as well as to improve performance and security. If you deployed the License Monitor using the configuration from a previous release, then you need to follow the instructions of all following four sections.
Make a backup!
Before implementing any of the following configuration changes, create a backup of your database volume as the database table structure will be updated.
How to create database backup
- Using the cli, change into the directory where the
docker-compose.ymlfile of your deployed directus is located. - Stop the containers via
docker compose stop(docker compose v2) ordocker-compose stop(docker compose v1). - Create a copy of the
datadirectory. - You may start the containers with
docker compose startordocker-compose start.
You can then simply restore the backup by stopping the containers and swap the data with your backup.
1. Update docker compose configuration
This release ships with an updated docker compose configuration implementing the following:
- Make the PostgreSQL container accessible to Polarion.
- Update the directus image version to the newest release,
10.8.2. - Make the port-forwarding configuration more secure by only allowing access from
localhost. - Remove unnecessary volumes configuration as file uploads with directus are not in use by UPPS!E.
- Add a default
PUBLIC_URLvalue to suppress a warning message in the directus logs. - Rename environment variable from
CACHE_REDIStoREDISdue to directus version update.
Implement the changes as follows in your docker-compose.yml file.
Show docker-compose.yml changes
yml
services:
database:
container_name: database
image: 'postgis/postgis:13-master'
ports:
- '127.0.0.1:5431:5432'
...
directus:
container_name: directus
image: directus/directus:9
image: directus/directus:10.8.2
ports:
- '8055:8055'
- '127.0.0.1:8055:8055'
volumes:
- './uploads:/directus/uploads'
environment:
PUBLIC_URL: 'http://localhost:8055'
TZ: ${TIMEZONE}
...
CACHE_REDIS: 'redis://cache:6379'
REDIS: 'redis://cache:6379'If you deploy your containers with different host/port configurations, adapt accordingly.
In the cli, change into the directory of your compose file and recreate the containers via
sh
docker compose down
docker compose up -dsh
docker-compose down
docker-compose up -d2. Update database table structure
The database table structure will be updated via the directus API and requires a running directus container.
On the host that runs the directus container, create a file add-peak-column.js with following content.
Show add-peak-column.js content
js
/* Adapt according to your configuration */
const HOST = 'http://directus:8055';
const ADMIN_EMAIL = 'admin@directus.local.com';
const ADMIN_PASSWORD = 'your_password_here';
/* Do not change any of the following */
const LOGIN_URL = `${HOST}/auth/login`
const LM_HISTORY_DATA_COLLECTION_URL = `${HOST}/fields/lm_history_data`;
const LOGIN_REQUEST_DATA = { "email": ADMIN_EMAIL, "password": ADMIN_PASSWORD };
const CREATE_LM_HISTORY_DATA_FIELD_REQUEST_DATA = { "field": "peak", "type": "integer" };
async function fetchToken() {
const tokenJsonPayload = await performJsonPost(LOGIN_URL, LOGIN_REQUEST_DATA);
throwOnErrorsResponse(tokenJsonPayload);
return tokenJsonPayload.data.access_token;
}
async function createLmHistoryDataField(token) {
const creationResultJsonPayload = performJsonPost(
LM_HISTORY_DATA_COLLECTION_URL,
CREATE_LM_HISTORY_DATA_FIELD_REQUEST_DATA,
{ 'Authorization': `Bearer ${token}` }
);
throwOnErrorsResponse(creationResultJsonPayload);
}
async function performJsonPost(url, payload, headers = {}) {
const mergedHeaders = Object.assign({ "Content-Type": "application/json" }, headers)
const response = await fetch(url, {
method: 'POST',
headers: mergedHeaders,
body: JSON.stringify(payload)
});
return response.json();
}
function throwOnErrorsResponse(payload) {
if (payload?.errors) {
const allErrorMessages = payload.errors.map(({ message }) => message ).join(",\n");
throw new Error(allErrorMessages);
}
}
async function run() {
try {
const token = await fetchToken();
await createLmHistoryDataField(token);
console.log("Successfully updated lm_history_data table");
} catch(err) {
console.error("Error(s) occurred during update attempt:", err.message);
}
}
run();Change the HOST, ADMIN_EMAIL and ADMIN_PASSWORD values according to your configuration if required. If you used the default provided configuration, the HOST and ADMIN_EMAIL require no change. The initial ADMIN_PASSWORD value is specified in the [DIRECTUS_FOLDER]/.env file.
Then, in the cli, change into the directory where the add-peak-column.js file was created and run following command.
powershell
docker run --rm --network container:directus -v .\add-peak-column.js:/add-peak-column.js node:20-alpine node /add-peak-column.jssh
docker run --rm --network container:directus -v "$(pwd)/add-peak-column.js:/add-peak-column.js" node:20-alpine node /add-peak-column.js3. Update polarion properties configuration
Add following properties to your polarion.properties configuration.
ini
eu.cipalpha.upps.licensemonitor.postgre.host=localhost:5431
eu.cipalpha.upps.licensemonitor.postgre.user=directus
eu.cipalpha.upps.licensemonitor.postgre.pw=sutceridIf you deployed the database container with a different configuration, adapt your configuration accordingly. (Re-)Start Polarion to make the property changes effective.
4. Update license monitor scheduler configuration
The new default license monitor scheduler configuration is to trigger every 5 minutes in order to create a more precise statistical progression of license usage.
xml
<job
cronExpression="0 */20 * * * ?"
cronExpression="0 */5 * * * ?"
disabled="false"
id="upps.license.monitor.job"
name="UPPS!E License Monitor Ticker"
scope="system">
</job>