## 2.28 2020-07-20

Azure Repository Storage

Fix restore --force acting like --force --delta.

This caused restore to replace files based on timestamp and size rather than overwriting, which meant some files that should have been updated were left unchanged. Normal restore and restore --delta were not affected by this issue.

Azure support for repository storage.

Add expire-auto option.

This allows automatic expiration after a successful backup to be disabled.

Asynchronous S3 multipart upload.

Automatic retry for backup, restore, archive-get, and archive-push.

Disable query parallelism in sessions used for backup control.

13 beta2 support.

Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but will be updated with each release to keep pace.

Improve handling of invalid HTTP response status.

Improve error when pg1-path option missing for archive-get command.

Add hint when checksum delta is enabled after a timeline switch.

Use instead of postmaster where appropriate.

Automatically determine cipher passphrase in repo-get command.

Fix expression when recursion enabled in `storageInfoListP()`.

Improve behavior of the repo-ls command.

Inline `strPtr()` to increase profiling accuracy.

Add `pgLsnFromWalSegment()`.

Fix incorrect example for repo-retention-full-type option.

Remove internal commands from HTML and man command references.

Update versions used to build user guides.

Also add version ranges to indicate that a user guide is accurate for a range of versions even if it was built for a specific version.

Update FAQ for expiring a specific backup set.

Update FAQ to clarify default PITR behavior.

Remove real/all integration tests now covered by unit tests.

Rename most instances of master to primary in tests.