@basis-theory-labs/cli
v2.1.0
Published
Basis Theory CLI tool
Readme
Basis Theory CLI
Basis Theory CLI tool
Make sure to either have a BT_MANAGEMENT_KEY env var exported or pass a management-key flag to the commands.
Usage
$ npm install -g @basis-theory-labs/cli
$ bt COMMAND
running command...
$ bt (--version)
@basis-theory-labs/cli/2.1.0 linux-x64 node-v18.20.8
$ bt --help [COMMAND]
USAGE
$ bt COMMAND
...Commands
bt applicationsbt applications createbt applications delete IDbt applications update IDbt proxiesbt proxies createbt proxies delete IDbt proxies logs [ID]bt proxies update IDbt reactorsbt reactors createbt reactors delete IDbt reactors logs [ID]bt reactors update ID
bt applications
List Applications. Requires application:read Management Application permission
USAGE
$ bt applications -x <value> [-p <value>]
FLAGS
-p, --page=<value> [default: 1] Applications list page to fetch
-x, --management-key=<value> (required) management key used for connecting with the reactor / proxy
DESCRIPTION
List Applications. Requires `application:read` Management Application permission
EXAMPLES
$ bt applicationsSee code: dist/commands/applications/index.ts
bt applications create
Creates a new Application. Requires application:create Management Application permission
USAGE
$ bt applications create -x <value> [-n <value>] [-p <value>] [-t private|public|management] [-z <value>]
FLAGS
-n, --name=<value> name of the Application
-p, --permission=<value>... permission(s) to use in the Application
-t, --type=<option> type of the Application
<options: private|public|management>
-x, --management-key=<value> (required) management key used for connecting with the reactor / proxy
-z, --template=<value> template ID to create the application with
DESCRIPTION
Creates a new Application. Requires `application:create` Management Application permission
EXAMPLES
$ bt applications createbt applications delete ID
Deletes a Application. Requires application:delete Management Application permissions
USAGE
$ bt applications delete ID -x <value> [-y]
ARGUMENTS
ID Application id to delete
FLAGS
-x, --management-key=<value> (required) management key used for connecting with the reactor / proxy
-y, --yes auto confirm the operation
DESCRIPTION
Deletes a Application. Requires `application:delete` Management Application permissions
EXAMPLES
$ bt applications delete 03858bf5-32d3-4a2e-b74b-daeea0883bcabt applications update ID
Updates a new Application. Requires application:update Management Application permission
USAGE
$ bt applications update ID -x <value> [-n <value>] [-p <value>]
ARGUMENTS
ID Application id to update
FLAGS
-n, --name=<value> name of the Application
-p, --permission=<value>... permission(s) to use in the Application
-x, --management-key=<value> (required) management key used for connecting with the reactor / proxy
DESCRIPTION
Updates a new Application. Requires `application:update` Management Application permission
EXAMPLES
$ bt applications updatebt proxies
List Proxies. Requires proxy:read Management Application permission
USAGE
$ bt proxies -x <value> [-p <value>]
FLAGS
-p, --page=<value> [default: 1] Proxies list page to fetch
-x, --management-key=<value> (required) management key used for connecting with the reactor / proxy
DESCRIPTION
List Proxies. Requires `proxy:read` Management Application permission
EXAMPLES
$ bt proxiesSee code: dist/commands/proxies/index.ts
bt proxies create
Creates a new Pre-Configured Proxy. Requires proxy:create Management Application permission
USAGE
$ bt proxies create -x <value> [-n <value>] [-u <value>] [-q <value>] [-s <value>] [-i <value>] [-c <value>] [-a]
[--request-transform-image node-bt|node22] [--request-transform-dependencies <value>] [--request-transform-timeout
<value>] [--request-transform-warm-concurrency <value>] [--request-transform-resources standard|large|xlarge]
[--request-transform-permissions <value>] [--response-transform-image node-bt|node22]
[--response-transform-dependencies <value>] [--response-transform-timeout <value>]
[--response-transform-warm-concurrency <value>] [--response-transform-resources standard|large|xlarge]
[--response-transform-permissions <value>] [--async]
FLAGS
-a, --[no-]require-auth whether the Proxy requires Basis Theory authentication to be invoked.
Default: true
-c, --configuration=<value> path to configuration file (.env format) to use in the Proxy
-i, --application-id=<value> application ID to use in the Proxy
-n, --name=<value> name of the Proxy
-q, --request-transform-code=<value> path to JavaScript file containing a Request Transform code
-s, --response-transform-code=<value> path to JavaScript file containing a Response Transform code
-u, --destination-url=<value> URL to which requests will be proxied
-x, --management-key=<value> (required) management key used for connecting with the reactor / proxy
--async do not wait for proxy to be ready (requires at least one transform with
node22)
--request-transform-dependencies=<value> path to JSON file with npm dependencies, e.g. {"axios": "1.7.9",
"lodash": "4.17.21"} (node22 only)
--request-transform-image=<option> request-transform runtime image (node-bt|node22)
<options: node-bt|node22>
--request-transform-permissions=<value>... request-transform permission to grant, repeatable (node22 only)
--request-transform-resources=<option> request-transform resource tier (node22 only)
<options: standard|large|xlarge>
--request-transform-timeout=<value> request-transform timeout in seconds, 1-30 (node22 only)
--request-transform-warm-concurrency=<value> request-transform warm concurrency, 0-1 (node22 only)
--response-transform-dependencies=<value> path to JSON file with npm dependencies, e.g. {"axios": "1.7.9",
"lodash": "4.17.21"} (node22 only)
--response-transform-image=<option> response-transform runtime image (node-bt|node22)
<options: node-bt|node22>
--response-transform-permissions=<value>... response-transform permission to grant, repeatable (node22 only)
--response-transform-resources=<option> response-transform resource tier (node22 only)
<options: standard|large|xlarge>
--response-transform-timeout=<value> response-transform timeout in seconds, 1-30 (node22 only)
--response-transform-warm-concurrency=<value> response-transform warm concurrency, 0-1 (node22 only)
DESCRIPTION
Creates a new Pre-Configured Proxy. Requires `proxy:create` Management Application permission
EXAMPLES
Create a proxy without transforms
$ bt proxies create --name "My Proxy" --destination-url https://api.example.com
Create a proxy with legacy runtime transforms
$ bt proxies create --name "My Proxy" --destination-url https://api.example.com --request-transform-code \
./request.js --request-transform-image node-bt --application-id <application-id>
Create a proxy with node22 transforms
$ bt proxies create --name "My Proxy" --destination-url https://api.example.com --request-transform-code \
./request.js --request-transform-image node22 --response-transform-code ./response.js --response-transform-image \
node22
Create a proxy with node22 transforms and all runtime options
$ bt proxies create --name "My Proxy" --destination-url https://api.example.com --configuration ./config.env \
--require-auth --request-transform-code ./request.js --request-transform-image node22 \
--request-transform-timeout 10 --request-transform-warm-concurrency 0 --request-transform-resources standard \
--request-transform-dependencies ./deps.json --request-transform-permissions token:read \
--response-transform-code ./response.js --response-transform-image node22 --response-transform-timeout 10 \
--response-transform-warm-concurrency 0 --response-transform-resources standard \
--response-transform-dependencies ./deps.json --response-transform-permissions token:readbt proxies delete ID
Deletes a Proxy. Requires proxy:delete Management Application permissions
USAGE
$ bt proxies delete ID -x <value> [-y]
ARGUMENTS
ID Proxy id to delete
FLAGS
-x, --management-key=<value> (required) management key used for connecting with the reactor / proxy
-y, --yes auto confirm the operation
DESCRIPTION
Deletes a Proxy. Requires `proxy:delete` Management Application permissions
EXAMPLES
$ bt proxies delete 03858bf5-32d3-4a2e-b74b-daeea0883bcabt proxies logs [ID]
Display live Proxy Transform logs output. Requires proxy:update Management Application permissions
USAGE
$ bt proxies logs [ID] -x <value> [-p <value>]
ARGUMENTS
ID Proxy id to connect to
FLAGS
-p, --port=<value> [default: 8220] port to listen for incoming logs
-x, --management-key=<value> (required) management key used for connecting with the reactor / proxy
DESCRIPTION
Display live Proxy Transform logs output. Requires `proxy:update` Management Application permissions
EXAMPLES
$ bt proxies logs
$ bt proxies logs 03858bf5-32d3-4a2e-b74b-daeea0883bca
$ bt proxies logs 03858bf5-32d3-4a2e-b74b-daeea0883bca -p 3000bt proxies update ID
Updates an existing Pre-Configured Proxy. Requires proxy:update Management Application permission
USAGE
$ bt proxies update ID -x <value> [-n <value>] [-u <value>] [-q <value>] [-s <value>] [-i <value>] [-c <value>]
[-a] [--request-transform-image node-bt|node22] [--request-transform-dependencies <value>]
[--request-transform-timeout <value>] [--request-transform-warm-concurrency <value>] [--request-transform-resources
standard|large|xlarge] [--request-transform-permissions <value>] [--response-transform-image node-bt|node22]
[--response-transform-dependencies <value>] [--response-transform-timeout <value>]
[--response-transform-warm-concurrency <value>] [--response-transform-resources standard|large|xlarge]
[--response-transform-permissions <value>] [--async] [-w] [-l]
ARGUMENTS
ID Proxy id to update
FLAGS
-a, --[no-]require-auth whether the Proxy requires Basis Theory authentication to be invoked.
Default: true
-c, --configuration=<value> path to configuration file (.env format) to use in the Proxy
-i, --application-id=<value> application ID to use in the Proxy
-l, --logs Start logs server after update
-n, --name=<value> name of the Proxy
-q, --request-transform-code=<value> path to JavaScript file containing a Request Transform code
-s, --response-transform-code=<value> path to JavaScript file containing a Response Transform code
-u, --destination-url=<value> URL to which requests will be proxied
-w, --watch Watch for changes in informed files
-x, --management-key=<value> (required) management key used for connecting with the reactor / proxy
--async do not wait for proxy to be ready (requires at least one transform with
node22)
--request-transform-dependencies=<value> path to JSON file with npm dependencies, e.g. {"axios": "1.7.9",
"lodash": "4.17.21"} (node22 only)
--request-transform-image=<option> request-transform runtime image (node-bt|node22)
<options: node-bt|node22>
--request-transform-permissions=<value>... request-transform permission to grant, repeatable (node22 only)
--request-transform-resources=<option> request-transform resource tier (node22 only)
<options: standard|large|xlarge>
--request-transform-timeout=<value> request-transform timeout in seconds, 1-30 (node22 only)
--request-transform-warm-concurrency=<value> request-transform warm concurrency, 0-1 (node22 only)
--response-transform-dependencies=<value> path to JSON file with npm dependencies, e.g. {"axios": "1.7.9",
"lodash": "4.17.21"} (node22 only)
--response-transform-image=<option> response-transform runtime image (node-bt|node22)
<options: node-bt|node22>
--response-transform-permissions=<value>... response-transform permission to grant, repeatable (node22 only)
--response-transform-resources=<option> response-transform resource tier (node22 only)
<options: standard|large|xlarge>
--response-transform-timeout=<value> response-transform timeout in seconds, 1-30 (node22 only)
--response-transform-warm-concurrency=<value> response-transform warm concurrency, 0-1 (node22 only)
DESCRIPTION
Updates an existing Pre-Configured Proxy. Requires `proxy:update` Management Application permission
EXAMPLES
Update a proxy destination URL
$ bt proxies update <proxy-id> --destination-url https://api.example.com
Update a proxy with legacy runtime transforms
$ bt proxies update <proxy-id> --request-transform-code ./request.js --request-transform-image node-bt \
--application-id <application-id>
Update a proxy with node22 transforms
$ bt proxies update <proxy-id> --request-transform-code ./request.js --request-transform-image node22 \
--response-transform-code ./response.js --response-transform-image node22
Update a proxy with node22 transforms and all runtime options
$ bt proxies update <proxy-id> --name "My Proxy" --destination-url https://api.example.com --configuration \
./config.env --require-auth --request-transform-code ./request.js --request-transform-image node22 \
--request-transform-timeout 10 --request-transform-warm-concurrency 0 --request-transform-resources standard \
--request-transform-dependencies ./deps.json --request-transform-permissions token:read \
--response-transform-code ./response.js --response-transform-image node22 --response-transform-timeout 10 \
--response-transform-warm-concurrency 0 --response-transform-resources standard \
--response-transform-dependencies ./deps.json --response-transform-permissions token:readbt reactors
List Reactors. Requires reactor:read Management Application permission
USAGE
$ bt reactors -x <value> [-p <value>]
FLAGS
-p, --page=<value> [default: 1] Reactors list page to fetch
-x, --management-key=<value> (required) management key used for connecting with the reactor / proxy
DESCRIPTION
List Reactors. Requires `reactor:read` Management Application permission
EXAMPLES
$ bt reactorsSee code: dist/commands/reactors/index.ts
bt reactors create
Creates a new Reactor. Requires reactor:create Management Application permission
USAGE
$ bt reactors create -x <value> [-n <value>] [-c <value>] [-i <value>] [-r <value>] [--image node-bt|node22]
[--dependencies <value>] [--timeout <value>] [--warm-concurrency <value>] [--resources standard|large|xlarge]
[--permissions <value>] [--async]
FLAGS
-c, --configuration=<value> path to configuration file (.env format) to use in the Reactor
-i, --application-id=<value> application ID to use in the Reactor
-n, --name=<value> name of the Reactor
-r, --code=<value> path to JavaScript file containing the Reactor code
-x, --management-key=<value> (required) management key used for connecting with the reactor / proxy
--async do not wait for resource to be ready (node22 only)
--dependencies=<value> path to JSON file with npm dependencies, e.g. {"axios": "1.7.9", "lodash": "4.17.21"}
(node22 only)
--image=<option> runtime image (node-bt|node22)
<options: node-bt|node22>
--permissions=<value>... permission to grant, repeatable (node22 only)
--resources=<option> resource tier (node22 only, default: standard)
<options: standard|large|xlarge>
--timeout=<value> timeout in seconds, 1-30 (node22 only, default: 10)
--warm-concurrency=<value> number of warm instances, 0-1 (node22 only, default: 0)
DESCRIPTION
Creates a new Reactor. Requires `reactor:create` Management Application permission
EXAMPLES
Create a reactor with legacy runtime
$ bt reactors create --name "My Reactor" --code ./reactor.js --image node-bt --application-id <application-id>
Create a reactor with node22 runtime
$ bt reactors create --name "My Reactor" --code ./reactor.js --image node22
Create a reactor with node22 and all runtime options
$ bt reactors create --name "My Reactor" --code ./reactor.js --configuration ./config.env --image node22 \
--timeout 10 --warm-concurrency 0 --resources standard --dependencies ./deps.json --permissions token:read \
--permissions token:createbt reactors delete ID
Deletes a Reactor. Requires reactor:delete Management Application permissions
USAGE
$ bt reactors delete ID -x <value> [-y]
ARGUMENTS
ID Reactor id to delete
FLAGS
-x, --management-key=<value> (required) management key used for connecting with the reactor / proxy
-y, --yes auto confirm the operation
DESCRIPTION
Deletes a Reactor. Requires `reactor:delete` Management Application permissions
EXAMPLES
$ bt reactors delete 03858bf5-32d3-4a2e-b74b-daeea0883bcabt reactors logs [ID]
Display live Reactor logs output. Requires reactor:update Management Application permissions
USAGE
$ bt reactors logs [ID] -x <value> [-p <value>]
ARGUMENTS
ID Reactor id to connect to
FLAGS
-p, --port=<value> [default: 8220] port to listen for incoming logs
-x, --management-key=<value> (required) management key used for connecting with the reactor / proxy
DESCRIPTION
Display live Reactor logs output. Requires `reactor:update` Management Application permissions
EXAMPLES
$ bt reactors logs
$ bt reactors logs 03858bf5-32d3-4a2e-b74b-daeea0883bca
$ bt reactors logs 03858bf5-32d3-4a2e-b74b-daeea0883bca -p 3000bt reactors update ID
Updates an existing Reactor. Requires reactor:update Management Application permission
USAGE
$ bt reactors update ID -x <value> [-n <value>] [-c <value>] [-i <value>] [-r <value>] [--image node-bt|node22]
[--dependencies <value>] [--timeout <value>] [--warm-concurrency <value>] [--resources standard|large|xlarge]
[--permissions <value>] [--async] [-w] [-l]
ARGUMENTS
ID Reactor id to update
FLAGS
-c, --configuration=<value> path to configuration file (.env format) to use in the Reactor
-i, --application-id=<value> application ID to use in the Reactor
-l, --logs Start logs server after update
-n, --name=<value> name of the Reactor
-r, --code=<value> path to JavaScript file containing the Reactor code
-w, --watch Watch for changes in informed files
-x, --management-key=<value> (required) management key used for connecting with the reactor / proxy
--async do not wait for resource to be ready (node22 only)
--dependencies=<value> path to JSON file with npm dependencies, e.g. {"axios": "1.7.9", "lodash": "4.17.21"}
(node22 only)
--image=<option> runtime image (node-bt|node22)
<options: node-bt|node22>
--permissions=<value>... permission to grant, repeatable (node22 only)
--resources=<option> resource tier (node22 only, default: standard)
<options: standard|large|xlarge>
--timeout=<value> timeout in seconds, 1-30 (node22 only, default: 10)
--warm-concurrency=<value> number of warm instances, 0-1 (node22 only, default: 0)
DESCRIPTION
Updates an existing Reactor. Requires `reactor:update` Management Application permission
EXAMPLES
Update a reactor with legacy runtime
$ bt reactors update <reactor-id> --code ./reactor.js --image node-bt --application-id <application-id>
Update a reactor with node22 runtime
$ bt reactors update <reactor-id> --code ./reactor.js --image node22
Update a reactor with node22 and all runtime options
$ bt reactors update <reactor-id> --name "My Reactor" --code ./reactor.js --configuration ./config.env --image \
node22 --timeout 10 --warm-concurrency 0 --resources standard --dependencies ./deps.json --permissions \
token:read --permissions token:create