Skip to content

Releases: microsoft/pg_durable

Release v0.2.5

Choose a tag to compare

@github-actions github-actions released this 30 Jul 19:25
5411c1d

Highlights

  • Richer HTTP workflows: df.http_multipart() sends form and file uploads, while HTTP nodes preserve binary responses as base64 with an explicit encoding field.
  • Audio round-trip example: chains Azure OpenAI text-to-speech output directly into a Whisper multipart transcription request.
  • Independent starts: df.start(..., transaction_mode => 'new') commits on a separate session, allowing asynchronously started work to survive a caller rollback.
  • Direct HTTP result access: response fields such as $resp.body, $resp.status, $resp.ok, and $resp.encoding work with dot notation.

Reliability

  • Nested and non-root df.loop() workflows that previously failed now execute and restart correctly, with consistent df.break() behavior.
  • Workers can connect when PGHOST names a Unix-socket directory.

Upgrade Notes

Drain in-flight work before upgrading when continuity is required. JOIN/RACE branches started on v0.2.4 will fail on replay, and in-flight loops may fail. See docs/upgrade-testing.md for details.


Acknowledgements

Thanks to everyone who contributed to this release: Pino de Candia (@pinodeca) Han Qiao (@sweatybridge) Todd J. Green (@tjgreen42).

New Contributors

Full Changelog: v0.2.4...v0.2.5

Release v0.2.4

Choose a tag to compare

@github-actions github-actions released this 24 Jul 17:50
05cd2b6

Highlights

  • Bounded instance history: retention and hard-cap pruning prevent unbounded growth of df.instances.
  • Better instance listing: df.list_instances() adds label filtering and keyset pagination, with a configurable page-size limit that now fails loudly instead of silently truncating results.
  • More accurate monitoring: node status follows durable execution lineage, and df.start() reports engine hand-off failures immediately.
  • Correct schedule timing: recurring schedules calculate their next tick when execution begins.
  • Safer completion waits: use df.await_instance() in place of df.wait_for_completion().

Reliability and Security

  • Hardened instance and node ID allocation against collisions.
  • Added loop and result-expansion limits, improved connection recovery, and sped up instance listing.
  • Extended HTTP SSRF protection to the CGNAT range and restricted df.metrics() to explicitly authorized roles.

Upgrade Notes

Drain all in-flight instances before upgrading. Durable-history input changes make work started on earlier versions incompatible with v0.2.4 replay, including instances waiting on schedules. The node-key migration also takes an ACCESS EXCLUSIVE lock on df.nodes; schedule the upgrade in a maintenance window. See docs/upgrade-testing.md for details.


Acknowledgements

Thanks to everyone who contributed to this release: Prashant Chinnam (@crprashant) Ismaël Mejía (@iemejia) nanookclaw Pino de Candia (@pinodeca) Saithej (@Saithej2k) Haoqian (@snvtac) Todd J. Green (@tjgreen42).

New Contributors

Full Changelog: v0.2.3...v0.2.4

Release v0.2.3

Choose a tag to compare

@github-actions github-actions released this 17 Jun 22:42
b4579ae

Highlights

  • Installable packages: release assets now include validated AMD64 Debian packages for PostgreSQL 17 and 18.
  • Public evaluation images: ghcr.io/microsoft/pg_durable provides PostgreSQL 17 and 18 images for learning and evaluation.
  • Documentation website: refreshed guides, examples, terminology, and security guidance make pg_durable easier to evaluate and operate.

Reliability and Security

  • Empty SQL condition results now evaluate as false, and graph depth, graph size, and connection timeouts are bounded.
  • Non-finite SQL floats map safely to JSON null, and execution-history lookup failures are surfaced instead of hidden.
  • Published container images include hardened permissions, provenance, and SBOM attestations.

Upgrade Notes

Fresh installs use the _duroxide provider schema; upgraded installations keep the existing duroxide schema automatically. No operator action is required.


Acknowledgements

Thanks to everyone who contributed to this release: Abraham Omorogbe (@AbeOmor) Prashant Chinnam (@crprashant) Gourav Suresh (@darkdevil3610) Ismaël Mejía (@iemejia) Pino de Candia (@pinodeca) Todd J. Green (@tjgreen42).

New Contributors

Full Changelog: v0.2.2...v0.2.3

Release v0.2.2

Choose a tag to compare

@github-actions github-actions released this 10 Jun 16:26

Release v0.2.2