Skip to main content
Version: Unreleased

Upgrade Guide

info

This guide documents breaking changes and migration steps for upgrading the FRAFOS Monitor.

We document all known breaking changes. Some, however, occur in less commonly used areas of the software, so only a subset may affect your deployment. Reviewing this guide carefully will help ensure a smooth upgrade.

Upgrading to Version 10.2

1. Data Volume Permissions

Impact: High

Description

If your deployment mounts an existing /data volume into the Monitor container, you may encounter permission errors when the container attempts to create directories or write data.

This issue occurs because earlier versions of Monitor ran their processes under different users — root, mokis, elasticsearch, or sbcsync — meaning that files on the mounted volume may be owned by various user accounts. Starting with version 10.2, the container now runs as a non-root user (node, UID 1000), which no longer has permission to modify those existing files or create new ones on the same volume.

Solution

To determine if your mounted volume has the correct permissions, execute the following command:

ls -la /path/to/mounted-data/

This will display the current ownership and permission settings of the directory.

For example, the original Monitor 5.3 directory structure:

(mon) / # ls -la /data
total 36
drwxr-xr-x 9 root root 4096 Oct 22 15:28 .
dr-xr-xr-x 1 root root 4096 Oct 22 15:40 ..
drwxrwxr-x 4 mokis mokis 4096 Nov 4 09:46 abc-monitor
drwxr-xr-x 2 elasticsearch elasticsearch 4096 Oct 22 15:28 elasticsearch
drwxr-xr-x 2 root root 4096 Oct 1 08:32 interfaces.d
drwxr-xr-x 2 root root 4096 Oct 22 15:28 local-templates
drwxr-xr-x 2 root root 4096 Oct 22 15:28 prompts
drwxr-xr-x 4 sbcsync sbcsync 4096 Oct 22 15:28 sbcsync
drwxr-xr-x 2 root root 4096 Oct 22 15:28 siprec_templates

Method 1 (Preferred): Mount the directory using the :U option.
This tells Podman to automatically adjust the ownership of the mounted directory so it matches the container’s user namespace.

-v /path/to/mounted-data:/data:U

Method 2: Manually change the ownership of the directory to match the user running inside the container.

chown -R 1000 /path/to/mounted-data/

This command recursively changes the ownership (both user and group) of all files and directories to UID and GID 1000, which corresponds to the default node user in the Monitor container.

warning

Both methods can be slow on large directory trees, as they must update the ownership of every file recursively.


2. Static PDF Reports Removed — Replaced by Auto Trigger Dashboard

Impact: Medium

Description

The built-in static PDF reports has been removed in version 10.2. This configurations allowed scheduling daily, weekly, and monthly PDF snapshots of the overview dashboard via the Monitor page, delivered to configured notification channels through a headless Chrome container.

The following Settings no longer exist:

SettingPurpose in 10.1
Enable receiving PDF reportsToggle for enabling the static PDF reports
Headless Chrome URL for PDF reportsURL of the headless Chrome container
Report daily - channelsChannels to deliver the daily report
Report weekly - channelsChannels to deliver the weekly report
Report monthly - channelsChannels to deliver the monthly report

These settings are automatically removed from the database during upgrade. If you had report channels configured, those scheduled jobs will no longer run after upgrading. No data is lost — your notification channels remain intact and can be reused in Auto Trigger.

Why it was removed

The old reports had several hard limitations: report content was fixed to the overview dashboard, there was no control over what data was included, no execution history, no way to share or export job configurations, and no support for output formats other than PDF. Auto Trigger replaces all of this with a fully configurable job scheduler.

What replaces it

Auto Trigger is the new system for scheduled report delivery. It provides:

  • Custom data selection — define any Elasticsearch query as the data source
  • Multiple output formats — PDF, HTML, JSON, CSV
  • Flexible scheduling — any cron expression, not just daily/weekly/monthly
  • Execution history — every run logged with status, timestamp, and downloadable file references
  • Import/export — job definitions are portable JSON files
  • Multiple charts per report — automatic chart type inference or explicit configuration

Migration steps

Scheduled report jobs cannot be migrated automatically because the old report system used a fixed internal dashboard query with no user-defined data selection.

To ease the transition, three starter jobs are pre-created automatically during upgrade and are available immediately in the Auto Trigger dashboard:

JobSchedule
Daily ReportEvery day at 6 AM (0 6 * * *)
Weekly ReportEvery Monday at 6 AM (0 6 * * 1)
Monthly Report1st of every month at 6 AM (0 6 1 * *)

These jobs come with a basic call events query pre-configured and output set to JSON. They are enabled by default.

To activate and customize your reports:

  1. Open the Auto Trigger dashboard from the left navigation.
  2. Create new entry or update the exiting by default created ones.
  3. Update the data.selection queries to match the data you need.
  4. Set formatChannel to your preferred output format — toPdf, toHtml, toCsv, or toJson. See the Report Generation guide.
  5. Add your channel IDs to the transport array to restore delivery to your existing notification channels.
  6. Click Save, then Run Now to validate the output before the first scheduled run.