Servd Assets and Helpers
Version 3.5.20
November 22, 2024
Updated
- Force image transforms to have a width and height compatible with backend transform function memory limits
- Automatically clear caches for non-image files that are replaced or deleted within the Craft CP
Version 3.5.19
September 30, 2024
Fixed
- Added handling for image transform strings passed as an array
Version 3.5.18
September 24, 2024
Fixed
- Replaced a removed twig function with an alternative
Version 3.5.17
August 29, 2024
null
Version 3.5.16
July 25, 2024
Fixed
- Fixed a bug which caused asset files with accented characters to not load properly on the V3 asset platform.
Version 3.5.15
July 16, 2024
Fixed
- Fixed a bug which caused images to be served in their original size instead of being transformed
Version 3.5.14
July 15, 2024
Updated
- Switched asset platform image manipulation availability detection from Craft's native to a custom implementation to support transforms of HEIC/HEIF files even when local ImageMagick/GD isn't able to do so.
Version 3.5.13
March 13, 2024
Updated
- Moved image do-not-upscale logic over to asset platform
Version 3.5.12
March 12, 2024
Fixed
- Fixed a bug when purging static cache URLs with no defined path
Version 3.5.11
March 11, 2024
Updated
- Added rawurlencoding to custom file pattern URLs to match non-custom handling
Version 3.5.10
February 13, 2024
Fixed
- Fixed an issue where parentheses in v3 asset filenames would cause the image to fail to load.
Version 3.5.9
January 25, 2024
Fixed
- Fixed a bug with the ImagerX integration
Version 3.5.8
January 24, 2024
Added
- Respect image upscaling settings in Craft general settings and directly on transforms
Version 3.5.7
December 18, 2023
Added
- Added some useful debugging info for failed dynamicInclude calls
Version 3.5.6
November 30, 2023
Fixed
- Fixed an order of execution bug when integrating the Servd Plugin with Blitz
Version 3.5.5
November 20, 2023
Added
- Added a CLI command to convert accent modifier characters in asset filenames in the database to their equivalent absolute accented characters as is used by the S3 protocol.
Version 3.5.4
November 7, 2023
Updated
- Normalise any accent modifier characters in asset filenames which upset our Asset Platform storage provider's API
Version 3.5.3
November 2, 2023
Added
- Added a new
./craft servd-asset-storage/command
command which can be used to run Craft console commands in a Servd environment.
Version 3.5.2
October 27, 2023
Added
- Added validation to the Servd Filesystem's CDN URL Pattern field to prevent the
{{params}}
placeholder from being added. - Added validation to the Servd Filesystem's Image Transform URL Pattern field to check the
{{params}}
placeholder is present.
Version 3.5.1
October 26, 2023
Fixed
- Ampersands in filenames of assets are now encoded to prevent security token hash mismatches
Version 3.5.0
September 19, 2023
If you are using
{% dynamicInclude %}
twig tags, you will need to clear any static caches to regenerate their HTML with this update.
Updated
- Improve security of dynamic include calls
Version 3.4.11
August 25, 2023
Fixed
- Fix for an issue where the URLs for non-Servd assets were getting handled when the disable transforms setting was enabled.
Version 3.4.10
August 24, 2023
Added
- A
--wait
option to the./craft servd-asset-storage/clone
command that polls the Servd task runner until completion.
Fixed
- Relaxed environment constraint for where the
./craft servd-asset-storage/clone
command could be run from.
Version 3.4.9
August 23, 2023
Added
- It's now possible to trigger clones between remote Servd environments using the
./craft servd-asset-storage/clone
console command. - The database optimisation step performed by the
./craft servd-asset-storage/local/push-database
command is now controlled by an internal back-end config setting, and only run when determined by the Servd task runner. - Non-transformed file URLs now get a
dm
query parameter appended to allow for cache busting if the underlying asset changes.
Version 3.4.8
July 31, 2023
Fixed
- Fixed an incompatibility between Asset Platform V3 and ImagerX integration when Imager is passed a URL as a string (like it is when retcon is transforming images)
Version 3.4.7
June 13, 2023
Fixed
- Fixed a reference to a const which has recently been removed which broke the ImagerX storage adapter
Version 3.4.6
June 6, 2023
Updated
- Removed an instance of urlencoding for non-image assets which was causing problems when interacting with some other plugins which also urlencoded URLs
Version 3.4.5
May 24, 2023
Fixed
- Craft does not adhere to its own
addTrailingSlashesToUrls
setting for some multisite URLs. That is now handled when purging static cache URLs
Version 3.4.4
May 22, 2023
Fixed
- Fixed a couple of bugs when syncing assets between asset platform V3 and the local filesystem
Version 3.4.3
May 15, 2023
Added
- Added additional request validation for dynamicInclude endpoint to prevent annoying exceptions being thrown by bots
Version 3.4.2
May 3, 2023
Fixed
- Removed all URL encoding in transform URLs, it was upsetting things
Version 3.4.1
May 3, 2023
Fixed
- Fixed a URL encoding issue involving
@
characters in asset file names which caused 401 security token errors to be returned.
Version 3.4.0
April 29, 2023
Version 3.3.3
April 24, 2023
Added
- Fix for missing "Purge Product URL(s)" buttons on Craft Commerce product pages.
Version 3.3.2
April 16, 2023
Added
- Support for fillmax image transform mode
Version 3.3.1
April 13, 2023
Fixed
- Fix a bug when pulling or pushing the database but the local DB's password is empty
Version 3.3.0
March 17, 2023
Added
- Support for 'letterbox' image cropping in Craft 4.4
Version 3.2.11
February 20, 2023
Fixed
- Fixed a missing change from the previous commit
Version 3.2.10
February 20, 2023
Added
- Added a
-v
flag for the CLI commands to provide verbose output to help track down errors
Version 3.2.9
February 20, 2023
Fixed
- Fix for the cookie SERVD_LOGGED_IN_STATUS was not cleared as expected when using a wildcard cookie domain.
Version 3.2.8
February 13, 2023
Updated
- The plugin's CSRF token and dynamic content injection JS functions can now be deferred and executed manually to avoid collisions with other ajax requests which might run on intial page load (causing csrf session issues).
Version 3.2.7
February 10, 2023
Added
- The priority of the static cache purge job can now be controlled by setting an optional SERVD_PURGE_PRIORITY environment variable to an integer value. By default, the priority is set to 1025.
Version 3.2.6
February 8, 2023
Fixed
- Introduced batching to the code that purges specific URLs from the static cache. The batch size can be controlled by setting a SERVD_PURGE_BATCH_SIZE environment variable to an integer value.
Version 3.2.5
February 3, 2023
Fixed
- Added a fix for when an owner entry can't be located when attempting to get tags for a draft/revision entry.
Version 3.2.4
December 21, 2022
Fixed
- Fixed the fix which didn't fix the thing the fix was supposed to fix
Version 3.2.3
December 20, 2022
Fixed
- Fixed compatibility with Imager-X's Imgix transformer when using Servd's Asset Platform for storage
Version 3.2.2
December 19, 2022
Added
- Servd's Imager-X integration will now play nicely with RetCon modified
img
tags, including srcset
Version 3.2.1
December 14, 2022
Fixed
- Fixed an edge case which could result in static cache purges getting stuck in a redirect loop
Version 3.2.0
December 5, 2022
Added
- You can now disable automatic image format conversion if webp isn't treating your images nicely
- Alternatively, you can now use AVIF as your auto-format of choice (check the plugin's settings for the new option)
Version 3.1.8
November 8, 2022
Fixed
- Yet more fixes for the changes in Craft 4.3 which broke asset URL generations. This change stops Craft from generating image transforms unnecessarily
Version 3.1.7
November 1, 2022
Fixed
- More fixes for the changes in Craft 4.3 which broke asset URL generations
Version 3.1.6
November 1, 2022
Fixed
- Set the
$handled
property on asset url events to prevent Craft undoing our good work
Version 3.1.5
October 21, 2022
Fixed
- Use correct action URLs when a site is using a subfolder basepath
Version 3.1.4
October 12, 2022
Fixed
- Detection of video files updated to work when custom filetype definitions are included in general.php
Version 3.1.3
October 5, 2022
Updated
- Cleaned up some static cache busting code which was no longer needed
Version 3.1.2
September 14, 2022
Fixed
- Auto detect the Servd 'development' environment when determining the current assets environment
Version 3.1.1
August 16, 2022
Fixed
- Added some protection to stop the Blitz cache purger from running when developing locally
Version 3.1.0
August 16, 2022
Added
- Added an integration with Blitx to allow it to make use Servd's static cache as a caching reverse proxy. This allows you to use the speed and throughput of the Static Caching layer, whilst keeping all of your cache configuration and functionality within Blitz. Servd + Blitz Docs
Version 3.0.6
August 6, 2022
Added
- Added a tweak to Yii's Redis session management to make it work in the way everyone expects. The PHP session's TTL is now reset whenever is is opened, which prevents the session from expiring after a specific length of time. It now expires after a specific period of user inactivity which will also shortly be configurable via the Servd dashboard.
Version 3.0.5
August 4, 2022
Fixed
- We didn't noticed that the cache clear buttons which we embed in the sidebar of Entry Edit pages had disappeared! It's back now 👌
Version 3.0.4
July 6, 2022
Fixed
- Fixed a bug when rendering a non-image file with the Image Optimize integration.
Version 3.0.3
June 28, 2022
Fixed
- Fixed a bug when moving assets between folders
Version 3.0.2
June 20, 2022
Fixed
- Fixed a bug when manually clearing the static cache using a Commerce Product's 'tag'
Version 3.0.1
June 17, 2022
Fixed
- Fixed incorrect function defs for ImageOptimize integration
Version 3.0.0
June 3, 2022
Fixed
- Fixed a bug when using an environment variable as the 'subfolder' on a Servd Volume
Version 3.0.0-beta.12
May 30, 2022
Fixed
- ImagerX function typings
Version 3.0.0-beta.11
May 26, 2022
Fixed
- Fallback to the defaultImageQuality config variable if no image quality is specified when defining a transformation.
Version 3.0.0-beta.10
May 26, 2022
Fixed
- Apply stricter checks when hydrating dynamicInclude contexts
Version 3.0.0-beta.9
May 22, 2022
Fixed
- Added return codes to all CLI commands
Version 3.0.0-beta.8
May 19, 2022
Updated
- Feed Me logs now work as originally intended, browsable in the Craft CP, even when running on a load balanced infra or in an isolated task runner
Version 3.0.0-beta.7
May 13, 2022
Fixed
- Some fun with static const overloading. Should they be public? Should they be private? No-one knows.
- Typo
Version 3.0.0-beta.6
May 12, 2022
Fixed
- Fixed Feed Me logs integration by adding some typings
Version 3.0.0-beta.5
May 4, 2022
Updated
- Merge master 2.5.5
Version 3.0.0-beta.4
May 2, 2022
Fixed
- Tentative fix for a bug with the plugin's Flysystem S3 tweaks
Version 3.0.0-beta.3
April 20, 2022
Added
- The local db push command now runs a MySQL optimize command to fix any indexes that were corrupted during the import
Version 3.0.0-beta.2
April 15, 2022
Updated
- Craft 4 compatibility, including:
- Complete rework of Volume and the new Filesystem objects
- Rewrite of pull and push-asset commands to support filesystems
- Allow mapping of Servd Filesystems to Local Folder filesystems to allow copy of assets between them
- Loads of changes to ImageTransforms and related Events
- A few changes to support the new craft-flysystem package
Version 2.5.3
April 11, 2022
Added
- Support for video on the Asset Platform
Fixed
- Don't break filename icons for non image files in the Craft CP assets view
- Additional fixes for yii debug bar's recent changes
Version 2.5.2
April 7, 2022
Fixed
- Fixed an incompatibility with the latest release of yii2-debug which changed the way data is serialised, breaking our debug logs redis target.
Version 2.5.1
February 25, 2022
Changed
- The option to skip the cache for logged in users now differentiates between users who have cp access and not - so front-end-only users don't have to have all static caching disabled when they log in.
- Background tasks for static cache purges now have a priority of 1025 in order to try to get them to run after more important things as they sometimes can take quite a while.
Version 2.5.0
January 28, 2022
Added
- Added an optional integration with the feed-me plugin to allow feed logs to be pushed to standard log output. This allows Servd to collect and display them using its normal log aggregation services
Updated
- Rearranged the plugin settings page so that it's a little more organised
- Removed README content and added a link to the relevant Servd docs page
Version 2.4.20
January 27, 2022
Updated
- Significantly improve the performance of tag-based static cache clearing for sites with a very large number of unique URLs
Version 2.4.19
January 25, 2022
Updated
- Fire an event in JS when CSRF tokens have been loaded into the DOM if using static caching
Version 2.4.18
January 24, 2022
Updated
- Ensure objects passed into {% dynamicInclude %} contexts, that do not have an id set, are removed (because they can't be rehydrated later)
- Craft CMS Hosting on Servd
Version 2.4.17
January 18, 2022
Fixed
- 2.4.16 caused another bug when multiple blocks were loaded onto the same page. Now fixed.
Version 2.4.16
January 18, 2022
Fixed
- Fixed a bug which caused only a subset of
dynamicInclude
blocks to be included in thedynamicLoaded
JS event.
Version 2.4.15
January 7, 2022
Fixed
- Fixed a bug (recently introduced by changes to users and permissions in Servd's nginx processes) which prevented static cache purges from working as expected in some circumstances.
Version 2.4.14
January 6, 2022
Updated
- Changed the download timeout when syncing assets to/from local volumes to 300 seconds instead of the previous 30 seconds.
Version 2.4.13
January 3, 2022
Fixed
- Image transforms alignments using the (e.g.) 'top-left' syntax were being ignored in Servd asset transform URLs. Now they are not.
Version 2.4.12
December 28, 2021
Fixed
- Twig extensions were only being registered for 'site' requests which caused problems when rendering templates from a CLI command. This is now fixed.
Version 2.4.11
December 15, 2021
Updated
- The event which fires when the plugin has loaded in any
{% dynamicInclude %}
content now includes a list of all the blocks which have been added to the DOM, allowing you to target them in JS and do things with them (like init alpine JS objects etc).
Version 2.4.10
November 25, 2021
Updated
- Allowed Servd powered ImagerX transforms to work when passed an existing ImagerX model instead of an Asset. Not sure why you'd do it, but folk do, and now they can.
Version 2.4.9
November 18, 2021
Updated
- Added a timeout to the redis connection which clears Servd's static cache. There are now some legitimate situations in which these components might not exist all of the time, but PHP doesn't necesserily know about it.
Version 2.4.8
October 20, 2021
Updated
- Disabled SEOMatic's automatic meta inclusion in templates generated by dynamicInclude - they aren't needed and slow things down
Version 2.4.7
October 20, 2021
Fixed
- Fixed an issue with dynamicInclude blocks which are placed within a loop
Version 2.4.6
September 17, 2021
Fixed
- Bug fix for projects which don't have commerce installed
Version 2.4.5
September 15, 2021
Fixed
- A variable check error introduced in 2.4.4 #28
Version 2.4.4
September 15, 2021
Updated
- Added the Servd Static Cache clear button to commerce product pages
Version 2.4.3
September 10, 2021
Added
- Added a
--skipDelete
flag for preventing deletion of assets when cloning up or down from the local filesystem.
Version 2.4.2
September 3, 2021
Updated
- Added a link to the Servd SMTP docs when the sendmail CP alert is shown. This provides information on why sendmail is disabled and also actionable alternative.
Version 2.4.1
August 27, 2021
Added
- You can now disable image asset transforms and optimisations with a plugin setting. This can be useful if you're using another plugin or service to perform the necessary transforms and you only require the original image's URL.
Version 2.4.0
July 12, 2021
Added
- You can now specify 'placeholder' on the 'dynamicInclude' tag, and combine with the 'endDynamicInclude' tag, in order to display placeholder content which is visible during dynamic content loading.
Version 2.3.3
July 9, 2021
Fixed
- Fixed a bug with dynamicIncludes which prevented the plugin from automatically detecting the availability of ESI
Version 2.3.2
June 14, 2021
Fixed
- Fixed a bug with dynamicIncludes which would strip certain values from context arrays if their keys matched values from Craft's global context
Version 2.3.1
June 11, 2021
Fixed
- When the static cache is cleared, also clear all associated metadata. This ensures any cached 301/302 redirects are purged.
- dynamicInclude blocks whose responses contain multiple top level nodes no longer break things.
Version 2.3.0
May 6, 2021
Added
- Support for super simple dynamic content in combination with static caching. Also supports zero-config ESI dynamic content if avaialble on Servd
Version 2.2.6
April 26, 2021
Updated
- Updated the static cache clear button to purge all URLs associated with an entry, rather than just the one for the default site
Version 2.2.5
April 12, 2021
Updated
- Altered the method used to detect whether users are logged in when deciding whether or not to skip the static cache for those users
Version 2.2.4
March 31, 2021
Fixed
- Fixed the 2.2.3 fix which didn't fix the thing it was supposed to fix
Version 2.2.3
March 30, 2021
Fixed
- Fixed a bug when using a mysql 8 client to locally to pull database dumps from Servd
Version 2.2.2
March 25, 2021
Fixed
- Tweaked a couple of control panel routes which were throwing access denied errors for non-admin users.
Version 2.2.1
March 23, 2021
Updated
- Remove composer.json version constraint which was added to prevent an AWS SDK bug from being downloaded (which is now fixed)
Version 2.2.0
March 22, 2021
Added
- Added local development tooling
Fixed
- Constrained AWS SDK version to prevent the bugged 3.175 update from being used
Version 2.1.16
March 8, 2021
Updated
- If another plugin sets the URL for an image or thumbnail stored on the Servd asset platform, don't replace it with a CDN link. (Fixes an issue when using the plugin alongside https://github.com/spicywebau/craft-embedded-assets)
Version 2.1.15
March 5, 2021
Updated
- Improved warnings and error messages for problems with Servd's asset platform
- Enterprise Hosting for Craft CMS
Version 2.1.14
March 2, 2021
Added
- Allow Servd's warning banners in the Craft control panel to be suppressed
Version 2.1.13
February 10, 2021
Updated
- Purge URLs in batches of 50 to ensure the Craft queue doesn't get clogged up when large purge requests are triggered
- Only track static cache tags on URLs which are actually going to be cached
Version 2.1.12
February 9, 2021
Updated
- Include the triggers for cache purges in the background task for informational purposes
Version 2.1.11
February 5, 2021
Fixed
- Do not track static cache tags against pages which return a non-200 response code, they won't get cached anyway
Version 2.1.10
February 4, 2021
Added
- Compatibility with optional GET param inclusion in static cache keys
Updated
- Improved cache tag garbage collection
Version 2.1.9
February 3, 2021
Updated
- Further improvements to static cache tagging performance
Version 2.1.8
February 3, 2021
Fixed
- Fixed a bug which was causing more tags to be associated with statically cached URLs than necessary.
Version 2.1.7
February 3, 2021
Updated
- Batched redis commands during url <-> tag associations
- Deduplicated static cache tags
Version 2.1.6
February 3, 2021
Fixed
- Pinned the AWS PHP SDK version allowed to those that do not contain a critical bug: https://github.com/aws/aws-sdk-php/issues/2189
Version 2.1.5
February 3, 2021
Fixed
- Prevented the S3 URL structure from being mangled by any other competing configurations
Version 2.1.4
February 1, 2021
Fixed
- Removed use of a deprecated redis call
Version 2.1.3
January 28, 2021
Added
- Manual control panel button for clearing individual Entries from the static cache
- Protected against a potential error when an asset is deleted while another CP user is doing things
Version 2.1.2
January 21, 2021
Fixed
- Fixed a bug when using full purge static caching and saving a Craft Section
Version 2.1.1
January 21, 2021
Fixed
- Fixed an upgrade path error from V1 to V2.1
Version 2.1.0
January 21, 2021
Added
- Automatic, tag based static cache invalidation
Deprecated
- CLI command
clear-caches/servd-asset-storage
useclear-caches/servd-static-cache
instead
Removed
- Handling of filesystem based static cache which is no longer used
Version 2.0.7
January 20, 2021
Fixed
- Fixed a bug which prevented the
settings
property from being accessed on a Servd Assets Volume
Version 2.0.6
January 10, 2021
Fixed
- Fixed a bug which prevented the CDN cache being invalidated for non-image assets when the volume used a subfolder.
Version 2.0.5
January 5, 2021
This update contains a migration which attempts to maintain any existing custom domains which you have used in previous versions of the plugin. Please double check your volume settings after updating to make sure that this migration has had the intended effect.
Added
- You can now define fully custom URL structures for source files and optimised images which make use of custom domains. You'll need to provide your own logic (in a Cloudflare worker or Lambda@edge) to proxy this request and convert the URL structure back to Servd's expected format.
Updated
- Servd asset volumes are now forced to use the correct Base URL to avoid incorrect settings for this value
Version 2.0.4
December 14, 2020
Added
- The data for the Yii2 Debug Bar will be stored in Redis instead of the filesystem, allowing it to work on ephemeral or load balanced environments.
Version 2.0.3
December 14, 2020
Added
- You can now clear the CDN cache for the Servd Assets Platform by clicking a button in the Craft CP. This will cause any image transforms to be re-applied and any caches for original files will be destroyed.
Version 2.0.2
November 30, 2020
Fixed
- CORS tokens were being injected into pages even when they were disabled. These overexicted tokens are now firmly back under control.
Version 2.0.1
November 13, 2020
Fixed
- Graceful handling of a situation in which the $SERVD_ASSETS_ENVIRONMENT is explicitly set in the plugin settings, but the env var doesn't actually exist
- Fixed display of a control panel alert which prompts user to add appropriate plugin settings
Version 2.0.0
November 8, 2020
Added
- ImageOptimize support for Servd assets platform
- ImagerX support for Servd assets platform (requires ImagerX Pro)
- Control panel warnings for Servd related misconfigurations
Updated
- Large code refactor to plan for upcoming new features
- Moved Servd Project Slug and Security Key config param to plugin settings instead of volume settings
Fixed
- Some things that previously broke, but nobody noticed 🤫
- No default env var fallback for $SERVD_ASSETS_ENVIRONMENT (#11)
Removed
- Support for Servd's legacy asset platform
Version 1.3.12
October 17, 2020
Fixed
- Fixed a bug introduced with Craft 3.5 which prevents assets being downloaded from the control panel
Version 1.3.11
September 11, 2020
Updated
- Only asynchronously load CSRF tokens if there's an element on the page which will actually use it. Reduces precious PHP executions for statically cached sites.
Version 1.3.10
September 10, 2020
Fixed
- Optimised assets with special characters in their filename were generating an incorrect security token because of some url encoding things. That is now longer the case and everyone can now safely include spaces, copyright symbols or aubergine emojis in their filenames.
Version 1.3.9
September 3, 2020
Added
- Ability to override the automatically detected environment for assets. This allows, for E.G., developers to use the assets stored in their production environment whilst working locally.
Version 1.3.8
September 3, 2020
Fixed
- Fixed a typo in the plugin settings
Version 1.3.7
August 25, 2020
Added
- Ability to disable automatic static cache clearing or restrict it to only occur when entries are saved as part of a control panel request.
Version 1.3.6
August 7, 2020
Added
- Ability to replace the domain used for optimised images. This allows the use of custom domains for assets stored within the Servd Assets Platform. Read how.
Version 1.1.0
August 9, 2019
Added static cache busting on element updates (beta)
Version 1.0.0
June 30, 2019
Initial release.