cartography 0.100.0rc2__py3-none-any.whl → 0.100.0rc3__py3-none-any.whl

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.

Potentially problematic release.


This version of cartography might be problematic. Click here for more details.

cartography/_version.py CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.100.0rc2'
20
+ __version__ = version = '0.100.0rc3'
21
21
  __version_tuple__ = version_tuple = (0, 100, 0)
@@ -33,13 +33,21 @@ def get_ecr_repositories(boto3_session: boto3.session.Session, region: str) -> L
33
33
  def get_ecr_repository_images(boto3_session: boto3.session.Session, region: str, repository_name: str) -> List[Dict]:
34
34
  logger.debug("Getting ECR images in repository '%s' for region '%s'.", repository_name, region)
35
35
  client = boto3_session.client('ecr', region_name=region)
36
- paginator = client.get_paginator('list_images')
36
+ list_paginator = client.get_paginator('list_images')
37
37
  ecr_repository_images: List[Dict] = []
38
- for page in paginator.paginate(repositoryName=repository_name):
38
+ for page in list_paginator.paginate(repositoryName=repository_name):
39
39
  image_ids = page['imageIds']
40
- if image_ids:
41
- response = client.describe_images(repositoryName=repository_name, imageIds=image_ids)
42
- ecr_repository_images.extend(response['imageDetails'])
40
+ if not image_ids:
41
+ continue
42
+ describe_paginator = client.get_paginator('describe_images')
43
+ describe_response = describe_paginator.paginate(repositoryName=repository_name, imageIds=image_ids)
44
+ for response in describe_response:
45
+ image_details = response['imageDetails']
46
+ image_details = [
47
+ {**detail, 'imageTag': detail['imageTags'][0]} if detail.get('imageTags') else detail
48
+ for detail in image_details
49
+ ]
50
+ ecr_repository_images.extend(image_details)
43
51
  return ecr_repository_images
44
52
 
45
53
 
@@ -212,19 +212,19 @@ def transform_cves(cve_json: Dict[Any, Any]) -> List[Dict[Any, Any]]:
212
212
  if cvss31:
213
213
  cvss31.update(cvss31["cvssData"])
214
214
  cvss31.pop("cvssData")
215
- cve["vectorString"] = cvss31["vectorString"]
216
- cve["attackVector"] = cvss31["attackVector"]
217
- cve["attackComplexity"] = cvss31["attackComplexity"]
218
- cve["privilegesRequired"] = cvss31["privilegesRequired"]
219
- cve["userInteraction"] = cvss31["userInteraction"]
220
- cve["scope"] = cvss31["scope"]
221
- cve["confidentialityImpact"] = cvss31["confidentialityImpact"]
222
- cve["integrityImpact"] = cvss31["integrityImpact"]
223
- cve["availabilityImpact"] = cvss31["availabilityImpact"]
224
- cve["baseScore"] = cvss31["baseScore"]
225
- cve["baseSeverity"] = cvss31["baseSeverity"]
226
- cve["exploitabilityScore"] = cvss31["exploitabilityScore"]
227
- cve["impactScore"] = cvss31["impactScore"]
215
+ cve["vectorString"] = cvss31.get("vectorString")
216
+ cve["attackVector"] = cvss31.get("attackVector")
217
+ cve["attackComplexity"] = cvss31.get("attackComplexity")
218
+ cve["privilegesRequired"] = cvss31.get("privilegesRequired")
219
+ cve["userInteraction"] = cvss31.get("userInteraction")
220
+ cve["scope"] = cvss31.get("scope")
221
+ cve["confidentialityImpact"] = cvss31.get("confidentialityImpact")
222
+ cve["integrityImpact"] = cvss31.get("integrityImpact")
223
+ cve["availabilityImpact"] = cvss31.get("availabilityImpact")
224
+ cve["baseScore"] = cvss31.get("baseScore")
225
+ cve["baseSeverity"] = cvss31.get("baseSeverity")
226
+ cve["exploitabilityScore"] = cvss31.get("exploitabilityScore")
227
+ cve["impactScore"] = cvss31.get("impactScore")
228
228
  except Exception:
229
229
  logger.error("Failed to transform CVE data {data}")
230
230
  raise
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: cartography
3
- Version: 0.100.0rc2
3
+ Version: 0.100.0rc3
4
4
  Summary: Explore assets and their relationships across your technical infrastructure.
5
5
  Maintainer: Cartography Contributors
6
6
  License: apache2
@@ -59,10 +59,10 @@ Requires-Dist: moto; extra == "dev"
59
59
  Requires-Dist: pre-commit; extra == "dev"
60
60
  Requires-Dist: pytest>=6.2.4; extra == "dev"
61
61
  Requires-Dist: pytest-mock; extra == "dev"
62
- Requires-Dist: pytest-cov==2.10.0; extra == "dev"
62
+ Requires-Dist: pytest-cov==6.0.0; extra == "dev"
63
63
  Requires-Dist: pytest-rerunfailures; extra == "dev"
64
64
  Requires-Dist: types-PyYAML; extra == "dev"
65
- Requires-Dist: types-requests<2.32.0.20241017; extra == "dev"
65
+ Requires-Dist: types-requests<2.32.0.20250302; extra == "dev"
66
66
 
67
67
  ![Cartography](docs/root/images/logo-horizontal.png)
68
68
 
@@ -1,6 +1,6 @@
1
1
  cartography/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  cartography/__main__.py,sha256=JftXT_nUPkqcEh8uxCCT4n-OyHYqbldEgrDS-4ygy0U,101
3
- cartography/_version.py,sha256=2FDGHtBkuReawM6vCrLyVJwLyBFc1Fmf92-cRLEKxt0,518
3
+ cartography/_version.py,sha256=erT3r0ylIrLdfTXcudAdfoIpPIltywztJGTvfbMUdPk,518
4
4
  cartography/cli.py,sha256=-77DOKUQn3N-TDIi55V4RHLb3k36ZGZ64o1XgiT0qmE,33370
5
5
  cartography/config.py,sha256=ZcadsKmooAkti9Kv0eDl8Ec1PcZDu3lWobtNaCnwY3k,11872
6
6
  cartography/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -144,7 +144,7 @@ cartography/intel/aws/__init__.py,sha256=siRhVNypfGxMPNIXHSjfYbLX9qlB6RYyN6aWX64
144
144
  cartography/intel/aws/apigateway.py,sha256=w4QdxlwnVegKKsZFfoI36i-FGlIUjzxzaayZyz9oQvM,11654
145
145
  cartography/intel/aws/config.py,sha256=wrZbz7bc8vImLmRvTLkPcWnjjPzk3tOG4bB_BFS2lq8,7329
146
146
  cartography/intel/aws/dynamodb.py,sha256=LZ6LGNThLi0zC3eLMq2JN3mwiSwZeaH58YQQHvsXMGE,5013
147
- cartography/intel/aws/ecr.py,sha256=Tkm_H2cJ2wW24FJE3rBsT-Rli2FU9gNEGo6eEk7jBFM,7124
147
+ cartography/intel/aws/ecr.py,sha256=neykNgcr6wjB7lEZC_7cGDu75-NsAhQKvL9sN18vOHI,7513
148
148
  cartography/intel/aws/ecs.py,sha256=gulrIZ--iEFLpkkPH58MJIkctsxWeWdO2ofM9amDNZA,23654
149
149
  cartography/intel/aws/eks.py,sha256=OerAX7qT2uGPbqliPvuy8JZUIgle_KMlnkkHxk8O5fk,3546
150
150
  cartography/intel/aws/elasticache.py,sha256=fCI47aDFmIDyE26GiReKYb6XIZUwrzcvsXBQ4ruFhuI,4427
@@ -207,7 +207,7 @@ cartography/intel/crowdstrike/endpoints.py,sha256=tdqokMDW3p4fK3dHKKb2T1DTogvOJB
207
207
  cartography/intel/crowdstrike/spotlight.py,sha256=yNhj44-RYF6ubck-hHMKhKiNU0fCfhQf4Oagopc31EM,4754
208
208
  cartography/intel/crowdstrike/util.py,sha256=gfJ6Ptr6YdbBS9Qj9a_-Jc-IJroADDRcXqjh5TW0qXE,277
209
209
  cartography/intel/cve/__init__.py,sha256=u9mv5O_qkSLmdhLhLm1qbwmhoeLQ3A3fQTjNyLQpEyI,3656
210
- cartography/intel/cve/feed.py,sha256=HJL94jyVcRzIbpe4ooEXr6lnKfrmpukKOEDTs9djrfk,9832
210
+ cartography/intel/cve/feed.py,sha256=a_PnT5vbfrMSXOf4WV8PUIqA8TkSKlwWWot62s6_sAY,9884
211
211
  cartography/intel/digitalocean/__init__.py,sha256=SMYB7LGIQOj_EgGSGVjWZk7SJNbP43hQuOfgOu6xYm4,1526
212
212
  cartography/intel/digitalocean/compute.py,sha256=9XctwMjq9h5dExFgExvawoqyiEwSoocNgaMm3Fgl5GM,4911
213
213
  cartography/intel/digitalocean/management.py,sha256=YWRnBLLL_bAP1vefIAQgm_-QzefGH0sZKmyU_EokHfA,3764
@@ -358,9 +358,9 @@ cartography/models/snipeit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
358
358
  cartography/models/snipeit/asset.py,sha256=FyRAaeXuZjMy0eUQcSDFcgEAF5lbLMlvqp1Tv9d3Lv4,3238
359
359
  cartography/models/snipeit/tenant.py,sha256=p4rFnpNNuF1W5ilGBbexDaETWTwavfb38RcQGoImkQI,679
360
360
  cartography/models/snipeit/user.py,sha256=MsB4MiCVNTH6JpESime7cOkB89autZOXQpL6Z0l7L6o,2113
361
- cartography-0.100.0rc2.dist-info/LICENSE,sha256=kvLEBRYaQ1RvUni6y7Ti9uHeooqnjPoo6n_-0JO1ETc,11351
362
- cartography-0.100.0rc2.dist-info/METADATA,sha256=EvL6jAQNNIVLpRwiNxSRZUANFrXX6RORGzbJk4U4Et0,11860
363
- cartography-0.100.0rc2.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
364
- cartography-0.100.0rc2.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
365
- cartography-0.100.0rc2.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
366
- cartography-0.100.0rc2.dist-info/RECORD,,
361
+ cartography-0.100.0rc3.dist-info/LICENSE,sha256=kvLEBRYaQ1RvUni6y7Ti9uHeooqnjPoo6n_-0JO1ETc,11351
362
+ cartography-0.100.0rc3.dist-info/METADATA,sha256=Qt4xre4M0SCqdH1vMHmPpnhdXEaT0Cv3yOGHU6logew,11859
363
+ cartography-0.100.0rc3.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
364
+ cartography-0.100.0rc3.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
365
+ cartography-0.100.0rc3.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
366
+ cartography-0.100.0rc3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.2)
2
+ Generator: setuptools (76.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5