This page in other versions: Development

Navigation

Warning: This documentation is for a pre-release version of pgAdmin 4

Contents

Version 9.17

Release date: 2026-07-30

This release contains a number of bug fixes and new features since the release of pgAdmin 4 v9.16.

Supported Database Servers

PostgreSQL: 14, 15, 16, 17 and 18

EDB Advanced Server: 14, 15, 16, 17 and 18

Bundled PostgreSQL Utilities

psql, pg_dump, pg_dumpall, pg_restore: 18.4

New features

Issue #9990 - Include the authenticated user’s identity in the HTTP access log.
Issue #9942 - Add an opt-in Gateway API HTTPRoute template to the Helm chart as an alternative to the existing Ingress.
Issue #10104 - Add a preference to cap the row count fetched by the plain “View Data” action, so it is usable on large tables without always doing a full SELECT *.
Issue #10142 - Add support for a custom XYZ tile provider (URL, name, CRS, attribution, max zoom) in the Geometry Viewer, alongside the existing built-in base layers.

Housekeeping

Issue #10077 - Centralize shared-server-group visibility and access-control logic, and adjust the ServerGroup-to-Server/SharedServer model relationships.
Issue #10093 - Add a basic starter contributing guide.
Issue #10135 - Fail the macOS appbundle build if any bundled library links outside the bundle, and scan all Mach-O binaries for bundle linkage rather than only files named .so/.dylib.
Issue #10154 - Pin the sonarqube-scan-action GitHub workflow to a full commit SHA instead of a mutable branch ref, to harden against supply-chain tampering.
Issue #10138 - Update the Simplified Chinese (zh_Hans_CN) translation to match the wording used in the interface.
Issue #10156 - Pin the Yarn version used by the build scripts to the packageManager field, rather than whatever Yarn happens to be on the builder’s PATH.
Issue #10176 - Bump JavaScript and Python third-party dependencies, including axios, webpack, react, electron, and certifi.

Bug fixes

Issue #10053 - Warn when OAuth2 provider settings are misplaced at the top level of the config instead of under OAUTH2_CONFIG.
Issue #10100 - Fix Schema Diff’s “Generate Script” and the browser tree’s CREATE Script view emitting wrong SQL for SERIAL/identity columns, by detecting column-owned sequences via pg_depend instead of guessing the sequence name.
Issue #10102 - Fix a Schema Diff result-status filter chip showing “No difference found” after being toggled off and back on, even when real differences exist.
Issue #10106 - Fix the Object Explorer briefly showing the literal HTML markup instead of a greyed-out “[Disconnecting…]” label when disconnecting a server or database.
Issue #10107 - Detect a selected-but-unusable OS keyring and fall back gracefully instead of failing.
Issue #10109 - Fix ALT+F5 (“Execute query at cursor”) doing nothing when the cursor is on or near a statement that is not highlighted, in a Query Tool tab with multiple statements separated by blank lines.
Issue #10110 - Stop the googleapiclient cloud-deployment dependency from pulling in the system oauth2client package.
Issue #10117 - Fix a “‘Response’ object is not iterable” crash when expanding a Trigger node under a Table to view its trigger function, and report the correct error message on a node.sql failure in that flow.
Issue #10158 - Honor the selected EOL sequence when copying query text to the clipboard.
Issue #10187 - Fix the object browser’s extension UI breaking under PostgreSQL 19’s extension catalog changes.

Additional changes (no associated issue)

Dependencies

Non-breaking dependabot and audit-driven bumps aggregated for v9.17.

Python:

certifi 2026.5.20 -> 2026.6.17

JavaScript (web/):

@babel/core 7.29.0 -> 7.29.6
@date-io/date-fns 3.x -> 3.2.1
@szhsin/react-menu 4.5.1 -> 4.5.2
@tanstack/react-query 5.100.9 -> 5.101.4
@types/react 19.2.14 -> 19.2.17
ajv 8.18.0 -> 8.20.0
anti-trojan-source 1.8.1 -> 1.12.0
autoprefixer 10.5.0 -> 10.5.4
axios 1.16.0 -> 1.18.1
core-js added as an explicit direct dependency (3.49.0), previously relied on transitively via pickr
date-fns 4.1.0 -> 4.4.0
dompurify 3.4.1 -> 3.4.12
eslint-plugin-jest 29.15.2 -> 29.15.5
globals 17.5.0 -> 17.7.0
hotkeys-js 4.0.3 -> 4.0.4
html-to-image 1.11.11 -> 1.11.13
ip-address 10.1.1 -> 10.2.0
jest / jest-environment-jsdom 30.3.0 -> 30.4.2 / 30.4.1
marked 18.0.2 -> 18.0.7
moment-timezone 0.6.2 -> 0.6.3
papaparse 5.5.3 -> 5.5.4
postcss 8.5.10/8.5.14 -> 8.5.20
react / react-dom 19.2.5 -> 19.2.7
react-checkbox-tree 2.0.1 -> 2.0.2
react-draggable 4.5.0 -> 4.7.0
react-timer-hook 4.0.5 -> 4.0.6
sharp 0.34.4 -> 0.35.3
sql-formatter 15.7.3 -> 15.8.2
svgo 4.0.1 -> 4.0.2
terser-webpack-plugin 5.5.0 -> 5.6.1
typescript-eslint 8.59.0 -> 8.65.0
webpack 5.106.2 -> 5.108.4
webpack-bundle-analyzer 5.3.0 -> 5.3.1
zustand 5.0.12 -> 5.0.14
Transitive advisory bumps: brace-expansion, form-data, undici, js-yaml
Reverted azure-mgmt-resource to avoid a breaking import-path change in pgadmin/misc/cloud/azure

JavaScript (runtime/):

electron 42.3.3 -> 43.1.1
eslint 10.4.1 -> 10.7.0
globals 17.6.0 -> 17.7.0
axios 1.18.0 -> 1.18.1
ip-address 10.1.1 -> 10.2.0
postcss 8.5.10 -> 8.5.20
Pinned packageManager to yarn@4.15.0