Repository navigation
v0.116-0 (August 20, 2026)
documentdb v0.116-0 (August 20, 2026)
- This release also includes the changes prepared for v0.115-0. The v0.115-0 release itself was skipped.
- Rename the
$sampleEXPLAIN metricSample Heap SkipstoSample Heap Fetches. [Refactor] - Enable pushing suffix sort keys into the accumulator in
$sortGroupwhen group-by keys form a non-dotted prefix of the sort keys by default (enableSortPushToAccumulatorWithPrefix). [Perf] - Fix
$samplesize coercion and validation to be wire protocol compatible. [Bugfix] - Harden feature-flagged RUM empty entry-leaf page pruning (
documentdb_rum.prune_rum_empty_pages): revalidate that the left/right siblings still bracket the target after re-locking (a concurrent left-sibling split could otherwise drop pages from the leaf chain), zero the retained high-key tuple's posting-tree pointer as intended, and acquire posting-tree root cleanup locks conditionally up front instead of blocking while holding sibling/parent/target locks. [Bugfix] - Stream
$groupaggregations under dynamic cursors when the group keys can be provided in order by an index (sorted GroupAggregate over an ordered index scan), instead of falling back to a persistent cursor. Guarded bydocumentdb.enable_group_by_dynamic_streamingfeature flag, enabled by default while pending stabilization. [Perf] - Push safe indexed
$elemMatchconditions into reduced-correlated composite scans and prune cross-element bounds during planning, aligning index costing with execution. Guarded bydocumentdb.enable_composite_reduced_correlated_bounds_planning. [Bugfix/Perf] - Reject parallel arrays on metadata-backed composite indexes by default for compatible compound-index semantics. Guarded by
documentdb.enable_failure_on_parallel_index_arrays_for_metadata_tracking. [Bugfix] - Fix per-path multikey metadata so an array ancestor marks every indexed descendant, including fields absent from the document. [Bugfix]
- Support the
enumkeyword in$jsonSchemavalidators, requiring a value to equal one of the listed allowed values, both at the top level and for individual properties. [Feature] - Support the
oneOfkeyword in$jsonSchemavalidators, matching the documented semantics where a value must validate against exactly one of the listed subschemas, both at the top level and for individual properties. [Feature] - Fix the gateway tearing down warm PostgreSQL connection pools: idle-pool cleanup evicted pools that were still serving requests (the last-used timestamp was written in seconds but compared as nanoseconds), and every authentication rebuilt the user's pool from scratch. A user's pool is now reused across re-authentication while the credential is unchanged, and replaced when it rotates. [Bugfix/Perf]
📦 Packages
This is the first release built on the redesigned Linux packaging system — a multi-package layout with a documentdb-setup wizard and systemd integration, replacing the single per-PostgreSQL-major extension package shipped previously. Paved-road default: Ubuntu 24.04 LTS + PostgreSQL 18.
Install
Recommended — install from the package repository. The apt/dnf repositories are live, so the package manager resolves the dependency graph for you:
sudo apt install documentdb-18 # or: sudo dnf install documentdb-18That single line needs the DocumentDB repository (and PGDG, plus EPEL/CRB on RHEL) configured first. documentdb.io → Linux Packages Quick Start carries the full copy-paste command for every distribution, architecture and PostgreSQL major, and the Package Finder generates it interactively. Those pages are kept current; prefer them over the asset instructions below, which are frozen at this release.
The documentdb meta package is equivalent to documentdb-18.
The rest of this section covers installing from these release assets instead — to pin this exact build, or on a host without repository access.
Truly air-gapped? The release assets alone are not enough: DocumentDB also needs PostgreSQL,
pg_cron,pgvectorand PostGIS from PGDG, which are not published here. See Offline / air-gapped install for staging the full dependency closure on a connected machine and serving it to the target as a local repository — which also restores a single-command install on the target.
1. Prerequisites
Commands are written for a normal host where you use sudo. In a container running as
root, drop the sudo prefix. On a fresh machine run apt-get update (or dnf makecache)
first.
Debian / Ubuntu — enable the PGDG apt repository
documentdb depends on postgresql-18 (and postgresql-18-cron / -pgvector / -postgis-3), which are not in Ubuntu 24.04's default sources.
sudo apt-get update
sudo apt-get install -y curl ca-certificates gnupg lsb-release
sudo install -d /usr/share/postgresql-common/pgdg
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc \
| sudo gpg --dearmor -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.gpg
echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.gpg] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" \
| sudo tee /etc/apt/sources.list.d/pgdg.list
sudo apt-get updateRHEL / Rocky / AlmaLinux 9 — enable PGDG + EPEL + CRB (#75)
CRB is disabled by default but required: postgis36_N pulls in gdal*-libs, which needs libqhull_r.so.7, and that library ships only in CRB. Without it dnf install fails with a wall of GDAL candidate lines that never name the missing repository.
sudo dnf install -y dnf-plugins-core
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf install -y epel-release
# Rocky Linux / AlmaLinux / CentOS Stream:
sudo dnf config-manager --set-enabled crb
# Subscribed Red Hat Enterprise Linux has no 'crb' repo id. Use instead:
# sudo subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms
sudo dnf -qy module disable postgresqlOn EL8 replace EL-9 with EL-8 in the PGDG URL and use --set-enabled powertools; on arm64 replace x86_64 with aarch64.
2. Download and verify
gh release download v0.116-0 -R documentdb/documentdb -D pkgs && cd pkgs && sha256sum -c SHA256SUMSNeeds the GitHub CLI, authenticated. Without it, download the assets
from the release page above into a pkgs/ directory and run sha256sum -c SHA256SUMS there.
This fetches all 22 packages — every PostgreSQL major, both architectures, DEB and RPM. Install only the subset for your platform, below.
3. Install
The packages depend on each other, and apt/dnf resolve dependencies only from repository indexes — a dependency on a bare local file is unresolvable — so pass the whole set to one command. Installing the meta package alone fails with Depends: documentdb-18 ... but it is not installable. (Installing from the repository above avoids this entirely.)
Ubuntu 24.04 · PostgreSQL 18 · amd64 (for arm64 swap amd64→arm64; for PG 17 swap 18→17):
sudo apt install ./ubuntu24.04-documentdb_0.116.0_all.deb \
./ubuntu24.04-documentdb-18_0.116.0_all.deb \
./ubuntu24.04-documentdb-common_0.116.0_all.deb \
./ubuntu24.04-documentdb-postgresql-tools_0.116.0_all.deb \
./ubuntu24.04-documentdb-gateway_0.116.0_amd64.deb \
./ubuntu24.04-postgresql-18-documentdb_0.116-0_amd64.debRHEL / Rocky / Alma 9 · PostgreSQL 18 · x86_64 (for arm64 swap x86_64→aarch64):
sudo dnf install ./documentdb-0.116.0-1.noarch.rpm \
./documentdb-18-0.116.0-1.noarch.rpm \
./documentdb-common-0.116.0-1.noarch.rpm \
./documentdb-postgresql-tools-0.116.0-1.noarch.rpm \
./documentdb-gateway-0.116.0-1.el9.x86_64.rpm \
./rhel9-postgresql18-documentdb-0.116.0-1.el9.x86_64.rpmThe ubuntu24.04- / rhel9- filename prefixes are not part of the package name. Note the two version grammars: on DEB the extension keeps the control-file form 0.116-0 while every other package uses 0.116.0; on RPM everything is 0.116.0 (the extension's -0 becomes the RPM release field, giving 0.116.0-1).
4. Set up and connect
# Runs initdb / CREATE EXTENSION / admin bootstrap, then starts the gateway and
# enables documentdb-local.target so the stack survives reboot (on hosts with
# systemd; see Day 2 below). Add --admin-password-file <file> (or
# --admin-password-stdin) and --yes for an unattended install.
sudo documentdb-setup --admin-user admin
# Connect. mongosh is not shipped by these packages: https://www.mongodb.com/docs/mongodb-shell/install/
mongosh 'mongodb://admin:<password>@127.0.0.1:10260/mydb?tls=true&tlsAllowInvalidCertificates=true' \
--eval 'db.runCommand({ping: 1})'The wizard runs in greenfield or brownfield mode with backup-and-rollback around every PostgreSQL-side change. Useful flags: --admin-password-file <file> / --admin-password-stdin and --yes for unattended runs, --status, --print-config, --no-enable.
Day 2: sudo systemctl status|restart|stop documentdb-local.target · sudo documentdb-setup --restore detaches the package-managed integration. On hosts without systemd (e.g. containers) the wizard starts the gateway directly instead; re-run documentdb-setup to restart it.
Advanced installs
A — extension only, into a PostgreSQL you manage (SQL access, no wire protocol). Install just postgresql-18-documentdb + documentdb-postgresql-tools, run sudo documentdb-tune --pg-version 18 --cluster main --yes, restart PostgreSQL, then run both CREATE EXTENSION statements it prints — CREATE EXTENSION documentdb CASCADE does not pull in documentdb_extended_rum, and index creation fails without it. For a cluster that does not exist yet on Debian/Ubuntu, sudo documentdb-createcluster 18 <cluster> --start does all of it in one step.
B — extension + packaged gateway over your own PostgreSQL. Workflow A, plus documentdb-gateway and sudo documentdb-register-gateway --target-postgres-instance 18/main --admin-user admin --admin-password-file <file> --yes.
Support
Tier 1 — first-party build, plus an install → documentdb-setup → wire-protocol end-to-end test on every cell: PostgreSQL 17 and 18, on Ubuntu 24.04 (DEB) and RHEL/Rocky 9 (RPM), for amd64 and arm64. Other combinations (PG 15/16, Debian 11/12/13, Ubuntu 22.04, RHEL/Rocky 8) build on demand — PG 15 is extension-only, since documentdb-setup and documentdb-register-gateway require PG 16+. See packaging/README.md and packaging/gateway/packaging-design.md.
⚠️ Pre-GA: in-place package upgrades from earlier releases are not supported yet. Install on a clean host, or remove previous DocumentDB packages first.
