cartography 0.98.0rc4__py3-none-any.whl → 0.99.0__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
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.98.0rc4'
16
- __version_tuple__ = version_tuple = (0, 98, 0)
15
+ __version__ = version = '0.99.0'
16
+ __version_tuple__ = version_tuple = (0, 99, 0)
@@ -249,6 +249,9 @@ def load(
249
249
  :param kwargs: Allows additional keyword args to be supplied to the Neo4j query.
250
250
  :return: None
251
251
  """
252
+ if len(dict_list) == 0:
253
+ # If there is no data to load, save some time.
254
+ return
252
255
  ensure_indexes(neo4j_session, node_schema)
253
256
  ingestion_query = build_ingestion_query(node_schema)
254
257
  load_graph_data(neo4j_session, ingestion_query, dict_list, **kwargs)
@@ -188,6 +188,9 @@ def load_tags(
188
188
  current_aws_account_id: str,
189
189
  aws_update_tag: int,
190
190
  ) -> None:
191
+ if len(tag_data) == 0:
192
+ # If there is no data to load, save some time.
193
+ return
191
194
  for tag_data_batch in batch(tag_data, size=100):
192
195
  neo4j_session.write_transaction(
193
196
  _load_tags_tx,
@@ -61,6 +61,22 @@ class InspectorFindingToAWSAccount(CartographyRelSchema):
61
61
  properties: InspectorFindingToAwsAccountRelProperties = InspectorFindingToAwsAccountRelProperties()
62
62
 
63
63
 
64
+ @dataclass(frozen=True)
65
+ class InspectorFindingToAwsAccountDelegateRelProperties(CartographyRelProperties):
66
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
67
+
68
+
69
+ @dataclass(frozen=True)
70
+ class InspectorFindingToAWSAccountDelegate(CartographyRelSchema):
71
+ target_node_label: str = 'AWSAccount'
72
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
73
+ {'id': PropertyRef('awsaccount')},
74
+ )
75
+ direction: LinkDirection = LinkDirection.INWARD
76
+ rel_label: str = "MEMBER"
77
+ properties: InspectorFindingToAwsAccountDelegateRelProperties = InspectorFindingToAwsAccountDelegateRelProperties()
78
+
79
+
64
80
  @dataclass(frozen=True)
65
81
  class InspectorFindingToEC2InstanceRelProperties(CartographyRelProperties):
66
82
  lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
@@ -120,5 +136,6 @@ class AWSInspectorFindingSchema(CartographyNodeSchema):
120
136
  InspectorFindingToEC2Instance(),
121
137
  InspectorFindingToECRRepository(),
122
138
  InspectorFindingToECRImage(),
139
+ InspectorFindingToAWSAccountDelegate(),
123
140
  ],
124
141
  )
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: cartography
3
- Version: 0.98.0rc4
3
+ Version: 0.99.0
4
4
  Summary: Explore assets and their relationships across your technical infrastructure.
5
5
  Maintainer: Cartography Contributors
6
6
  License: apache2
@@ -62,10 +62,16 @@ Requires-Dist: pytest-mock; extra == "dev"
62
62
  Requires-Dist: pytest-cov==2.10.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.31.0.7; extra == "dev"
65
+ Requires-Dist: types-requests<2.32.0.20241017; extra == "dev"
66
66
 
67
67
  ![Cartography](docs/root/images/logo-horizontal.png)
68
68
 
69
+ [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/cartography-cncf/cartography/badge)](https://scorecard.dev/viewer/?uri=github.com/cartography-cncf/cartography)
70
+ [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/9637/badge)](https://www.bestpractices.dev/projects/9637)
71
+ ![build](https://github.com/cartography-cncf/cartography/actions/workflows/publish-to-ghcr-and-pypi.yml/badge.svg)
72
+
73
+
74
+
69
75
  Cartography is a Python tool that consolidates infrastructure assets and the relationships between them in an intuitive graph view powered by a [Neo4j](https://www.neo4j.com) database.
70
76
 
71
77
  ![Visualization of RDS nodes and AWS nodes](docs/root/images/accountsandrds.png)
@@ -147,9 +153,9 @@ Directly querying Neo4j is already very useful as a sort of "swiss army knife" f
147
153
  ## Community
148
154
 
149
155
  - Hang out with us on Slack: Join the CNCF Slack workspace [here](https://communityinviter.com/apps/cloud-native/cncf), and then join the `#cartography` channel.
150
- - Talk to us and see what we're working on at our [monthly community meeting](https://calendar.google.com/calendar/embed?src=lyft.com_p10o6ceuiieq9sqcn1ef61v1io%40group.calendar.google.com&ctz=America%2FLos_Angeles).
156
+ - Talk to us and see what we're working on at our [monthly community meeting](https://zoom-lfx.platform.linuxfoundation.org/meetings/cartography?view=week).
151
157
  - Meeting minutes are [here](https://docs.google.com/document/d/1VyRKmB0dpX185I15BmNJZpfAJ_Ooobwz0U1WIhjDxvw).
152
- - Recorded videos are posted [here](https://www.youtube.com/playlist?list=PLMga2YJvAGzidUWJB_fnG7EHI4wsDDsE1).
158
+ - Recorded videos from before 2025 are posted [here](https://www.youtube.com/playlist?list=PLMga2YJvAGzidUWJB_fnG7EHI4wsDDsE1).
153
159
 
154
160
  ## License
155
161
 
@@ -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=0sgJhYfa51TBEnCTxKv6kmE6_0dlbwqFC4kFMbUT6nM,416
3
+ cartography/_version.py,sha256=putlTOQTHtwqgQL013gXrUHp9pvJKkKAJuW4IIepSvQ,413
4
4
  cartography/cli.py,sha256=LPjeOkx-cKhRkuhqMicB-0X3SHOjLXxEeGqsp2FtpC0,33285
5
5
  cartography/config.py,sha256=ZcadsKmooAkti9Kv0eDl8Ec1PcZDu3lWobtNaCnwY3k,11872
6
6
  cartography/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -11,7 +11,7 @@ cartography/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
11
11
  cartography/client/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  cartography/client/aws/iam.py,sha256=dYsGikc36DEsSeR2XVOVFFUDwuU9yWj_EVkpgVYCFgM,1293
13
13
  cartography/client/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- cartography/client/core/tx.py,sha256=FcUPfmNIKSXkN5UK3nL5-GFoGkPYXmAxIWP7knvrHWg,10794
14
+ cartography/client/core/tx.py,sha256=55Cf9DJGHHXQk4HmPOdFwr1eh9Pr1nzmIvs4XoCVr0g,10892
15
15
  cartography/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  cartography/data/indexes.cypher,sha256=KMhj8DoKl3d-o6Zx4PY6IZ_8eZNPqZWWVNnOzIi5dRw,26946
17
17
  cartography/data/permission_relationships.yaml,sha256=RuKGGc_3ZUQ7ag0MssB8k_zaonCkVM5E8I_svBWTmGc,969
@@ -161,7 +161,7 @@ cartography/intel/aws/organizations.py,sha256=HaQZ3J5XF15BuykuDypqFORDYpnoHuRRr4
161
161
  cartography/intel/aws/permission_relationships.py,sha256=IarV9gt5BaplZ5TPo_mfypt9bTKfT9qDtqC3Ob89qGI,14904
162
162
  cartography/intel/aws/rds.py,sha256=vnlNYmrO2Cc0PNn31CeG2QwYhwjVosbQFE9Ol1vQyLE,25252
163
163
  cartography/intel/aws/redshift.py,sha256=KOqiXIllHmtPTeaNGl-cX4srY5pFE6o12j8MQ5-zWpc,6694
164
- cartography/intel/aws/resourcegroupstaggingapi.py,sha256=aq4kPF6t8QZZoTxdkQVLXH65Di41CDJVM9llJNe6iaY,10278
164
+ cartography/intel/aws/resourcegroupstaggingapi.py,sha256=I2VrL-oplGj2Jyhbo312V6vnER_FXpJRrc6OBJ-_VmI,10375
165
165
  cartography/intel/aws/resources.py,sha256=A8Dc3PtCfDyk5a1ZgAoHthhDPS6aWN_kR0PLwnHdC0Q,3370
166
166
  cartography/intel/aws/route53.py,sha256=IYqeQud1HuHnf11A7T-Jeif5DWgjpaaU-Jfr2cLUc_o,14099
167
167
  cartography/intel/aws/s3.py,sha256=SVxUMtMSkbdjZv5qOSYIbYb8BQa-QTojbHG85-EFWLA,27034
@@ -312,7 +312,7 @@ cartography/models/aws/identitycenter/awsidentitycenter.py,sha256=lmpo-qqmMN6BMG
312
312
  cartography/models/aws/identitycenter/awspermissionset.py,sha256=30BBY-XG3-rJMihKKTdUVobkdqQYWWGsFD83uTVJqkI,3539
313
313
  cartography/models/aws/identitycenter/awsssouser.py,sha256=HSXSHDVM36eIlYfRAwZ8KT470v_s1hC0_lrzZxCbYjw,2837
314
314
  cartography/models/aws/inspector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
315
- cartography/models/aws/inspector/findings.py,sha256=_o5dsHCl6LNZrwSjEWBHiawMxgMMwlVOGoYQl8cHKJQ,5585
315
+ cartography/models/aws/inspector/findings.py,sha256=_7pCqCINNFYQv86Uz1bE_4ASvYBYrID-vDzj2alIbVc,6280
316
316
  cartography/models/aws/inspector/packages.py,sha256=dtY5JsVb6Ri78Lqigb2nHNq0Qc926U_m90SmbvZEDGc,3267
317
317
  cartography/models/aws/ssm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
318
318
  cartography/models/aws/ssm/instance_information.py,sha256=YFEEufju_JdC77_lfSBOPq_DrY_faGtkAijQ3_oyTAI,4022
@@ -354,9 +354,9 @@ cartography/models/snipeit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
354
354
  cartography/models/snipeit/asset.py,sha256=FyRAaeXuZjMy0eUQcSDFcgEAF5lbLMlvqp1Tv9d3Lv4,3238
355
355
  cartography/models/snipeit/tenant.py,sha256=p4rFnpNNuF1W5ilGBbexDaETWTwavfb38RcQGoImkQI,679
356
356
  cartography/models/snipeit/user.py,sha256=MsB4MiCVNTH6JpESime7cOkB89autZOXQpL6Z0l7L6o,2113
357
- cartography-0.98.0rc4.dist-info/LICENSE,sha256=kvLEBRYaQ1RvUni6y7Ti9uHeooqnjPoo6n_-0JO1ETc,11351
358
- cartography-0.98.0rc4.dist-info/METADATA,sha256=4GIMY8-iRiXERs3qgTwJXTwwIy2nUvfSVgFBPIcGldE,11473
359
- cartography-0.98.0rc4.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
360
- cartography-0.98.0rc4.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
361
- cartography-0.98.0rc4.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
362
- cartography-0.98.0rc4.dist-info/RECORD,,
357
+ cartography-0.99.0.dist-info/LICENSE,sha256=kvLEBRYaQ1RvUni6y7Ti9uHeooqnjPoo6n_-0JO1ETc,11351
358
+ cartography-0.99.0.dist-info/METADATA,sha256=qwO-_69WejuZ3IfCAjSRPc8L7XwL4EYQC9gimJaBI8M,11856
359
+ cartography-0.99.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
360
+ cartography-0.99.0.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
361
+ cartography-0.99.0.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
362
+ cartography-0.99.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5