Skip to main content

A CLI to interact with the Lumavate platform

Project description

Lumavate CLI

Config Summary:

  • Install CLI
  • Provision CLI credentials
  • Configure CLI
  • Developing In The CLI
  • Publishing CLI
  • Example Commands

Installing the CLI from pip:


  • On Windows, run BASH as admin and omit 'sudo'
$ pip3 install luma

Installing the CLI from source:


  • Clone this repo.
  • CD into the CLI dir and run:
$ pip3 install .

CLI support:


  • The CLI is written for and tested in a BASH shell
  • To get the most of of the CLI, use it with ZSH. This enables extra features such as showing help text during autocompletion
  • To activate autocompletion after install, restart your terminal or source your shell config (Either .zshrc or .bash_profile)

Provision CLI Credentials:


  • In the Lumavate App, navigate to the Lumavate CLI page inside a command center
  • Provisioning CLI credentials will generate credentials for the user you are currently signed in as
  • When running the add profile command, you will have the option to associate the new profile to any
    organization your user has access to, regardless of the command center you are currently in

CLI Config:


  • Configuring the CLI requires two steps, configuring environments and configuring profiles.
    • Environments know how to get and refresh tokens so you stay authorized with the platform as a user.
    • Profiles give the user a company context which is required by most of the platform API.

CLI Env:

  • To configure the CLI Env, run the generated command from the Lumavate CLI page in the app in your terminal
  • To configure each Env value one by one, run:
$ luma env config

Env Name: prod
App: appUrl
Token: token
Audience: audience
Client id: clientId
Client secret: clientSecret

CLI Profile:

  • To add a profile to the CLI, run:
$ luma profile add

Profile Name: globex
Env: prod
Org ID you want to associate with this profile: 11

Developing In The CLI

  • The easiest way to develop for the cli is in a venv. A helper script has been setup for this.
  1. Run source ~/.local-setup to create the venv and install the cli as an editable package
  2. Then run ./local-luma <cmd> where cmd is a normal lumavate cli command.
  3. Write code and re-run step 2 as needed until ready for package deployment test.
  4. When your code is ready for package level testing, tag the branch that you want tested with ..* where ..* would be the next incremental test semvar. Push it and github will build and deploy to Test pypi. These tagged test versions are independent of production versions in pypi, but for simplicity its best to increment it in sync with both prod and test.

Publishing The CLI

  • Deployment of the CLI has been simplified to deploy to PyPi when a release is Published in github. NOTE: Have you tested locally and in TestPyPi yet? If not, follow directions in Developing In The CLI section.
  1. After developing and testing locally, create a PR to master. Create a release off master in github, tag it using a standard ..* semvar value and the deploy process will internally set the PyPi package version to the deployed tagged version using python setuptools_scm in combination with the github action pypa/gh-action-pypi-publish

Running Commands


  • To list top level commands, run:
$ luma
  • To get help with any command or subcommand, run it without passing in any options or, pass in the --help flag
  • As an example let's create a microservice, create a version, upload a docker image, and start the service
$ luma microservice add
Profile: globex
Name: Auth Service
Url ref: auth
| id | name         | urlRef | createdAt         | createdBY          |
|----|--------------|--------|-------------------|--------------------|
| 45 | Auth Service | auth   | 10/16/18 20:29:49 | john+doe@gmail.com |

$ luma microservice access --profile globex
Microservice: auth
| failed | sharedWith | unsharedWith | resultingGrantees |
|--------|------------|--------------|-------------------|
| []     | []         | []           | []                |

$ luma microservice access -p globex --container auth --add "Acme Corp" --add Initech
| failed | sharedWith   | unsharedWith | resultingGrantees        |
|--------|--------------|--------------|--------------------------|
| []     | [{id}, {id}] | []           |  [Acme Corp, 'Initech']  |

$ luma microservice-version add -p globex --version-number 0.1.0 --container-file-path ~/Desktop/auth-service.tar.gz --label prod --port 8080 -c auth
| id  | actualState | versionNumber | label | createdAt         | createdBy          |
|-----|-------------|---------------|-------|-------------------|--------------------|
| 107 | created     | 0.1.0         | prod  | 10/16/18 20:46:44 | john+doe@gmail.com |

$ luma microservice-version start -p globex
Microservice: auth
Version: 0.1.0
Starting Microservice  [####################################]  100%

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

luma-2.3.20.tar.gz (37.8 kB view details)

Uploaded Source

Built Distribution

luma-2.3.20-py3-none-any.whl (48.9 kB view details)

Uploaded Python 3

File details

Details for the file luma-2.3.20.tar.gz.

File metadata

  • Download URL: luma-2.3.20.tar.gz
  • Upload date:
  • Size: 37.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for luma-2.3.20.tar.gz
Algorithm Hash digest
SHA256 c20faf74592ea2ade18f27383e213d1c93c9b8a4cb4f6e5cb228b2e81f5a3811
MD5 77189e169fadbec8b7ad047d7145c21e
BLAKE2b-256 06bc470414b95b644392b0e336fc24e0a11f66b97a60f94271719dcb2564841f

See more details on using hashes here.

File details

Details for the file luma-2.3.20-py3-none-any.whl.

File metadata

  • Download URL: luma-2.3.20-py3-none-any.whl
  • Upload date:
  • Size: 48.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for luma-2.3.20-py3-none-any.whl
Algorithm Hash digest
SHA256 49b1be0ba6802a480091f0b879dc249d3da511faa2ec7cd504c71469adf5fc90
MD5 2fa49a618c9262a8cd0f742d2a3df9bf
BLAKE2b-256 b6f9d257d1506b5799f9815dc7785e4cd5d14c2275dcfea5bbc12b85334750ed

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page