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.
Files changed (68) hide show
  1. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/CHANGELOG.md +39 -0
  2. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/LICENSE +1 -1
  3. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/PKG-INFO +8 -5
  4. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/README.md +6 -3
  5. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/pyproject.toml +1 -5
  6. {qualys_cli-0.1.2/docs → qualys_cli-0.1.4/src/qualys_cli/_docs}/usage.html +12 -10
  7. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/cli.py +1 -0
  8. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/asset.py +25 -4
  9. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/ca.py +78 -2
  10. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/pc.py +75 -11
  11. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/pm.py +75 -9
  12. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/user.py +4 -1
  13. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/vm.py +21 -6
  14. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/was.py +13 -3
  15. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/extras.py +46 -0
  16. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_asset.py +54 -0
  17. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_ca.py +71 -0
  18. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_features.py +28 -0
  19. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_pc.py +61 -0
  20. qualys_cli-0.1.4/tests/test_pm.py +132 -0
  21. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_user.py +34 -0
  22. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_vm.py +47 -0
  23. qualys_cli-0.1.4/tests/test_was.py +52 -0
  24. qualys_cli-0.1.2/tests/test_pm.py +0 -57
  25. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/.gitignore +0 -0
  26. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/__init__.py +0 -0
  27. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/__main__.py +0 -0
  28. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/audit.py +0 -0
  29. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/auth.py +0 -0
  30. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/cache.py +0 -0
  31. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/client.py +0 -0
  32. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/__init__.py +0 -0
  33. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/cs.py +0 -0
  34. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/csam.py +0 -0
  35. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/etm.py +0 -0
  36. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/scanauth.py +0 -0
  37. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/sub.py +0 -0
  38. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/commands/tc.py +0 -0
  39. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/config.py +0 -0
  40. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/flair.py +0 -0
  41. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/formatters.py +0 -0
  42. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/history.py +0 -0
  43. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/http_server.py +0 -0
  44. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/mcp_server.py +0 -0
  45. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/metrics.py +0 -0
  46. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/platforms.py +0 -0
  47. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/src/qualys_cli/queries.py +0 -0
  48. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/__init__.py +0 -0
  49. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/conftest.py +0 -0
  50. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_agent_mode.py +0 -0
  51. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_all_commands_smoke.py +0 -0
  52. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_audit.py +0 -0
  53. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_client.py +0 -0
  54. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_csam.py +0 -0
  55. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_error_handling.py +0 -0
  56. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_etm.py +0 -0
  57. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_flair.py +0 -0
  58. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_formatters.py +0 -0
  59. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_global_flags.py +0 -0
  60. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_help.py +0 -0
  61. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_high_fixes.py +0 -0
  62. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_main.py +0 -0
  63. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_med_fixes.py +0 -0
  64. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_resiliency.py +0 -0
  65. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_scanauth.py +0 -0
  66. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_security_fixes.py +0 -0
  67. {qualys_cli-0.1.2 → qualys_cli-0.1.4}/tests/test_sub.py +0 -0
  68. {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,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 qualys-cli contributors
3
+ Copyright (c) 2026 Qualys Inc
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qualys-cli
3
- Version: 0.1.2
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 qualys-cli contributors
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 all 273 endpoints ships inside the
223
- package as `usage.html`. Locate it after installation with:
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
- python -c "import sys; print(sys.prefix + '/share/qualys-cli/docs/usage.html')"
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 all 273 endpoints ships inside the
159
- package as `usage.html`. Locate it after installation with:
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
- python -c "import sys; print(sys.prefix + '/share/qualys-cli/docs/usage.html')"
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.2"
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",