Funded upstream maintenance

pgextwlist Maintenance and Priority Support

Offer CREATE EXTENSION to tenants who must never hold superuser

pgextwlist intercepts CREATE EXTENSION, runs whitelisted extensions under superuser privileges, and drops those privileges before returning control to the caller. It is a small piece of software, and it is load-bearing everywhere it runs: without it, a managed PostgreSQL platform simply cannot offer PostGIS or pgcrypto to its customers.

102GitHub stars PG 10–18supported 3named cloud platforms ship it

What pgextwlist Does for a Multi-Tenant Platform

Controlled privilege elevation for extension management

pgextwlist intercepts CREATE EXTENSION statements and runs whitelisted ones under superuser privileges, dropping those privileges before returning control to the caller — so tenants get the extensions they need without ever holding superuser access.

Why it matters

Superuser is required, but cannot be granted

  • PostgreSQL requires superuser to install most C-coded extensions
  • Cloud tenants cannot be given superuser access
  • Without a solution, extensions like PostGIS or pgcrypto are simply unavailable
  • pgextwlist bridges the gap without compromising database security

Typical use cases

Where pgextwlist fits

  • Managed PostgreSQL offerings (Heroku, Aiven, Zalando Spilo, Azure Database for PostgreSQL)
  • Kubernetes-based Postgres operators
  • Multi-tenant SaaS platforms
  • Private clouds where DBA and tenant roles are separate

Key capabilities

Fine-grained control over extension lifecycle

  • Per-server or per-role whitelist via extwlist.extensions
  • Covers CREATE, DROP, ALTER UPDATE, COMMENT ON EXTENSION
  • Custom SQL scripts run before/after each operation
  • Supports PostgreSQL 10 through 18
  • Packaged for Debian, Ubuntu, and RPM distributions

What’s Being Worked On Right Now

Active maintenance areas

Current work focuses on PostgreSQL major-version compatibility (CI on PG 10–18), custom scripts documentation, and packaging for current Debian and RPM targets.

The full backlog for this project — last release, what has merged since, and the big features queued behind it — is on the roadmap page, kept current rather than summarised here.

Install pgextwlist

Open source and available now

pgextwlist is open source and developed in public. Load it via local_preload_libraries and configure the whitelist with extwlist.extensions.

The README documents extwlist.extensions, the custom pre/post scripts, and packaging.

Fund pgextwlist Maintenance

Keep extension whitelisting current with every PostgreSQL major

Aiven, Zalando (bundled in its Spilo image) and Microsoft Azure Database for PostgreSQL all ship pgextwlist to their own customers. A platform that offers extensions to tenants inherits this code’s compatibility with every new PostgreSQL major; funding its maintenance is how that stays someone’s job.

Work is prioritized through one queue across all four projects, triaged against your tier’s SLA, and shipped in quarterly releases — upstream, open source, for everyone.

Get More Out of the PostgreSQL You Already Run

One learning path, four ways in — from The Art of PostgreSQL

Funded maintenance keeps the tools working. How much you get out of PostgreSQL itself is a different problem — query design, data modelling, and knowing which of its features you are not using. That is what the rest of The Art of PostgreSQL is for.

These aren’t four separate products. They’re one path: start with the book for the foundations, take the course to structure and deepen them, join a masterclass when you want to go further on a specific topic with the author in the room — and license it for the team when it should be everyone’s baseline, not one person’s.