Postgres Enterprise Manager 10.3.0 release notes v10.3

Released: 25 November 2025

Important

When upgrading to PEM 10.3 on a RHEL 9 system where the libcurl-minimal package is installed, you must pass the dnf --allow-erasing option.

New features, enhancements, bug fixes, and other changes in Postgres Enterprise Manager 10.3 include the following:

Highlights

  • New Profiles feature to ease the management of probe and alert configuration across many server and agents
  • New options to make it easier to bring your own SSL infrastructure with PEM
  • New built-in alerts for EFM cluster health
  • FIPS-compliant cryptography module
  • Support for Postgres 18

Enhancements

DescriptionAddresses
Added support for PostgreSQL, EDB Postgres Extended Server and EDB Postgres Advanced Server.

These Postgres versions can be monitored, or used as PEM backend servers.

Implemented a comprehensive Profile Management feature for PEM that enables administrators to create, manage, and assign profiles containing predefined probe and alert configurations to multiple agents and servers.

The new Profile Management feature allows users to create, manage, and assign profiles with predefined probe and alert configurations to multiple agents and servers, streamlining monitoring setup.

New granular Postgres roles have been introduced to control user access to various pgAdmin-based tools, including the Query Tool and Schema Diff Tool.

The following new roles have been added:

  • query_tool
  • schema_diff_tool
  • debugger_tool
  • erd_tool
  • grant_wizard
  • backup_tool
  • restore_tool
  • import_export_data_tool
  • search_objects_tool
  • maintenance_tool
Implemented a FIPS-compliant SHA256-based PEM cryptography module for password storage.

Implemented a new cryptographic module using SHA256 for encryption of stored passwords, deprecating the old SHA1-based crypto. New installations of PEM 10.3 will use the new module only. Systems that are upgraded to 10.3 will use the new module to encrypt passwords, and the old module to decrypt existing ones. A future release of PEM will provide a mechanism to migrate existing passwords to the new module.

Added an alert template 'EFM Fewer Than N Nodes Active'.

A new alert template, 'EFM Fewer Than N Nodes Active', has been added to monitor the number of active nodes in an EFM cluster. The new alert template is not set to auto-create, so users should create alerts from them as required. The server replication solution must be set to EFM to use this alert.

Introduced a new API version v15 which supports profile_id assignment in the server and agent endpoints.
Added new options to suppress creation of SSL certificates during PEM configuration and agent registration.

If you are installing PEM in an environment where SSL certificates are provided externally, you can suppress generation of SSL certificates by PEM using these new options when invoking configure_pem_server.sh. The --skip-db-certificate option has the following effects:

  • Prevents the creation of a server certification for Postgres.
  • Disables the check for the sslutils extension and the creation of a CA certificate
  • and Sets -o check_server_certificate_expiry=false and -o skip_db_certificate=true during local agent registration meaning no client certificates will be generated and the certificate renewal system job will be disabled.

The --skip-web-certificate option prevents the creation of a self-signed web server certificate.

The --use-trusted-ssl-db-certificates option is a convenience flag which is equivalent to both --skip-db-certificate and --no-hba-change.

Added Tab preservation for PEM-related Panels.

Tab preservation has been implemented for PEM-related panels, ensuring that your open tabs remain active when navigating or restarting the application.

Implemented Event History Tracking for Manage Profile.

Event History Tracking has been implemented for the Manage Profile feature to track all profile-related changes for audit purposes.

Added role for managing profiles.

A new role, pem_manage_profile, has been added for profile management. This role inherits permissions from pem_probe_config and pem_alert_config.

PEM will now automatically blackout any servers or agents that have not been reachable for 48 hours.

A scheduled job runs hourly to check the server/agent heartbeat against the server_contact_timeout configuration. If unreachable for 48 hours, the object is blacked out; if reachable again, the blackout is undone.

Added built-in alert templates for "EFM Agent Down" and "EFM Missing Primary".

These new alert templates are not set to auto-create, so users should create alerts from them as required. The server replication solution must be set to EFM to use these alerts.

The PEM installer for Windows now integrates sslutils 1.4, which adds support for specifying a certificate expiration period through parameters.
Upgraded Boost package to 1.89 for PEM agent Windows installer.
Upgraded Postgresql server package to 17.6-2 in PEM server Windows installer.
Added contextual logging for jobs.

Contextual logging has been added for PEM agent jobs to provide more detailed and relevant information for troubleshooting in worker.log.

Changes

DescriptionAddresses
Using variable PEM_HOST instead of HOST not to conflict with the environment variable.

The HOST variable used for the PEM DB server host address during PEM installation in web mode has been changed to PEM_HOST to avoid conflicts with existing environment variables.

PEM will no longer create an agent_<id> user when registering an agent with --pem-agent-user specified.

In previous versions, PEM would create a Postgres user for every registered agent, even if an existing user was specified with --pem-agent-user. This is no longer the case in PEM 10.3. A Postgres user will only be created if it is not specified.

43623
The Performance Diagnostic selection bar is now set to full width by default.

In Performance Diagnostic, the purple selection bar now defaults to full width to ensure the query list is populated immediately, improving usability.

PEM now enables Barman probes by default.

In previous versions, the Barman probes were disabled by default and had to be enabled before any data would be collected from registered by any instances. Since the Barman probes do nothing when there are no Barman instances, and are essential for all Barman functionality, we now enable them by default when PEM is configured.

The SNMP++ library has been upgraded to version 3.6.3 from the previous 3.6.0.
The 'System Wait' and 'Session Wait' dashboard options are hidden when monitoring PostgreSQL and EDB Postgres Advanced Server (EPAS) versions 18 and above.
Upgraded MUI v5 to v7.

Bug Fixes

DescriptionAddresses
Fixed an issue where the configure-pem-server.sh script would overwrite the pg_hba.conf file, even when --no-hba-change was specified.

Resolved an issue where the configure-pem-server.sh script would overwrite the pg_hba.conf file, even when --no-hba-change was specified, due to an overly strict regular expression for checking existing HBA entries.

54064
Fixed an issue whereby the PEM agent was not able to send email if libcurl-minimal is installed on RHEL 9.

The PEM Agent requires the libcurl package in order to send SMTP to a mail server. We found that the package-level requirement for libcurl was met by a package libcurl-minimal, frequently found in RHEL 9 builds. However this package does not provide the libraries needed for SMTP, so PEM 10.3 now depends on libcurl-full. When installing PEM 10.3 packages on a system with libcurl-full you must pass the --allow-erasing option to allow dnf to remove libcurl-minimal.

Fixed failover detection logic for Patroni and EFM clusters by replacing server ID-based filtering with cluster name-based filtering and adding a 30-second time window around demotion events to find matching promotions.52030
Added PEM configuration flag --asb-host-name to specify the ASB host address of monitored server

A new PEM configuration flag, --asb-host-name, has been added to explicitly specify the host address for the monitored server's ASB, resolving an issue where multi-host strings were incorrectly used for the ASB host.

Fixed an issue where downloading charts would only produce a JPEG file, regardless of the user's selected download format.
Resolved an error that occurred when attempting to download the complete trace from the SQL Profiler.
Fixed UI validations for alerts and probes.

Added missing UI validation in Manage Alerts and Probe Configurations, resolving issues such as the lack of warning on the frontend when the alert interval was set to 0 minutes.

Fixed UI issues on the Two-Factor Authentication (2FA) page, addressing problems where the Continue button was enabled without input, and the Cancel button was attempting to submit the form.
Modified the column type for pem.event_history which was restricting the string to 255 characters.

The column types for user_name, component, operation, message, and details in the pem.event_history table have been modified from character varying(255) to TEXTto remove string length restrictions, resolving `value too long" errors.

51009
Fixed an issue where pie charts displayed without data did not show an empty data message. The API now returns an empty series when all data values are zero.
Fixed styling issues affecting the buttons in the header of the Audit, Server, and Probe Log Viewer.
Removed incorrect reference to column connect_timeout while calling pem.server_options function.52290
The Barman candle chart now correctly handles and plots in-progress backups (e.g., 'syncing', 'started', and 'waiting for WALS')
Barman chart is now compatible with dynamic devicePixelRatio.

The Barman chart rendering has been updated to be compatible with dynamic changes to the devicePixelRatio, resolving issues where chart candles were not visible at certain browser resolutions.

Fixed the bdr_conflict_history_summary probe to explicitly cast the conflict_recorded value as bigint, resolving probe failures caused by decimal places in the value. as bigint.
A check has been added to the Manage Probes UI to prevent users from disabling system probes that have the force_enabled flag set to true.
Fixed an issue where tooltips in the Barman chart were not showing correct data, particularly when backup data included in-progress statuses.
Fixed a bug in the Log/Audit Manager where selecting a root node would select all children nodes, even those disabled for selection. all children nodes even if they are disabled.
Fixed an issue where timezone changes in the job scheduler's 'Schedule' tab were not persisting due to a missing condition in the job schedule macro.45933
Fixed the size of the preview image displayed under the Theme selection in File > Preferences > Miscellaneous > User Interface, which was previously enlarged.
Updated log manager component to handle server versions correctly.

The log manager component has been updated to correctly support and handle log configurations for EPAS/PG/PGE 18 and above.

Fixed the issue string indices must be integers when attempting to generate an 'Alert History Report'.53493
Fixed an issue with datetime formatting in Performance Diagnostic charts, resolving the omission of leading zeros on the x-axis (e.g., 4:4:0 instead of 04:04:00)
Fixed a UI misalignment issue affecting the Search Box and Delete buttons in the Processes tab button.
Fixed an issue where email data was not saved for the default email group.

Resolved an issue where email notification data was not being saved when the 'Default Email group' was selected for low, high, or medium alert notifications. The backend now correctly defaults to the default email group when no selection is sent.

53339
Fixed an issue where Apache HTTPD's TRACE/TRACK methods were not properly disabled for the HTTPS virtual host

Rewrite rules have been moved to edb-ssl-pem.conf to ensure these methods return a 403 Forbidden response.

53214, 54529
Fixed a bug where attempting to open dashboards from the context menu (e.g., by right-clicking a server or database) would fail.
Fixed an issue causing some Pie Charts in the Dashboard to fail with an Invalid literal for int() with base 10" error.
Fixed errors that occurred when editing server connection parameters from a user different than the server owner, ensuring that the server properties update and get APIs handle these scenarios correctly.
Fixed an issue whereby the unregister-agent command did not accept comma-separated lists of hosts or ports

The unregister-agent command has been fixed to correctly accept comma-separated lists of hosts or ports, resolving a previous limitation where it only expected a single integer for pem_port.

Fixed an issue whereby Replication Solution could not be set while registering a server using pemworker.

The pemworker registration process for servers now correctly includes the Replication Solution and its corresponding options.

Fixed an error that occurred when non-superadmin users attempted to access the Query Tool due to incorrect handling of server options for non-superadmin users.
Fixed an issue where an inappropriate web server address when specify --host with multiple hosts during configuring PEM

Fixed the issue where an inappropriate web server address was displayed at the end of configure_pem_server.sh output when --host was specified with multiple hosts.

Fixed an SQL issue in pem.process_one_alert() function.

Explicitly provided column information when inserting a row into the pem.alert_status table from the pem.process_one_alert() function, resolving an exception (like ERROR: column "state_change_count" is of type integer but expression is of type interval) that occurred after upgrading.

Fixed an error where agents were not listed correctly when a server was registered into a new server group.
Fixed an issue where the Connection Manager was not fetching the server connection parameters according to the permissions of the logged-in user.
Fixed get_server.sql which was returning multiple entries if the user detail was not present in the server_options table, ensuring a single entry is returned as expected.