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.
@@ -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 (local configuration and session files)
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.2.2
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.30
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>=13.0
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>=13.0
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>=7.0; extra == 'dev'
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.2.2"
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-keyvault>=13.0",
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.30",
35
+ "azure-core>=1.38.0",
35
36
  "tenacity>=9.0",
36
37
  "click>=8.0",
37
- "rich>=13.0",
38
+ "rich>=15.0",
38
39
  "httpx>=0.27",
39
40
  ]
40
41
 
41
42
  [project.optional-dependencies]
42
43
  dev = [
43
- "pytest>=7.0",
44
+ "pytest>=9.0.3",
44
45
  "pytest-mock>=3.10",
45
46
  ]
46
47
 
@@ -1,3 +1,3 @@
1
1
  """CertifyClouds Scanner — scan Azure Key Vaults for expiring secrets, certificates, and keys."""
2
2
 
3
- __version__ = "1.2.2"
3
+ __version__ = "1.3.4"
@@ -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.resource import SubscriptionClient # type: ignore
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