certifyclouds 1.3.4__tar.gz → 1.3.6__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.
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/.gitignore +1 -0
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/PKG-INFO +1 -1
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/pyproject.toml +1 -1
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/src/cc_scanner/__init__.py +1 -1
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/src/cc_scanner/cli.py +23 -2
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/LICENSE +0 -0
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/README.md +0 -0
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/src/cc_scanner/auth.py +0 -0
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/src/cc_scanner/config.py +0 -0
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/src/cc_scanner/filters.py +0 -0
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/src/cc_scanner/formatters/__init__.py +0 -0
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/src/cc_scanner/formatters/csv_fmt.py +0 -0
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/src/cc_scanner/formatters/html.py +0 -0
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/src/cc_scanner/formatters/json_fmt.py +0 -0
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/src/cc_scanner/formatters/table.py +0 -0
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/src/cc_scanner/registration.py +0 -0
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/src/cc_scanner/scanner.py +0 -0
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/src/cc_scanner/security.py +0 -0
- {certifyclouds-1.3.4 → certifyclouds-1.3.6}/src/cc_scanner/thumbprint.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: certifyclouds
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.6
|
|
4
4
|
Summary: Scan Azure Key Vaults for expiring secrets, certificates, and keys
|
|
5
5
|
Project-URL: Homepage, https://certifyclouds.com/scanner
|
|
6
6
|
Project-URL: Documentation, https://docs.certifyclouds.com/scanner
|
|
@@ -25,6 +25,22 @@ from .security import analyze, has_critical_or_high
|
|
|
25
25
|
console = Console()
|
|
26
26
|
|
|
27
27
|
|
|
28
|
+
def _is_newer_version(latest: str, current: str) -> bool:
|
|
29
|
+
"""True if `latest` is strictly higher than `current` as dotted-integer semver.
|
|
30
|
+
|
|
31
|
+
Uses tuple comparison on `int`-parsed segments. Returns False on any
|
|
32
|
+
parse failure (e.g. pre-release suffixes like "1.3.5rc1") — we'd
|
|
33
|
+
rather skip the banner than tell the user to upgrade from a newer
|
|
34
|
+
dev build to an older release.
|
|
35
|
+
"""
|
|
36
|
+
try:
|
|
37
|
+
return tuple(int(p) for p in latest.split(".")) > tuple(
|
|
38
|
+
int(p) for p in current.split(".")
|
|
39
|
+
)
|
|
40
|
+
except (ValueError, AttributeError):
|
|
41
|
+
return False
|
|
42
|
+
|
|
43
|
+
|
|
28
44
|
_LOGO_LINES = [
|
|
29
45
|
" ▄▄███▄▄ ",
|
|
30
46
|
" ▄▄███▀▀ ▀▀███▄▄ ",
|
|
@@ -268,7 +284,12 @@ def main(
|
|
|
268
284
|
"keys": results.get("totalKeys", 0),
|
|
269
285
|
"expired": sum(expiry_summary["expired"].values()),
|
|
270
286
|
"expiringSoon": sum(expiry_summary["30_days"].values()),
|
|
271
|
-
|
|
287
|
+
# Per fleet-telemetry decision (1.3.5 + main app 1.4.12): we
|
|
288
|
+
# no longer send `securityFindings` count. A customer's
|
|
289
|
+
# compliance-violation count is sensitive (it reveals the
|
|
290
|
+
# security posture of their estate to HC), and the count
|
|
291
|
+
# has zero customer-success value to HC anyway — only
|
|
292
|
+
# specifics could help, and we don't collect those.
|
|
272
293
|
"vaultsWithErrors": results.get("vaultsWithErrors", 0),
|
|
273
294
|
"scanDurationMs": scan_duration_ms,
|
|
274
295
|
}
|
|
@@ -282,7 +303,7 @@ def main(
|
|
|
282
303
|
console.print()
|
|
283
304
|
elif validation.offline and validation.error:
|
|
284
305
|
console.print(f"[dim]{validation.error}. Scanning in offline mode.[/dim]")
|
|
285
|
-
elif validation.latest_version and validation.latest_version
|
|
306
|
+
elif validation.latest_version and _is_newer_version(validation.latest_version, __version__):
|
|
286
307
|
console.print(f"[dim]Update available: cc-scan {__version__} → {validation.latest_version} — pip install --upgrade certifyclouds[/dim]")
|
|
287
308
|
if validation.release_notes:
|
|
288
309
|
console.print(f"[dim] What's new: {validation.release_notes}[/dim]")
|
|
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
|
|
File without changes
|
|
File without changes
|