Content Hub

Using Drush with Content Hub

Important

Content Hub 2.x will reach end-of-life on December 31, 2024. Acquia recommends that you update your Content Hub version to Content Hub 3.x by using the composer require instructions available on the acquia_contenthub project page.

Content Hub includes several Drush commands for both normal product use and for more advanced administration. You can use the commands to administer your content from the command line. For more information about Drush, see Introduction to Drush.

Note

Drush versions 10.3.3 and later have enhanced queue handling that improves the export and import processes in Content Hub.

Drush commands

Drush commandsDescriptionModule versionDrush 8.x compatible (CH 1.x only)Drush 9.x compatibleDrush 10.x compatibleNotes
acquia:contenthub-import-queue-runRuns Content Hub publisher export queue.3.3.x and later𐄂See arguments
acquia:contenthub-export-queue-runRuns Content Hub publisher export queue.3.3.x and later𐄂See arguments
acquia:contenthub:enable-syndicationEnables syndication for a comma-separated list of UUIDs.3.3.x and later𐄂See arguments
acquia:contenthub:disable-syndicationDisables syndication for a comma-separated list of UUIDs.3.3.x and later𐄂See arguments
acquia:contenthub-audit-publisherChecks published entities and compares them with the publisher to ensure consistency1.x𐄂Contains deprecated functions, therefore drush 10.x is incompatible
acquia:contenthub-audit-subscriberCreates a manifest file of entities to import and delete1.x𐄂See arguments
acquia:contenthub-audit-subscriber-execute-manifestReads from the manifest file and executes user-specified changes on entities on the website1.x𐄂See arguments
acquia:contenthub-compareCompares the CDF of an entity from a local source and a remote source, and prints the differences1.xSee arguments
acquia:contenthub-enqueue-by-filtersAdds entities to the import queue on a subscriber site based on the associated filters, except the default filter3.x, 2.x𐄂See arguments
acquia:contenthub-reindexReindex all entities in Content Hub1.xUse with caution: This command can remove content from Content Hub
acquia:contenthub-reset-entitiesDelete all entities of a specified type from Content Hub, reindex, and then re-export the entities back to Content Hub1.xUse with caution: This command can remove content from Content Hub
acquia:contenthub-status-checkChecks for stale content by comparing content published on subscribing websites with the original stored in Content Hub1.xSee arguments
acquia:contenthub-watchdog-queue-sizesLog the size of the import and export queues to Drupal watchdog1.x𐄂𐄂N/A
acquia:contenthub-entityRetrieves an entity from a local source or Content Hub2.x𐄂See arguments
acquia:contenthub:entity-scan:filterHelper drush command for debugging2.x𐄂See arguments
acquia:contenthub-export-local-cdfRequires the location of a YAML $manifest2.x𐄂See arguments
acquia:contenthub-filter-detailsLists the details of a filter2.x𐄂See arguments
acquia:contenthub-filtersLists available Cloud filters2.x𐄂See arguments
acquia:contenthub-filters:attachAttach a filter to the website2.x𐄂See arguments
acquia:contenthub-filters:detachDetach a filter from the website2.x𐄂See arguments
acquia:contenthub-import-local-cdfImports entities from a CDF document2.x𐄂See arguments
acquia:contenthub-publisher-upgradePublisher upgrade command2.x𐄂For 1.x to 2.x upgrades only. Do not run as a standalone command
acquia:contenthub-subscriber-upgradeSubscriber upgrade command2.x𐄂For 1.x to 2.x upgrades only. Do not run as a standalone command
acquia:contenthub-fix-config-entities-with-null-uuidsAssigns randomly generated UUIDs to configuration entities with NULL UUIDs2.x𐄂Experimental: Use with caution
acquia:contenthub-remotePrints the CDF from a remote source (Content Hub)2.x, 1.xDrush 8.x version available for Content Hub 1.x only
acquia:contenthub:remote-settingsRetrieves subscription settings stored in Content Hub3.x, 2.x𐄂N/A
acquia:contenthub-webhooksPerform a webhook management operation2.x, 1.xDrush 8.x version available for Content Hub 1.x only
acquia:contenthub-webhook-interests-purgePerforms a webhook interest list purge operation for the current site2.x
 
acquia:contenthub-connect-siteConnects a site with Content Hub2.x, 1.xDrush 8.x version available for Content Hub 1.x only
acquia:contenthub-deleteDeletes a single entity from the Content Hub2.x, 1.xDrush 8.x version available for Content Hub 1.x only
acquia:contenthub-disconnect-siteDisconnects a site with Content Hub2.x, 1.xDrush 8.x version available for Content Hub 1.x only
acquia:contenthub-listList entities from the Content Hub using the listEntities() method2.x, 1.xDrush 8.x version available for Content Hub 1.x only
acquia:contenthub-list-queue-itemsPrints the content of the import/export queue3.xxSee arguments
acquia:contenthub-localPrints the CDF from a local source (Drupal website)2.x, 1.xxFrom version 3.3.x onwards, the entity-type argument is optional when the entity UUID is passed
acquia:contenthub-purgePurges all entities from Content Hub2.x, 1.xDrush 8.x version available for Content Hub 1.x only; 
Use with caution: This command can remove content from Content Hub
acquia:contenthub-regenerate-secretRegenerates the Shared Secret used for webhook verification2.x, 1.xDrush 8.x version available for Content Hub 1.x only
acquia:contenthub-restoreRestores the backup taken by a previous execution of the purge command2.x, 1.xDrush 8.x version available for Content Hub 1.x only; 
Use with caution: This command can remove content from Content Hub
acquia:contenthub-update-secretUpdates the Shared Secret used for webhook verification2.x, 1.xDrush 8.x version available for Content Hub 1.x only
acquia:contenthub-audit-entityAudits an entity for differences with the existing CDF in Content Hub2.x𐄂See arguments
acquia:contenthub-settingsGets Content Hub settings from the different providers and determines the active configuration2.x𐄂See arguments
acquia:contenthub-re-queueRe-queues entities on publisher or subscriber site2.x𐄂See arguments
queue-listGeneral Drush command returning other Content Hub - related results1.x𐄂𐄂See description
queue-runGeneral Drush command accepting more Content Hub - related arguments1.x𐄂𐄂See arguments
queue:listGeneral Drush command returning other Content Hub - related results2.x𐄂See arguments
queue:runGeneral Drush command accepting more Content Hub - related arguments2.x𐄂See arguments
queue:runGeneral Drush command accepting more Content Hub - related arguments2.x𐄂See arguments

Troubleshooting Drush commands

If you have enabled Content Hub, but Drush commands fail with the message Command [command_name] needs the following extension(s) enabled to run: acquia_contenthub, execute the following command to try to resolve the issue:

drush en acquia_contenthub -y drush cr

If Drush commands for Content Hub continue to fail, create a Support ticket.

Command details

acquia:contenthub-import-queue-run

Runs the Content Hub publisher import queue.

AliasArguments
ach-import (Content Hub 3.3.x and later)
  • This command is available in the acquia_contenthub_publisher module.
  • You can pass an array of options to process the data:
    • --time-limit: The maximum number of seconds allowed to run the queue.
    • --items-limit: The maximum number of items allowed to run the queue.

acquia:contenthub-export-queue-run

Runs the Content Hub publisher export queue.

AliasArguments
ach-export (Content Hub 3.3.x and later)
  • This command is available in the acquia_contenthub_publisher module.
  • You can pass an array of options to process the data:
    • --time-limit: The maximum number of seconds allowed to run the queue.
    • --items-limit: The maximum number of items allowed to run the queue.

acquia:contenthub:enable-syndication

Enables syndication for a comma-separated list of UUIDs.

AliasArguments
ach-es (Content Hub 3.3.x and later)
  • This command requires at least one option or a list of comma-separated options:$uuid
  • uuid: The unique ID of the entity being enabled.

acquia:contenthub:disable-syndication

Disables syndication for a comma-separated list of UUIDs.

AliasArguments
ach-ds (Content Hub 3.3.x and later)
  • This command requires at least one option or a list of comma-separated options:$uuid
  • uuid: The unique ID of the entity being disabled.

acquia:contenthub-audit-publisher

Checks published entities and compares them with what exists in the Content Hub publisher to ensure consistency

AliasArguments
ach-audit-publisher, ach-ap (Content Hub 1.x only)

This command takes the following argument:

  • entity-type

You can pass an array of options to process the data:

  • publish: Republish inconsistent entities to Content Hub
  • status: The export status of the entities to audit, defaults to EXPORTED. Possible values include:
    • EXPORTED
    • INITIATED
    • REINDEX
    • QUEUED

acquia:contenthub-audit-subscriber

Creates a manifest file of entities to import and delete by checking the filter configuration and verifying which entities from Content Hub matches those filters

AliasArguments
ach-audit-subscriber, ach-as (Content Hub 1.x only)

This command takes the following arguments:

  • help: Checks imported entities and compares them to Content Hub
  • manifest_file: The file name, including path, to write the manifest to

You can pass an array of options to process the data:

  • types[=TYPES]: Comma-separated list of entity types to search and delete

Note

This command only gathers information about changes you can make to entities on your website.

acquia:contenthub-audit-subscriber-execute-manifest

Reads from the manifest file created by the ach-as command and executes user-specified changes on entities on the website

AliasArguments
ach-audit-subscriber-exe-manifest, ach-asem (Content Hub 1.x only)

This command takes the following arguments:

  • manifest_file: The file name, including path, to write the manifest to
  • output_manifest_file: The file name, including path, to write the resulting manifest after execution

acquia:contenthub-compare

Compares the CDF of an entity from a local source and a remote source and prints the differences

AliasArguments
ach-comp (Content Hub 1.x only)
  • entity-type
  • uuid: The UUID of the entity

acquia:contenthub-enqueue-by-filters

Adds entities to the import queue on a subscriber site based on the associated filters, except the default filter.

AliasArguments
ach-enqueue-by-filters, ach-enfi
  • --filter-uuids[=FILTER-UUIDS] Creates import queue items based on specified filter uuids, where FILTER-UUIDS is a comma-separated list of filter uuids

acquia:contenthub-reindex

(Developer only) Reindexes all entities in Content Hub

AliasArguments
ach-reindex (Content Hub 1.x only)
  • api: The Content Hub API key 
     
  • secret: Your secret key

acquia:contenthub-reset-entities

(Developer only): Deletes all entities and / or bundles of a specified type from Content Hub, reindexes, and then re-exports the entities or bundles back to Content Hub

AliasArguments
ach-reset (Content Hub 1.x only)
  • entity_type: The entity type
  • api: The Content Hub API key
  • secret: Your secret key
  • bundle_name is available as an option

acquia:contenthub-status-check

Checks for stale content by comparing content published on subscribing websites with the original stored in Content Hub

AliasArguments
ach-st-ch (Content Hub 1.x only)
  • limit: The amount of previous log events to review for content changes
  • threshold: The number of minutes before content is considered stale

acquia:contenthub-watchdog-queue-sizes

Logs the size of the import and export queues to the Drupal watchdog log. (Content Hub 1.x only)

acquia:contenthub-entity

Retrieves an entity from a local source or Content Hub

AliasArguments
ach-ent (Content Hub 2.x only)
  • @param string $op: The operation performed can be local or remote
  • @param string $uuid: Entity identifier or entity’s UUID
  • @param string $entity_type: The entity type in case of local retrieval

acquia:contenthub:entity-scan:filter

This command takes an entity UUID and compares it against the existing Cloud Filters, returning a list of filters and sites that the entity matches.

Run --help to review the help information of the command.

Option to --rebuild-cache to initiate a depcalc cache rebuild using the tracking table before running the scan. This may take a few minutes to complete.

AliasArguments
ach-es-f, ach-esf (Content Hub 2.x only)
  • Requires one argument:$uuid
  • uuid is the exact uuid of the entity being inspected

acquia:contenthub-export-local-cdf

Requires the location of a YAML $manifest

AliasArguments
ach-elc (Content Hub 2.x only)
  • The $manifest file format is a yml file you must create using the following format:

    entities:
      - node:e2ea160b-3512-4302-ad44-0b7113887922
      - node:9ed840bc-3205-476b-ac37-2da260f9808a
      - node:55f2b0f8-aeb2-490f-b5ba-998aef48fb7f
      - media:44bbe986-989e-493f-8691-cd0d39285aa9
    

acquia:contenthub-filter-details

Lists the details of a filter.

AliasArguments
ach-cfds (Content Hub 2.x only)

This command takes the following argument:

  • UUID

acquia:contenthub-filters

Lists available Cloud filters.

AliasArguments
ach-cf (Content Hub 2.x only)

You can pass an array of options to control the output:

  • --webhook[=WEBHOOK_URL] allows the user to define a webhook to display related filters
  • --interactive allows the user to select the webhook to display related filters

acquia:contenthub-filters:attach

Attaches a filter to a website.

AliasArguments
ach-cfa (Content Hub 2.x only)
  • Requires two arguments:$uuid and $url:
  • uuid is the exact uuid of the filter you want to attach
  • url is the webhook URL you want to attach the filter to

acquia:contenthub-filters:detach

Detaches a filter from a website.

AliasArguments
ach-cfd (Content Hub 2.x only)
  • Requires two arguments:$uuid and $url:
  • uuid is the exact uuid of the filter you want to detach
  • url is the webhook URL you want to detach the filter from

acquia:contenthub-import-local-cdf

Imports entities from a CDF document

AliasArguments
ach-ilc (Content Hub 2.x only)
  • Requires a $location of a json file containing a cdf of entities

acquia:contenthub-publisher-upgrade

Publisher upgrade command

AliasArguments
ach-publisher-upgrade, ach-puup (Content Hub 2.x only)N/A

acquia:contenthub-subscriber-upgrade

Subscriber upgrade command

AliasArguments
ach-subscriber-upgrade, ach-suup (Content Hub 2.x only)N/A

acquia:contenthub-fix-config-entities-with-null-uuids

Assigns randomly generated UUIDs to configuration entities with NULL UUIDs (Experimental: Use with caution)

AliasArguments
ach-fix-null-uuids (Content Hub 2.x only)N/A

acquia:contenthub-remote

Prints the CDF from a remote source (Content Hub)

AliasArguments
ach-re (Content Hub 2.x and 1.x)uuid: The UUID of the entity

acquia:contenthub:remote-settings

Retrieves the account details from Content Hub and presents it in an easily readable, formatted table. Information includes the subscription ID, registered webhooks, registered clients, and webhook filter assignments.

AliasArguments
ach-rsN/A

acquia:contenthub-webhooks

Performs a webhook management operation

AliasArguments
ach-wh (Content Hub 2.x and 1.x)
  • This command takes the following argument:
  • op: The operation to use: register, unregister, or list.

    Requires the webhook_url as an option

acquia-contenthub-webhook-interests-purge

Deletes the current webhook and reassigns all existing filters of the current webhook to the newly created webhook. Webhook uuid changes so it must be updated in the configuration. If the configuration is saved in the database, no further action is needed. Otherwise, update the webhook in settings.php or environment variables depending on how the configuration is managed. This deletes everything from the import tracking table and the import queue.

AliasArguments
ach-wi-purgeN/A

acquia:contenthub-connect-site

Connects client to Content Hub

AliasArguments
ach-connect (Content Hub 2.x and 1.x)N/A

acquia:contenthub-delete

Deletes a single entity from Content Hub

AliasArguments
ach-del (Content Hub 2.x and 1.x)
  • UUID: The UUID of the entity
  • --ignore-origin: Ignores the origin check when deleting an entity

acquia:contenthub-disconnect-site

Disconnect the client from Content Hub

AliasArguments
ach-disconnect (Content Hub 2.x and 1.x)N/A

acquia:contenthub-list

List content entities that exist in Content Hub

AliasArguments
ach-list (Content Hub 2.x and 1.x)

You can pass an array of options to control the output:

  • limit: The number of entities to be listed
  • start: The offset to start listing the entities (useful for pagination)
  • origin: The client’s origin UUID
  • language: Filter entities by language: for example, en
  • attributes: The attributes to display for all listed entities
  • type: The entity types to include
  • filters=title=New*, status=1: The filters listed by new titles
  • format: The format for output: for example, --format=json

acquia:contenthub-list-queue-items

On publisher, the command prints the content of the acquia_contenthub_publish_export queue. On subscriber, the command prints the acquia_contenthub_subscriber_import queue. If the site has dual configuration, import/export value must pass the queue option. By default, the queue option will have an export value.

AliasArguments
ach-lqi

You can pass an array of options to control the output:

  • type: A string value of a valid entity type
  • uuid: A string value of a valid entity uuid
  • limit: An integer value to specify the number of items to be returned
  • queue: Available only if the site has dual configurations. Expects the import/export value. The default value is export

acquia:contenthub-local

Prints an entity (in CDF format) from a local source (a Drupal website)

AliasArguments
ach-lo (Content Hub 2.x and 1.x)
  • entity-type
  • entity-id: The ID or UUID of the entity. You can also run ach-ent which is defined here using the local operation.

    Note

    From version 3.3.x onwards, the entity-type argument is optional when entity UUID is passed as an argument.

acquia:contenthub-purge

(Developer only): Deletes all entities from Content Hub

Important

The ach-purge command purges all entities from Content Hub. You must run this command cautiously as it requires elevated permissions. This command helps to recover from a disaster state where other recovery steps fail. This requires re-exporting all entities that are currently in the Content Hub service. Every subsequent execution of this command will override the backup created by the previous call.

To remove content from a healthy subscription, use ach-del.

AliasArguments
ach-purge (Content Hub 2.x and 1.x)
  • api: The Content Hub API key 
     
  • secret: Your secret key

When this command is run, a message like the following displays:

You are about to DROP all tables in your 'MY-WEBSITE' database. Do
you want to continue? (y/n):

You must confirm before Content Hub will purge the contents.

acquia:contenthub-regenerate-secret

Regenerates the shared secret used for webhook verification

AliasArguments
ach-regsec (Content Hub 2.x and 1.x)N/A

acquia:contenthub-restore

(Developer only): Restores the backup taken by a previous execution of the purge command

AliasArguments
ach-restore (Content Hub 2.x and 1.x)
  • api: The Content Hub API key
  • secret: Your secret key

acquia:contenthub-update-secret

Updates the shared secret used for webhook verification

AliasArguments
ach-upsec (Content Hub 2.x and 1.x)N/A

acquia:contenthub-audit-entity

Audits an entity for differences with the existing CDF in Content Hub. It is a publisher command, which is only available if the site has the acquia_contenthub_publisher module enabled. It lists the entity and all its dependencies, and compares that data with the one stored remotely in Content Hub. It provides the option to republish that entity and all its dependencies if there are differences.

AliasArguments
ach-audit-entity, ach-ae (Content Hub 2.x only)

This command takes the following arguments:

  • drush acquia:contenthub-audit-entity node 123: Audits the node with nid = 123 and all its dependencies.
  • drush ach-ae node 53fd2ed2-5d29-4028-9423-0713ef2f82b3: Audits the node with UUID = 53fd2ed2-5d29-4028-9423-0713ef2f82b3.

acquia:contenthub-settings

Gets Content Hub settings from the different providers and determines the active configuration with any override information.

AliasArguments
ach-chs (Content Hub 2.x only)

This command takes the following arguments:

  • drush ach-chs
  • --show-secret-key shows the unmasked secret key set

acquia:contenthub-re-queue

Re-queues entities on publisher or subscriber. The command expects at least one option to be provided. Also, it does not run the export/import queues.

AliasArguments
ach-rq

This command takes the following argument:

  • operation

    Valid operation values:

    • export: For publisher sites.
    • import: For subscriber sites.
  • This command requires at least one of the following options:
    • type: A string value of a valid entity type
    • bundle: A string value of a valid entity bundle
    • uuid: A string value of a valid entity uuid
    • use-tracking-table: A boolean option to re-queue entities that are in the tracking table. If not used, it enqueues all entities of the provided type and bundle.
    • only-queued-entities: A boolean option to only re-queue the entities that have a queued status in the tracking table

queue-list

This command is not specific to Content Hub, but will return more results with it. See drush queue-list

ResultDescription
content_hub_webhook_queueThe number of items in the Content Hub webhook queue

queue-run

This command is not specific to Content Hub. See drush queue-run.

AliasArguments
acquia_contenthub_export_queueProcesses the queue of entities to export
acquia_contenthub_import_queueProcesses the queue of entities to import
content_hub_webhook_queueProcesses the remaining Content Hub webhook queue

queue:list

This command is not specific to Content Hub, but will return more results with it.

AliasArguments
acquia_contenthub_publish_exportProcesses the Content Hub publish export
acquia_contenthub_import_from_filtersProcesses the Content Hub import from filters
acquia_contenthub_subscriber_importProcesses the Content Hub import the subscriber

queue:run

This command is not specific to Content Hub.

AliasArguments
acquia_contenthub_publish_exportProcesses the Content Hub publish export
acquia_contenthub_import_from_filtersProcesses the Content Hub import from filters
acquia_contenthub_subscriber_importProcesses the Content Hub import the subscriber