Skip to content

CLI

From the version >= 0.5.0 a simple command line it's available to query and test config-client.

Installing cli dependencies

pip install 'config-client[cli]'

Usage

python -m config
expected output
Usage: python -m config [OPTIONS] COMMAND [ARGS]...

Options:
  --version   Show the version and exit.
  -h, --help  Show this message and exit.

Commands:
  client   Interact with Spring Cloud Server via cli.
  decrypt  Decrypt a input via Spring Cloud Config.
  encrypt  Encrypt a input via Spring Cloud Config.

example 1: show client help.

python -m config client -h
expected output
Usage: python -m config client [OPTIONS] APP_NAME

  Interact with Spring Cloud Server via cli.

Options:
  -a, --address TEXT  ConfigServer address.  [default: http://localhost:8888;
                      required]
  -l, --label TEXT    Branch config.  [default: master; required]
  -p, --profile TEXT  Profile config.  [default: development; required]
  -f, --filter TEXT   Filter output by.
  --auth TEXT         Basic authentication credentials.
  --digest TEXT       Digest authentication credentials.
  --file TEXT         Gets remote file from server and saves locally.
  --json              Save output as json.
  -v, --verbose       Extend output info.
  -h, --help          Show this message and exit.

Notice

If you preferer can you set the command line options in environment variables.

Example of environment variables available to override the command line options.

example 2: querying for a specific configuration.

Command syntax: config client <application_name> <filter>

python -m config client simpleweb000 -l master -v
expected output
╭─────────────────────────────────────────────────────── client info ────────────────────────────────────────────────────────╮
│  address: http://localhost:8888                                                                                            │
│    label: master                                                                                                           │
│  profile: development                                                                                                      │
│      URL: http://localhost:8888/simpleweb000/development/master                                                            │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭───────────────────────────────────────────────── report for filter: 'all' ─────────────────────────────────────────────────╮
│ {                                                                                                                          │
│     "example": [                                                                                                           │
│         1,                                                                                                                 │
│         2                                                                                                                  │
│     ],                                                                                                                     │
│     "examples": {                                                                                                          │
│         "float": [                                                                                                         │
│             1.1,                                                                                                           │
│             2.2,                                                                                                           │
│             3.3,                                                                                                           │
│             4.4                                                                                                            │
│         ],                                                                                                                 │
│         "int": [                                                                                                           │
│             1,                                                                                                             │
│             2                                                                                                              │
│         ],                                                                                                                 │
│         "str": [                                                                                                           │
│             "example 1",                                                                                                   │
│             "example 2",                                                                                                   │
│             "example 3"                                                                                                    │
│         ]                                                                                                                  │
│     },                                                                                                                     │
│     "first": {                                                                                                             │
│         "second_1": [                                                                                                      │
│             1,                                                                                                             │
│             2                                                                                                              │
│         ],                                                                                                                 │
│         "second_2": [                                                                                                      │
│             1                                                                                                              │
│         ],                                                                                                                 │
│         "second_3": {                                                                                                      │
│             "third_1": [                                                                                                   │
│                 1,                                                                                                         │
│                 2                                                                                                          │
│             ],                                                                                                             │
│             "third_2": [                                                                                                   │
│                 1.1,                                                                                                       │
│                 2.2,                                                                                                       │
│                 3.3                                                                                                        │
│             ],                                                                                                             │
│             "third_3": {                                                                                                   │
│                 "fourth_1": [                                                                                              │
│                     "1",                                                                                                   │
│                     "2"                                                                                                    │
│                 ],                                                                                                         │
│                 "fourth_2": [                                                                                              │
│                     1                                                                                                      │
│                 ],                                                                                                         │
│                 "fourth_3": [                                                                                              │
│                     1,                                                                                                     │
│                     2.2,                                                                                                   │
│                     "three"                                                                                                │
│                 ],                                                                                                         │
│                 "fourth_4": {                                                                                              │
│                     "fifth_1": [                                                                                           │
│                         1,                                                                                                 │
│                         2                                                                                                  │
│                     ],                                                                                                     │
│                     "fifth_2": [                                                                                           │
│                         1,                                                                                                 │
│                         2,                                                                                                 │
│                         3                                                                                                  │
│                     ]                                                                                                      │
│                 }                                                                                                          │
│             }                                                                                                              │
│         }                                                                                                                  │
│     },                                                                                                                     │
│     "health": {                                                                                                            │
│         "config": {                                                                                                        │
│             "enabled": false                                                                                               │
│         }                                                                                                                  │
│     },                                                                                                                     │
│     "info": {                                                                                                              │
│         "app": {                                                                                                           │
│             "description": "pws simpleweb000 - development profile",                                                       │
│             "name": "simpleweb000",                                                                                        │
│             "password": "123"                                                                                              │
│         }                                                                                                                  │
│     },                                                                                                                     │
│     "python": {                                                                                                            │
│         "cache": {                                                                                                         │
│             "timeout": 10,                                                                                                 │
│             "type": "simple"                                                                                               │
│         }                                                                                                                  │
│     },                                                                                                                     │
│     "server": {                                                                                                            │
│         "port": 8080                                                                                                       │
│     },                                                                                                                     │
│     "spring": {                                                                                                            │
│         "cloud": {                                                                                                         │
│             "consul": {                                                                                                    │
│                 "host": "discovery",                                                                                       │
│                 "port": 8500                                                                                               │
│             }                                                                                                              │
│         }                                                                                                                  │
│     }                                                                                                                      │
│ }                                                                                                                          │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

example 3: saving the output to a file.

Command syntax: config client <application_name> <filter> --json

python -m config client simpleweb000 -f spring.cloud.consul --json
expected output
File saved: response.json

example 4: retrieving a remote file and saving locally.

Command syntax: config client <application_name> --file <filename>

python -m config client simpleweb000 --file nginx.conf
expected output
File saved: nginx.conf

example 5: encrypting a secret

Command syntax: config encrypt <my_secret>

python -m config encrypt 123
expected output
╭─────────────────────────────────────────────────────────────────────────────────────╮
│  encrypted data: 'f6d620453e28359fa05a2a96f2a089f5a46d858ee0174f5506e73a526ac6aed2' │
╰─────────────────────────────────────────────────────────────────────────────────────╯
python -m config encrypt 123 --raw
expected output
╭─────────────────────────────────────────────────────────────────────────────────────────────╮
│  encrypted data: '{cipher}59e4bf2fff4a0411eb216e617886f3464d1c0d5a13fec0c00b746ed007ef28d5' │
╰─────────────────────────────────────────────────────────────────────────────────────────────╯

example 6: decrypting a secret

Command syntax: config decrypt <my_encrypted_secret>

python -m config decrypt {cipher}59e4bf2fff4a0411eb216e617886f3464d1c0d5a13fec0c00b746ed007ef28d5
expected output
╭────────────────────────╮
│  decrypted data: '123' │
╰────────────────────────╯
python -m config decrypt 59e4bf2fff4a0411eb216e617886f3464d1c0d5a13fec0c00b746ed007ef28d5
expected output
╭────────────────────────╮
│  decrypted data: '123' │
╰────────────────────────╯

example 7: request config with basic auth

Command syntax: config decrypt <application_name> --auth <user:pass>

python -m config client simpleweb000 -f spring.cloud.consul --auth user:pass
expected output
╭───────────────────────────────────────────── client info ─────────────────────────────────────────────╮
│  address: http://localhost:8888                                                                       │
│    label: master                                                                                      │
│  profile: development                                                                                 │
│      URL: http://localhost:8888/simpleweb000/development/master                                       │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭────────────────────────────────────── report for filter: 'all' ───────────────────────────────────────╮
│ {                                                                                                     │
│     "description": "Spring Cloud Samples",                                                            │
│     "url": "https://github.com/spring-cloud-samples"                                                  │
│ }                                                                                                     │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯

example 8: request config with digest auth

Command syntax: config client <application_name> --digest <user:pass>

python -m config client simpleweb000 'spring.cloud.consul' --digest user:pass
expected output
╭───────────────────────────────────────────── client info ─────────────────────────────────────────────╮
│  address: http://localhost:8888                                                                       │
│    label: master                                                                                      │
│  profile: development                                                                                 │
│      URL: http://localhost:8888/simpleweb000/development/master                                       │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭────────────────────────────────────── report for filter: 'all' ───────────────────────────────────────╮
│ {                                                                                                     │
│     "description": "Spring Cloud Samples",                                                            │
│     "url": "https://github.com/spring-cloud-samples"                                                  │
│ }                                                                                                     │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────╯