Servd Assets and Helpers icon

Servd Assets and Helpers

Version 4.0.1

March 8, 2024

Fixed

  • Fixed a call to a method which has changed signature in Craft 5

Version 4.0.0

February 14, 2024

Added

  • Preliminary Craft 5 Support. Happy valentines day 💕

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 the dynamicLoaded 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

Version 2.1.15

March 5, 2021

Updated

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

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 use clear-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.