[DigitalPoint] App for Cloudflare®

xF2 Add-on [DigitalPoint] App for Cloudflare® 1.8.2

No permission to download
  • Removed repository dependency within R2 adapter
  • When checking if a file exists on R2, only fall back to checking if it's a "directory" if there's no file extension in the path (less class A operations)
IMPORTANT for existing users: A change to Crawler Hint API calls requires a new API permission to be able to set it. You can go to your Cloudflare API Tokens, edit the token you have and add the following permissions:
  • Zone.Zone: Edit
You should have a total of 15 permissions for your API token at this point. If you don't have 15, you can check what you should have under XF Admin -> Options -> External service providers -> Cloudflare authentication
  • Fix for change to Crawler Hint API calls (needed to change Crawler Hints setting)
  • Updated parameters for Network error logging when doing "Easy config"
  • Normalize path when getting a list of multiple objects
  • Add support for getting listings of directories inside buckets in R2 adapter (a little tricky because R2 it not a file system in the traditional sense as there are no actual directories). Should make it so exporting styles with attached assets should work if those assets are stored in R2.
  • Like
Reactions: BattleKing
Hate pushing quick versions out (sorry)... but a necessary fix for media uploads which are handled slightly differently than other uploaded content (like avatars and attachments).
  • Like
Reactions: BattleKing
  • Don't assume R2 bucket still exists when getting usage stats for buckets (in case someone deleted the bucket they are currently using)
  • Fixed issue when trying to configure R2 for the first time, but Cloudflare account does not have R2 enabled yet
  • Added sanity check for external data URL option in case addon somehow got partially (but not fully) installed
  • If using guest page caching and purge cache API call fails when a new post is created, edited or deleted, fail silently
  • Automatically remove cached account ID if it's invalid (Cloudflare account changed for site)
  • Don't assume template method is callable (fixes issue where XenForo addon installation process would give a temporary error when template modifications were enabled but class extensions are not yet)
  • Like
Reactions: BattleKing
  • Fixed issue where the function to add public subdomain and Cache Rule to an existing R2 bucket wouldn't work
  • Removed dependency on third-party library to get list of countries for firewall blocking
  • Changed how guest page caching updates tokens in GET request URLs
  • Only cache guest pages if the visitor is using the default language and style
  • Like
Reactions: BattleKing
  • More tuning of logic for when to do guest page caching
  • Made change so other addons that are also extending the filesystem mount class are able to do so with backward compatibility
  • Fixed cosmetic issue with overflow of R2 logs in overlay window
  • Prevent users from using the same bucket for public and private areas (prevent users from exposing internal-data as a public bucket)
  • Added note about style, language and advanced cookie consent in XF 2.2.12+ to known limitations for guest page caching
  • Made some minor changes to the logic of when to serve cached pages or not (Guest page caching)
  • If a session is empty (like when a user logs out), go ahead and fully expunge it
  • Made some changes to R2 adapter so it could be configured for extra directories via config.php
  • Added some code to work around XenForo not updating CSRF token in URLs (this bug report)
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).
1672939054883.jpg

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.
This adds some functionality to Cloudflare's Turnstile captcha option added to XenForo 2.2.12.

IMPORTANT for existing users: The new Turnstile functions require a new permission for the API Token you use. You can go to your Cloudflare API Tokens, edit the token you have and add the Account.Turnstile: Edit permission.


One-click Turnstile site creation

You can automatically set up Turnstile for your site without going to Cloudflare's site with a "Setup in Cloudflare" button:
1670523151594.jpg
1670523184021.jpg

Buttons for direct links to Settings and Analytics

Once Turnstile is setup for your site, you will get new Settings and Analytics buttons that give you direct links to manage/report on your Turnstile site within Cloudflare.
1670523448081.jpg
  • Like
Reactions: BattleKing
Minor update...
  • Give human-readable error when the domain/zone does not exist on Cloudflare account when trying to work with it.
  • Like
Reactions: BattleKing
Top