CLI
The CLI, command line interface, is a helpful tool that allows you to perform some management functions and additional utilities related to your assistant application. The full source code is available on github.com/xapp-ai/xapp-cli.
Installation
npm install -g @xapp/cli
Confirm your installation with
xapp -V
Currently only Windows WSL2 and macOS are supported. The behavior on Windows Shell is unknown.
Authenticating
Before running any command, you will need to first authenticate
xapp login
And while not required, you can also logout
xapp logout
You can confirm who you are with:
xapp whoami
Configuration
You can configure the CLI to point to different OC Studio environments.
Recommended approach is to modify the configuration JSON file found at ~/.xapp/cli_config
and then adding different profiles.
For example, if you want to add a profile called stentor
, fill in the parameters under `
{
"profiles": {
"default": {},
"stentor": {
"basePath": "",
"authPath": "",
"clientId": "",
"path": "auth",
"tokenPath": "oauth/token"
}
},
"created": "2021-02-23T22:30:17.345Z",
"modified": "2021-11-09T17:17:32.694Z",
"currentProfile": "stentor"
}
Then, to use this profile run:
xapp set -p stentor
To reset back to the default, run:
xapp set -p default
Single Tenant Configuration
Here is a sample configuration used for configuring the CLI for single-tenancy.
{
"profiles": {
"default": {},
"single-tenant": {
// API base path, this is the same as the apiUrl in you single-tenant instance /config.js file
"basePath": "",
// In Cognito, this is the Cognito Domain for your user pool, or it is the auth.domain in your /config.js
// this must start with https:// or the browser might now open to log you in
"authPath": "https://{cognito}.amazoncognito.com",
// Client ID for the app client in Cognito
"clientId": "",
// Client Secret for the app client in Cognito
"clientSecret": "",
// This should be oauth2/token
"tokenPath": "oauth2/token",
// Single-tenant scope is different from default, you need at least @xapp/cli 1.8.3 to use this, otherwise it won't work
"scope": "xappai/api",
"token": {
"access_token": "",
"refresh_token": "",
"expires_in": 86400,
"token_type": "Bearer"
}
},
},
"created": "2021-02-23T22:30:17.345Z",
"modified": "2021-11-09T17:17:32.694Z",
"currentProfile": "single-tenant"
}
You will need to remove the comments when copy pasting the above example.
Information
You can query general descriptive information about an application by application ID.
xapp info {{appId}}
Generating Types
When developing, it can be helpful to have access to the intents requests and their possible slot values. You can use the CLI to generate a TypeScript file with all the requests that are specific to your interaction model.
xapp types -h "/*! Copyright (c) 2022, XAPP AI */" -f requests.ts -m 50 ./src/models {{appId}}
The above command will generate a file named requests.ts
at the ./src/models
directory with a header at the top to prevent any lint errors. The -m 50
states to generate a type based on an entities values up to a max of 50 values, otherwise it will set the type as string
. Optional fields are -h
, -f
, and -m
.
Exporting
You can export an existing app in to one JSON file. Exporting can be helpful for creating backups or in preparation for importing either as a new app or to another environment.
xapp export <directory> [appId]
For example:
xapp export ./temp appId
Will export your app to a directory ./temp. It will make a new directory in that directory {organizationId}-{appId}-{timestamp}
Exporting with Channels
You can also export with all the channel information by adding flag -c
xapp export <directory> [appId] -c
This will create another directory /channels
with independent JSON files for each channel.
Prerequisites
- Studio Organization
- GCP Service Account with Dialogflow Admin permissions credentials JSON file
xapp import -p d -c {path-to-JSON-credentials-file} -o {orgId-for-import}
Some Dialogflow features are not supported and will not be imported.