IMPORTANT for existing users: The new R2 functions and control of new settings require some new permissions for the API Token you use. You can go to your
Cloudflare API Tokens, edit the token you have and
add the following permissions:
- Account.Account Analytics: Read
- Account.Workers R2 Storage: Edit
- Zone.Bot Management: Edit
- Zone.Cache Rules: Edit
You should have a total of 14 permissions for your API token at this point. If you don't have 14, you can check what you should have under XF Admin -> Options -> External service providers -> Cloudflare authentication
General
- Fixed issue with compatibility with old versions of PHP.
- Requires PHP 7.0 or higher (just getting too annoying/difficult to maintain backward compatibility with very old versions of PHP on old versions of XenForo).
- New Cloudflare setting: Network error logging
- Bot Fight Mode, Automatic Signed Exchanges (SXGs) & AMP Real URL settings can be used with API tokens now (before you had to use Global API keys to access those settings).
- Added note about changing Worker subdomain.
- New option for country blocking allows blocking to apply to entire site or just registration.
- Make it so XenForo's FsMount class can disable asserts on a per-adapter basis (makes filesystem faster and cuts R2 API calls in half because we don't need to explicitly check if an object exists before we try to get it).
- Changed verbiage reflect Cloudflare's change of "firewall filter rules" to simply "firewall rules".
- Cloudflare API calls that return a server error code (5xx) will transparently retry once before giving up.
R2 (object storage)
- R2 support (yay!)
- R2 requires use of an API token (can't use Global API key, no way around that).
- Internally caching Cloudflare account ID, so we don't need to make API call to get it over and over (account ID normally never changes).
- Internally caching API token ID (required for R2 usage).
- New CLI command to migrate data between two different abstracted filesystems: php cmd.php dp:migrate-data [--new-to-old] [--processes=PROCESSES] [--start-at-path=START-AT-PATH] [--location=LOCATION] [--path=PATH]
- Can see R2 storage/usage for Cloudflare account as a whole (in footer of R2 admin area).
- Can see recent R2 logs (for individual buckets as well as Cloudflare account-level).
What is R2? R2 is a cloud object storage system. This add-on allows you to store things like avatars and attachments in the cloud rather than your server. The cost to use R2 is extremely reasonable... the first 10GB of storage is free, each GB after 10GB is $0.015 per month. For example, if you had 100GB of attachments and avatars you wanted to store in R2, the cost would would be $1.35 per month.
I've built a CLI tool to migrate data from one file system to another (for example you could go from local storage to R2 with it), however it needs to work within the limitations of XenForo and Flysystem. Which means, if you need to move more than a few GB worth of files, you are going to be better off using a free utility like
rclone to do it.