{"id":277039,"date":"2026-01-27T19:34:27","date_gmt":"2026-01-27T19:34:27","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/cache-purge-for-azure-front-door\/"},"modified":"2026-02-09T12:02:23","modified_gmt":"2026-02-09T12:02:23","slug":"cache-purge-for-azure-front-door","status":"publish","type":"plugin","link":"https:\/\/cl.wordpress.org\/plugins\/cache-purge-for-azure-front-door\/","author":23296209,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.3","stable_tag":"1.3","tested":"6.9.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Cache Purge for Azure Front Door","header_author":"Hiberus","header_description":"Automatically purges Azure Front Door cache when WordPress content is updated.","assets_banners_color":"d7e2ef","last_updated":"2026-02-09 12:02:23","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.hiberus.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":244,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.1":{"tag":"1.1","author":"hiberus","date":"2026-01-27 19:33:51"},"1.2":{"tag":"1.2","author":"hiberus","date":"2026-02-02 08:42:04"},"1.3":{"tag":"1.3","author":"hiberus","date":"2026-02-09 12:02:23"}},"upgrade_notice":{"1.3":"<p>Security improvements: AJAX actions are now protected with nonces, and a dedicated capability (<code>access_azure_cache<\/code>) has been added. It is recommended to update.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3448156,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3448156,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3448156,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3448156,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.1","1.2","1.3"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3457003,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3457003,"resolution":"2","location":"assets","locale":""}},"screenshots":{"1":"The Activity Log page with the \"Manually Purge Cache\" button.","2":"The Settings page where Azure credentials are securely stored."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[13289,146,3863,254787,7914],"plugin_category":[52],"plugin_contributors":[255072,254788,255508,255507,254789,255071,255073],"plugin_business_model":[],"class_list":["post-277039","plugin","type-plugin","status-publish","hentry","plugin_tags-azure","plugin_tags-cache","plugin_tags-cdn","plugin_tags-front-door","plugin_tags-purge","plugin_category-performance","plugin_contributors-dromang","plugin_contributors-hiberus","plugin_contributors-javiermarin","plugin_contributors-jgmf","plugin_contributors-juanjoache","plugin_contributors-romerog","plugin_contributors-sllorentedev","plugin_committers-hiberus"],"banners":{"banner":"https:\/\/ps.w.org\/cache-purge-for-azure-front-door\/assets\/banner-772x250.png?rev=3448156","banner_2x":"https:\/\/ps.w.org\/cache-purge-for-azure-front-door\/assets\/banner-1544x500.png?rev=3448156","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cache-purge-for-azure-front-door\/assets\/icon-128x128.png?rev=3448156","icon_2x":"https:\/\/ps.w.org\/cache-purge-for-azure-front-door\/assets\/icon-256x256.png?rev=3448156","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/cache-purge-for-azure-front-door\/assets\/screenshot-1.png?rev=3457003","caption":"The Activity Log page with the \"Manually Purge Cache\" button."},{"src":"https:\/\/ps.w.org\/cache-purge-for-azure-front-door\/assets\/screenshot-2.png?rev=3457003","caption":"The Settings page where Azure credentials are securely stored."}],"raw_content":"<!--section=description-->\n<ul>\n<li><strong>Manual Purge Control:<\/strong> Execute a global cache purge (\/*) at the click of a button from the admin interface.<\/li>\n<li><strong>Connection Validator:<\/strong> Quickly verify if your Azure credentials (Tenant ID, Client ID, etc.) are correctly configured.<\/li>\n<li><strong>Detailed Activity Logs:<\/strong> A comprehensive history of all purge actions, showing who triggered the purge, the result, and the API response time.<\/li>\n<li><strong>Security Focused:<\/strong> Built using WordPress best practices, including Settings API and secure AJAX handlers.<\/li>\n<\/ul>\n\n<p>This plugin uses Azure\u2019s REST API to send cache invalidation requests. It is lightweight and non-intrusive.\nThis plugin is not affiliated with Microsoft. \"Azure\" and \"Azure Front Door\" are trademarks of Microsoft Corporation.\nFor more details, see the official <a href=\"https:\/\/learn.microsoft.com\/en-us\/rest\/api\/frontdoor\/azurefrontdoorstandardpremium\/afd-endpoints\/purge-content\">Azure Front Door Purge Content API documentation<\/a>.<\/p>\n\n<h3>External Services<\/h3>\n\n<p>This plugin relies on the <strong>Azure Management API<\/strong> to perform cache purges.<\/p>\n\n<ul>\n<li><strong>Service:<\/strong> Azure Management API (https:\/\/management.azure.com)<\/li>\n<li><strong>Purpose:<\/strong> This service is used to send purge commands to your Azure Front Door profile.<\/li>\n<li><strong>Data Sent:<\/strong> No user data is sent. The plugin only sends the content paths (URLs) to be purged and the authentication token provided by your Azure Tenant.<\/li>\n<li><strong>Terms of Service:<\/strong> <a href=\"https:\/\/azure.microsoft.com\/en-us\/support\/legal\/\">Azure Legal Information<\/a><\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin sends requests to the Azure API to purge cache. It does not transmit or store any personal user data. It is fully GDPR-compliant.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to the <code>\/wp-content\/plugins\/<\/code> directory.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Go to <strong>Azure Purge<\/strong> menu and select <strong>Settings<\/strong> tab to enter your Azure credentials (Tenant ID, Client ID, Secret, etc.).<\/li>\n<li>Go to <strong>Azure Purge<\/strong> menu and select <strong>Activity<\/strong> tab to verify the connection.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20target%20specific%20urls%3F\"><h3>Can I target specific URLs?<\/h3><\/dt>\n<dd><p>Currently, the plugin purges \/* (all cached content) by default. Custom patterns will be supported in a future version.<\/p><\/dd>\n<dt id=\"where%20are%20logs%20stored%3F\"><h3>Where are logs stored?<\/h3><\/dt>\n<dd><p>The plugin creates a custom database table (wp_azure_cache_logs) to store purge attempts and their results.<\/p><\/dd>\n<dt id=\"what%20permissions%20do%20i%20need%20in%20azure%3F\"><h3>What permissions do I need in Azure?<\/h3><\/dt>\n<dd><p>The App Registration used must have at least the \"CDN Endpoint Contributor\" role on your Azure Front Door resource.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3<\/h4>\n\n<ul>\n<li>Added filters to the logs table: date range (start and end), action, result contains, user, and duration range.<\/li>\n<li>Improved internationalization: Spanish translations for filter labels and buttons.<\/li>\n<li>Improved security in AJAX actions by enforcing nonce validation.<\/li>\n<li>Introduced a custom plugin capability (<code>access_azure_cache<\/code>) and replaced all usage of <code>manage_options<\/code>.<\/li>\n<li>Standardized activation and uninstall processes:\n\n<ul>\n<li>Activation: creates logs table and assigns the plugin capability to Administrators.<\/li>\n<li>Uninstall: safely removes custom DB table and plugin options.<\/li>\n<\/ul><\/li>\n<li>Improved internationalization loading (textdomain) and added localized strings to JavaScript.<\/li>\n<li>Codebase hardening and structural cleanup, without modifying core purge logic.<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>Unified menu structure: Single \"Azure Purge\" menu with \"Activity\" and \"Settings\" tabs.<\/li>\n<li>Added full internationalization (i18n) support.<\/li>\n<li>Added Spanish translations for all plugin text and JavaScript buttons.<\/li>\n<li>Added descriptive help text below all configuration inputs in Settings.<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>Added Settings API for secure credential storage.<\/li>\n<li>Implemented Object Caching for log performance.<\/li>\n<li>Improved security with Nonces and SQL preparation.<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Initial release to the public repository.<\/li>\n<\/ul>","raw_excerpt":"Manage and execute Azure Front Door cache purges from your WordPress dashboard.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/277039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=277039"}],"author":[{"embeddable":true,"href":"https:\/\/cl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/hiberus"}],"wp:attachment":[{"href":"https:\/\/cl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=277039"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=277039"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=277039"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=277039"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=277039"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=277039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}