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.
- Run
source ~/.local-setup
to create the venv and install the cli as an editable package - Then run
./local-luma <cmd>
where cmd is a normal lumavate cli command. - Write code and re-run step 2 as needed until ready for package deployment test.
- 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.
- 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)
Built Distribution
luma-2.3.20-py3-none-any.whl
(48.9 kB
view details)
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | c20faf74592ea2ade18f27383e213d1c93c9b8a4cb4f6e5cb228b2e81f5a3811 |
|
MD5 | 77189e169fadbec8b7ad047d7145c21e |
|
BLAKE2b-256 | 06bc470414b95b644392b0e336fc24e0a11f66b97a60f94271719dcb2564841f |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 49b1be0ba6802a480091f0b879dc249d3da511faa2ec7cd504c71469adf5fc90 |
|
MD5 | 2fa49a618c9262a8cd0f742d2a3df9bf |
|
BLAKE2b-256 | b6f9d257d1506b5799f9815dc7785e4cd5d14c2275dcfea5bbc12b85334750ed |