Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Search API HTML Element Filter 1.0.7 Minor update available for module search_api_html_element_filter (1.0.7). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). UI Patterns (SDC in Drupal UI) 2.0.18 Minor update available for module ui_patterns (2.0.18). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs.

This module allows Drush commands to be executed over HTTP, which is useful for ensuring logs are recorded on certain hosting platforms and for maintaining compliance. You configure it by mapping HTTP aliases to specific Drush commands, and then trigger these commands with a POST request containing the alias.

The HTTP Drush Wrapper module allows for Drush commands to be executed via an HTTP endpoint.

On Acquia Cloud Next (ACN), there is a known issue where Watchdog logs are not recorded when Drupal requests are executed via SSH, Cloud Hooks, or Scheduled Jobs. When initiating requests via HTTP, Watchdog logs are recorded as expected. (This behavior is a regression and does not affect Acquia Cloud Classic (ACC).) While there may be other uses cases, this module was designed to allow ACN customers to maintain FedRAMP compliance.

Commands are executed with the Symfony Process component.

Post-Installation

Grant the administer http drush wrapper permission to users as necessary. Grant this permission to trusted roles only. This permission has security implications.

Navigate to /admin/config/services/http-drush-wrapper to configure the module.

For security reasons, commands cannot be executed directly via HTTP. Instead, define an alias-command mapping for each command. The alias will be called via HTTP request.

The php:eval command is disallowed to prevent remote execution of PHP code.

Usage

To execute a Drush command via HTTP, ensure the configuration step is completed and the endpoint is enabled. Send a POST request to /http-drush with a JSON payload, which contains two properties:

  • access_key: The value of the selected Access Key
  • command_alias: The alias of the command to be run

E.g. Instead of executing drush cron in a Scheduled Job, execute the following via cURL instead:

curl -X POST -H "Content-Type: application/json" -d '{"command_alias": "cron", "access_key": "abc123"}' https://mysite.com/http-drush

Additional Requirements

This module has the following dependencies:

Activity

Total releases
1
First release
Feb 2026
Latest release
5 months ago
Releases (12 mo)
1 ▲ from 0
Maintenance
Active

Releases

Version Type Release date
1.0.0-beta1 Pre-release Feb 3, 2026