diff --git a/content/releases/3.breaking-changes/3.version-12.md b/content/releases/3.breaking-changes/3.version-12.md index b39adec9..1d27f456 100644 --- a/content/releases/3.breaking-changes/3.version-12.md +++ b/content/releases/3.breaking-changes/3.version-12.md @@ -4,6 +4,30 @@ title: Version 12 description: Breaking changes may require action on your part before upgrading. --- +## Version 12.3.0 + +### Update and Delete operations no longer target all items by default + +The **Update Items** and **Delete Items** flow operations previously affected every item in a collection when their targeting parameters were empty or missing. They now return `null` instead of running against the whole collection. + +If a flow relied on the previous behavior to update or delete all items, set an explicit query: `{"limit": -1}`. + +These operations now also throw an error when both `key` and `query` are defined at the same time, and **Update Items** throws when either parameter is combined with a batch payload. Pass only one targeting method per operation. + +### Storage `exists()` throws on connection failures + +The storage driver's `exists()` method previously returned `false` for any failure, including connection timeouts and authentication errors. It now throws on these failures so a transient problem is no longer mistaken for a missing object. Extensions and callers that use `exists()` must handle the thrown error. + +If you use S3, grant the `s3:ListBucket` permission so the driver can tell a missing object apart from a permission error. + +### Image transformation output default raised to 6000px + +`ASSETS_TRANSFORM_IMAGE_MAX_OUTPUT_DIMENSION` now defaults to `6000`, up from `3000` in 12.2.0. Transformations that were rejected between these limits are now allowed by default. To keep the previous `3000` limit, set [`ASSETS_TRANSFORM_IMAGE_MAX_OUTPUT_DIMENSION`](/configuration/files) to `3000` explicitly. + +### Docker images use the bundled `pm2` + +The Docker image now runs the `pm2` version bundled with it. If your custom `CMD` calls `pm2-runtime` directly, route it through `docker-entrypoint.cjs` instead. The startup sequence is unchanged: bootstrap, then `pm2-runtime`. + ## Version 12.2.0 ### WYSIWYG editor rebuilt on Tiptap