{"id":20028688,"url":"https://github.com/phase2/purge_all","last_synced_at":"2026-05-16T22:31:33.884Z","repository":{"id":137100076,"uuid":"55436918","full_name":"phase2/purge_all","owner":"phase2","description":"Facilitate purging entire Drupal site via Expire module.","archived":false,"fork":false,"pushed_at":"2016-04-04T18:59:04.000Z","size":3,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"7.x-1.x","last_synced_at":"2025-05-15T18:51:43.292Z","etag":null,"topics":["cache","drupal","proxy"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phase2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-04T18:57:39.000Z","updated_at":"2017-05-18T17:42:24.000Z","dependencies_parsed_at":"2024-02-24T06:15:44.600Z","dependency_job_id":null,"html_url":"https://github.com/phase2/purge_all","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/phase2/purge_all","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phase2%2Fpurge_all","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phase2%2Fpurge_all/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phase2%2Fpurge_all/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phase2%2Fpurge_all/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phase2","download_url":"https://codeload.github.com/phase2/purge_all/tar.gz/refs/heads/7.x-1.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phase2%2Fpurge_all/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265687096,"owners_count":23811218,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cache","drupal","proxy"],"created_at":"2024-11-13T09:16:01.987Z","updated_at":"2026-05-16T22:31:28.855Z","avatar_url":"https://github.com/phase2.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Purge All\n\n\u003e Facilitate purging entire Drupal site via Expire module.\n\n[Expire module](https://www.drupal.org/project/expire) has a longstanding gap in\nsupport of purging an entire site (or the domain associated with an entire site)\nbased on the configured trigger actions it provides.\n\n## Module Implementation\n\nThis module builds on [Purge module](https://www.drupal.org/project/purge), but\nhas such a basic use case compared to much of the Purge module's plumbing that\nit is largely leverage Purge configuration without touching the Purge API.\n\nYou can configure Purge All via the Expire module. Purge All settings and actions\nwill only be triggered if the Purge module has been selected as the expiration\nmethod.\n\n## Infrastructure Requirements\n\nIn order for this module to work, your proxy cache must be configured to receive\na custom HTTP request method: `PURGEALL`. The URL submitted to the proxy should\nbe wildcard purged.\n\nHere is an example of a Varnish4 VCL to support PURGEALL:\n\n```\nif (req.method == \"PURGEALL\") {\n  // Purge all objects from cache that match the incoming host\n  ban (\"req.url ~ ^/ \u0026\u0026 req.http.host == \" + req.http.host);\n  return (synth(200, \"Purged\"));\n}\n```\n\n## Todos\n\n* Remove duplicate code from `includes/PurgeAllExpireNode.php` if Expire module makes that possible.\n* Support entity types other than Node.\n\n## Credits\n\nThis module is built on the excellent work in [Drupal Issue #1304812](https://www.drupal.org/node/1304812), especially:\n\n* [mauritsl](https://www.drupal.org/u/mauritsl) for original issue and Varnish3 VCL\n* [sokrplare](https://www.drupal.org/u/sokrplare) for HTTP PURGEALL request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphase2%2Fpurge_all","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphase2%2Fpurge_all","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphase2%2Fpurge_all/lists"}