-
NexaPG 0.2.0 - Reliability hardening milestone update
StableAll checks were successfulMigration Safety / Alembic upgrade/downgrade safety (push) Successful in 19sPostgreSQL Compatibility Matrix / PG14 smoke (push) Successful in 7sPostgreSQL Compatibility Matrix / PG15 smoke (push) Successful in 7sPostgreSQL Compatibility Matrix / PG16 smoke (push) Successful in 7sPostgreSQL Compatibility Matrix / PG17 smoke (push) Successful in 7sPostgreSQL Compatibility Matrix / PG18 smoke (push) Successful in 8sDocker Publish (Release) / Build and Push Docker Images (release) Successful in 1m14sreleased this
2026-02-14 15:32:50 +00:00 | 13 commits to main since this releaseAdded
Reliability and Stability (NX-102)
- Introduced per-target exponential backoff with jitter in the collector for unreachable databases.
- Added stronger per-target log throttling to prevent repeated connection-failure log floods.
- Collector now skips failed targets until their next scheduled retry while continuing to poll healthy targets.
- Added recovery context logging (
after_failures,downtime_seconds) when targets come back online. - Improved collector loop cadence (
poll_interval - elapsed) to reduce timing drift and transient freshness spikes. - Added cleanup of stale collector failure state for removed targets.
Migration Safety CI Gate (NX-104)
- Added dedicated migration safety workflow:
.github/workflows/migration-safety.yml
- CI now validates Alembic roundtrip safety:
upgrade head -> downgrade -1 -> upgrade head
- Added schema consistency validation using
pg_dump --schema-onlybefore/after roundtrip with strict diff. - Normalized dump comparison by filtering dynamic
\restrict/\unrestrictlines to avoid false positives.
Changed
API Error Handling Standardization (NX-101)
- Standardized backend error payloads across API failures to a shared structure:
codemessagedetailsrequest_id
- Added request ID middleware and centralized exception mapping for consistent 4xx/5xx responses.
- Replaced ad-hoc
HTTPException(detail="...")patterns in key routes with structured error objects. - Updated frontend API parsing to reliably consume structured error metadata.
Runtime Connectivity UX (NX-103)
- Connectivity/runtime target failures now surface as explicit, actionable
target_unreachablehandling instead of generic raw failures. - Target detail view now renders a clean Target Offline state with context (
host,port, optionalrequest_id) and guidance.
Security
JWT Library Migration (from 0.1.8 scope)
- Replaced
python-jose[cryptography]withPyJWTfor token handling. - Removed direct
ecdsadependency from backend requirements. - Updated JWT exception handling to
jwt.InvalidTokenErrorin auth/validation paths. - Removed obsolete packages:
python-joseecdsa
- JWT signing/verification behavior remains unchanged (same configured algorithm/secret).
Fixed
- Reduced periodic false-positive collector freshness warnings caused by polling interval drift.
- Eliminated noisy generic user-facing failures for expected target-down/network-refused scenarios.
- Prevented migration CI false negatives caused by dynamic
pg_dumprestrict token lines.
Operational Notes
- No database migration is required specifically for this release content.
- Rebuild and republish images, then redeploy services.
- Recommended: mark migration safety CI as a required branch protection check for
main.
Downloads