Skip to content

fix: run patched PostgreSQL 17.12 and track PostgreSQL in Settings › Software - #15993

Merged
atomantic merged 1 commit into
mainfrom
fix/postgres-17-12-tracking
Nov 13, 2026
Merged

atomantic merged 1 commit into
mainfrom
fix/postgres-17-12-tracking

Conversation

@atomantic

Copy link
Copy Markdown
Owner

Summary

PostgreSQL's 2026-11-12 security release (18.7 / 17.12 / 16.16 / 15.20 / 14.25) fixes 52 flaws. The most serious, CVE-2026-6460 (CVSS 8.8), lets a role that can create objects run code as the server's OS user.

  • Docker image: pgvector/pgvector:pg17 is re-pinned to the 17.12 index digest in docker-compose.yml, CI and scripts/lib/dbImage.js. Both arches report PG_VERSION=17.12-1.pgdg12+1, and the digest equals the manifest body's SHA-256.
  • Tracking: a PostgreSQL row in Settings › Software shows the running server's version, the latest patch release of its major line and its end-of-life date, all from postgresql.org/versions.json.
    • A server behind the latest patch shows as update, with the update command for its install: Homebrew, or Docker plus npm run setup:db.
    • A line within a year of end of life shows as attention.
    • A line past end of life shows as security.
    • If the release index can't be read, the row is unknown and still shows the version.
  • Migration planning: a patch release keeps the on-disk format, so it needs no data migration. A new major cannot open an older data directory, so PINNED_DB_MAJOR fixes the Docker image's major. dbImageDigestPin.test.js fails if a digest refresh moves the tag, so a major change must include a dump/restore path for existing volumes. The patch and major update procedures are in docs/STORAGE.md under "PostgreSQL version updates".

Verification

  • A throwaway volume was initialized on the old 17.11 digest with pgvector, a table and a vector row, then started on the new 17.12 digest. The data and the <-> distance query were intact, and composite_type_mismatch=error.
  • The new reader was run against a live 17.12 server: the row reports current, "Supported until 2029-11-08".
  • npm run pregate passes. New tests: postgresRuntime.test.js, plus PostgreSQL row cases in softwareInventory.test.js.

The release's REINDEX advice covers pg_trgm GiST indexes, B-tree indexes on unbounded bpchar columns, and TOAST tables rebuilt with REINDEX CONCURRENTLY. PortOS's schema has none of those indexes and never runs REINDEX.

…s › Software

PostgreSQL's 2026-11-12 release fixes 52 security flaws, including
CVE-2026-6460, which lets a role that can create objects run code as the
server's OS user. The Docker database image moves from 17.11 to the 17.12
pgvector build, on both amd64 and arm64. A volume created on 17.11 opens on
17.12 with its data intact, because a minor release keeps the on-disk format.

Settings › Software now has a PostgreSQL row. It shows the running server's
version beside the latest patch release of its major line, from
postgresql.org's release index. The row flags a server behind the latest
patch and gives the update command for Homebrew or Docker. It warns a year
before the line's end of life and marks a line past end of life as a
security risk.

A new major version cannot open an older data directory. A dependency
refresh that moves the Docker image to a new major now fails
dbImageDigestPin.test.js; that change must include a dump/restore path for
existing volumes. docs/STORAGE.md describes how to apply patch and major
updates.
@atomantic atomantic added the implementer:opus-5-5 PR opened by the opus-5-5 model label Nov 13, 2026
@atomantic
atomantic requested a review from wrenchwren November 13, 2026 19:05

@wrenchwren wrenchwren left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved pending CI

@atomantic
atomantic merged commit f564372 into main Nov 13, 2026
26 checks passed
@atomantic
atomantic deleted the fix/postgres-17-12-tracking branch November 13, 2026 19:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

implementer:opus-5-5 PR opened by the opus-5-5 model

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants