Released: 22 June 2026
PEM sizing and scalability
PEM 10.5 includes performance enhancements that have resulted in changes to our sizing guidance. We recommend you review this to ensure your system is right-sized for PEM 10.5
Changes to CLI option parsing
PEM 10.5 features more robust option parsing for the pemworker CLI and for the configure_pem_server.sh.
Some combinations of options that were previously accepted may no longer be accepted, so please review any scripts or automations that use these CLIs when upgrading.
New features, enhancements, bug fixes, and other changes in Postgres Enterprise Manager 10.5.0 include the following:
Highlights
- Improved UX for assigning and creating profiles
- Multiple enhancements to the new reporting capabilities including the ability to run custom reports against the PEM server itself
- Significantly improved alert evaluation performance, particularly in systems with more than one alert thread
Enhancements
| Description | Addresses |
|---|---|
Introduced a Server Downtime Report tracking availability with planned versus unplanned downtime classification.Introduced a Server Downtime Report that tracks server availability by monitoring heartbeat gaps, providing uptime/downtime analysis with planned versus unplanned downtime classification using blackout periods. | |
Added probe data and history REST API endpoints (v17) for multiple objects per call.Added probe data and history REST API endpoints (v17) that expose monitoring data from the | |
Introduced Cluster Topology Discovery and Visualization with interactive SVG diagrams for replication clusters.Introduced Cluster Topology Discovery and Visualization, which automatically discovers PostgreSQL replication clusters (physical streaming replication, Patroni, PGD, EFM) and renders interactive SVG topology diagrams in the PEM browser tree, with support for cascading replication, lag display, and role badges. | |
Added a Profile Assignments page to view and change profile assignments inline or in bulk.Added a new Profile Assignments page (Management > Monitoring > Profile Assignments) that displays all servers and agents in a tree view grouped by server group and cluster, allowing authorized users to view and change profile assignments inline or in bulk via multi-select. | |
Implemented team-based RBAC filtering for report templates with row-level security policies.Implemented team-based RBAC filtering for report templates, allowing administrators to designate reports as PEM-only (running on the PEM database) with row-level security policies that enforce team-based visibility. | |
Added repeating section support to report templates, iterating over group query rows.Added repeating section support to report templates, enabling report sections to iterate over rows from a group query with per-row parameter substitution to produce structured multi-instance output within a single section. | |
Added profile import/export endpoints for replicating monitoring profiles across PEM installations.Added profile import/export endpoints that enable users to export monitoring profiles as JSON files and import them into other PEM installations for easy configuration replication across environments. | |
Added the ability to clone an existing profile via the Add Profile dialog.Added the ability to clone an existing profile via the Add Profile dialog, allowing administrators to create new profiles based on existing configurations without manual reconfiguration. | |
Added application-layer authorization gates requiring management roles for PEM REST API write endpoints.Added application-layer authorization gates for PEM REST API write endpoints, requiring callers to hold the relevant PEM management role (for example, asset management or alert management) for write operations. | |
Introduced search-by-name capability for monitored objects in REST API v17.Introduced search-by-name capability for API v17, enabling users to search for monitored objects (agents, servers, databases) by name through the REST API. | |
Added | |
Added multi-server and multi-agent selection to the Alert History Report modal.Added support for selecting multiple servers and agents in the Alert History Report modal, enabling users to generate reports spanning multiple monitored targets in a single execution. | 57611 |
Added database name display to the report history table and executed report header.Added database name display to the report history table and executed report header, giving users clear context about which database a report was executed against. | |
Added the | |
Re-introduced the "Show Acknowledged Alerts" setting on the alert dashboard.Re-introduced the "Show Acknowledged Alerts" setting on the alert dashboard, allowing users to toggle visibility of acknowledged alerts in the monitoring view. | |
Added a navigation link from Manage Profiles to Profile Assignments.Added a navigation link from Manage Profiles to Profile Assignments, improving workflow efficiency when administrators need to switch between profile configuration and assignment tasks. | |
Added webhook test connection support with OAuth2 authentication.Added webhook test connection support with OAuth2 authentication, enabling users to verify webhook endpoint connectivity when OAuth2 credentials are configured. | |
Added configuration options to specify the TLS version for agent WebClient operations.Added configuration options to specify the TLS version for different WebClient operations in the agent, allowing administrators to enforce specific TLS versions for enhanced security compliance. | |
Re-introduced the | |
Batched | 59499 |
Optimized | |
Optimized the purge job by combining age-based and obsolete-object purging into one function.Optimized the purge job by combining age-based and obsolete-object purging into a single function, reducing the number of database scans required for data cleanup. | 56990 |
Security Fixes
| Description | Addresses |
|---|---|
Fixed a SQL injection vulnerability (CVE-2026-7815) in the Maintenance Tool options.Fixed a SQL injection vulnerability (CVE-2026-7815) in the Maintenance Tool options, where unsafe values for | |
Fixed an OS command injection vulnerability (CVE-2026-7816) in the Import/Export query export.Fixed an OS command injection vulnerability (CVE-2026-7816) in the Import/Export query export, via unsanitized query content and format options passed to the | |
Fixed a pickle deserialization RCE vulnerability (CVE-2026-7818) in the session manager.Fixed a pickle deserialization remote code execution vulnerability (CVE-2026-7818) in the session manager, where a crafted session file could execute arbitrary code under the PEM process; session files are now HMAC-verified with | |
Fixed a symlink path traversal vulnerability (CVE-2026-7819) in the File Manager.Fixed a symlink path traversal vulnerability (CVE-2026-7819) in the File Manager that allowed an authenticated user to write files outside their storage directory; | |
Fixed a SQL injection vulnerability (CVE-2026-12044) in dialog COMMENT statements and pgstattuple.Fixed a SQL injection vulnerability (CVE-2026-12044) across dialog templates that rendered | |
Fixed an AI Assistant read-only transaction bypass vulnerability (CVE-2026-12045) enabling arbitrary SQL execution.Fixed an AI Assistant read-only transaction bypass vulnerability (CVE-2026-12045) that allowed prompt-injected multi-statement payloads to commit out of the | |
Fixed two SQL Editor endpoints missing authentication (CVE-2026-12046) that exposed a deserialization sink.Fixed two SQL Editor endpoints ( | |
Fixed a stored XSS vulnerability (CVE-2026-12048) via server error text and Explain content.Fixed a stored cross-site scripting vulnerability (CVE-2026-12048) via PostgreSQL server error text and Explain plan-node content passed through | |
Fixed a SQL injection vulnerability (CVE-2026-12050) in the named restore point endpoint.Fixed a SQL injection vulnerability (CVE-2026-12050) in the named restore point endpoint, where the user-supplied restore point name was interpolated into SQL via | |
Fixed a stored XSS vulnerability (CVE-2026-7814) via | |
Fixed an account lockout bypass vulnerability (CVE-2026-7820) via the Flask-Security | |
Fixed an HTML injection vulnerability (CVE-2026-12047) in the cloud deployment module.Fixed an HTML injection vulnerability (CVE-2026-12047) in the cloud deployment module (RDS, Azure, Google), where SDK exception text was forwarded to the browser unsanitized and rendered through | |
Fixed an open redirect vulnerability (CVE-2026-12049) in the multi-factor authentication flow.Fixed an open redirect vulnerability (CVE-2026-12049) in the multi-factor authentication flow, via an unvalidated 'next' parameter that allowed a crafted link to redirect an authenticated victim to an attacker-controlled host. Reported by Mai Phạm Hiền. | |
Updated dompurify to 3.4.8 to fix BDSA-2026-13267.Updated dompurify to 3.4.8 to fix BDSA-2026-13267. | |
Upgraded HTTPD to version 2.4.67 for the PEM server installer.Upgraded HTTPD to version 2.4.67 for the PEM server installer, incorporating the latest security fixes and stability improvements. | |
Upgraded bundled PostgreSQL to version 17.10-1 for the PEM server installer on Windows.Upgraded bundled PostgreSQL to version 17.10-1 for the PEM server installer on Windows, incorporating the latest security fixes and stability improvements. | |
Closed 18 Dependabot security alerts with minimal pgAdmin-origin code churn.Closed 18 Dependabot security alerts with minimal pgAdmin-origin code churn. |
Changes
| Description | Addresses |
|---|---|
Reworked alert blackouts into first-class PEM objects with REST API v17 and server-side processing.Reworked alert blackouts from job-based artifacts into first-class PEM objects with a normalized schema, REST API v17 endpoints, an audit trail, a manual enable/disable toggle, and a server-side | |
Migrated the Core Usage Report to the custom report template framework.Migrated the Core Usage Report to the custom report template framework, enabling scheduled execution, API access, and consistent management alongside other custom reports. | |
Migrated the System Configuration Report to the custom report template framework.Migrated the System Configuration Report to the custom report template framework, consolidating all system reports under the unified template-based architecture. | |
Refactored alert dispatch into a queue-driven model enabling concurrent workers without contention.Refactored alert dispatch from per-cycle template scanning into a queue-driven model using | |
Refreshed the | |
Upgraded SNMP++ to version 3.6.6 with upstream bug fixes and improvements.Upgraded SNMP++ to version 3.6.6, incorporating upstream bug fixes and improvements to the SNMP notification subsystem. | |
Hardened agent connection, spooler, and async-query paths to eliminate hangs and silent failures.Hardened the agent connection, spooler, and async-query paths to eliminate hangs, poisoned-row loops, and silent failure modes, with | |
Increased the default | |
Modernized the command-line argument parsing framework for | |
Updated copyright notices to 2026 across the PEM source files.Updated copyright notices to 2026 across the PEM source files. | |
Merged the pgAdmin 9.13 codebase into PEM, bringing the latest features and fixes.Merged the pgAdmin 9.13 codebase into PEM, bringing the latest pgAdmin features, bug fixes, and improvements to the PEM user interface and core functionality. | |
Updated Django (webhook_mtls_app) to 4.2.26 LTS.Updated Django (webhook_mtls_app) to 4.2.26 LTS. | |
Updated urllib3 to 2.7.0.Updated urllib3 to 2.7.0. | |
Updated axios to 1.18.0.Updated axios to 1.18.0. | |
Updated React to 19.2.6.Updated React to 19.2.6. | |
Updated qs to 6.15.2.Updated qs to 6.15.2. | |
Updated lodash to 4.18.1.Updated lodash to 4.18.1. | |
Updated postcss to 8.5.15.Updated postcss to 8.5.15. | |
Updated Authlib to 1.6.12.Updated Authlib to 1.6.12. | |
Updated follow-redirects to 1.16.0.Updated follow-redirects to 1.16.0. | |
Updated form-data to 4.0.6.Updated form-data to 4.0.6. |
Bug Fixes
| Description | Addresses |
|---|---|
Fixed the agent using stale cached credentials after rotation by invalidating the ASB cache.Fixed an issue whereby the agent's Agent Server Binding (ASB) cache was not invalidated when a monitored server connection failed because of invalid credentials, causing the agent to continue using stale cached passwords after credential rotation; the agent now evicts the ASB cache and clears pooler credentials on connection failure, and refuses to fall back to cached plaintext when | |
Fixed | |
Fixed a syntax error when editing alert parameter values in the Manage Alerts panel.Fixed a syntax error that occurred when editing parameter values for alerts from the Manage Alerts panel. | 59918 |
Fixed a typo in | |
Fixed global-agent server-level alerts being silently filtered out of the alert queue.Fixed an issue whereby global-agent server-specific alerts ( | |
Fixed a copy alerts crash and a 10.3.1-to-10.4.1 upgrade failure from double-encoded | 61992 |
Fixed server filtering in the Barman dashboard's candle chart.Fixed an issue whereby it was not possible to filter by server in the Barman dashboard's candle chart, restoring server-level filtering. | 60789 |
Fixed a duplicate function entry in | |
Aligned | |
Fixed the Performance Diagnostic tool's recovery from disconnected server states and header layout.Fixed an issue whereby the Performance Diagnostic tool did not recover gracefully from disconnected server states, and corrected the responsive header layout. | 60789 |
Fixed dashboard charts not refreshing when navigating contexts via breadcrumb navigation.Fixed an issue whereby dashboard charts did not refresh when navigating between contexts via the breadcrumb navigation. | 60091, 61637 |
Fixed workspace ad-hoc database connections failing from the query tool due to model misuse.Fixed an issue whereby workspace ad-hoc database connections did not use the PEM Server model correctly, which caused connection failures from the query tool. | |
Fixed the chart color settings API reading the transaction ID from the wrong source.Fixed an issue whereby the chart color settings API failed because the transaction ID was read from the prop instead of from dashboard state. | |
Granted | |
Fixed the unqualified | |
Fixed PEM agent.log output missing newline characters that ran log entries together.Fixed an issue whereby PEM agent.log output was missing newline characters, causing log entries to run together and making log analysis difficult. | 60923 |
Eliminated spurious warning messages when registering a new agent.Eliminated spurious warning messages displayed when registering a new agent, reducing noise in the registration workflow. | |
Added an in-process retry queue for probe and job unlock operations after transient connection loss.Added an in-process retry queue for probe and job unlock operations that fail because of transient PEM connection loss, preventing probes from remaining stuck in flight until the next worker restart. | |
Fixed the | |
Fixed API documentation and validation for the | |
Fixed | |
Fixed PEM upgrade to error out when an upgrade script fails, preventing partial upgrades.Fixed PEM upgrade so that it now errors out when an upgrade script fails, preventing silent partial upgrades that leave the system in an inconsistent state. | |
Fixed Nginx to pass the real hostname and HTTPS scheme through to the application.Fixed the Nginx configuration so that the real hostname and HTTPS scheme are passed through to the uWSGI/Flask application, resolving issues with URL generation and redirect handling behind the reverse proxy. | |
Fixed the PEM database connection pool to heal after a backend restart.Fixed the PEM database connection pool so that it heals after a backend restart, preventing | |
Fixed Performance Diagnostic charts to backfill empty timeline buckets for continuous rendering.Fixed Performance Diagnostic charts so that empty timeline buckets are backfilled, ensuring continuous chart rendering even when some time periods have no data. | |
Hardened the probe REST API and fixed the Create Profile dialog's duplicate-name validation error.Hardened the probe REST API (blocking SQL edits on system probes, rejecting duplicate | |
Fixed "Show acknowledged alerts" not restoring alerts in the Alert Details chart.Fixed an issue whereby toggling "Show acknowledged alerts" back to enabled would not restore alerts in the Alert Details chart after all alerts had been acknowledged, because the error state was not cleared when data returned successfully. | |
Fixed WCAG 2.0 AA contrast issues across the dark, light, and high-contrast themes.Fixed WCAG 2.0 AA contrast issues across the dark, light, and high-contrast themes, improving accessibility for users with visual impairments. | |
Fixed editing a custom batch probe's platform not updating the database platform column.Fixed an issue whereby editing a custom batch probe's platform (for example, changing from *nix to Windows) did not update the platform column in the database, causing the probe not to appear in | |
Fixed | |
Fixed |