qualys-cli 0.1.2__tar.gz → 0.1.4__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.
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/CHANGELOG.md +39 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/LICENSE +1 -1
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/PKG-INFO +8 -5
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/README.md +6 -3
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/pyproject.toml +1 -5
- {qualys_cli-0.1.2/docs → qualys_cli-0.1.4/src/qualys_cli/_docs}/usage.html +12 -10
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/cli.py +1 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/asset.py +25 -4
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/ca.py +78 -2
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/pc.py +75 -11
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/pm.py +75 -9
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/user.py +4 -1
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/vm.py +21 -6
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/was.py +13 -3
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/extras.py +46 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_asset.py +54 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_ca.py +71 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_features.py +28 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_pc.py +61 -0
- qualys_cli-0.1.4/tests/test_pm.py +132 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_user.py +34 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_vm.py +47 -0
- qualys_cli-0.1.4/tests/test_was.py +52 -0
- qualys_cli-0.1.2/tests/test_pm.py +0 -57
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/.gitignore +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/__init__.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/__main__.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/audit.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/auth.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/cache.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/client.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/__init__.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/cs.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/csam.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/etm.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/scanauth.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/sub.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/tc.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/config.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/flair.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/formatters.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/history.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/http_server.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/mcp_server.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/metrics.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/platforms.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/queries.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/__init__.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/conftest.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_agent_mode.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_all_commands_smoke.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_audit.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_client.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_csam.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_error_handling.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_etm.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_flair.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_formatters.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_global_flags.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_help.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_high_fixes.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_main.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_med_fixes.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_resiliency.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_scanauth.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_security_fixes.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_sub.py +0 -0
- {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_tc.py +0 -0
|
@@ -6,6 +6,45 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.1.4] — 2026-07-08
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- `ca agent list` now accepts `--status Active|Inactive`. Agent status is not a
|
|
13
|
+
searchable Qualys field (the API rejects it), so the filter is applied
|
|
14
|
+
client-side to the returned rows against `agentInfo.status`
|
|
15
|
+
(`STATUS_ACTIVE`/`STATUS_INACTIVE`).
|
|
16
|
+
- `qualys-cli docs` command — locates or opens the bundled HTML command
|
|
17
|
+
reference that ships inside the package (`--open`/`--no-open`/`--stdout`).
|
|
18
|
+
The sub-app existed but was never registered on the CLI.
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
- `asset ip add` failed with HTTP 400 because it never sent a module flag. It
|
|
22
|
+
now sends `enable_vm=1` by default and exposes `--vm/--no-vm`, `--pc`,
|
|
23
|
+
`--sca`, and `--certview` (at least one is required by the API).
|
|
24
|
+
- `vm option-profile delete` sent the profile ID under `ids`; the API requires
|
|
25
|
+
the singular `id`, so deletes returned HTTP 400.
|
|
26
|
+
- `user create` never sent `action=add`, which the `/msp/user.php` API requires
|
|
27
|
+
to create a user.
|
|
28
|
+
- `pm job create` and `pm job update` now send the API-required `type` field;
|
|
29
|
+
`pm job change-status` posts job IDs under `ids` (was the wrong key `jobIds`).
|
|
30
|
+
- Audited every list/search filter option for field tokens the API rejects as
|
|
31
|
+
"invalid criteria" (the class behind the `ca agent list --status` 400) and
|
|
32
|
+
fixed the offenders:
|
|
33
|
+
- `was catalog list` sent an invalid `name` Criteria (400). Replaced with the
|
|
34
|
+
documented catalog fields `--fqdn`, `--ip`, and `--status`.
|
|
35
|
+
- `vm report list --type` and `pc policy list --title` sent input params the
|
|
36
|
+
API doesn't accept (silently ignored). Both are now applied client-side to
|
|
37
|
+
the response (`TYPE` / `TITLE`).
|
|
38
|
+
- `pm patch list --severity` sent an invalid `severityList` param; it now
|
|
39
|
+
filters returned rows on `vendorSeverity` client-side.
|
|
40
|
+
- `pc posture list` sent singular `host_id`/`control_id`; the API expects the
|
|
41
|
+
plural `host_ids`/`control_ids`. Its `--status` is normalised to the API's
|
|
42
|
+
`Passed|Failed|Error` values.
|
|
43
|
+
- All `--status`/`--severity`-style values are validated up front (fast
|
|
44
|
+
`BadParameter` before any network call).
|
|
45
|
+
- Corrected the README instructions for locating the bundled usage reference
|
|
46
|
+
(the old `sys.prefix/share/...` path was never where the file shipped).
|
|
47
|
+
|
|
9
48
|
## [0.1.2] — 2026-07-08
|
|
10
49
|
|
|
11
50
|
### Changed
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: qualys-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Summary: Unified command-line interface for the Qualys Cloud Platform REST APIs (VM, PC, PM, ETM, WAS, TotalCloud, Cloud Agent, Container Security, CSAM, Subscription, Asset, and User management).
|
|
5
5
|
Project-URL: Homepage, https://www.qualys.com
|
|
6
6
|
Author: qualys-cli contributors
|
|
7
7
|
License: MIT License
|
|
8
8
|
|
|
9
|
-
Copyright (c) 2026
|
|
9
|
+
Copyright (c) 2026 Qualys Inc
|
|
10
10
|
|
|
11
11
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12
12
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -219,11 +219,14 @@ for the full flag set.
|
|
|
219
219
|
|
|
220
220
|
## Bundled documentation
|
|
221
221
|
|
|
222
|
-
A comprehensive usage reference covering
|
|
223
|
-
package
|
|
222
|
+
A comprehensive HTML usage reference covering every command ships inside the
|
|
223
|
+
package. The `docs` command finds and opens it — no path guessing required, and
|
|
224
|
+
it works identically for `pip` and `pipx` installs:
|
|
224
225
|
|
|
225
226
|
```bash
|
|
226
|
-
|
|
227
|
+
qualys-cli docs # open the reference in your default browser
|
|
228
|
+
qualys-cli docs --no-open # just print the file path (and size)
|
|
229
|
+
qualys-cli docs --stdout # write the raw HTML to stdout (pipe it anywhere)
|
|
227
230
|
```
|
|
228
231
|
|
|
229
232
|
## LLM / agent usage
|
|
@@ -155,11 +155,14 @@ for the full flag set.
|
|
|
155
155
|
|
|
156
156
|
## Bundled documentation
|
|
157
157
|
|
|
158
|
-
A comprehensive usage reference covering
|
|
159
|
-
package
|
|
158
|
+
A comprehensive HTML usage reference covering every command ships inside the
|
|
159
|
+
package. The `docs` command finds and opens it — no path guessing required, and
|
|
160
|
+
it works identically for `pip` and `pipx` installs:
|
|
160
161
|
|
|
161
162
|
```bash
|
|
162
|
-
|
|
163
|
+
qualys-cli docs # open the reference in your default browser
|
|
164
|
+
qualys-cli docs --no-open # just print the file path (and size)
|
|
165
|
+
qualys-cli docs --stdout # write the raw HTML to stdout (pipe it anywhere)
|
|
163
166
|
```
|
|
164
167
|
|
|
165
168
|
## LLM / agent usage
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "qualys-cli"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.4"
|
|
8
8
|
description = "Unified command-line interface for the Qualys Cloud Platform REST APIs (VM, PC, PM, ETM, WAS, TotalCloud, Cloud Agent, Container Security, CSAM, Subscription, Asset, and User management)."
|
|
9
9
|
readme = { file = "README.md", content-type = "text/markdown" }
|
|
10
10
|
license = { file = "LICENSE" }
|
|
@@ -81,9 +81,6 @@ dev = [
|
|
|
81
81
|
[tool.hatch.build.targets.wheel]
|
|
82
82
|
packages = ["src/qualys_cli"]
|
|
83
83
|
|
|
84
|
-
[tool.hatch.build.targets.wheel.shared-data]
|
|
85
|
-
"docs/usage.html" = "share/qualys-cli/docs/usage.html"
|
|
86
|
-
|
|
87
84
|
[tool.hatch.build.targets.sdist]
|
|
88
85
|
include = [
|
|
89
86
|
"src/qualys_cli",
|
|
@@ -92,7 +89,6 @@ include = [
|
|
|
92
89
|
"CHANGELOG.md",
|
|
93
90
|
"LICENSE",
|
|
94
91
|
"pyproject.toml",
|
|
95
|
-
"docs/usage.html",
|
|
96
92
|
]
|
|
97
93
|
exclude = [
|
|
98
94
|
".cache",
|