Digital Optimization Group Edge Platform CLI - Developer Preview
$ npm install -g @digitaloptgroup/cli
$ dog COMMAND
running command...
$ dog (-v|--version|version)
@digitaloptgroup/cli/0.0.1-dev-preview-36 linux-x64 node-v10.14.2
$ dog --help [COMMAND]
USAGE
$ dog COMMAND
...
dog apps:apply COLOR
dog apps:build
dog apps:current
dog apps:init
dog apps:list
dog apps:new FRIENDLYNAME
dog apps:rollback COLOR
dog apps:sharedataset EMAIL
dog autocomplete [SHELL]
dog cms:login
dog cms:preview URL
dog domains:add HOSTNAME
dog domains:list
dog domains:status HOSTNAME
dog help [COMMAND]
dog login
dog logout
dog logs:assetLoadTime
dog logs:caughtError
dog logs:clientPing
dog logs:error
dog logs:fps
dog logs:longTasksTiming
dog logs:mouseDistance
dog logs:orientationChange
dog logs:outcome
dog logs:pageScrolling
dog logs:pageView
dog logs:performanceTiming
dog logs:proxyLogs
dog logs:rapidClicking
dog logs:serverLogs
dog logs:timeOnPage
dog logs:timeOnSite
dog logs:variationInViewport
dog logs:variationMousedown
dog plugins
dog plugins:install PLUGIN...
dog plugins:link PLUGIN
dog plugins:uninstall PLUGIN...
dog plugins:update
dog proxy:abtest
dog proxy:apply
dog proxy:canary
dog proxy:gatekeep ORIGIN
dog proxy:localhost [PORT]
dog proxy:prod PRODUCTIONBACKEND
dog proxy:refresh
dog proxy:rollback
dog proxy:show
dog share
dog start
deploy your application to a chosen color
USAGE
$ dog apps:apply COLOR
ARGUMENTS
COLOR (blue|green) the backend color to deploy to
OPTIONS
-p, --path=path
--force
EXAMPLES
dog deploy blue
dog deploy blue --force
dog deploy green --path ./custom/script.js
See code: src/commands/apps/apply.ts
build your application from a template script
USAGE
$ dog apps:build
OPTIONS
-p, --pathToConfig=pathToConfig [default: ./dog-app-config.json]
EXAMPLE
$ dog apps:build
# Use a non-default path to your config
dog apps:build --pathToConfig ./dog-app-config.json
# Or with flag character
dog apps:build -p ./dog-app-config.json
See code: src/commands/apps/build.ts
show currently selected application
USAGE
$ dog apps:current
See code: src/commands/apps/current.ts
initalize an app in this directory (should be the root of your project)
USAGE
$ dog apps:init
See code: src/commands/apps/init.ts
list all apps in your account
USAGE
$ dog apps:list
See code: src/commands/apps/list.ts
create a new application
USAGE
$ dog apps:new FRIENDLYNAME
ARGUMENTS
FRIENDLYNAME a friendly display name for your project. the id will be created from this.
See code: src/commands/apps/new.ts
rollback a color to a prior deployment
USAGE
$ dog apps:rollback COLOR
OPTIONS
--force
EXAMPLE
$ dog apps:rollback blue
# Force rollback a backend receiving production traffic
$ dog apps:rollback blue --force
See code: src/commands/apps/rollback.ts
share your BigQuery dataset with an email address associated with a Google Cloud Account
USAGE
$ dog apps:sharedataset EMAIL
EXAMPLE
$ dog apps:sharedataset sarah.smith@example.com
See code: src/commands/apps/sharedataset.ts
display autocomplete installation instructions
USAGE
$ dog autocomplete [SHELL]
ARGUMENTS
SHELL shell type
OPTIONS
-r, --refresh-cache Refresh cache (ignores displaying instructions)
EXAMPLES
$ dog autocomplete
$ dog autocomplete bash
$ dog autocomplete zsh
$ dog autocomplete --refresh-cache
See code: @oclif/plugin-autocomplete
login & open the cms UI
USAGE
$ dog cms:login
See code: src/commands/cms/login.ts
generate a preview link to a chosen domain
USAGE
$ dog cms:preview URL
ARGUMENTS
URL [default: http://localhost:3000] must be a fully qualified domain name
EXAMPLE
$ dog cms:preview http://localhost:3000
$ dog cms:preview https://www.example.com
See code: src/commands/cms/preview.ts
attach a CNAME to your application
USAGE
$ dog domains:add HOSTNAME
OPTIONS
-v, --validation=http|email|cname [default: http] specify the validation method - http happens inline, email will
send to the WHOIS contacts, cname will return a record that needs to be placed
EXAMPLE
$ dog domains:add www.example.com
# Validate your domain automatically (default)
$ dog domains:add www.example.com --validation http
# Validate your domain by placing an extra CNAME with auth code
$ dog domains:add www.example.com --validation cname
# Validate your domain by receiving an email sent to your WHOIS contacts
$ dog domains:add www.example.com --validation email
See code: src/commands/domains/add.ts
list all domains associated with this app
USAGE
$ dog domains:list
See code: src/commands/domains/list.ts
check the status of a custom hostname
USAGE
$ dog domains:status HOSTNAME
EXAMPLE
$ dog domains:status www.example.com
See code: src/commands/domains/status.ts
display help for dog
USAGE
$ dog help [COMMAND]
ARGUMENTS
COMMAND command to show help for
OPTIONS
--all see all commands in CLI
See code: @oclif/plugin-help
sign in to your account
USAGE
$ dog login
See code: src/commands/login.ts
sign out of your account
USAGE
$ dog logout
See code: src/commands/logout.ts
live js & css asset performance
USAGE
$ dog logs:assetLoadTime
OPTIONS
-a, --asset=asset filter by fqdn of asset (https://example.com/build/main.js)
-p, --prettyjson print pretty JSON
EXAMPLE
$ dog logs:assetLoadTime
{"asset":"https://example.com/build/main.js","color":"green","duration":85,"protocol":"h2","rid":"abc-567","vid":"abc-
123"}
# Filter by asset
$ dog logs:assetLoadTime --asset https://example.com/build/main.js
# Pretty print JSON
$ dog logs:assetLoadTime --prettyjson
{
"asset": "https://example.com/build/main.js",
"color": "green",
"duration": 85,
"protocol": "h2",
"rid": "abc-567",
"vid": "abc-123"
}
See code: src/commands/logs/assetLoadTime.ts
errors your application caught & chose to log
USAGE
$ dog logs:caughtError
OPTIONS
-c, --color=color filter by backend color (blue)
-p, --prettyjson print pretty JSON
EXAMPLE
$ dog logs:caughtError
# Filter by backend color
$ dog logs:caughtError --color blue
# Pretty print JSON
$ dog logs:caughtError --prettyjson
See code: src/commands/logs/caughtError.ts
front end application pings
USAGE
$ dog logs:clientPing
OPTIONS
-c, --color=color filter by backend color
-p, --prettyjson print pretty JSON
EXAMPLE
$ dog logs:clientPing
# Filter by backend color
$ dog logs:clientPing --color blue
# Pretty print JSON
$ dog logs:clientPing --prettyjson
See code: src/commands/logs/clientPing.ts
errors caught globally from window.onerror
USAGE
$ dog logs:error
OPTIONS
-c, --color=color filter by backend color (blue)
-p, --prettyjson print pretty JSON
EXAMPLE
$ dog logs:error
# Filter by backend color
$ dog logs:error --color blue
# Pretty print JSON
$ dog logs:error --prettyjson
See code: src/commands/logs/error.ts
instances of client side frames per second dropping below 50 fps
USAGE
$ dog logs:fps
OPTIONS
-c, --color=color filter by backend color (blue)
-p, --prettyjson print pretty JSON
EXAMPLE
$ dog logs:fps
# Filter by backend color
$ dog logs:fps --color blue
# Pretty print JSON
$ dog logs:fps --prettyjson
See code: src/commands/logs/fps.ts
instances of client side tasks that exceed 50ms using the browsers Long Tasks API
USAGE
$ dog logs:longTasksTiming
OPTIONS
-c, --color=color filter by backend color (blue)
-p, --prettyjson print pretty JSON
EXAMPLE
$ dog logs:longTasksTiming
# Filter by backend color
$ dog logs:longTasksTiming --color blue
# Pretty print JSON
$ dog logs:longTasksTiming --prettyjson
See code: src/commands/logs/longTasksTiming.ts
euclidean mouse distance, over 3 second intervals, from your applications
USAGE
$ dog logs:mouseDistance
OPTIONS
-p, --prettyjson print pretty JSON
-r, --rid=rid filter by a single rid (get it from server or proxy logs)
EXAMPLE
$ dog logs:mouseDistance
# Filter by a single request Id
$ dog logs:mouseDistance --rid abc-123
# Pretty print JSON
$ dog logs:mouseDistance --prettyjson
See code: src/commands/logs/mouseDistance.ts
orientation changes in your application
USAGE
$ dog logs:orientationChange
OPTIONS
-p, --prettyjson print pretty JSON
-r, --rid=rid filter by a single rid (get it from server or proxy logs)
EXAMPLE
$ dog logs:orientationChange
# Filter by a single request Id
$ dog logs:orientationChange --rid abc-123
# Pretty print JSON
$ dog logs:orientationChange --prettyjson
See code: src/commands/logs/orientationChange.ts
custom implemented outcomes from your application
USAGE
$ dog logs:outcome
OPTIONS
-o, --outcome=outcome filter by outcome (addToCart)
-p, --prettyjson print pretty JSON
EXAMPLE
$ dog logs:outcome
# Filter by custom outcome (outcomes defined by user)
$ dog logs:outcome --outcome cartAddItem
$ dog logs:outcome --outcome heroImageClick
$ dog logs:outcome --outcome searchAddFilter
# Pretty print JSON
$ dog logs:outcome --prettyjson
See code: src/commands/logs/outcome.ts
scrolling activity from your application
USAGE
$ dog logs:pageScrolling
OPTIONS
-n, --pathname=pathname filter by pathname (/pricing)
-p, --prettyjson print pretty JSON
EXAMPLE
$ dog logs:pageScrolling
# Filter by pathname
$ dog logs:pageScrolling --pathname /about-us
# Pretty print JSON
$ dog logs:pageScrolling --prettyjson
See code: src/commands/logs/pageScrolling.ts
page views in realtime
USAGE
$ dog logs:pageView
OPTIONS
-n, --pathname=pathname filter by pathname (/pricing)
-p, --prettyjson print pretty JSON
EXAMPLE
$ dog logs:pageView
# Filter by pathname
$ dog logs:pageView --pathname /about-us
# Pretty print JSON
$ dog logs:pageView --prettyjson
See code: src/commands/logs/pageView.ts
application performance from the navigation timing api including timeToFirstByte, FCP, & TTI
USAGE
$ dog logs:performanceTiming
OPTIONS
-p, --prettyjson print pretty JSON
-t, --property=property filter by performance timing property
EXAMPLE
$ dog logs:performanceTiming
# Filter by property
$ dog logs:performanceTiming --property timeToFetchStart
$ dog logs:performanceTiming --property dnsLookupTime
$ dog logs:performanceTiming --property timeToFistByte
$ dog logs:performanceTiming --property timeToHtmlPage
$ dog logs:performanceTiming --property domInteractive
$ dog logs:performanceTiming --property pageLoadTime
$ dog logs:performanceTiming --property firstContentfulPaint
$ dog logs:performanceTiming --property firstPaint
$ dog logs:performanceTiming --property firstInputDelay
$ dog logs:performanceTiming --property tti
# Pretty print JSON
$ dog logs:performanceTiming --prettyjson
See code: src/commands/logs/performanceTiming.ts
proxy logs
USAGE
$ dog logs:proxyLogs
OPTIONS
-c, --country=country filter proxy logs by a single country code (such as US)
-p, --prettyjson print pretty JSON
EXAMPLE
$ dog logs:proxyLogs
# Filter by country
$ dog logs:proxyLogs --country US
# Pretty print JSON
$ dog logs:proxyLogs --prettyjson
See code: src/commands/logs/proxyLogs.ts
incidences of "rapid/rage clicking" in your application
USAGE
$ dog logs:rapidClicking
OPTIONS
-p, --prettyjson print pretty JSON
EXAMPLE
$ dog logs:rapidClicking
# Pretty print JSON
$ dog logs:rapidClicking --prettyjson
See code: src/commands/logs/rapidClicking.ts
server logs
USAGE
$ dog logs:serverLogs
OPTIONS
-c, --color=color filter by backend color (blue)
-p, --prettyjson print pretty JSON
EXAMPLE
$ dog logs:serverLogs
# Filter by color
$ dog logs:serverLogs --color green
# Pretty print JSON
$ dog logs:serverLogs --prettyjson
See code: src/commands/logs/serverLogs.ts
time on page activity events (event values are not cumulative)
USAGE
$ dog logs:timeOnPage
OPTIONS
-n, --pathname=pathname filter by pathname (/pricing)
-p, --prettyjson print pretty JSON
EXAMPLE
$ dog logs:timeOnPage
# Filter by pathname
$ dog logs:timeOnPage --pathname /about-us
# Pretty print JSON
$ dog logs:timeOnPage --prettyjson
See code: src/commands/logs/timeOnPage.ts
time on site activity events (event values are not cumulative)
USAGE
$ dog logs:timeOnSite
OPTIONS
-p, --prettyjson print pretty JSON
-v, --visibility=visibility filter by visibility (hidden)
EXAMPLE
$ dog logs:timeOnSite
# Filter by visibility
$ dog logs:timeOnSite --visibility hidden
# Pretty print JSON
$ dog logs:timeOnSite --prettyjson
See code: src/commands/logs/timeOnSite.ts
variations entering the viewport
USAGE
$ dog logs:variationInViewport
OPTIONS
-f, --featureId=featureId filter by featureId
-p, --prettyjson print pretty JSON
EXAMPLE
$ dog logs:variationInViewport
# Filter by featureId
$ dog logs:variationInViewport --featureId abc-123
# Pretty print JSON
$ dog logs:variationInViewport --prettyjson
See code: src/commands/logs/variationInViewport.ts
mousedown events on variations
USAGE
$ dog logs:variationMousedown
OPTIONS
-f, --featureId=featureId filter by featureId
-p, --prettyjson print pretty JSON
EXAMPLE
$ dog logs:variationMousedown
# Filter by featureId
$ dog logs:variationMousedown --featureId abc-123
# Pretty print JSON
$ dog logs:variationMousedown --prettyjson
See code: src/commands/logs/variationMousedown.ts
list installed plugins
USAGE
$ dog plugins
OPTIONS
--core show core plugins
EXAMPLE
$ dog plugins
See code: @oclif/plugin-plugins
installs a plugin into the CLI
USAGE
$ dog plugins:install PLUGIN...
ARGUMENTS
PLUGIN plugin to install
OPTIONS
-f, --force yarn install with force flag
-h, --help show CLI help
-v, --verbose
DESCRIPTION
Can be installed from npm or a git url.
Installation of a user-installed plugin will override a core plugin.
e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
the CLI without the need to patch and update the whole CLI.
ALIASES
$ dog plugins:add
EXAMPLES
$ dog plugins:install myplugin
$ dog plugins:install https://github.com/someuser/someplugin
$ dog plugins:install someuser/someplugin
See code: @oclif/plugin-plugins
links a plugin into the CLI for development
USAGE
$ dog plugins:link PLUGIN
ARGUMENTS
PATH [default: .] path to plugin
OPTIONS
-h, --help show CLI help
-v, --verbose
DESCRIPTION
Installation of a linked plugin will override a user-installed or core plugin.
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
command will override the user-installed or core plugin implementation. This is useful for development work.
EXAMPLE
$ dog plugins:link myplugin
See code: @oclif/plugin-plugins
removes a plugin from the CLI
USAGE
$ dog plugins:uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
OPTIONS
-h, --help show CLI help
-v, --verbose
ALIASES
$ dog plugins:unlink
$ dog plugins:remove
See code: @oclif/plugin-plugins
update installed plugins
USAGE
$ dog plugins:update
OPTIONS
-h, --help show CLI help
-v, --verbose
See code: @oclif/plugin-plugins
deploy a/b/n tests across any number of origins
USAGE
$ dog proxy:abtest
OPTIONS
-o, --origin=origin (required) FQDN for an A/B test backend or a valid deployed color
EXAMPLE
# A/B test between your blue and green backends
$ dog proxy:abtest --origin blue --origin green
# A/B test between your blue backend and example.com
$ dog proxy:abtest --origin blue --origin https://www.example.com
# A/B test between 3 origins
$ dog proxy:abtest -o blue -o green -o https://www.example.com
# A/B test between 4 origins
$ dog proxy:abtest -o blue -o green -o https://www.example.com -o https://www.digitaloptgroup.com
See code: src/commands/proxy/abtest.ts
update your production proxy
USAGE
$ dog proxy:apply
OPTIONS
-f, --force
See code: src/commands/proxy/apply.ts
run and manage canary releases
USAGE
$ dog proxy:canary
OPTIONS
-c, --canary=canary (required) FQDN for an canary backend or a valid deployed color
-p, --production=production (required) FQDN for production backend or a valid deployed color
-w, --weight=weight (required) an integer between 1 and 100 that will equal the percentage of traffic sent to
the canary
--force force the proxy config to do something that it not recommended
--reassign forces a new salt to be created and all currently assigned visitors to be reallocated to
a random backend - not recommended
EXAMPLE
# Send 20% of your traffic to your green backend as a canary
$ dog proxy:canary --production blue --canary green --weight 20
# Increase to 50% of your traffic to your green backend
$ dog proxy:canary -p blue -c green -w 50
# Increase to 75% of your traffic to your green backend
$ dog proxy:canary -p blue -c green -w 75
# Force reassignment of all visitors on both backends (advanced - not recommended)
$ dog proxy:canary -p blue -c green -w 50 --reassign
# Decrease traffic allocated to canary backend (advanced - not recommended)
$ dog proxy:canary -p blue -c green -w 5 --force
See code: src/commands/proxy/canary.ts
create a gatekeeping url to any given origin
USAGE
$ dog proxy:gatekeep ORIGIN
ARGUMENTS
ORIGIN a valid deployed color or a fully qualified domain name
OPTIONS
--cmsPreview
EXAMPLE
$ dog proxy:gatekeep blue
# Gatekeep and open preview mode of the CMS
$ dog proxy:gatekeep blue --cmsPreview
# Gatekeep to any FQDN on the internet
$ dog proxy:gatekeep https://www.example.com
See code: src/commands/proxy/gatekeep.ts
(experimental) create a gatekeeping url that tunnels to your local development server
USAGE
$ dog proxy:localhost [PORT]
ARGUMENTS
PORT [default: 3000] the port of your local server
OPTIONS
-c, --cmsPreview include realtime preview mode in created link
EXAMPLE
$ dog proxy:localhost
# Tunnel to a custom port (default 3000)
$ dog proxy:localhost 3001
# Include preview mode of the CMS
$ dog proxy:localhost 3001 --cmsPreview
See code: src/commands/proxy/localhost.ts
set your local proxy config to a single production backend
USAGE
$ dog proxy:prod PRODUCTIONBACKEND
ARGUMENTS
PRODUCTIONBACKEND a valid deployed color or a fully qualified domain name to set as your single production backend
EXAMPLE
$ dog proxy:prod blue
# Set any FQDN as the production backend
$ dog proxy:prod https://www.example.com
See code: src/commands/proxy/prod.ts
refresh your local config from production environment
USAGE
$ dog proxy:refresh
See code: src/commands/proxy/refresh.ts
rollback proxy to a prior deployment
USAGE
$ dog proxy:rollback
See code: src/commands/proxy/rollback.ts
show current local & deployed proxy configs
USAGE
$ dog proxy:show
See code: src/commands/proxy/show.ts
create invite link/code for developer preview (allows someone else to create their own account)
USAGE
$ dog share
See code: src/commands/share.ts
run a local server for development
USAGE
$ dog start
OPTIONS
-p, --port=port
-s, --script=script
See code: @digitaloptgroup/plugin-install-start