Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Installation

Azure DevOps

  1. Visit the Epi CLI Task page on Azure Marketplace.

  2. Click Get it free and add it to your organization.

  3. Include the Epi CLI task in your pipeline:

    steps:
      - task: EpiCli@1
    
  4. Verify the installation by running:

    steps:
      - script: epi -h
    

GitHub

  1. Add the Epi CLI action to your workflow:

    steps:
      - uses: tuyen-at-work/epi-cli-action@master
    
  2. Verify the installation by running:

    steps:
      - run: epi -h
    

Local Installation

MacOS and Linux

Linux users — The unzip package is required to install Epi CLI. Use sudo apt install unzip to install unzip package. Kernel version 5.6 or higher is strongly recommended, but the minimum is 5.1. Use uname -r to check Kernel version.

curl -fsSL https://cli.eshn.dev/install.sh | bash # for macOS, Linux, and WSL

Windows

To install, paste this into a terminal:

powershell -c "irm cli.eshn.dev/install.ps1 | iex"

epi command

Usage

epi [OPTIONS] <COMMAND>

Commands

storage

Storage commands.
Aliases: blob.

deployment

Deployment commands.
Aliases: deploy.

project

Project commands.

app

App commands.
Aliases: application, apps.

db

Database commands.
Aliases: database.

log

Log commands.

content-graph

Content Graph commands.
Aliases: contentgraph, cg.

Options

-r, –root <ROOT>

Directory to use as root of project.
Default: .

–pause

Pause the program after execution.
Aliases: wait.

–pause-if-error

Pause the program after execution if an error occurs.
Aliases: wait-if-error.

–proxy <PROXY>

Proxy server to use.
Example: --proxy http://localhost:8888.

–no-print

Do not print output.

–verbose

Verbose output.

–log-file-path <LOG_FILE_PATH>

Log file path.
Example: --log-file-path /path/to/log/epi-cli.log.
If omitted, the app will attempt to use the environment variable EPI_LOG_FILE_PATH, if exists.

–notification-endpoint <NOTIFICATION_ENDPOINT>

Notification endpoint.
Example: --notification-endpoint http://localhost:8080.
If omitted, the app will attempt to use the environment variable EPI_NOTIFICATION_ENDPOINT, then EPI_NOTIFICATION_URI, finally EPI_NOTIFICATION_URL, if any exist.
Aliases: notification-uri, notification-url.

-h, –help

Print help.

-V, –version

Print version.

epi project command

Project commands.

Usage

epi project <COMMAND>

Commands

list

List all projects.

add

Add a DXP project.
Aliases: connect.

update

Update a DXP project.

remove

Remove existing project.

help

Print this message or the help of the given subcommand(s).

Options

-h, –help

Print help.

epi project add command

Add a DXP project.

Usage

epi project add --name <NAME> --project-id <PROJECT_ID> --client-key <CLIENT_KEY> --client-secret <CLIENT_SECRET>

Examples

To add a new project to your configuration, use the following command with your project-specific credentials:

epi project add \
  --name my-project \
  --id 012345678-0123-1234-2345-0123456789012 \
  --key 5XCxy0REu0W9A41bm9kiBQ0-btzZ8-0YqWItm5HOvaH_M9nl \
  --secret JlIlfaFUuU6Q65bgQxAfawSBbFbnCLocOw_7nJDNTgScHt0FZTCGVmFJyXxGL3Cu

Important: Replace the example values above with the actual credentials from your Optimizely DXP project. You can find these values in your DXP project settings.

Options

–name <NAME>

The project name. You can choose any meaningful name, doesn’t neccessarily have to be the same as the project name in DXP.
Aliases: project.

–project-id <PROJECT_ID>

The ID (should be a guid) of the project. Get it from the DXP PaaS Portal.
Aliases: id.

–client-key <CLIENT_KEY>

The client key used to access the project. Get it from the DXP PaaS Portal.
Aliases: key.

–client-secret <CLIENT_SECRET>

The client secret used to access the project. Get it from the DXP PaaS Portal.
Aliases: secret.

-h, –help

Print help.

epi project list command

List all projects.

Usage

epi project list

Options

-h, –help

Print help.

epi project update command

Update a DXP project.

Usage

epi project update [OPTIONS] --name <NAME>

Options

–name <NAME>

The existing project name.
Aliases: project.

–new-name <NEW_NAME>

The new project name. You can choose any meaningful name, doesn’t neccessarily have to be the same as the project name in DXP.

–project-id <PROJECT_ID>

The Id (should be a guid) of the project.
Aliases: id.

–client-key <CLIENT_KEY>

The client key used to access the project.
Aliases: key.

–client-secret <CLIENT_SECRET>

The client secret used to access the project.
Aliases: secret.

-h, –help

Print help.

epi project remove command

Remove existing project.

Usage

epi project remove --project <PROJECT>

Options

-p, –project <PROJECT>

The project name.
Aliases: name.

-h, –help

Print help.

epi deployment command

Deployment commands.

Usage

epi deployment <COMMAND>

Commands

get

Retrieves deployments that have been triggered via the deployment api for the specified project id.

await-status

Awaiting for all pending deployments to finish.

complete

This function will complete the specified code deployment.

start

Starts a code deployment for the specified project.

reset

Resets or completes resetting the specified deployment.

add-package

Will upload the specified file to the code package container by using a SAS link.
Aliases: addpackage.

get-package-location

Retrieves the location where deployment packages can be uploaded.
Aliases: getpackagelocation.

get-package-properties

Retrieves the properties of the specified deployment package.
Aliases: getpackageproperties, getpackage.

parse

Parse the deployment result.

help

Print this message or the help of the given subcommand(s).

Options

-h, –help

Print help.

epi deployment get-package-properties command

Retrieves the properties of the specified deployment package.

Usage

epi deployment get-package-properties --project <PROJECT> --name <NAME>

Examples

Get the properties of a deployment package:

epi deployment get-package-properties \
  -p my-project \
  -n my-project.cms.app.1.0.0.nupkg

Options

-p, –project <PROJECT>

The project name.

-n, –name <NAME>

The name of the deployment package.

-h, –help

Print help.

Remarks

If the package already exist, the CLI returns the package properties in JSON format. Below is an example of the output:

{
  "packageName": "my-project.cms.app.1.0.0.nupkg",
  "createdOn": "2025-07-10T07:47:04.0000000+00:00",
  "contentHash": "DC9FE3AA5776C4D5503A198BA587557F"
}

epi deployment get-package-location command

Retrieves the location where deployment packages can be uploaded.

Usage

epi deployment get-package-location --project <PROJECT>

Options

-p, –project <PROJECT>

The project name.
Aliases: name.

-h, –help

Print help.

epi deployment add-package command

Will upload the specified file to the code package container by using a SAS link.

Usage

epi deployment add-package [OPTIONS] --path <PATH>

Options

-u, –url <URL>

The Sas link contains access to storage account.
Aliases: sas-link, sas-url.

-p, –path <PATH>

The file name with full path.

-n, –blob-name <BLOB_NAME>

The name of Blob in the container.
Aliases: name.

-h, –help

Print help.

epi deployment start command

Starts a code deployment for the specified project.

Usage

epi deployment start [OPTIONS] --project <PROJECT> --target-environment <TARGET_ENVIRONMENT>

Examples

Deploy a package to the Integration environment:

epi deployment start \
  --project my-project \
  --deployment-package my-project.cms.app.1.0.0.nupkg \
  --env Integration \
  --direct-deploy true \
  --use-maintainance-page true \
  --wait true \
  --show-progress true

Promote deployment package and content from Integration to Preproduction environment, including database and blob storage:

epi deployment start \
  -p my-project \
  --source-app cms \
  --source-environment Integration \
  --include-blob true \
  --include-db true \
  --target-environment Preproduction \
  --wait true \
  --show-progress true

Options

-p, –project <PROJECT>

The project name.
Aliases: name.

–source-app <SOURCE_APP>

The source app(s) for the deployment (if no uploaded code package should be used).
Example: --source-app cms --source-app commerce.
Possible values: cms, commerce.

–source-environment <SOURCE_ENVIRONMENT>

The source environment for the deployment (if no uploaded code package should be used).
Possible values: integration, preproduction, production, ade1, ade2.

–deployment-package <DEPLOYMENT_PACKAGE>

The code package(s) being deployed.
Example: --deployment-package cms.app.1.0.0.nupkg --deployment-package cms.sqldb.1.bacpac.
Aliases: package.

–use-maintainance-page <USE_MAINTAINANCE_PAGE>

The flag to tell whether maintenance page is used during the deployment.
Default: false.
Possible values: true, false.

–zero-downtime-mode <ZERO_DOWNTIME_MODE>

What database mode to use on the primary web app.
If omitted, zero downtime mode will not be used.
Aliases: zero-down-time-mode.
Possible values: none, read-only, read-write, not-applicable.

–include-db <INCLUDE_DB>

Specify this switch to include the SQL DB from the source environment.
Default: false.
Possible values: true, false.

–include-blob <INCLUDE_BLOB>

Specify this switch to include blobs from the source environment.
Default: false.
Possible values: true, false.

–target-environment <TARGET_ENVIRONMENT>

The target environment to which the code should be deployed.
Aliases: target, env.
Possible values: integration, preproduction, production, ade1, ade2.

–direct-deploy <DIRECT_DEPLOY>

Specify this switch to speed up deployments to Integration/Development environment.
A deployment will be made directly to the target web app without performing a swap.
Attention: Resetting the deployment (or the database of the target environment) is not supported for DirectDeploy.
Default: false.
Possible values: true, false.

–wait <WAIT>

Specify this switch to enable “polling” of the deployment until it’s completed.
Default: false.
Possible values: true, false.

–show-progress <SHOW_PROGRESS>

Specify this switch to enable a progress bar indicating deployment progress.
Default: false.
Possible values: true, false.

–wait-timeout-minutes <WAIT_TIMEOUT_MINUTES>

The maximum amount of time, in minutes, to wait for the deployment to finish.
Default: 240.

–polling-interval-seconds <POLLING_INTERVAL_SECONDS>

How often, in seconds, to poll for deployment status.
Default: 30.
Aliases: polling-interval-sec.

Specify this switch to validate the target site after the deployment.
Possible values: true, false.

The default validation link(s) to use if no validation link is provided in the deployment result.
Example: --validation-default-link https://www.example.com --validation-default-link https://www.example2.com.
Note: these links will be ignored if DXP returns a validation link in the deployment result.

–validation-delay-seconds <VALIDATION_DELAY_SECONDS>

The maximum amount of time, in seconds, to wait for the validation to start.
Default: 10.

–validation-timeout-minutes <VALIDATION_TIMEOUT_MINUTES>

The maximum amount of time, in minutes, to wait for the validation to finish.
Default: 5.

–notification-type <NOTIFICATION_TYPE>

The notification type.
Aliases: type.

–notification-id <NOTIFICATION_ID>

The notification id.

–notification-channel <NOTIFICATION_CHANNEL>

The notification channel to send the notification to.

–notification-salt <NOTIFICATION_SALT>

The notification channel salt.

–notification-env <NOTIFICATION_ENV>

The environment name or ID.

–notification-branch <NOTIFICATION_BRANCH>

The branch name.

–notification-requested-for <NOTIFICATION_REQUESTED_FOR>

The user who requested the deployment.

–notification-run-url <NOTIFICATION_RUN_URL>

The pipeline run URL.

–notification-run-id <NOTIFICATION_RUN_ID>

The pipeline run ID.

–notification-run-attempt <NOTIFICATION_RUN_ATTEMPT>

The pipeline run attempt.

–notification-job-id <NOTIFICATION_JOB_ID>

The pipeline job ID.

–last-message <LAST_MESSAGE>

The encrypted message of the last notification.
Used to update the last notification in the specified channel, instead of creating a new one.

-h, –help

Print help.

Remarks

When the deployment completes successfully, the CLI returns the deployment results in JSON format. Below is an example of the output structure for a successful deployment:

{
  "id": "caa3cfb8-741f-48d8-8658-4b36b3dae1bc",
  "projectId": "f8e8e7cf-e08f-46b1-9fdd-38942681d80f",
  "status": "AwaitingVerification",
  "percentComplete": 100.0,
  "validationLinks": [
    "http://sample-link.dxcloud.episerver.net/"
  ],
  "deploymentWarnings": [],
  "deploymentErrors": [],
  "parameters": {
    "targetEnvironment": "Integration",
    "maintenancePage": false,
    "zeroDowntimeMode": "NotApplicable",
    "packages": [
      "my-project.cms.app.1.0.0.nupkg"
    ]
  }
}

The id field is particularly important as it can be referenced in other deployment commands, such as complete or reset.

In case of error, the output will looks like below:

{
  "errors": [
    "Can not use DirectDeploy to Integration as there is already an on-going code deployment."
  ],
  "result": null,
  "success": false
}

epi deployment complete command

This function will complete the specified code deployment.

Usage

epi deployment complete [OPTIONS] --project <PROJECT> --id <ID>

Examples

Complete a deployment by providing the deployment ID. You can obtain this ID from the output of the epi deployment start command.

epi deployment complete \
  -p my-project \
  --id 012345678-0123-1234-2345-0123456789abc \
  --wait true \
  --show-progress true

Options

-p, –project <PROJECT>

The project name.
Aliases: name.

–id <ID>

The Id (should be a guid) of the deployment that you want to complete.

–wait <WAIT>

Specify this switch to wait for the deployment to finish.
Default: false.
Possible values: true, false.

–show-progress <SHOW_PROGRESS>

Specify this switch to enable a progress bar indicating deployment progress.
Default: true.
Possible values: true, false.

–wait-timeout-minutes <WAIT_TIMEOUT_MINUTES>

The maximum amount of time, in minutes, to wait for the reset to finish.
Default: 240.

–polling-interval-seconds <POLLING_INTERVAL_SECONDS>

The time interval, in seconds, to check the deployment status.
Default: 30.

–notification-type <NOTIFICATION_TYPE>

The notification type.
Aliases: type.

–notification-id <NOTIFICATION_ID>

The notification id.

–notification-channel <NOTIFICATION_CHANNEL>

The notification channel to send the notification to.

–notification-salt <NOTIFICATION_SALT>

The notification channel salt.

–notification-env <NOTIFICATION_ENV>

The environment name or ID.

–notification-branch <NOTIFICATION_BRANCH>

The branch name.

–notification-requested-for <NOTIFICATION_REQUESTED_FOR>

The user who requested the deployment.

–notification-run-url <NOTIFICATION_RUN_URL>

The pipeline run URL.

–notification-run-id <NOTIFICATION_RUN_ID>

The pipeline run ID.

–notification-run-attempt <NOTIFICATION_RUN_ATTEMPT>

The pipeline run attempt.

–notification-job-id <NOTIFICATION_JOB_ID>

The pipeline job ID.

–last-message <LAST_MESSAGE>

The encrypted message of the last notification.
Used to update the last notification in the specified channel, instead of creating a new one.

-h, –help

Print help.

epi deployment reset command

Resets or completes resetting the specified deployment.

Usage

epi deployment reset [OPTIONS] --project <PROJECT> --id <ID>

Options

-p, –project <PROJECT>

The project name.
Aliases: name.

–id <ID>

The Id (should be a guid) of the project.

–rollback-database <ROLLBACK_DATABASE>

Specify this switch to rollback database if maintenance mode was applied.
Default: false.
Possible values: true, false.

–validate-before-swap <VALIDATE_BEFORE_SWAP>

Specify this switch to validate the target site before completing the reset progress if maintenance mode was applied.
Default: false.
Possible values: true, false.

–complete <COMPLETE>

Specify this switch to complete resetting a deployment.
Default: false.
Possible values: true, false.

–wait <WAIT>

Specify this switch to wait for the deployment to finish.
Default: false.
Possible values: true, false.

–show-progress <SHOW_PROGRESS>

Specify this switch to enable a progress bar indicating deployment progress.
Default: true.
Possible values: true, false.

–wait-timeout-minutes <WAIT_TIMEOUT_MINUTES>

The maximum amount of time, in minutes, to wait for the reset to finish.
Default: 240.

–polling-interval-seconds <POLLING_INTERVAL_SECONDS>

The time interval, in seconds, to check the deployment status.
Default to 30 seconds.
Default: 30.

–notification-type <NOTIFICATION_TYPE>

The notification type.
Aliases: type.

–notification-id <NOTIFICATION_ID>

The notification id.

–notification-channel <NOTIFICATION_CHANNEL>

The notification channel to send the notification to.

–notification-salt <NOTIFICATION_SALT>

The notification channel salt.

–notification-env <NOTIFICATION_ENV>

The environment name or ID.

–notification-branch <NOTIFICATION_BRANCH>

The branch name.

–notification-requested-for <NOTIFICATION_REQUESTED_FOR>

The user who requested the deployment.

–notification-run-url <NOTIFICATION_RUN_URL>

The pipeline run URL.

–notification-run-id <NOTIFICATION_RUN_ID>

The pipeline run ID.

–notification-run-attempt <NOTIFICATION_RUN_ATTEMPT>

The pipeline run attempt.

–notification-job-id <NOTIFICATION_JOB_ID>

The pipeline job ID.

–last-message <LAST_MESSAGE>

The encrypted message of the last notification.
Used to update the last notification in the specified channel, instead of creating a new one.

-h, –help

Print help.

epi deployment await-status command

Awaiting for all pending deployments to finish.
Typical use case is avoid starting a new deployment until the previous one is finished.

Usage

epi deployment await-status [OPTIONS] --project <PROJECT> --environment <ENVIRONMENT>

Options

-p, –project <PROJECT>

The project name.
Aliases: name.

–environment <ENVIRONMENT>

The environment to check the status of the deployment.
Aliases: env.
Possible values: integration, preproduction, production, ade1, ade2.

–wait-timeout-minutes <WAIT_TIMEOUT_MINUTES>

The maximum amount of time, in minutes, to wait for the reset to finish.
Default: 240.

–polling-interval-seconds <POLLING_INTERVAL_SECONDS>

The time interval, in seconds, to check the deployment status.
Default: 30.

–last-message <LAST_MESSAGE>

The encrypted message of the last notification.
Used to update the last notification in the specified channel, instead of creating a new one.

-h, –help

Print help.

epi deployment get command

Retrieves deployments that have been triggered via the deployment api for the specified project id.

Usage

epi deployment get --project <PROJECT> --id <ID>

Options

-p, –project <PROJECT>

The project name.
Aliases: name.

–id <ID>

The Id (should be a guid) of the deployment.

-h, –help

Print help.

epi db command

Database commands.

Usage

epi db <COMMAND>

Commands

export

Starts a database export for the specified project, environment and database combination.

get-export

Retrieves information for the specified database export.
Aliases: getexport.

help

Print this message or the help of the given subcommand(s).

Options

-h, –help

Print help.

epi db export command

Starts a database export for the specified project, environment and database combination.

Usage

epi db export [OPTIONS] --project <PROJECT> --environment <ENVIRONMENT>

Options

-p, –project <PROJECT>

The project name.
Aliases: name.

–environment <ENVIRONMENT>

The environment that the database belongs to.
Aliases: env.
Possible values: integration, preproduction, production, ade1, ade2.

–database-name <DATABASE_NAME>

The name of the database that will be exported.
Default: epi-cms.
Aliases: dbname.
Possible values: epi-cms, epi-commerce.

–retention-hours <RETENTION_HOURS>

Total hours that the bacpac will be retained.
Default: 168.

–wait <WAIT>

Specify this switch to enable “polling” of the export until it’s completed.
Default: true.
Possible values: true, false.

–show-progress <SHOW_PROGRESS>

Specify this switch to enable a progress text indicating export progress.
Default: true.
Possible values: true, false.

–wait-timeout-minutes <WAIT_TIMEOUT_MINUTES>

The maximum amount of time, in minutes, to wait for the export to finish.
Default: 240.

–polling-interval-seconds <POLLING_INTERVAL_SECONDS>

How often, in seconds, to poll for export status.
Default: 30.

-h, –help

Print help.

epi db get-export command

Retrieves information for the specified database export.

Usage

epi db get-export [OPTIONS] --project <PROJECT> --environment <ENVIRONMENT> --id <ID>

Options

-p, –project <PROJECT>

The project name.
Aliases: name.

–environment <ENVIRONMENT>

The environment that the exported database belongs to.
Aliases: env.
Possible values: integration, preproduction, production, ade1, ade2.

–database-name <DATABASE_NAME>

The name of the exported database.
Default: epi-cms.
Aliases: dbname.
Possible values: epi-cms, epi-commerce.

–id <ID>

The Id (should be a guid) of the database export.

-h, –help

Print help.

epi storage command

Storage commands.

Usage

epi storage <COMMAND>

Commands

get-container

Retrieves list of blob storage containers for specified project id and environment.
Aliases: getcontainer.

Retrieves SAS link for specified project id, environment, blob storage container and retention hours.
Aliases: getsaslink.

help

Print this message or the help of the given subcommand(s).

Options

-h, –help

Print help.

epi storage get-container command

Retrieves list of blob storage containers for specified project id and environment.

Usage

epi storage get-container [OPTIONS] --project <PROJECT> --environment <ENVIRONMENT>

Options

-p, –project <PROJECT>

The project name.
Aliases: name.

–environment <ENVIRONMENT>

The environment name.
Aliases: env.
Possible values: integration, preproduction, production, ade1, ade2.

–writable <WRITABLE>

Retrieves writable SAS link for writable blob storage containers.
Default: false.
Possible values: true, false.

-h, –help

Print help.

epi storage get-sas-link command

Retrieves SAS link for specified project id, environment, blob storage container and retention hours.

Usage

epi storage get-sas-link [OPTIONS] --project <PROJECT> --environment <ENVIRONMENT>

Options

-p, –project <PROJECT>

The project name.
Aliases: name.

–environment <ENVIRONMENT>

The environment name.
Aliases: env.
Possible values: integration, preproduction, production, ade1, ade2.

–storage-container <STORAGE_CONTAINER>

The blob storage container name.
Default: mysitemedia.

–retention-hours <RETENTION_HOURS>

Total hours for which sas link will be retained.
Default: 24.

–writable <WRITABLE>

Retrieves writable SAS link for writable blob storage containers.
Default: false.
Possible values: true, false.

-h, –help

Print help.

epi log command

Log commands.

Usage

epi log <COMMAND>

Commands

export

Get logs for the specified project.
Aliases: get.

get-edge-logs-location

Retrieves the location of the edge logs.
Aliases: get-edge-logs.

convert

Convert log file from JSON format to text format.

clear-empty-lines

Clear empty lines.
Aliases: trim.

help

Print this message or the help of the given subcommand(s).

Options

-h, –help

Print help.

epi log export command

Get logs for the specified project.

Usage

epi log export [OPTIONS] --environment <ENVIRONMENT>

Examples

Export logs from the Integration environment for the last 2 days. This command retrieves logs from a specific project and environment within a defined time range, using timezone offset and parallel processing for efficient log extraction.

epi log get \
  --project my-project \
  --env Integration \
  --from-last-days 2 \
  --from-last-hours 0 \
  --to-last-days 0 \
  --to-last-hours 0 \
  --timezone 7 \
  --thread-count 32

Options

-p, –project <PROJECT>

The project name.

–environment <ENVIRONMENT>

The environment name.
Aliases: env.
Possible values: integration, preproduction, production, ade1, ade2.

-u, –url <URL>

The SAS link contains access to storage account.
Aliases: sas-link, sas-url.

–from-last-days <FROM_LAST_DAYS>

From N days ago.
Default: 0.
Aliases: fld.

–from-last-hours <FROM_LAST_HOURS>

From N hours ago.
Default: 2.
Aliases: flh.

–to-last-days <TO_LAST_DAYS>

To N days ago.
Default: 0.
Aliases: tld.

–to-last-hours <TO_LAST_HOURS>

To N hours ago.
Default: 0.
Aliases: tlh.

–timezone-hours <TIMEZONE_HOURS>

The target timezone offset in hours.
Aliases: timezone, tz.

–thread-count <THREAD_COUNT>

The number of threads to use for processing logs.
Default: 32.

-h, –help

Print help.

epi log get-edge-logs-location command

Retrieves the location of the edge logs.

Usage

epi log get-edge-logs-location --project <PROJECT>

Options

-p, –project <PROJECT>

The project name.

-h, –help

Print help.

epi log convert command

Convert log file from JSON format to text format.

Usage

epi log convert [OPTIONS]

Options

-o, –message-only <MESSAGE_ONLY>

No timestamp in the output.
Default: false.
Possible values: true, false.

–remove <REMOVE>

Remove logs with specified message.

–regex <REGEX>

Apply regex to remove logs with specified message.
Default: false.
Possible values: true, false.

–reset <RESET>

Clear previously set remove filters.
Default: false.
Possible values: true, false.

–global <GLOBAL>

Share remove filters for the future conversions.
Default: false.
Possible values: true, false.

–timezone-hours <TIMEZONE_HOURS>

The target timezone offset in hours.
Aliases: timezone, tz.

-h, –help

Print help.

epi log clear-empty-lines command

Clear empty lines.

Usage

epi log clear-empty-lines

Options

-h, –help

Print help.

epi app command

App commands.

Usage

epi app <COMMAND>

Commands

list

List all apps.

add

Add an app.
Aliases: connect.

update

Update a DXP app.

remove

Remove existing app.

help

Print this message or the help of the given subcommand(s).

Options

-h, –help

Print help.

epi app add command

Add an app.

Usage

epi app add [OPTIONS] --name <NAME> --app-key <APP_KEY> --app-secret <APP_SECRET>

Options

–name <NAME>

The app name. You can choose any meaningful name, doesn’t neccessarily have to be the same as the app name in DXP.
Aliases: app.

–dev-mode <DEV_MODE>

Whether to use the development endpoint.
Default: false.
Aliases: dev, development.
Possible values: true, false.

–app-key <APP_KEY>

The app key used to access the app.
Aliases: key, management_key.

–app-secret <APP_SECRET>

The app secret used to access the app.
Aliases: secret, management_secret.

–single-key <SINGLE_KEY>

The single key used to query the content.
Aliases: delivery_key.

-h, –help

Print help.

epi app list command

List all apps.

Usage

epi app list

Options

-h, –help

Print help.

epi app update command

Update a DXP app.

Usage

epi app update [OPTIONS] --name <NAME>

Options

–name <NAME>

The existing app name.
Aliases: app.

–new-name <NEW_NAME>

The new app name. You can choose any meaningful name, doesn’t neccessarily have to be the same as the app name in DXP.

–dev-mode <DEV_MODE>

Whether to use the development endpoint.
Default: false.
Aliases: dev, development.
Possible values: true, false.

–app-key <APP_KEY>

The app key used to access the app.
Aliases: key, management_key.

–app-secret <APP_SECRET>

The app secret used to access the app.
Aliases: secret, management_secret.

–single-key <SINGLE_KEY>

The single key used to query the content.
Aliases: delivery_key.

-h, –help

Print help.

epi app remove command

Remove existing app.

Usage

epi app remove --app <APP>

Options

-a, –app <APP>

The app name.
Aliases: name.

-h, –help

Print help.

epi content-graph command

Content Graph commands.

Usage

epi content-graph <COMMAND>

Commands

list-hooks

List hooks.
Aliases: list.

add-hook

Add hook.
Aliases: add, create.

remove-hook

Delete hook.
Aliases: delete-hook, remove, delete.

get-schema

Get schema.
Aliases: schema.

get-routes

Get routes.
Aliases: routes.

help

Print this message or the help of the given subcommand(s).

Options

-h, –help

Print help.

epi content-graph add-hook command

Add hook.

Usage

epi content-graph add-hook [OPTIONS] --app <APP> --url <URL>

Examples

Add a webhook that listens for doc.updated OR bulk.completed events, filtering for documents with a Published status AND matching a specific siteId:

epi cg add \
  --app dev \
  --url https://domain.com/api/content/publish?token=MY_PUBLISH_TOKEN \
  --topic doc.updated \
  --topic bulk.completed \
  --filter '{ "status": { "eq": "Published" }, "siteId": { "eq": "site_id" } }'

Add a webhook that listens for all events, filtering for documents that have Published OR Draft status:

epi cg add \
  --app dev \
  --url https://domain.com/api/content/publish?token=MY_PUBLISH_TOKEN \
  --topic '*.*' \
  --filter '{ "status": { "eq": "Published" } }' \
  --filter '{ "status": { "eq": "Draft" } }'

Options

-a, –app <APP>

The app name.
Aliases: name.

–url <URL>

The URL of the hook.
Aliases: url.

–method <METHOD>

The HTTP method for the hook.
Default: POST.
Aliases: method.

–disabled <DISABLED>

Whether the hook is disabled.
Possible values: true, false.

–topic <TOPIC>

The topics to subscribe to.

–filter <FILTER>

Optional filters for the hook.

–preset <PRESET>

Optional preset for the hook.
Default: next.

-h, –help

Print help.

epi content-graph list-hooks command

List hooks.

Usage

epi content-graph list-hooks --app <APP>

Options

-a, –app <APP>

The app name.
Aliases: name.

-h, –help

Print help.

epi content-graph remove-hook command

Delete hook.

Usage

epi content-graph remove-hook --app <APP> --hook-id <HOOK_ID>

Options

-a, –app <APP>

The app name.
Aliases: name.

–hook-id <HOOK_ID>

The ID of the hook to delete.
Aliases: id.

-h, –help

Print help.

epi content-graph get-schema command

Get schema.

Usage

epi content-graph get-schema --app <APP>

Options

-a, –app <APP>

The app name.
Aliases: name.

-h, –help

Print help.

epi content-graph get-routes command

Get routes.

Usage

epi content-graph get-routes [OPTIONS] --app <APP>

Options

-a, –app <APP>

The app name.
Aliases: name.

–skip <SKIP>

Amount of results to skip.
Default: 0.

–limit <LIMIT>

Maximum number of results to return.
Default: 100.

–type <TYPE>

The type to filter by.
Default: _Page.

–domain <DOMAIN>

The domain to filter by.

–must-have-domain <MUST_HAVE_DOMAIN>

Whether to include only routes that must have a domain.
Default: false.
Possible values: true, false.

–changeset <CHANGESET>

The changeset to filter by.

-h, –help

Print help.