PocketBase v0.10.0stable Released Dec 16, 2022
Impact Score: 5/10

PocketBase: v0.10.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.

Compatibility not verified โ€” check source notes
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

PocketBase v0.10.0. Source highlight: This release comes with major performance and memory consumption improvements.

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.

โœจ New Features & Capabilities (6)

  • Added `/api/health` endpoint (thanks @MarvinJWendt).
  • Added support for SMTP `LOGIN` auth for Microsoft/Outlook and other providers that don't support the `PLAIN` auth method (#1217).
  • Added support for split (concurrent and nonconcurrent) DB connections pool increasing even further the concurrent throughput without blocking reads on heavy write load.
  • ! Changed `pocketbase.NewWithConfig(config Config)` to `pocketbase.NewWithConfig(config *Config)` and added 4 new config settings:
  • Added new helper method `core.App.IsBootstrapped()` to check the current app bootstrap state.
  • Added generic file resource struct that allows loading and uploading file content from

โšก Performance & Enhancements (1)

  • Improved record references delete performance.

๐Ÿ”ง Bug Fixes & Patches (2)

  • Fixed `~` expressions backslash literal escaping (#1231).
  • ! Changed `core.NewBaseApp(dir, encryptionEnv, isDebug)` to `NewBaseApp(config *BaseAppConfig)`.
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
This release comes with major performance and memory consumption improvements. We now internally maintain 2 separate DB pools to increase the read and write concurrent throughput and reduce the memory allocation due to large number of open connections. Based on some tests on 2vCPU 2GB Hetzner VPS, the time needed for creating **concurrently 10000** records (each with ~300KB body) was reduced from ~120s to ~14s (_this includes the network latency_). Additionally the writes no longer should exhaust the available read connections meaning that **you should be able to query your data even on constant write load**. If after the upgrade you are still getting OOM errors, you may want to set the environment variable `GOMEMLIMIT=500MiB` before starting the executable to reduce the amount of unreleased memory kept by the GC (it is a soft limit). ## Changes - Added `/api/health` endpoint (thanks @MarvinJWendt). - Added support for SMTP `LOGIN` auth for Microsoft/Outlook and other providers that don't support the `PLAIN` auth method ([#1217](https://github.com/pocketbase/pocketbase/discussions/1217#discussioncomment-4387970)). - Reduced memory consumption (you can expect ~20% less allocated memory). - Added support for split (concurrent and nonconcurrent) DB connections pool increasing even further the concurrent throughput without blocking reads on heavy write load. - Improved record references delete performance. - Removed the unnecessary parenthesis in the generated filter SQL query, reducing the "_parse stack overflow_" errors. - Fixed `~` expressions backslash literal escaping ([#1231](https://github.com/pocketbase/pocketbase/discussions/1231)). - Refactored the `core.app.Bootstrap()` to be called before starting the cobra commands ([#1267](https://github.com/pocketbase/pocketbase/discussions/1267)). - ! Changed `pocketbase.NewWithConfig(config Config)` to `pocketbase.NewWithConfig(config *Config)` and added 4 new config settings: ```go DataMaxOpenConns int // default to core.DefaultDataMaxOpenConns DataMaxIdleConns int // default to core.DefaultDataMaxIdleConns LogsMaxOpenConns int // default to core.DefaultLogsMaxOpenConns LogsMaxIdleConns int // default to core.DefaultLogsMaxIdleConns ``` - Added new helper method `core.App.IsBootstrapped()` to check the current app bootstrap state. - ! Changed `core.NewBaseApp(dir, encryptionEnv, isDebug)` to `NewBaseApp(config *BaseAppConfig)`. - ! Removed `rest.UploadedFile` struct (see below `filesystem.File`). - Added generic file resource struct that allows loading and uploading file content from different sources (at the moment multipart/form-data requests and from the local filesystem). ``` filesystem.File{} filesystem.NewFileFromPath(path) filesystem.NewFileFromMultipart(multipartHeader) filesystem/System.UploadFile(file) ``` - Refactored `forms.RecordUpsert` to allow more easily loading and removing files programmatically. ``` forms.RecordUpsert.AddFiles(key, filesystem.File...) // add new filesystem.File to the form for upload forms.RecordUpsert.RemoveFiles(key, filenames...) // marks the filenames for deletion ``` - Trigger the `password` validators if any of the others password change fields is set.