Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/_templates/pdf_cover_page.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<p>
<img src="_images/Percona_Logo_Color.png" />
</p>
<h1>Backup for MongoDB 2.11.0</h1>
<h1>Backup for MongoDB 2.12.0</h1>
{% if config.site_description %}
<h1>{{ config.site_description }}</h1>
{% endif %}
<h2>2.11.0 (September 25, 2025)</h2>
<h2>2.12.0 (November 4, 2025)</h2>
6 changes: 2 additions & 4 deletions docs/details/gcs.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,9 @@ You can use Google Cloud Storage (GCS) as a remote backup storage for Percona Ba

PBM supports communication with GCS via the JSON API and XML API. The preferred approach is to use the JSON API with a service account. HMAC keys are mainly useful for compatibility with S3-style APIs.

!!! warning "Known limitation"

When you run backups to GCS via HMAC keys, incomplete backups may be incorrectly marked as successful if network interruptions occur during the backup process. This results in corrupted or partially uploaded archives being stored and treated as valid backups, which can later fail during restore operations. This issue is addressed in [PBM-1605](https://perconadev.atlassian.net/browse/PBM-1605).
!!! warning "HMAC keys support deprecation"

Until the issue is resolved, we recommend using a native GCS connection type with JSON keys rather than HMAC keys to ensure backup integrity.
Starting with version 2.12.0, HMAC keys support is deprecated. We encourage you to use GCS connection type with native JSON keys.

To use GCS, you need the following:

Expand Down
1 change: 1 addition & 0 deletions docs/release-notes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# {{pbm.full_name}} release notes

* [{{pbm.full_name}} 2.12.0](release-notes/2.12.0.md)
* [{{pbm.full_name}} 2.11.0](release-notes/2.11.0.md)
* [{{pbm.full_name}} 2.10.0](release-notes/2.10.0.md)
* [{{pbm.full_name}} 2.9.1](release-notes/2.9.1.md)
Expand Down
96 changes: 96 additions & 0 deletions docs/release-notes/2.12.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Percona Backup for MongoDB 2.12.0 ({{date.2_12_0}})

Check notice on line 1 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L1

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 1, "column": 37}}}, "severity": "INFO"}

[Installation](../installation.md){.md-button}


Percona Backup for MongoDB is a distributed, low-impact solution for creating consistent backups of MongoDB sharded clusters and replica sets, and for restoring those backups to a specific point in time.

Check failure on line 6 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L6

[Vale.Spelling] Did you really mean 'sharded'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'sharded'?", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 6, "column": 109}}}, "severity": "ERROR"}

## Release Highlights

Check warning on line 8 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L8

[Google.Headings] 'Release Highlights' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'Release Highlights' should use sentence-style capitalization.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 8, "column": 4}}}, "severity": "WARNING"}

This release focuses on improvements to backup storages. It includes new storage types, enhances Azure and GCS implementations and fixes issues with S3-compatible storage services.

Check failure on line 10 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L10

[Vale.Spelling] Did you really mean 'storages'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'storages'?", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 10, "column": 48}}}, "severity": "ERROR"}

Check notice on line 10 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L10

[Google.Acronyms] Spell out 'GCS', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'GCS', if it's unfamiliar to the audience.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 10, "column": 108}}}, "severity": "INFO"}

Details below:

### Support of Alibaba Cloud as the backup storage

Check warning on line 14 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L14

[Google.Headings] 'Support of Alibaba Cloud as the backup storage' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'Support of Alibaba Cloud as the backup storage' should use sentence-style capitalization.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 14, "column": 5}}}, "severity": "WARNING"}

Check failure on line 14 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L14

[Vale.Spelling] Did you really mean 'Alibaba'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Alibaba'?", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 14, "column": 16}}}, "severity": "ERROR"}

Check warning on line 14 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L14

[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.
Raw output
{"message": "[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 14, "column": 24}}}, "severity": "WARNING"}

With **Percona Backup for MongoDB (PBM)** now supporting **Alibaba Cloud OSS** as a remote backup destination, you can seamlessly integrate your backup workflows into the Alibaba Cloud ecosystem. This means you can store any type of backups directly in OSS without extra tools or manual steps, taking full advantage of Alibaba's scalable infrastructure and strong regional performance.

Check failure on line 16 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L16

[Vale.Spelling] Did you really mean 'Alibaba'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Alibaba'?", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 16, "column": 60}}}, "severity": "ERROR"}

Check warning on line 16 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L16

[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.
Raw output
{"message": "[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 16, "column": 68}}}, "severity": "WARNING"}

Check failure on line 16 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L16

[Vale.Spelling] Did you really mean 'Alibaba'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Alibaba'?", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 16, "column": 172}}}, "severity": "ERROR"}

Check warning on line 16 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L16

[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.
Raw output
{"message": "[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 16, "column": 180}}}, "severity": "WARNING"}

Check failure on line 16 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L16

[Vale.Spelling] Did you really mean 'Alibaba's'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Alibaba's'?", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 16, "column": 320}}}, "severity": "ERROR"}

You can authenticate directly using your OSS Access Key ID and Secret, or take advantage of full support for Alibaba Cloud's Security Token Service (STS) AssumeRole, which includes automatic security token refresh. The latter authentication flow is ideal for organizations that require temporary credentials for enhanced security.

Check failure on line 18 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L18

[Vale.Spelling] Did you really mean 'Alibaba'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Alibaba'?", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 18, "column": 110}}}, "severity": "ERROR"}

Check warning on line 18 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L18

[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.
Raw output
{"message": "[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 18, "column": 118}}}, "severity": "WARNING"}

Check notice on line 18 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L18

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 18, "column": 149}}}, "severity": "INFO"}

This integration empowers teams already invested in Alibaba Cloud to adopt PBM better. Whether you're operating in Asia-Pacific or building cloud-native infrastructure, this gives you a secure, scalable, and compliant way to protect your data.

Check failure on line 20 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L20

[Vale.Spelling] Did you really mean 'Alibaba'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Alibaba'?", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 20, "column": 53}}}, "severity": "ERROR"}

Check warning on line 20 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L20

[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.
Raw output
{"message": "[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 20, "column": 61}}}, "severity": "WARNING"}

### Ensure data upload to Azure Blob storage even during unstable network

You can now control the number of upload retries to Azure in PBM configuration. This enhancement ensures your data reaches its destination—even when the network is unstable or intermittent. By customizing retry behavior, you gain greater resilience and reliability in backup and sync workflows. It’s a simple way to reduce failed uploads and improve peace of mind.

### Native MinIO Support in PBM

PBM now includes a native support for the MinIO storage by adding the **MinIo Go client library**. This integration makes it easier to use custom S3-compatible storage services for backup and restore.

Not all S3-compatible storage services support Signature Version 4 (SigV4) used in AWS SDK v2, which may result in compatibility and connectivity issues.

Check notice on line 30 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L30

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 30, "column": 68}}}, "severity": "INFO"}

To solve this, PBM now uses the MinIo Go client and supports a new `minio` storage type in its configuration.

```yaml
storage:
type: minio
minio:
endpoint: minio.example.com:9000
bucket: pbm-test-bucket
prefix: data/pbm/backup
credentials:
access-key-id: <your-access-key-id-here>
secret-access-key: <your-secret-key-here>
```

If your custom S3-compatible storage is not compatible with AWS SDK v2, consider re-configuring PBM to use the `minio` storage type after the upgrade. However, be aware of the current [known limitation](#known-limitation-for-using-the-minio-storage-type) for using the MinIO storage type.

Check notice on line 46 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L46

[Google.Contractions] Use 'isn't' instead of 'is not'.
Raw output
{"message": "[Google.Contractions] Use 'isn't' instead of 'is not'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 46, "column": 38}}}, "severity": "INFO"}

#### Known limitation for using the MinIO storage type

While MinIo SDK supports concurrency, its implementation interferes with PBM's backup logic and affects PBM functionality. Therefore, currently PBM uploads backups using a single thread which results in slower backup performance compared to S3. We're actively investigating safe ways to improve throughput without compromising reliability.

Check warning on line 50 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L50

[Google.WordList] Use 'capability' or 'feature' instead of 'functionality'.
Raw output
{"message": "[Google.WordList] Use 'capability' or 'feature' instead of 'functionality'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 50, "column": 109}}}, "severity": "WARNING"}

Check failure on line 50 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L50

[Google.Spacing] 'y. T' should have one space.
Raw output
{"message": "[Google.Spacing] 'y.  T' should have one space.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 50, "column": 121}}}, "severity": "ERROR"}

Check warning on line 50 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L50

[Google.We] Try to avoid using first-person plural like 'We'.
Raw output
{"message": "[Google.We] Try to avoid using first-person plural like 'We'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 50, "column": 247}}}, "severity": "WARNING"}

### Deprecation of HMAC keys support for Google Cloud Storage

Check warning on line 52 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L52

[Google.Headings] 'Deprecation of HMAC keys support for Google Cloud Storage' should use sentence-style capitalization.
Raw output
{"message": "[Google.Headings] 'Deprecation of HMAC keys support for Google Cloud Storage' should use sentence-style capitalization.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 52, "column": 5}}}, "severity": "WARNING"}

Check warning on line 52 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L52

[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.
Raw output
{"message": "[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 52, "column": 49}}}, "severity": "WARNING"}

Accessing Google Cloud Storage with HMAC keys relies on AWS Signature Version 2 (SigV2), an outdated authentication method that has been officially deprecated. Google Cloud Storage doesn't support a new Signature Version 4 (SigV4) and only supports SigV2 for HMAC authentication.

Check warning on line 54 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L54

[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.
Raw output
{"message": "[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 54, "column": 18}}}, "severity": "WARNING"}

Check notice on line 54 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L54

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 54, "column": 81}}}, "severity": "INFO"}

Check warning on line 54 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L54

[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.
Raw output
{"message": "[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 54, "column": 168}}}, "severity": "WARNING"}

Check notice on line 54 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L54

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 54, "column": 224}}}, "severity": "INFO"}

Continuing to use SigV2 can lead to serious issues: Percona Backup for MongoDB may incorrectly mark incomplete backups as successful and upload corrupted data to storage. This puts your restore process at risk and undermines backup reliability.

Check warning on line 56 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L56

[Google.Colons] ': P' should be in lowercase.
Raw output
{"message": "[Google.Colons] ': P' should be in lowercase.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 56, "column": 51}}}, "severity": "WARNING"}

Using the outdated Signature Version 2 (SigV2) authentication for Google Cloud Storage is not recommended because it lacks important security enhancements, is no longer maintained, and can introduce critical reliability issues.

Check notice on line 58 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L58

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 58, "column": 40}}}, "severity": "INFO"}

Check warning on line 58 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L58

[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.
Raw output
{"message": "[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 58, "column": 74}}}, "severity": "WARNING"}

Check notice on line 58 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L58

[Google.Contractions] Use 'isn't' instead of 'is not'.
Raw output
{"message": "[Google.Contractions] Use 'isn't' instead of 'is not'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 58, "column": 88}}}, "severity": "INFO"}

To prevent this, support for HMAC keys is now deprecated. We strongly recommend migrating to a native GCS connection type [with JSON keys :octicons-link-external-16:](https://cloud.google.com/iam/docs/keys-create-delete#creating). Refer to the [documentation](../details/gcs.md#adjust-pbm-configuration-to-use-gcs) for guidance on adjusting PBM configuration to use JSON keys.

Check warning on line 60 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L60

[Google.We] Try to avoid using first-person plural like 'We'.
Raw output
{"message": "[Google.We] Try to avoid using first-person plural like 'We'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 60, "column": 59}}}, "severity": "WARNING"}

Check notice on line 60 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L60

[Google.Acronyms] Spell out 'GCS', if it's unfamiliar to the audience.
Raw output
{"message": "[Google.Acronyms] Spell out 'GCS', if it's unfamiliar to the audience.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 60, "column": 103}}}, "severity": "INFO"}

We will end-of-life HMAC support and remove it in the PBM release after April 30, 2026.

Check warning on line 62 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L62

[Google.We] Try to avoid using first-person plural like 'We'.
Raw output
{"message": "[Google.We] Try to avoid using first-person plural like 'We'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 62, "column": 1}}}, "severity": "WARNING"}

Check warning on line 62 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L62

[Google.Will] Avoid using 'will'.
Raw output
{"message": "[Google.Will] Avoid using 'will'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 62, "column": 4}}}, "severity": "WARNING"}


## Changelog

### New features

- [PBM-1588](https://perconadev.atlassian.net/browse/PBM-1588) - Percona Backup for MongoDB now supports Alibaba Cloud Object storage Service (OSS) as the remote backup storage (Thank you Imre Nagi for reporting and contributing to this feature).

Check failure on line 69 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L69

[Vale.Spelling] Did you really mean 'Alibaba'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Alibaba'?", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 69, "column": 106}}}, "severity": "ERROR"}

Check warning on line 69 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L69

[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.
Raw output
{"message": "[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 69, "column": 114}}}, "severity": "WARNING"}

Check notice on line 69 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L69

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 69, "column": 143}}}, "severity": "INFO"}

Check failure on line 69 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L69

[Vale.Spelling] Did you really mean 'Imre'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Imre'?", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 69, "column": 189}}}, "severity": "ERROR"}

Check failure on line 69 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L69

[Vale.Spelling] Did you really mean 'Nagi'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Nagi'?", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 69, "column": 194}}}, "severity": "ERROR"}

- [PBM-1631](https://perconadev.atlassian.net/browse/PBM-1631) - Use MinIO client for S3-compatible storage to improve compatibility.


### Improvements

- [PBM-1321](https://perconadev.atlassian.net/browse/PBM-1321) - Improved PBM logs for logical backups by providing clearer status messages during the backup process.

- [PBM-1593](https://perconadev.atlassian.net/browse/PBM-1593) - Interrupted downloads from Azure Blob storage now automatically resume, preventing restore failures due to temporary network issues (Thank you Daniel Oliver for reporting and contributing to this issue).

Check notice on line 78 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L78

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 78, "column": 198}}}, "severity": "INFO"}

- [PBM-1628](https://perconadev.atlassian.net/browse/PBM-1628) - Backups to Google Cloud Storage (GCS) are now more resilient to temporary network interruptions.

Check warning on line 80 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L80

[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.
Raw output
{"message": "[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 80, "column": 84}}}, "severity": "WARNING"}

Check notice on line 80 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L80

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 80, "column": 98}}}, "severity": "INFO"}

## Fixed bugs

- [PBM-1093](https://perconadev.atlassian.net/browse/PBM-1093) - Added the ability to retry data upload to Azure Blob storage in case of connection issues, ensuring reliable backups.

- [PBM-1594](https://perconadev.atlassian.net/browse/PBM-1594) - Fixed the issue with backups failing to be uploaded due to data chunks exceeding the limit when HTTPS connection is used with MinIO. The issue is fixed by adding a MinIO client library (Thank you Rama Mekala for reporting this issue).

Check notice on line 86 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L86

[Google.Passive] In general, use active voice instead of passive voice ('be uploaded').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('be uploaded').", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 86, "column": 107}}}, "severity": "INFO"}

Check notice on line 86 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L86

[Google.Passive] In general, use active voice instead of passive voice ('is used').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('is used').", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 86, "column": 180}}}, "severity": "INFO"}

Check notice on line 86 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L86

[Google.Passive] In general, use active voice instead of passive voice ('is fixed').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('is fixed').", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 86, "column": 210}}}, "severity": "INFO"}

Check notice on line 86 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L86

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 86, "column": 252}}}, "severity": "INFO"}

Check failure on line 86 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L86

[Vale.Spelling] Did you really mean 'Mekala'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Mekala'?", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 86, "column": 268}}}, "severity": "ERROR"}

- [PBM-1605](https://perconadev.atlassian.net/browse/PBM-1605) - Fixed the issue with PBM marking incomplete backups as successful without logging errors during network disruptions and when HMAC keys are used for accessing Google Cloud Storage. PBM now calculates Cyclic Redundancy Check (CRC) and compares it with GCS generated one, reporting the error in case of mismatch.

Check notice on line 88 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L88

[Google.Passive] In general, use active voice instead of passive voice ('are used').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('are used').", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 88, "column": 201}}}, "severity": "INFO"}

Check warning on line 88 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L88

[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.
Raw output
{"message": "[Google.WordList] Use 'Google Cloud Platform' or 'GCP' instead of 'Cloud'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 88, "column": 231}}}, "severity": "WARNING"}

Check notice on line 88 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L88

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 88, "column": 289}}}, "severity": "INFO"}

- [PBM-1607](https://perconadev.atlassian.net/browse/PBM-1607) - Fixed the issue with already uploaded files remaining on the storage if the backup failed by correctly reporting the actual error in logs

- [PBM-1610](https://perconadev.atlassian.net/browse/PBM-1610) - Fixed the issue with data upload to a custom S3-compatible storage that was caused by a new upload algorithm introduced in AWS SDK v2 by adding a MinIO Go client library that resolves compatibility issues for custom S3-compatible storage services.

Check notice on line 92 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L92

[Google.Passive] In general, use active voice instead of passive voice ('was caused').
Raw output
{"message": "[Google.Passive] In general, use active voice instead of passive voice ('was caused').", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 92, "column": 138}}}, "severity": "INFO"}

- [PBM-1619](https://perconadev.atlassian.net/browse/PBM-1619) - Fixed the issue with PBM failing with segmentation fault (segfault) on invalid configuration by introducing basic checks and returning the meaningful error message on failed check. (Thank you Neha Oudin for reporting and contributing to this issue)

Check notice on line 94 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L94

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 94, "column": 123}}}, "severity": "INFO"}

Check failure on line 94 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L94

[Vale.Spelling] Did you really mean 'Neha'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Neha'?", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 94, "column": 258}}}, "severity": "ERROR"}

Check failure on line 94 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L94

[Vale.Spelling] Did you really mean 'Oudin'?
Raw output
{"message": "[Vale.Spelling] Did you really mean 'Oudin'?", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 94, "column": 263}}}, "severity": "ERROR"}

- [PBM-1627](https://perconadev.atlassian.net/browse/PBM-1627) - GCS storage retry configurations now correctly interpret time units (e.g., '60s') and include a new `ChunkRetryDeadline` setting to manage upload timeouts.

Check notice on line 96 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L96

[Google.Parens] Use parentheses judiciously.
Raw output
{"message": "[Google.Parens] Use parentheses judiciously.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 96, "column": 134}}}, "severity": "INFO"}

Check failure on line 96 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L96

[Google.Latin] Use 'for example' instead of 'e.g.'.
Raw output
{"message": "[Google.Latin] Use 'for example' instead of 'e.g.'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 96, "column": 135}}}, "severity": "ERROR"}

Check failure on line 96 in docs/release-notes/2.12.0.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/release-notes/2.12.0.md#L96

[Google.Units] Put a nonbreaking space between the number and the unit in '60s'.
Raw output
{"message": "[Google.Units] Put a nonbreaking space between the number and the unit in '60s'.", "location": {"path": "docs/release-notes/2.12.0.md", "range": {"start": {"line": 96, "column": 142}}}, "severity": "ERROR"}
3 changes: 2 additions & 1 deletion mkdocs-base.yml
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,8 @@ nav:
- Release notes:
- release-notes.md
- PBM 2.x:
- "{{pbm.full_name}} 2.11.0 ({{date.2_11_0}})": release-notes/2.11.0.md
- "{{pbm.full_name}} 2.12.0 ({{date.2_12_0}})": release-notes/2.12.0.md
- release-notes/2.11.0.md
Copy link

Copilot AI Oct 31, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The 2.11.0 release notes entry lost its title and date formatting. It should maintain the same format as the 2.12.0 entry: - \"{{pbm.full_name}} 2.11.0 ({{date.2_11_0}})\": release-notes/2.11.0.md

Suggested change
- release-notes/2.11.0.md
- "{{pbm.full_name}} 2.11.0 ({{date.2_11_0}})": release-notes/2.11.0.md

Copilot uses AI. Check for mistakes.
- release-notes/2.10.0.md
- release-notes/2.9.1.md
- release-notes/2.9.0.md
Expand Down
5 changes: 3 additions & 2 deletions variables.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
# PBM Variables set for HTML output
# See also mkdocs.yml plugins.with-pdf.cover_subtitle and output_path

release: '2.11.0'
version: '2.11'
release: '2.12.0'
version: '2.12'
year: '2025'

pbm:
full_name: 'Percona Backup for MongoDB'
date:
2_12_0: 2025-11-04
2_11_0: 2025-09-25
2_10_0: 2025-06-26
2_9_1: 2025-03-27
Expand Down