certifyclouds 1.2.2__tar.gz → 1.3.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.
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/.gitignore +36 -3
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/PKG-INFO +6 -5
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/pyproject.toml +6 -5
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/src/cc_scanner/__init__.py +1 -1
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/src/cc_scanner/scanner.py +1 -1
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/src/cc_scanner/security.py +3 -0
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/LICENSE +0 -0
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/README.md +0 -0
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/src/cc_scanner/auth.py +0 -0
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/src/cc_scanner/cli.py +0 -0
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/src/cc_scanner/config.py +0 -0
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/src/cc_scanner/filters.py +0 -0
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/src/cc_scanner/formatters/__init__.py +0 -0
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/src/cc_scanner/formatters/csv_fmt.py +0 -0
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/src/cc_scanner/formatters/html.py +0 -0
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/src/cc_scanner/formatters/json_fmt.py +0 -0
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/src/cc_scanner/formatters/table.py +0 -0
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/src/cc_scanner/registration.py +0 -0
- {certifyclouds-1.2.2 → certifyclouds-1.3.4}/src/cc_scanner/thumbprint.py +0 -0
|
@@ -3,9 +3,17 @@
|
|
|
3
3
|
.env.local
|
|
4
4
|
.env.*.local
|
|
5
5
|
.dev.vars
|
|
6
|
+
.release-env
|
|
7
|
+
.release-env.*
|
|
6
8
|
*.pem
|
|
7
9
|
*.key
|
|
8
10
|
.mcp.json
|
|
11
|
+
.eslintcache
|
|
12
|
+
|
|
13
|
+
# Sensitive business data (GDPR)
|
|
14
|
+
marketing/outreach/leads.json
|
|
15
|
+
marketing/outreach/outreach_log.json
|
|
16
|
+
marketing/outreach/CLIENTS.md
|
|
9
17
|
|
|
10
18
|
# Local tools (MCP servers)
|
|
11
19
|
tools/
|
|
@@ -13,6 +21,9 @@ tools/
|
|
|
13
21
|
# Customer data
|
|
14
22
|
customer-packages/
|
|
15
23
|
|
|
24
|
+
# Local doc backups (created during cleanup work)
|
|
25
|
+
.docs-backup-*/
|
|
26
|
+
|
|
16
27
|
# Security scan reports (contain vulnerability details)
|
|
17
28
|
security-reports/
|
|
18
29
|
|
|
@@ -86,6 +97,10 @@ e2e/node_modules/
|
|
|
86
97
|
e2e/.playwright/
|
|
87
98
|
e2e/e2e/.auth/
|
|
88
99
|
|
|
100
|
+
# Auto-generated marketing screenshots (regenerated on every E2E run by
|
|
101
|
+
# e2e/api/take-screenshots.spec.ts — should NOT be checked in)
|
|
102
|
+
website/assets/screenshots/*.png
|
|
103
|
+
|
|
89
104
|
# Video files (E2E recordings, demo outputs - all regenerated)
|
|
90
105
|
*.webm
|
|
91
106
|
*.mp4
|
|
@@ -98,8 +113,9 @@ e2e/e2e/.auth/
|
|
|
98
113
|
*.temp
|
|
99
114
|
.cache/
|
|
100
115
|
|
|
101
|
-
# Claude Code (
|
|
102
|
-
.claude
|
|
116
|
+
# Claude Code config (ignore all except dispatch context)
|
|
117
|
+
.claude/*
|
|
118
|
+
!.claude/dispatch-context.md
|
|
103
119
|
.agents/
|
|
104
120
|
claude-*.md
|
|
105
121
|
|
|
@@ -142,4 +158,21 @@ marketing/video/public/audio/tts_*.mp3
|
|
|
142
158
|
reports/
|
|
143
159
|
*.pdf
|
|
144
160
|
|
|
145
|
-
DEPLOY_STHREE.md
|
|
161
|
+
DEPLOY_STHREE.md
|
|
162
|
+
# Lab — local secrets (never commit)
|
|
163
|
+
scripts/lab/.lab-env.local
|
|
164
|
+
scripts/lab/.deploy-aci-secret-key
|
|
165
|
+
scripts/lab/.deploy-aci-mi-principal-id
|
|
166
|
+
scripts/lab/.deploy-cae-secret-key
|
|
167
|
+
scripts/lab/.deploy-cae-mi-principal-id
|
|
168
|
+
scripts/lab/.deploy-aci-workdir/
|
|
169
|
+
scripts/lab/.deploy-aci-private-ip
|
|
170
|
+
scripts/lab/.deploy-cf-tunnel-id
|
|
171
|
+
scripts/lab/.deploy-cf-tunnel-token
|
|
172
|
+
scripts/lab/.deploy-cf-access-app-id
|
|
173
|
+
scripts/lab/.deploy-cae-fqdn
|
|
174
|
+
scripts/lab/.deploy-cae-workdir/
|
|
175
|
+
scripts/lab/.cf-origin-certs/
|
|
176
|
+
scripts/lab/.db-password-*.backup
|
|
177
|
+
scripts/lab/.deploy-sso-secret
|
|
178
|
+
scripts/lab/.cloud-creds/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: certifyclouds
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.3.4
|
|
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
|
|
@@ -24,20 +24,21 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
24
24
|
Classifier: Topic :: Security
|
|
25
25
|
Classifier: Topic :: System :: Systems Administration
|
|
26
26
|
Requires-Python: >=3.9
|
|
27
|
-
Requires-Dist: azure-core>=1.
|
|
27
|
+
Requires-Dist: azure-core>=1.38.0
|
|
28
28
|
Requires-Dist: azure-identity>=1.20
|
|
29
29
|
Requires-Dist: azure-keyvault-certificates>=4.9
|
|
30
30
|
Requires-Dist: azure-keyvault-keys>=4.10
|
|
31
31
|
Requires-Dist: azure-keyvault-secrets>=4.9
|
|
32
|
-
Requires-Dist: azure-mgmt-keyvault>=
|
|
32
|
+
Requires-Dist: azure-mgmt-keyvault>=14.0.1
|
|
33
33
|
Requires-Dist: azure-mgmt-resource>=24.0
|
|
34
|
+
Requires-Dist: azure-mgmt-subscription>=3.1
|
|
34
35
|
Requires-Dist: click>=8.0
|
|
35
36
|
Requires-Dist: httpx>=0.27
|
|
36
|
-
Requires-Dist: rich>=
|
|
37
|
+
Requires-Dist: rich>=15.0
|
|
37
38
|
Requires-Dist: tenacity>=9.0
|
|
38
39
|
Provides-Extra: dev
|
|
39
40
|
Requires-Dist: pytest-mock>=3.10; extra == 'dev'
|
|
40
|
-
Requires-Dist: pytest>=
|
|
41
|
+
Requires-Dist: pytest>=9.0.3; extra == 'dev'
|
|
41
42
|
Description-Content-Type: text/markdown
|
|
42
43
|
|
|
43
44
|
# certifyclouds
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "certifyclouds"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.3.4"
|
|
4
4
|
description = "Scan Azure Key Vaults for expiring secrets, certificates, and keys"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { text = "Apache-2.0" }
|
|
@@ -27,20 +27,21 @@ classifiers = [
|
|
|
27
27
|
dependencies = [
|
|
28
28
|
"azure-identity>=1.20",
|
|
29
29
|
"azure-mgmt-resource>=24.0",
|
|
30
|
-
"azure-mgmt-
|
|
30
|
+
"azure-mgmt-subscription>=3.1",
|
|
31
|
+
"azure-mgmt-keyvault>=14.0.1",
|
|
31
32
|
"azure-keyvault-secrets>=4.9",
|
|
32
33
|
"azure-keyvault-certificates>=4.9",
|
|
33
34
|
"azure-keyvault-keys>=4.10",
|
|
34
|
-
"azure-core>=1.
|
|
35
|
+
"azure-core>=1.38.0",
|
|
35
36
|
"tenacity>=9.0",
|
|
36
37
|
"click>=8.0",
|
|
37
|
-
"rich>=
|
|
38
|
+
"rich>=15.0",
|
|
38
39
|
"httpx>=0.27",
|
|
39
40
|
]
|
|
40
41
|
|
|
41
42
|
[project.optional-dependencies]
|
|
42
43
|
dev = [
|
|
43
|
-
"pytest>=
|
|
44
|
+
"pytest>=9.0.3",
|
|
44
45
|
"pytest-mock>=3.10",
|
|
45
46
|
]
|
|
46
47
|
|
|
@@ -24,7 +24,7 @@ try:
|
|
|
24
24
|
from azure.keyvault.keys import KeyClient # type: ignore
|
|
25
25
|
from azure.keyvault.secrets import SecretClient # type: ignore
|
|
26
26
|
from azure.mgmt.keyvault import KeyVaultManagementClient # type: ignore
|
|
27
|
-
from azure.mgmt.
|
|
27
|
+
from azure.mgmt.subscription import SubscriptionClient # type: ignore
|
|
28
28
|
|
|
29
29
|
AZURE_SDK_AVAILABLE = True
|
|
30
30
|
except ImportError:
|
|
@@ -40,6 +40,9 @@ def analyze(results: dict[str, Any]) -> list[dict[str, Any]]:
|
|
|
40
40
|
for cert in vault.get("certificates", []):
|
|
41
41
|
_check_asset_expiry(cert, "certificate", vault_name, sub_name, now, findings)
|
|
42
42
|
|
|
43
|
+
for key in vault.get("keys", []):
|
|
44
|
+
_check_asset_expiry(key, "key", vault_name, sub_name, now, findings)
|
|
45
|
+
|
|
43
46
|
# Sort by severity
|
|
44
47
|
findings.sort(key=lambda f: SEVERITY_ORDER.get(f["severity"], 99))
|
|
45
48
|
return findings
|
|
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
|