# Configuration

This section helps you to:

## Credentials

You need to obtain and properly configure your credentials so that the OLP CLI can connect to the HERE platform.

Your Credentials are used for authentication. The HERE platform uses the concept of apps and access key to control the access to resources. These are described in the Identity & Access Management Guide.

The credentials consist of the here.access.key.id and here.access.key.secret contained in a credentials.properties file. You can download this file from the platform portal when creating an access key for an app (see the procedure below in the Credentials Setup. The following snippet illustrates an example of a credentials.properties file:


here.user.id = HERE-01966c94-aaf1-4ae2-a1y6-6516b3f9b6c1
here.client.id = mzLcb1rL8nskvDQpCAAO
here.access.key.id = BELUTk45QdaYGgZ9A_IMTA
here.access.key.secret = 108lI7w9m8G_6sIw9kng-PXGoeHQQ-cv6xByNOuMcRYixZZp...
here.token.endpoint.url = https://account.api.here.com/oauth2/token


### Scopes

The HERE platform uses OAuth2 scopes as a mechanism to control access to certain resources. Each of the OLP CLI commands that support scope resolves the scope to use in the request in the following priority order:

1. --scope <project HRN>: An optional parameter that specifies the scope to use in the request.

2. here.token.scope: An optional attribute to include in the credentials used for the request.

3. Application default scope: If the client making the request has a default scope configured and neither of the above two parameters are present, the client's default scope will be used in the request.

4. If a scope is not found in either of the above three locations, the request will not use any scope.

### Profiles

Credentials profiles allow you to define multiple profiles to use different credentials for different projects. You can use credentials profiles to manage and organize multiple app credentials from multiple credentials.properties files.

Profiles and the related credentials are stored in the .here/olpcli.ini file in your home directory. You can manage profiles with the credentials commands. The .here/olpcli.ini file is created after you add your first profile with the olp credentials import command, as described in the Setup section below.

### Credentials Setup

1. In the platform portal, in the upper-right corner, click your account icon and select Apps & keys.
2. Click the Register new app button and specify the requested information.
3. In the Credentials tab, go to the OAuth 2.0 tab and click Create credentials.
4. In the dialog box that opens, click Download to download the credentials.properties file.

Once you click Close, you can no longer access your access key ID and access key secret.

5. To create a default profile and associate your credentials with it, run the following command:

 olp credentials import default credentials.properties

6. To verify that your credentials have been correctly configured, execute the command below in the directory that contains the OLP CLI JAR file:

 olp api token get


An output similar to the one below is generated if your credentials have been configured properly:

Token: eyJhbGciOiJSUzUxMiIsImN0eSI6IkpXVCIsImlzcyI6IkhFUkUiLCJhaWQiOiJtekxjYjFyTDhuc2t2RFFwQ0ZFRiIs
ImlhdCI6MTUyMTgwNjYyOCwiZXhwIjoxNTIxODkzMDI4LCJraWQiOiJqMSJ9.ZXlKaGJHY2lPaUprYVhJaUxDSmxibU1pT2lKQk
1qVTJRMEpETFVoVE5URXlJbjAuLmtGc0JMODJibEUxTHhCS1M3MEctcFEuZHhsb2psaklEQmdNVEdoMEFKMHAzUU9yeE9INXdhd
1hkWjVSLS1Kdkc3VFBoUkRWY3owcUFYZ0V2Y3kwOGpMdzBCR09sNjJfZ2pxeUNuLXhET3JtZV8xNUlkV0tJN2VxTUpZNTNJelRx
ZjhUSzdVVHlEUlJFVnBLRW5BN2FvR2MubFViMTNGYWdKMlVGZXVQZnZsVG44Y2JqTzdtbF9ncGpLamFUN0xmZFF0UQ.EPYB9Rdy
jCHFxrqpaEBWkPzhPmFrAPBKlkt8SQpcI0k71mH_vC6txh6Uv1NVQC4xYyWG7ueq5mb4mcQh1sCorcv15GwIH1R0v0NR_CRPh-M
DNSFtg8HNnWyC1ePsfUGpSqjucQW8RMdbsU03wDO50Pr3ctQI4BZrxiU4HW6tdQq9_TinizujACzE-LMZ6FlFAb6pPB8TDsFlY3
9OmBFXEanaPvZwE01dKjE1K_A_G1_TiJzWo4vwuNeD54HfmOf6hN1IE8-CCSKRoIFoIBiVNqqzyCybyovRlSCWzSaTNz4v9BD7N
2lDgEuBlpn3q0qTFppZzjEvzv3RicGrCC_tmB
Token Expires at: 2018-03-24T14:03:48.100Z


You can now use your credentials to connect to the HERE platform resources through the OLP CLI.

Keep your credentials private. Don't share them between workstations or users. Don't commit them to public repositories such as GitHub.

### Passing Credentials to the OLP CLI

The OLP CLI allows you to pass your credentials via optional parameters of the CLI commands or by setting environment variables. The OLP CLI resolves credentials in the following order:

1. --credentials <path to credentials file>: An optional parameter that you append to the end of an applicable CLI command. This parameter specifies the path to the credentials.properties file to use with the command.

For example, execute the command below:


olp catalog layer show hrn:here::data:::test-catalog test-layer --credentials credentials.properties


This shows the properties of the test-layer layer if your credentials allow you to access the hrn:here::data:::test-catalog catalog.

2. OLP_CREDENTIALS: An environment variable that defines the path to the credentials.properties file used for all CLI commands by default.

3. --profile <profile name>: An optional parameter that you append to the end of an applicable CLI command. This parameter specifies the name of the profile to use with the command.

For example, the following command shows a list of catalogs accessible to the olp-user profile, including all the public HERE platform catalogs:

 olp catalog list --profile olp-user

4. OLP_PROFILE: An environment variable that defines the name of the profile to use for all CLI commands by default.

5. default profile: A profile that you create by running the command below:

 olp credentials import default credentials.properties

6. credentials.properties default location: A path to the .here folder in your home directory where your credentials file is stored by default.

### Note

Some OLP CLI commands require that you specify a group ID. Your administrator must set up the relevant group IDs for your account and assign your application to the group. If your app is not assigned to a group, then the command produces an error. For more information on group IDs, see the Identity & Access Management Guide.

## Passing Parameters to the OLP CLI

The OLP CLI supports a set of characters that you can use to pass command parameters:

1. Space and equal (=) separators.

By default, command parameters are separated with spaces, but you can also use the equal (=) separator, as in the examples below:

 olp catalog list --profile <your_profile_name>

 olp catalog list --profile=<your_profile_name>

2. Tilde-prefix (~).

If you are using the tilde-prefix (~) to denote a user's home directory in Linux environments, you must use a space as tilde cannot be combined with the = separator:

 olp catalog layer stream put hrn:here:data:::catalog1 stream-layer1 --input ~/path/to/dir

3. Pipe (|) and dash (-) characters.

The pipe (|) character lets you take the output of one command and send it as input to another command. The dash (-) character allows capturing that output and passing it to a certain parameter of the other command.

In the example below, the catalog show command returns the configuration of the hrn:here:data:::catalog-1 catalog in JSON format. The catalog update command takes the hrn:here:data:::catalog-1 configuration (through --config -) to update the configuration of the hrn:here:data:::catalog-2 catalog, including catalog summary, name, description, and layer configuration:

 olp catalog show hrn:here:data:::catalog-1 --json | olp catalog update hrn:here:data:::catalog-2 --config -


## Output Format Options

The OLP CLI's default output is optimized for human readability. Such exit codes are used:

• 0: returned when a command succeeds.
• 1: returned when a command was executed with the invalid parameters.
• 2: returned when the invalid configuration files were used.
• 3: returned when a command fails.
• 4: returned when a command was executed on the non-existing resources (mostly catalogs).

All commands provide a --quiet flag that allows reducing the output to essential values only with no additional information.

Commands that display output in the console provide a --json flag. Depending on the command, this flag shows more additional information in the output in the JSON format. You can also parse JSON output with a script.

Alternatively, you can set the OLP_OUTPUT environment variable to json or quiet to choose the output format. However, the flags have a higher priority than the environment variable.

For example:

Linux
Windows
export OLP_OUTPUT=json
set OLP_OUTPUT=json

To disable a previously set output format, set OLP_OUTPUT to verbose, which is its default value.

## HTTP Proxy

You have two options for setting up a proxy in the OLP CLI configuration:

Linux
Windows
export HTTPS_PROXY=http://proxy.hostname.com:8000
set HTTPS_PROXY=http://proxy.hostname.com:8000

Use the same syntax for the ALL_PROXY variable.

You can also provide your proxy credentials using the following command:

Linux
Windows
export HTTPS_PROXY=http://username:password@proxy.hostname.com:8000
set HTTPS_PROXY=http://username:password@proxy.hostname.com:8000

### Proxy Settings Resolution Order

The OLP CLI resolves proxy settings in the following order:

1. OLP CLI proxy settings defined in the .here/olpcli.ini file in your home directory
2. HTTPS_PROXY environment variable
3. ALL_PROXY environment variable
4. Java proxy settings