Setting up credentials
The WPCS CLI enables users to communicate with the WPCS API. This means that you will have to provide API credentials so the API can authenticate you. After following the steps to retrieve API credentials for your product, you can set up the CLI.
The CLI makes use of environment variables to configure the API calls. Specifically, it uses three variables: the API key, the API secret and the API region. These variables can be supplied in multiple ways.
Supplying the API key and secret
The CLI reads out the environment variables WPCS_API_KEY
and WPCS_DEFAULT_API_KEY
for the API key. The WPCS_API_KEY
environment variable has a higher priority than WPCS_DEFAULT_API_KEY
. This means that if you have both set, the CLI will use the value defined for WPCS_API_KEY
.
The API secret is alike. The CLI reads out WPCS_API_SECRET
or WPCS_DEFAULT_API_SECRET
, with the same prioritization. If you have set WPCS_API_SECRET
, any value for WPCS_DEFAULT_API_SECRET
will be ignored.
It is not possible to pass the API key or secret to the CLI via flags. It is generally considered insecure to pass sensitive data through the terminal. As most terminals keep records of executed commands, your sensitive API credentials are then suddenly logged without encryption. Therefore, it is only possible to configure the API key and secret via environment variables.
This method is mostly very useful when using the WPCS CLI in a CI/CD pipeline.
Supplying the region
The region of your product is also required to use the WPCS API. Of course, the region of your product is not sensitive data, so you can pass it via the --region
flag. However, it is also possible to use the WPCS_REGION
or WPCS_DEFAULT_REGION
environment variables. The same prioritization applies as above, the 'default' is only used if WPCS_REGION
is not defined.
Environment files
The CLI can read environment files in several ways: the current working directory, the default location or a supplied path.
Environment variable file contents
However you choose to let the WPCS CLI find your environment variables file, the contents of the file should always be similar to this:
WPCS_DEFAULT_REGION=eu1
WPCS_DEFAULT_API_KEY=your-api-key
WPCS_DEFAULT_API_SECRET=your-api-secret
Current working directory
The first and probably the method to use on a laptop or machine used for local development is to put an environment variables file in the current working directory. Create a file called .wpcs-cli.env
in, for example, the root directory of the WordPress installation you are working on. Make sure the file has all the required API credentials. When it is set up, you can run WPCS CLI commands from the root of your WordPress installation and it will connect you to the WPCS API using those credentials. This is especially useful if you are working on multiple Products in WPCS and need different local WordPress installations to connect to different WPCS Products.
Default location
The default location is the credentials file placed in the user's home directoy, under $HOME/.wpcs/credentials.cli.env
for POSIX systems. For Windows, the user's USERPROFILE
is used: $USERPROFILE/.wpcs/credentials.cli.env
. Do make sure to name the environment variable file exactly credentials.cli.env
and place it in the .wpcs
folder.
Supplying a path
The other option is to supply an environment variables file via a flag. You can add the --env-file
flag to any command to use an environment file in a custom location. For example: npx @wpcs.io/cli tenants list --env-file ./configurations/.my-custom-config.env
.