lumos-identity-cli 0.0.0.dev1__tar.gz → 2.4.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/.cursor/rules/docs.mdc +2 -2
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/.github/workflows/build.yml +2 -2
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/.github/workflows/release.yml +3 -54
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/.releaserc.yaml +2 -2
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/CHANGELOG.md +12 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/Makefile +2 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/PKG-INFO +2 -2
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/docs/contributing.md +4 -4
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/docs/examples.md +1 -1
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/docs/installation.md +9 -3
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/docs/reference.md +64 -47
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/docs/src/conf.py +9 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/docs/src/contributing.md +4 -4
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/docs/src/installation.md +8 -2
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/pyproject.toml +2 -2
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/src/lumos/cli.py +1 -1
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/tests/cli_test.py +6 -1
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/uv.lock +8 -20
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/.cursor/Dockerfile +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/.cursor/rules/commit-message.mdc +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/.devcontainer/devcontainer.json +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/.gitignore +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/.pre-commit-config.yaml +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/README.md +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/docs/authentication.md +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/docs/index.md +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/docs/src/authentication.md +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/docs/src/examples.md +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/docs/src/index.md +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/docs/src/reference.md +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/sample-scripts/create_requests.py +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/sample-scripts/customer-secrets.sh +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/src/lumos/__init__.py +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/src/lumos/__main__.py +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/src/lumos/common/__init__.py +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/src/lumos/common/client.py +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/src/lumos/common/client_helpers.py +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/src/lumos/common/helpers.py +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/src/lumos/common/keyhelpers.py +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/src/lumos/common/logging.py +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/src/lumos/common/models.py +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/src/lumos/list_collections/__init__.py +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/src/lumos/list_collections/cli.py +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/src/lumos/request/__init__.py +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/src/lumos/request/cli.py +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/tests/client_helpers_test.py +0 -0
- {lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/tests/helpers_test.py +0 -0
|
@@ -26,7 +26,7 @@ Only edit documentation in these locations:
|
|
|
26
26
|
After editing any files in `docs/src/`, rebuild the documentation:
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
|
-
make
|
|
29
|
+
make docs
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
This generates:
|
|
@@ -66,4 +66,4 @@ When editing `docs/src/*.md`:
|
|
|
66
66
|
- Follow existing formatting conventions
|
|
67
67
|
- Use proper Sphinx/MyST markdown syntax
|
|
68
68
|
- Include cross-references where appropriate
|
|
69
|
-
- Always rebuild with `make
|
|
69
|
+
- Always rebuild with `make docs` after changes
|
|
@@ -44,7 +44,7 @@ jobs:
|
|
|
44
44
|
- name: Check for uncommitted documentation changes
|
|
45
45
|
run: |
|
|
46
46
|
if [ -n "$(git status --porcelain docs/)" ]; then
|
|
47
|
-
echo "::error::Generated documentation is out of date. Please run 'make
|
|
47
|
+
echo "::error::Generated documentation is out of date. Please run 'make docs' and commit the changes."
|
|
48
48
|
echo ""
|
|
49
49
|
echo "The following files have uncommitted changes:"
|
|
50
50
|
git status --porcelain docs/
|
|
@@ -209,7 +209,7 @@ jobs:
|
|
|
209
209
|
- name: Build binary
|
|
210
210
|
shell: bash
|
|
211
211
|
run: |
|
|
212
|
-
uv run pyinstaller src/lumos/__main__.py --name lumos
|
|
212
|
+
uv run pyinstaller src/lumos/__main__.py --name lumos --collect-data click_extra
|
|
213
213
|
VERSION="${{ inputs.version || 'dev' }}"
|
|
214
214
|
tar -czf lumos-${{ matrix.platform }}-v${VERSION}.tar.gz -C ./dist/lumos .
|
|
215
215
|
|
|
@@ -8,21 +8,10 @@ on:
|
|
|
8
8
|
required: false
|
|
9
9
|
type: boolean
|
|
10
10
|
default: false
|
|
11
|
-
test-publish-to-pypi:
|
|
12
|
-
description: "Publish a manual test build to PyPI without creating a tag/release"
|
|
13
|
-
required: false
|
|
14
|
-
type: boolean
|
|
15
|
-
default: false
|
|
16
|
-
test-version:
|
|
17
|
-
description: "Version for test publish (must be unique on PyPI, e.g. 2.3.0.dev123)"
|
|
18
|
-
required: false
|
|
19
|
-
type: string
|
|
20
|
-
default: ""
|
|
21
11
|
|
|
22
12
|
jobs:
|
|
23
13
|
prepare:
|
|
24
14
|
name: Determine next version
|
|
25
|
-
if: inputs.test-publish-to-pypi != true
|
|
26
15
|
runs-on: ubuntu-latest
|
|
27
16
|
outputs:
|
|
28
17
|
new-release-version: ${{ steps.semantic.outputs.new-release-version }}
|
|
@@ -61,7 +50,7 @@ jobs:
|
|
|
61
50
|
build:
|
|
62
51
|
name: Build
|
|
63
52
|
needs: prepare
|
|
64
|
-
if:
|
|
53
|
+
if: needs.prepare.outputs.new-release-version != ''
|
|
65
54
|
uses: ./.github/workflows/build.yml
|
|
66
55
|
with:
|
|
67
56
|
version: ${{ needs.prepare.outputs.new-release-version }}
|
|
@@ -71,7 +60,7 @@ jobs:
|
|
|
71
60
|
release:
|
|
72
61
|
name: Create Release
|
|
73
62
|
needs: [prepare, build]
|
|
74
|
-
if: inputs.
|
|
63
|
+
if: inputs.dry-run != 'true'
|
|
75
64
|
runs-on: ubuntu-latest
|
|
76
65
|
environment:
|
|
77
66
|
name: pypi
|
|
@@ -150,7 +139,7 @@ jobs:
|
|
|
150
139
|
release-homebrew:
|
|
151
140
|
name: Release Homebrew Tap
|
|
152
141
|
needs: [prepare, release]
|
|
153
|
-
if: inputs.
|
|
142
|
+
if: inputs.dry-run != 'true'
|
|
154
143
|
runs-on: ubuntu-latest
|
|
155
144
|
steps:
|
|
156
145
|
- uses: actions/create-github-app-token@v2
|
|
@@ -167,43 +156,3 @@ jobs:
|
|
|
167
156
|
-H "Accept: application/vnd.github+json" \
|
|
168
157
|
https://api.github.com/repos/teamlumos/homebrew-tap/dispatches \
|
|
169
158
|
-d '{"event_type": "release", "client_payload": {"version": "${{ needs.prepare.outputs.new-release-version }}"}}'
|
|
170
|
-
|
|
171
|
-
test-publish:
|
|
172
|
-
name: Test Publish to PyPI (DO NOT MERGE)
|
|
173
|
-
if: inputs.test-publish-to-pypi == true
|
|
174
|
-
runs-on: ubuntu-latest
|
|
175
|
-
environment:
|
|
176
|
-
name: pypi
|
|
177
|
-
url: https://pypi.org/project/lumos-identity-cli/
|
|
178
|
-
permissions:
|
|
179
|
-
id-token: write
|
|
180
|
-
contents: read
|
|
181
|
-
steps:
|
|
182
|
-
- uses: actions/checkout@v4
|
|
183
|
-
|
|
184
|
-
- name: Validate test version input
|
|
185
|
-
shell: bash
|
|
186
|
-
run: |
|
|
187
|
-
if [ -z "${{ inputs.test-version }}" ]; then
|
|
188
|
-
echo "::error::test-version is required when test-publish-to-pypi=true"
|
|
189
|
-
exit 1
|
|
190
|
-
fi
|
|
191
|
-
|
|
192
|
-
- name: Setup Python
|
|
193
|
-
uses: actions/setup-python@v5
|
|
194
|
-
with:
|
|
195
|
-
python-version: '3.10.6'
|
|
196
|
-
|
|
197
|
-
- name: Setup UV
|
|
198
|
-
uses: astral-sh/setup-uv@v4
|
|
199
|
-
with:
|
|
200
|
-
version: latest
|
|
201
|
-
|
|
202
|
-
- name: Build test distribution
|
|
203
|
-
shell: bash
|
|
204
|
-
run: |
|
|
205
|
-
uv version "${{ inputs.test-version }}"
|
|
206
|
-
uv build
|
|
207
|
-
|
|
208
|
-
- name: Publish test build to PyPI
|
|
209
|
-
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -21,11 +21,11 @@ plugins:
|
|
|
21
21
|
- verifyReleaseCmd: echo "new-release-version=${nextRelease.version}" >> $GITHUB_OUTPUT
|
|
22
22
|
prepareCmd: |
|
|
23
23
|
uv sync --group docs
|
|
24
|
-
make
|
|
24
|
+
make docs
|
|
25
25
|
successCmd: |
|
|
26
26
|
export DEBUG=rdme*
|
|
27
27
|
echo "Publishing documentation to readme.io..."
|
|
28
|
-
rdme docs docs/src/_build/
|
|
28
|
+
rdme docs docs/src/_build/rdme
|
|
29
29
|
echo "✅ Documentation published to readme.io"
|
|
30
30
|
|
|
31
31
|
- - "@semantic-release/git"
|
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [2.4.1](https://github.com/teamlumos/lumos-cli/compare/v2.4.0...v2.4.1) (2026-05-19)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* release to pypi ([61057c0](https://github.com/teamlumos/lumos-cli/commit/61057c0218787d30d22c69a06dbe2a17a646ca2d))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Reverts
|
|
10
|
+
|
|
11
|
+
* Revert "test(ci): add manual PyPI test-publish path" ([bff18ee](https://github.com/teamlumos/lumos-cli/commit/bff18ee0eeee48fa33c90ce9ae0929800c5a3858))
|
|
12
|
+
|
|
1
13
|
# [2.4.0](https://github.com/teamlumos/lumos-cli/compare/v2.3.0...v2.4.0) (2026-01-09)
|
|
2
14
|
|
|
3
15
|
|
|
@@ -32,6 +32,8 @@ markdown:
|
|
|
32
32
|
@echo "Build finished. The Markdown files are in $(BUILDDIR)/markdown."
|
|
33
33
|
@cp $(BUILDDIR)/markdown/*.md $(GIT_ROOT)/docs/
|
|
34
34
|
@echo "Markdown files copied to docs/"
|
|
35
|
+
@# Normalize platform-specific config paths so docs/reference.md matches Linux CI.
|
|
36
|
+
@perl -i -pe 's{~/Library/Application Support/lumos}{~/.config/lumos}g' $(GIT_ROOT)/docs/reference.md
|
|
35
37
|
|
|
36
38
|
# Generate rdme documentation with YAML frontmatter
|
|
37
39
|
rdme:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: lumos-identity-cli
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2.4.2
|
|
4
4
|
Summary: Lumos command line interface.
|
|
5
5
|
Project-URL: Homepage, https://github.com/teamlumos/lumos-cli
|
|
6
6
|
Project-URL: Repository, https://github.com/teamlumos/lumos-cli
|
|
@@ -14,7 +14,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.11
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
16
16
|
Requires-Python: <4,>=3.10.6
|
|
17
|
-
Requires-Dist: click-extra<8,>=7.
|
|
17
|
+
Requires-Dist: click-extra<8,>=7.10.0
|
|
18
18
|
Requires-Dist: pick<3,>=2.2.0
|
|
19
19
|
Requires-Dist: pydantic<3,>=2.6.0
|
|
20
20
|
Requires-Dist: pytz>=2024.1
|
|
@@ -165,11 +165,11 @@ Documentation is built using [Sphinx](https://www.sphinx-doc.org/) with [MyST Ma
|
|
|
165
165
|
uv sync --group docs
|
|
166
166
|
|
|
167
167
|
# Build both HTML and Markdown, copy markdown to docs/
|
|
168
|
-
make
|
|
168
|
+
make docs
|
|
169
169
|
|
|
170
170
|
# Or build individually:
|
|
171
|
-
make
|
|
172
|
-
make
|
|
171
|
+
make html # HTML only
|
|
172
|
+
make markdown # Markdown only
|
|
173
173
|
|
|
174
174
|
# View the HTML docs
|
|
175
175
|
open docs/src/_build/html/index.html
|
|
@@ -253,7 +253,7 @@ uv version X.Y.Z
|
|
|
253
253
|
|
|
254
254
|
# Build artifacts
|
|
255
255
|
uv build
|
|
256
|
-
uv run pyinstaller src/lumos/__main__.py
|
|
256
|
+
uv run pyinstaller src/lumos/__main__.py --collect-data click_extra
|
|
257
257
|
|
|
258
258
|
# Create and push tag
|
|
259
259
|
git tag vX.Y.Z
|
|
@@ -375,7 +375,7 @@ lumos list apps --csv > apps.csv
|
|
|
375
375
|
All `list` commands support multiple output formats:
|
|
376
376
|
|
|
377
377
|
| Format | Flag | Use Case |
|
|
378
|
-
|
|
378
|
+
|:--------|:------------|:-------------------------------|
|
|
379
379
|
| Table | (default) | Human-readable terminal output |
|
|
380
380
|
| JSON | `--json` | Scripting and API integration |
|
|
381
381
|
| CSV | `--csv` | Spreadsheet import/export |
|
|
@@ -10,14 +10,20 @@ brew install teamlumos/tap/lumos
|
|
|
10
10
|
|
|
11
11
|
This installs a native binary with no Python dependencies required.
|
|
12
12
|
|
|
13
|
-
## Python (PyPI)
|
|
13
|
+
## Python (via PyPI)
|
|
14
14
|
|
|
15
|
-
Install from PyPI
|
|
15
|
+
Install the CLI from [PyPI](https://pypi.org/project/lumos-identity-cli/) with pip or uv:
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
pip install lumos-identity-cli
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
+
```bash
|
|
22
|
+
uv tool install lumos-identity-cli
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Requires Python 3.10.6 or newer. After installation, run `lumos --version` to verify.
|
|
26
|
+
|
|
21
27
|
### Supported Platforms
|
|
22
28
|
|
|
23
29
|
- macOS (Apple Silicon / ARM64)
|
|
@@ -30,7 +36,7 @@ pip install lumos-identity-cli
|
|
|
30
36
|
Download pre-built binaries directly from the [GitHub Releases page](https://github.com/teamlumos/lumos-cli/releases):
|
|
31
37
|
|
|
32
38
|
| Platform | Architecture | Download |
|
|
33
|
-
|
|
39
|
+
|:---------|:----------------------|:----------------------------------|
|
|
34
40
|
| Linux | AMD64 (x86_64) | `lumos-linux-amd64-vX.X.X.tar.gz` |
|
|
35
41
|
| Linux | ARM64 | `lumos-linux-arm64-vX.X.X.tar.gz` |
|
|
36
42
|
| macOS | ARM64 (Apple Silicon) | `lumos-macos-arm64-vX.X.X.tar.gz` |
|
|
@@ -13,28 +13,34 @@ Usage: lumos [OPTIONS] COMMAND [ARGS]...
|
|
|
13
13
|
Lumos CLI - Command line interface for Lumos
|
|
14
14
|
|
|
15
15
|
Options:
|
|
16
|
-
--time / --no-time
|
|
17
|
-
|
|
16
|
+
--time / --no-time Measure and print elapsed execution time. [default:
|
|
17
|
+
no-time]
|
|
18
|
+
--config CONFIG_PATH Location of the configuration file. Supports local
|
|
19
|
+
path with glob patterns or remote URL. [default: ~/.c
|
|
20
|
+
onfig/lumos/{*.toml,*.yaml,*.yml,*.json,*.ini,pyprojec
|
|
21
|
+
t.toml}]
|
|
22
|
+
--no-config Ignore all configuration files and only use command
|
|
23
|
+
line parameters and environment variables.
|
|
24
|
+
--validate-config FILE Validate the configuration file and exit.
|
|
18
25
|
--color, --ansi / --no-color, --no-ansi
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
--
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
--version Show the version and exit.
|
|
35
|
-
-h, --help Show this message and exit.
|
|
26
|
+
Strip out all colors and all ANSI codes from output.
|
|
27
|
+
[default: color]
|
|
28
|
+
--theme [dark|dracula|light|monokai|nord|solarized_dark]
|
|
29
|
+
Color theme used for help screens. [default: dark]
|
|
30
|
+
--show-params Show all CLI parameters, their provenance, defaults
|
|
31
|
+
and value, then exit.
|
|
32
|
+
--table-format [aligned|asciidoc|colon-grid|csv|csv-excel|csv-excel-tab|csv-unix|double-grid|double-outline|fancy-grid|fancy-outline|github|grid|heavy-grid|heavy-outline|hjson|html|jira|json|json5|jsonc|latex|latex-booktabs|latex-longtable|latex-raw|mediawiki|mixed-grid|mixed-outline|moinmoin|orgtbl|outline|pipe|plain|presto|pretty|psql|rounded-grid|rounded-outline|rst|simple|simple-grid|simple-outline|textile|toml|tsv|unsafehtml|vertical|xml|yaml|youtrack]
|
|
33
|
+
Rendering style of tables. [default: rounded-outline]
|
|
34
|
+
--verbosity LEVEL Either CRITICAL, ERROR, WARNING, INFO, DEBUG.
|
|
35
|
+
[default: WARNING]
|
|
36
|
+
-v, --verbose Increase the default WARNING verbosity by one level
|
|
37
|
+
for each additional repetition of the option.
|
|
38
|
+
[default: 0]
|
|
39
|
+
--version Show the version and exit.
|
|
40
|
+
-h, --help Show this message and exit.
|
|
36
41
|
|
|
37
42
|
Commands:
|
|
43
|
+
help Show help for a command.
|
|
38
44
|
list List various Lumos resources
|
|
39
45
|
login Login to your Lumos account via OAuth.
|
|
40
46
|
logout Logout of your Lumos account.
|
|
@@ -117,30 +123,36 @@ Usage: lumos list [OPTIONS] COMMAND [ARGS]...
|
|
|
117
123
|
List various Lumos resources
|
|
118
124
|
|
|
119
125
|
Options:
|
|
120
|
-
--time / --no-time
|
|
121
|
-
|
|
126
|
+
--time / --no-time Measure and print elapsed execution time. [default:
|
|
127
|
+
no-time]
|
|
128
|
+
--config CONFIG_PATH Location of the configuration file. Supports local
|
|
129
|
+
path with glob patterns or remote URL. [default: ~/.c
|
|
130
|
+
onfig/lumos/{*.toml,*.yaml,*.yml,*.json,*.ini,pyprojec
|
|
131
|
+
t.toml}]
|
|
132
|
+
--no-config Ignore all configuration files and only use command
|
|
133
|
+
line parameters and environment variables.
|
|
134
|
+
--validate-config FILE Validate the configuration file and exit.
|
|
122
135
|
--color, --ansi / --no-color, --no-ansi
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
--
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
--version Show the version and exit.
|
|
139
|
-
-h, --help Show this message and exit.
|
|
136
|
+
Strip out all colors and all ANSI codes from output.
|
|
137
|
+
[default: color]
|
|
138
|
+
--theme [dark|dracula|light|monokai|nord|solarized_dark]
|
|
139
|
+
Color theme used for help screens. [default: dark]
|
|
140
|
+
--show-params Show all CLI parameters, their provenance, defaults
|
|
141
|
+
and value, then exit.
|
|
142
|
+
--table-format [aligned|asciidoc|colon-grid|csv|csv-excel|csv-excel-tab|csv-unix|double-grid|double-outline|fancy-grid|fancy-outline|github|grid|heavy-grid|heavy-outline|hjson|html|jira|json|json5|jsonc|latex|latex-booktabs|latex-longtable|latex-raw|mediawiki|mixed-grid|mixed-outline|moinmoin|orgtbl|outline|pipe|plain|presto|pretty|psql|rounded-grid|rounded-outline|rst|simple|simple-grid|simple-outline|textile|toml|tsv|unsafehtml|vertical|xml|yaml|youtrack]
|
|
143
|
+
Rendering style of tables. [default: rounded-outline]
|
|
144
|
+
--verbosity LEVEL Either CRITICAL, ERROR, WARNING, INFO, DEBUG.
|
|
145
|
+
[default: WARNING]
|
|
146
|
+
-v, --verbose Increase the default WARNING verbosity by one level
|
|
147
|
+
for each additional repetition of the option.
|
|
148
|
+
[default: 0]
|
|
149
|
+
--version Show the version and exit.
|
|
150
|
+
-h, --help Show this message and exit.
|
|
140
151
|
|
|
141
152
|
Commands:
|
|
142
153
|
apps List apps in the appstore
|
|
143
154
|
groups List groups for the domain or the specified --app
|
|
155
|
+
help Show help for a command.
|
|
144
156
|
permissions List permissions for a given app
|
|
145
157
|
requests List access requests
|
|
146
158
|
users List users in Lumos
|
|
@@ -297,17 +309,21 @@ Options:
|
|
|
297
309
|
request
|
|
298
310
|
--time / --no-time Measure and print elapsed execution time. [default:
|
|
299
311
|
no-time]
|
|
300
|
-
--color, --ansi / --no-color, --no-ansi
|
|
301
|
-
Strip out all colors and all ANSI codes from output.
|
|
302
|
-
[default: color]
|
|
303
312
|
--config CONFIG_PATH Location of the configuration file. Supports local
|
|
304
|
-
path with glob patterns or remote URL. [default:
|
|
305
|
-
|
|
313
|
+
path with glob patterns or remote URL. [default: ~/.c
|
|
314
|
+
onfig/lumos/{*.toml,*.yaml,*.yml,*.json,*.ini,pyprojec
|
|
315
|
+
t.toml}]
|
|
306
316
|
--no-config Ignore all configuration files and only use command
|
|
307
317
|
line parameters and environment variables.
|
|
318
|
+
--validate-config FILE Validate the configuration file and exit.
|
|
319
|
+
--color, --ansi / --no-color, --no-ansi
|
|
320
|
+
Strip out all colors and all ANSI codes from output.
|
|
321
|
+
[default: color]
|
|
322
|
+
--theme [dark|dracula|light|monokai|nord|solarized_dark]
|
|
323
|
+
Color theme used for help screens. [default: dark]
|
|
308
324
|
--show-params Show all CLI parameters, their provenance, defaults
|
|
309
325
|
and value, then exit.
|
|
310
|
-
--table-format [asciidoc|csv|csv-excel|csv-excel-tab|csv-unix|double-grid|double-outline|fancy-grid|fancy-outline|github|grid|heavy-grid|heavy-outline|html|jira|latex|latex-booktabs|latex-longtable|latex-raw|mediawiki|mixed-grid|mixed-outline|moinmoin|orgtbl|outline|pipe|plain|presto|pretty|psql|rounded-grid|rounded-outline|rst|simple|simple-grid|simple-outline|textile|tsv|unsafehtml|vertical|youtrack]
|
|
326
|
+
--table-format [aligned|asciidoc|colon-grid|csv|csv-excel|csv-excel-tab|csv-unix|double-grid|double-outline|fancy-grid|fancy-outline|github|grid|heavy-grid|heavy-outline|hjson|html|jira|json|json5|jsonc|latex|latex-booktabs|latex-longtable|latex-raw|mediawiki|mixed-grid|mixed-outline|moinmoin|orgtbl|outline|pipe|plain|presto|pretty|psql|rounded-grid|rounded-outline|rst|simple|simple-grid|simple-outline|textile|toml|tsv|unsafehtml|vertical|xml|yaml|youtrack]
|
|
311
327
|
Rendering style of tables. [default: rounded-outline]
|
|
312
328
|
--verbosity LEVEL Either CRITICAL, ERROR, WARNING, INFO, DEBUG.
|
|
313
329
|
[default: WARNING]
|
|
@@ -319,6 +335,7 @@ Options:
|
|
|
319
335
|
|
|
320
336
|
Commands:
|
|
321
337
|
cancel Cancel a request by ID
|
|
338
|
+
help Show help for a command.
|
|
322
339
|
poll Poll a request by ID for up to 5 minutes
|
|
323
340
|
status Check the status of a request by ID or `--last` for the most recent...
|
|
324
341
|
```
|
|
@@ -330,7 +347,7 @@ Check the status of a request by ID or use `--last` for the most recent request.
|
|
|
330
347
|
**Options:**
|
|
331
348
|
|
|
332
349
|
| Flag | Description |
|
|
333
|
-
|
|
350
|
+
|:--------------------|:-----------------------|
|
|
334
351
|
| `--request-id` | Request ID to check |
|
|
335
352
|
| `--last` | Get the last request |
|
|
336
353
|
| `--status-only` | Output status only |
|
|
@@ -344,7 +361,7 @@ Poll a request by ID for up to 5 minutes, waiting for completion.
|
|
|
344
361
|
**Options:**
|
|
345
362
|
|
|
346
363
|
| Flag | Description |
|
|
347
|
-
|
|
364
|
+
|:---------------|:---------------------------------|
|
|
348
365
|
| `--request-id` | Request ID to poll |
|
|
349
366
|
| `--wait` | How many minutes to wait (max 5) |
|
|
350
367
|
|
|
@@ -355,6 +372,6 @@ Cancel a pending request.
|
|
|
355
372
|
**Options:**
|
|
356
373
|
|
|
357
374
|
| Flag | Description |
|
|
358
|
-
|
|
375
|
+
|:---------------|:------------------------|
|
|
359
376
|
| `--request-id` | Request ID to cancel |
|
|
360
377
|
| `--reason` | Reason for cancellation |
|
|
@@ -6,6 +6,11 @@
|
|
|
6
6
|
import os
|
|
7
7
|
import sys
|
|
8
8
|
|
|
9
|
+
# Stabilize click help wrapping in generated docs across dev machines and CI.
|
|
10
|
+
import click.formatting
|
|
11
|
+
|
|
12
|
+
click.formatting.FORCED_WIDTH = 78
|
|
13
|
+
|
|
9
14
|
# Add the source directory to the path for autodoc
|
|
10
15
|
sys.path.insert(0, os.path.abspath("../../src"))
|
|
11
16
|
|
|
@@ -42,6 +47,10 @@ extensions = [
|
|
|
42
47
|
"sphinx_rdme",
|
|
43
48
|
]
|
|
44
49
|
|
|
50
|
+
# Required for {click:run} / {click:source} directives in docs/src/reference.md.
|
|
51
|
+
# click-extra 7.10+ gates build-time CLI execution behind this opt-in flag.
|
|
52
|
+
click_extra_enable_exec_directives = True
|
|
53
|
+
|
|
45
54
|
# MyST Parser configuration
|
|
46
55
|
myst_enable_extensions = [
|
|
47
56
|
"colon_fence",
|
|
@@ -188,11 +188,11 @@ Documentation is built using [Sphinx](https://www.sphinx-doc.org/) with [MyST Ma
|
|
|
188
188
|
uv sync --group docs
|
|
189
189
|
|
|
190
190
|
# Build both HTML and Markdown, copy markdown to docs/
|
|
191
|
-
make
|
|
191
|
+
make docs
|
|
192
192
|
|
|
193
193
|
# Or build individually:
|
|
194
|
-
make
|
|
195
|
-
make
|
|
194
|
+
make html # HTML only
|
|
195
|
+
make markdown # Markdown only
|
|
196
196
|
|
|
197
197
|
# View the HTML docs
|
|
198
198
|
open docs/src/_build/html/index.html
|
|
@@ -275,7 +275,7 @@ uv version X.Y.Z
|
|
|
275
275
|
|
|
276
276
|
# Build artifacts
|
|
277
277
|
uv build
|
|
278
|
-
uv run pyinstaller src/lumos/__main__.py
|
|
278
|
+
uv run pyinstaller src/lumos/__main__.py --collect-data click_extra
|
|
279
279
|
|
|
280
280
|
# Create and push tag
|
|
281
281
|
git tag vX.Y.Z
|
|
@@ -21,14 +21,20 @@ brew install teamlumos/tap/lumos
|
|
|
21
21
|
|
|
22
22
|
This installs a native binary with no Python dependencies required.
|
|
23
23
|
|
|
24
|
-
## Python (PyPI)
|
|
24
|
+
## Python (via PyPI)
|
|
25
25
|
|
|
26
|
-
Install from PyPI
|
|
26
|
+
Install the CLI from [PyPI](https://pypi.org/project/lumos-identity-cli/) with pip or uv:
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
29
|
pip install lumos-identity-cli
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
+
```bash
|
|
33
|
+
uv tool install lumos-identity-cli
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Requires Python 3.10.6 or newer. After installation, run `lumos --version` to verify.
|
|
37
|
+
|
|
32
38
|
### Supported Platforms
|
|
33
39
|
|
|
34
40
|
- macOS (Apple Silicon / ARM64)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "lumos-identity-cli"
|
|
3
|
-
version = "
|
|
3
|
+
version = "2.4.2"
|
|
4
4
|
description = "Lumos command line interface."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [{ name = "lumos-dev" }]
|
|
@@ -15,7 +15,7 @@ classifiers = [
|
|
|
15
15
|
"Programming Language :: Python :: 3.12",
|
|
16
16
|
]
|
|
17
17
|
dependencies = [
|
|
18
|
-
"click-extra>=7.
|
|
18
|
+
"click-extra>=7.10.0,<8",
|
|
19
19
|
"pick>=2.2.0,<3",
|
|
20
20
|
"pydantic>=2.6.0,<3",
|
|
21
21
|
"pytz>=2024.1",
|
|
@@ -15,7 +15,7 @@ client = ApiClient()
|
|
|
15
15
|
|
|
16
16
|
@group(
|
|
17
17
|
context_settings={"help_option_names": ["-h", "--help"]},
|
|
18
|
-
version
|
|
18
|
+
version_fields={"version": __version__},
|
|
19
19
|
)
|
|
20
20
|
@option("--debug", is_flag=True, help="Enable debug mode", hidden=True)
|
|
21
21
|
@pass_context
|
|
@@ -5,6 +5,7 @@ These tests validate the end-user experience by testing CLI structure,
|
|
|
5
5
|
options, and help text without making actual API calls.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
+
import os
|
|
8
9
|
from unittest.mock import patch
|
|
9
10
|
from uuid import UUID
|
|
10
11
|
|
|
@@ -84,7 +85,11 @@ def mock_access_request(mock_user, mock_app, mock_permission):
|
|
|
84
85
|
|
|
85
86
|
@pytest.fixture
|
|
86
87
|
def runner():
|
|
87
|
-
|
|
88
|
+
# GitHub Actions sets FORCE_COLOR=1; click-extra 7.10+ then highlights help
|
|
89
|
+
# keywords with ANSI codes, which breaks plain-string assertions.
|
|
90
|
+
env = os.environ.copy()
|
|
91
|
+
env["FORCE_COLOR"] = "0"
|
|
92
|
+
return CliRunner(env=env)
|
|
88
93
|
|
|
89
94
|
|
|
90
95
|
class TestMainCLI:
|
|
@@ -189,7 +189,7 @@ wheels = [
|
|
|
189
189
|
|
|
190
190
|
[[package]]
|
|
191
191
|
name = "click-extra"
|
|
192
|
-
version = "7.
|
|
192
|
+
version = "7.16.1"
|
|
193
193
|
source = { registry = "https://pypi.org/simple" }
|
|
194
194
|
dependencies = [
|
|
195
195
|
{ name = "boltons" },
|
|
@@ -202,9 +202,9 @@ dependencies = [
|
|
|
202
202
|
{ name = "tomli", marker = "python_full_version < '3.11'" },
|
|
203
203
|
{ name = "wcmatch" },
|
|
204
204
|
]
|
|
205
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
205
|
+
sdist = { url = "https://files.pythonhosted.org/packages/5e/02/d180104019150d340049dccc41f17d9ba0c3363c44767b01b029716d259b/click_extra-7.16.1.tar.gz", hash = "sha256:a616651275a9673ed4930976a1d6bdd93dc04325cf475ccc38399b0c4396644e", size = 190154, upload-time = "2026-05-15T06:53:28.075Z" }
|
|
206
206
|
wheels = [
|
|
207
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
207
|
+
{ url = "https://files.pythonhosted.org/packages/d8/91/81c0dacf90bc8d9f778ef74e3993cad0e7c99647afd7352a6e9769c0398c/click_extra-7.16.1-py3-none-any.whl", hash = "sha256:d83cb123f82f13d95bc5d0ffa3d049c3bcdb55278105d0a77059eb0735e9286e", size = 208248, upload-time = "2026-05-15T06:53:26.535Z" },
|
|
208
208
|
]
|
|
209
209
|
|
|
210
210
|
[[package]]
|
|
@@ -276,15 +276,6 @@ wheels = [
|
|
|
276
276
|
{ url = "https://files.pythonhosted.org/packages/33/6b/e0547afaf41bf2c42e52430072fa5658766e3d65bd4b03a563d1b6336f57/distlib-0.4.0-py2.py3-none-any.whl", hash = "sha256:9659f7d87e46584a30b5780e43ac7a2143098441670ff0a49d5f9034c54a6c16", size = 469047, upload-time = "2025-07-17T16:51:58.613Z" },
|
|
277
277
|
]
|
|
278
278
|
|
|
279
|
-
[[package]]
|
|
280
|
-
name = "distro"
|
|
281
|
-
version = "1.9.0"
|
|
282
|
-
source = { registry = "https://pypi.org/simple" }
|
|
283
|
-
sdist = { url = "https://files.pythonhosted.org/packages/fc/f8/98eea607f65de6527f8a2e8885fc8015d3e6f5775df186e443e0964a11c3/distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed", size = 60722, upload-time = "2023-12-24T09:54:32.31Z" }
|
|
284
|
-
wheels = [
|
|
285
|
-
{ url = "https://files.pythonhosted.org/packages/12/b3/231ffd4ab1fc9d679809f356cebee130ac7daa00d6d6f3206dd4fd137e9e/distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2", size = 20277, upload-time = "2023-12-24T09:54:30.421Z" },
|
|
286
|
-
]
|
|
287
|
-
|
|
288
279
|
[[package]]
|
|
289
280
|
name = "docutils"
|
|
290
281
|
version = "0.20.1"
|
|
@@ -308,14 +299,11 @@ wheels = [
|
|
|
308
299
|
|
|
309
300
|
[[package]]
|
|
310
301
|
name = "extra-platforms"
|
|
311
|
-
version = "
|
|
302
|
+
version = "12.0.3"
|
|
312
303
|
source = { registry = "https://pypi.org/simple" }
|
|
313
|
-
|
|
314
|
-
{ name = "distro" },
|
|
315
|
-
]
|
|
316
|
-
sdist = { url = "https://files.pythonhosted.org/packages/fb/df/73e313d4ecca7b703b6f369d9ed0c2c0d4d8a149e1c675e9915f8426a513/extra_platforms-6.0.0.tar.gz", hash = "sha256:ff0d392e390d2447183af4b300dd4569d2dbf760adf1e30c2b0cefb30ee58488", size = 45977, upload-time = "2026-01-02T09:15:41.019Z" }
|
|
304
|
+
sdist = { url = "https://files.pythonhosted.org/packages/4c/f6/a20c4586c9bd653f596258455652725405f4b734e6270f7fc07a1a498932/extra_platforms-12.0.3.tar.gz", hash = "sha256:0a3201a05f93f18c840f3e9970d33f756a621eea719cbdfa24a514f96c79de7e", size = 72879, upload-time = "2026-04-29T06:47:18.131Z" }
|
|
317
305
|
wheels = [
|
|
318
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
306
|
+
{ url = "https://files.pythonhosted.org/packages/46/ef/efc376476f41868ca834b30ed100b250d53da2b4929ee8e63ef48e7b0b03/extra_platforms-12.0.3-py3-none-any.whl", hash = "sha256:b6b7fad4b41e1f9f161cc74c03d963e43a3a34e0ee1991943314685314b01cf6", size = 76128, upload-time = "2026-04-29T06:47:16.945Z" },
|
|
319
307
|
]
|
|
320
308
|
|
|
321
309
|
[[package]]
|
|
@@ -377,7 +365,7 @@ wheels = [
|
|
|
377
365
|
|
|
378
366
|
[[package]]
|
|
379
367
|
name = "lumos-identity-cli"
|
|
380
|
-
version = "
|
|
368
|
+
version = "2.4.2"
|
|
381
369
|
source = { editable = "." }
|
|
382
370
|
dependencies = [
|
|
383
371
|
{ name = "click-extra" },
|
|
@@ -413,7 +401,7 @@ docs = [
|
|
|
413
401
|
|
|
414
402
|
[package.metadata]
|
|
415
403
|
requires-dist = [
|
|
416
|
-
{ name = "click-extra", specifier = ">=7.
|
|
404
|
+
{ name = "click-extra", specifier = ">=7.10.0,<8" },
|
|
417
405
|
{ name = "pick", specifier = ">=2.2.0,<3" },
|
|
418
406
|
{ name = "pydantic", specifier = ">=2.6.0,<3" },
|
|
419
407
|
{ name = "pytz", specifier = ">=2024.1" },
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/sample-scripts/create_requests.py
RENAMED
|
File without changes
|
{lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/sample-scripts/customer-secrets.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/src/lumos/common/client_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/src/lumos/list_collections/__init__.py
RENAMED
|
File without changes
|
{lumos_identity_cli-0.0.0.dev1 → lumos_identity_cli-2.4.2}/src/lumos/list_collections/cli.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|