PocketBase v0.22.0stable Released Feb 26, 2024
โš ๏ธ Breaking Change Impact Score: 7/10

PocketBase: v0.22.0 Release

Source available โ€” automated, not human-reviewed

Component: pocketbase ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Breaking-change evidence from the source

  • _To minimize the breaking changes, the old parenthesis reference syntax (`yourCollection(yourRelField)`) will still continue to work but it is soft-deprecated and there will be a console log reminding you to change it to the new one._
Read the original context โ†—
Source flags breaking changes โ€” review applicability
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

PocketBase v0.22.0. Source highlight: _To update the prebuilt executable you can run `./pocketbase update`._

Who Does This Impact? (Role-Based Analysis)

๐Ÿ’ป Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

๐Ÿ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

โš™๏ธ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

โš ๏ธ Breaking Changes & Deprecations (1)

  • _To minimize the breaking changes, the old parenthesis reference syntax (`yourCollection(yourRelField)`) will still continue to work but it is soft-deprecated and there will be a console log reminding you to change it to the new one._

โœจ New Features & Capabilities (6)

  • Added Planning Center OAuth2 provider (#4393; thanks @alxjsn).
  • Added options to export a subset of collections.
  • Added option to import a subset of collections without deleting the others (#3403).
  • Added support for back/indirect relation `filter`/`sort` (single and multiple).
  • Added support for multiple back/indirect relation `expand` and updated the keys to use the `_via_` reference syntax (`yourCollection_via_yourRelField`).
  • Added `jsvm.Config.OnInit` optional config function to allow registering custom Go bindings to the JSVM.

โšก Performance & Enhancements (1)

  • Admin UI improvements:

๐Ÿ”ง Bug Fixes & Patches (3)

  • Fixed vertical image popup preview scrolling.
  • Fixed auto backups cron not reloading properly after app settings change (#4431).
  • Other minor improvements (updated the `ghupdate` plugin to use the configured executable name when printing to the console, fixed the error reporting of `admin update/delete` commands, etc.).
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
> _To update the prebuilt executable you can run `./pocketbase update`._ - Added Planning Center OAuth2 provider ([#4393](https://github.com/pocketbase/pocketbase/pull/4393); thanks @alxjsn). - Admin UI improvements: - Autosync collection changes across multiple open browser tabs. - Fixed vertical image popup preview scrolling. - Added options to export a subset of collections. - Added option to import a subset of collections without deleting the others ([#3403](https://github.com/pocketbase/pocketbase/issues/3403)). - Added support for back/indirect relation `filter`/`sort` (single and multiple). The syntax to reference back relation fields is `yourCollection_via_yourRelField.*`. โš ๏ธ To avoid excessive joins, the nested relations resolver is now limited to max 6 level depth (the same as `expand`). _Note that in the future there will be also more advanced and granular options to specify a subset of the fields that are filterable/sortable._ - Added support for multiple back/indirect relation `expand` and updated the keys to use the `_via_` reference syntax (`yourCollection_via_yourRelField`). _To minimize the breaking changes, the old parenthesis reference syntax (`yourCollection(yourRelField)`) will still continue to work but it is soft-deprecated and there will be a console log reminding you to change it to the new one._ - โš ๏ธ Collections and fields are no longer allowed to have `_via_` in their name to avoid collisions with the back/indirect relation reference syntax. - Added `jsvm.Config.OnInit` optional config function to allow registering custom Go bindings to the JSVM. - Added `@request.context` rule field that can be used to apply a different set of constraints based on the API rule execution context. For example, to disallow user creation by an OAuth2 auth, you could set for the users Create API rule `@request.context != "oauth2"`. The currently supported `@request.context` values are: ``` default realtime protectedFile oauth2 ``` - Adjusted the `cron.Start()` to start the ticker at the `00` second of the cron interval ([#4394](https://github.com/pocketbase/pocketbase/discussions/4394)). _Note that the cron format has only minute granularity and there is still no guarantee that the scheduled job will be always executed at the `00` second._ - Fixed auto backups cron not reloading properly after app settings change ([#4431](https://github.com/pocketbase/pocketbase/discussions/4431)). - Upgraded to `aws-sdk-go-v2` and added special handling for GCS to workaround the previous [GCS headers signature issue](https://github.com/pocketbase/pocketbase/issues/2231) that we had with v2. _This should also fix the SVG/JSON zero response when using Cloudflare R2 ([#4287](https://github.com/pocketbase/pocketbase/issues/4287#issuecomment-1925168142), [#2068](https://github.com/pocketbase/pocketbase/discussions/2068), [#2952](https://github.com/pocketbase/pocketbase/discussions/2952))._ _โš ๏ธ If you are using S3 for uploaded files or backups, please verify that you have a green check in the Admin UI for your S3 configuration (I've tested the new version with GCS, MinIO, Cloudflare R2 and Wasabi)._ - Added `:each` modifier support for `file` and `relation` type fields (_previously it was supported only for `select` type fields_). - Other minor improvements (updated the `ghupdate` plugin to use the configured executable name when printing to the console, fixed the error reporting of `admin update/delete` commands, etc.).