Skip to content

v1.5.2

Choose a tag to compare

@bradleygauthier bradleygauthier released this 09 Apr 02:13
· 6 commits to main since this release

Fix: PostgresBackend SSL default changed to prefer

Problem: PostgresBackend defaulted to ssl=True, which forced SSL negotiation. PostgreSQL servers without TLS certificates (Docker, local dev, private cloud networks) rejected the connection:

PostgreSQL server at "postgres:5432" rejected SSL upgrade

Fix: Default SSL mode changed to "prefer" (try SSL first, fall back to plaintext). This matches the standard libpq default behavior that PostgreSQL users expect.

Migration: No code changes required. Existing ssl=True is normalized to "prefer" (same behavior in SSL-capable environments, now also works without SSL). Explicit sslmode= in DSN always takes precedence.

New SSL modes

# Default: try SSL, fall back to plaintext
PostgresBackend("postgresql://localhost/db")                    # ssl="prefer"

# Force SSL (production with TLS-enabled PostgreSQL)
PostgresBackend("postgresql://localhost/db", ssl="require")

# Disable SSL explicitly
PostgresBackend("postgresql://localhost/db", ssl="disable")

# DSN always wins
PostgresBackend("postgresql://localhost/db?sslmode=require")    # require regardless of ssl= param

Full changelog: v1.5.1...v1.5.2