cartography 0.108.0rc1__py3-none-any.whl → 0.109.0rc1__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.

Files changed (37) hide show
  1. cartography/_version.py +2 -2
  2. cartography/data/indexes.cypher +0 -2
  3. cartography/data/jobs/cleanup/gcp_compute_vpc_cleanup.json +0 -12
  4. cartography/intel/aws/cloudtrail.py +17 -4
  5. cartography/intel/aws/cloudtrail_management_events.py +593 -16
  6. cartography/intel/aws/cloudwatch.py +73 -4
  7. cartography/intel/aws/ec2/subnets.py +37 -63
  8. cartography/intel/aws/ecr.py +55 -80
  9. cartography/intel/aws/elasticache.py +102 -79
  10. cartography/intel/aws/resourcegroupstaggingapi.py +77 -18
  11. cartography/intel/aws/secretsmanager.py +62 -44
  12. cartography/intel/entra/groups.py +29 -1
  13. cartography/intel/gcp/__init__.py +10 -0
  14. cartography/intel/gcp/compute.py +19 -42
  15. cartography/models/aws/cloudtrail/management_events.py +95 -6
  16. cartography/models/aws/cloudtrail/trail.py +21 -0
  17. cartography/models/aws/cloudwatch/metric_alarm.py +53 -0
  18. cartography/models/aws/ec2/subnets.py +65 -0
  19. cartography/models/aws/ecr/__init__.py +0 -0
  20. cartography/models/aws/ecr/image.py +41 -0
  21. cartography/models/aws/ecr/repository.py +72 -0
  22. cartography/models/aws/ecr/repository_image.py +95 -0
  23. cartography/models/aws/elasticache/__init__.py +0 -0
  24. cartography/models/aws/elasticache/cluster.py +65 -0
  25. cartography/models/aws/elasticache/topic.py +67 -0
  26. cartography/models/aws/secretsmanager/secret.py +106 -0
  27. cartography/models/entra/group.py +26 -0
  28. cartography/models/entra/user.py +6 -0
  29. cartography/models/gcp/compute/__init__.py +0 -0
  30. cartography/models/gcp/compute/vpc.py +50 -0
  31. {cartography-0.108.0rc1.dist-info → cartography-0.109.0rc1.dist-info}/METADATA +1 -1
  32. {cartography-0.108.0rc1.dist-info → cartography-0.109.0rc1.dist-info}/RECORD +36 -25
  33. cartography/data/jobs/cleanup/aws_import_secrets_cleanup.json +0 -8
  34. {cartography-0.108.0rc1.dist-info → cartography-0.109.0rc1.dist-info}/WHEEL +0 -0
  35. {cartography-0.108.0rc1.dist-info → cartography-0.109.0rc1.dist-info}/entry_points.txt +0 -0
  36. {cartography-0.108.0rc1.dist-info → cartography-0.109.0rc1.dist-info}/licenses/LICENSE +0 -0
  37. {cartography-0.108.0rc1.dist-info → cartography-0.109.0rc1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,67 @@
1
+ from dataclasses import dataclass
2
+
3
+ from cartography.models.core.common import PropertyRef
4
+ from cartography.models.core.nodes import CartographyNodeProperties
5
+ from cartography.models.core.nodes import CartographyNodeSchema
6
+ from cartography.models.core.relationships import CartographyRelProperties
7
+ from cartography.models.core.relationships import CartographyRelSchema
8
+ from cartography.models.core.relationships import LinkDirection
9
+ from cartography.models.core.relationships import make_target_node_matcher
10
+ from cartography.models.core.relationships import OtherRelationships
11
+ from cartography.models.core.relationships import TargetNodeMatcher
12
+
13
+
14
+ @dataclass(frozen=True)
15
+ class ElasticacheTopicNodeProperties(CartographyNodeProperties):
16
+ id: PropertyRef = PropertyRef("TopicArn")
17
+ arn: PropertyRef = PropertyRef("TopicArn", extra_index=True)
18
+ status: PropertyRef = PropertyRef("TopicStatus")
19
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
20
+
21
+
22
+ @dataclass(frozen=True)
23
+ class ElasticacheTopicToAWSAccountRelProperties(CartographyRelProperties):
24
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
25
+
26
+
27
+ @dataclass(frozen=True)
28
+ class ElasticacheTopicToAWSAccountRel(CartographyRelSchema):
29
+ target_node_label: str = "AWSAccount"
30
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
31
+ {"id": PropertyRef("AWS_ID", set_in_kwargs=True)}
32
+ )
33
+ direction: LinkDirection = LinkDirection.INWARD
34
+ rel_label: str = "RESOURCE"
35
+ properties: ElasticacheTopicToAWSAccountRelProperties = (
36
+ ElasticacheTopicToAWSAccountRelProperties()
37
+ )
38
+
39
+
40
+ @dataclass(frozen=True)
41
+ class ElasticacheTopicToElasticacheClusterRelProperties(CartographyRelProperties):
42
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
43
+
44
+
45
+ @dataclass(frozen=True)
46
+ class ElasticacheTopicToElasticacheClusterRel(CartographyRelSchema):
47
+ target_node_label: str = "ElasticacheCluster"
48
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
49
+ {"id": PropertyRef("cluster_arns", one_to_many=True)}
50
+ )
51
+ direction: LinkDirection = LinkDirection.OUTWARD
52
+ rel_label: str = "CACHE_CLUSTER"
53
+ properties: ElasticacheTopicToElasticacheClusterRelProperties = (
54
+ ElasticacheTopicToElasticacheClusterRelProperties()
55
+ )
56
+
57
+
58
+ @dataclass(frozen=True)
59
+ class ElasticacheTopicSchema(CartographyNodeSchema):
60
+ label: str = "ElasticacheTopic"
61
+ properties: ElasticacheTopicNodeProperties = ElasticacheTopicNodeProperties()
62
+ sub_resource_relationship: ElasticacheTopicToAWSAccountRel = (
63
+ ElasticacheTopicToAWSAccountRel()
64
+ )
65
+ other_relationships: OtherRelationships = OtherRelationships(
66
+ [ElasticacheTopicToElasticacheClusterRel()]
67
+ )
@@ -0,0 +1,106 @@
1
+ from dataclasses import dataclass
2
+
3
+ from cartography.models.core.common import PropertyRef
4
+ from cartography.models.core.nodes import CartographyNodeProperties
5
+ from cartography.models.core.nodes import CartographyNodeSchema
6
+ from cartography.models.core.relationships import CartographyRelProperties
7
+ from cartography.models.core.relationships import CartographyRelSchema
8
+ from cartography.models.core.relationships import LinkDirection
9
+ from cartography.models.core.relationships import make_target_node_matcher
10
+ from cartography.models.core.relationships import OtherRelationships
11
+ from cartography.models.core.relationships import TargetNodeMatcher
12
+
13
+
14
+ @dataclass(frozen=True)
15
+ class SecretsManagerSecretNodeProperties(CartographyNodeProperties):
16
+ """
17
+ Properties for AWS Secrets Manager Secret
18
+ """
19
+
20
+ id: PropertyRef = PropertyRef("ARN")
21
+ arn: PropertyRef = PropertyRef("ARN", extra_index=True)
22
+ name: PropertyRef = PropertyRef("Name", extra_index=True)
23
+ description: PropertyRef = PropertyRef("Description")
24
+
25
+ # Rotation properties
26
+ rotation_enabled: PropertyRef = PropertyRef("RotationEnabled")
27
+ rotation_lambda_arn: PropertyRef = PropertyRef("RotationLambdaARN")
28
+ rotation_rules_automatically_after_days: PropertyRef = PropertyRef(
29
+ "RotationRulesAutomaticallyAfterDays"
30
+ )
31
+
32
+ # Date properties (will be converted to epoch timestamps)
33
+ created_date: PropertyRef = PropertyRef("CreatedDate")
34
+ last_rotated_date: PropertyRef = PropertyRef("LastRotatedDate")
35
+ last_changed_date: PropertyRef = PropertyRef("LastChangedDate")
36
+ last_accessed_date: PropertyRef = PropertyRef("LastAccessedDate")
37
+ deleted_date: PropertyRef = PropertyRef("DeletedDate")
38
+
39
+ # Other properties
40
+ kms_key_id: PropertyRef = PropertyRef("KmsKeyId")
41
+ owning_service: PropertyRef = PropertyRef("OwningService")
42
+ primary_region: PropertyRef = PropertyRef("PrimaryRegion")
43
+
44
+ # Standard cartography properties
45
+ region: PropertyRef = PropertyRef("Region", set_in_kwargs=True)
46
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
47
+
48
+
49
+ @dataclass(frozen=True)
50
+ class SecretsManagerSecretRelProperties(CartographyRelProperties):
51
+ """
52
+ Properties for relationships between Secret and other nodes
53
+ """
54
+
55
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
56
+
57
+
58
+ @dataclass(frozen=True)
59
+ class SecretsManagerSecretToAWSAccountRel(CartographyRelSchema):
60
+ """
61
+ Relationship between Secret and AWS Account
62
+ """
63
+
64
+ target_node_label: str = "AWSAccount"
65
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
66
+ {"id": PropertyRef("AWS_ID", set_in_kwargs=True)},
67
+ )
68
+ direction: LinkDirection = LinkDirection.INWARD
69
+ rel_label: str = "RESOURCE"
70
+ properties: SecretsManagerSecretRelProperties = SecretsManagerSecretRelProperties()
71
+
72
+
73
+ @dataclass(frozen=True)
74
+ class SecretsManagerSecretToKMSKeyRel(CartographyRelSchema):
75
+ """
76
+ Relationship between Secret and its KMS key
77
+ Only created when KmsKeyId is present
78
+ """
79
+
80
+ target_node_label: str = "AWSKMSKey"
81
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
82
+ {"id": PropertyRef("KmsKeyId")},
83
+ )
84
+ direction: LinkDirection = LinkDirection.OUTWARD
85
+ rel_label: str = "ENCRYPTED_BY"
86
+ properties: SecretsManagerSecretRelProperties = SecretsManagerSecretRelProperties()
87
+
88
+
89
+ @dataclass(frozen=True)
90
+ class SecretsManagerSecretSchema(CartographyNodeSchema):
91
+ """
92
+ Schema for AWS Secrets Manager Secret
93
+ """
94
+
95
+ label: str = "SecretsManagerSecret"
96
+ properties: SecretsManagerSecretNodeProperties = (
97
+ SecretsManagerSecretNodeProperties()
98
+ )
99
+ sub_resource_relationship: SecretsManagerSecretToAWSAccountRel = (
100
+ SecretsManagerSecretToAWSAccountRel()
101
+ )
102
+ other_relationships: OtherRelationships = OtherRelationships(
103
+ [
104
+ SecretsManagerSecretToKMSKeyRel(),
105
+ ],
106
+ )
@@ -3,6 +3,7 @@ from dataclasses import dataclass
3
3
  from cartography.models.core.common import PropertyRef
4
4
  from cartography.models.core.nodes import CartographyNodeProperties
5
5
  from cartography.models.core.nodes import CartographyNodeSchema
6
+ from cartography.models.core.nodes import ExtraNodeLabels
6
7
  from cartography.models.core.relationships import CartographyRelProperties
7
8
  from cartography.models.core.relationships import CartographyRelSchema
8
9
  from cartography.models.core.relationships import LinkDirection
@@ -78,6 +79,25 @@ class EntraGroupToGroupRel(CartographyRelSchema):
78
79
  properties: EntraGroupToGroupRelProperties = EntraGroupToGroupRelProperties()
79
80
 
80
81
 
82
+ @dataclass(frozen=True)
83
+ class EntraGroupToOwnerRelProperties(CartographyRelProperties):
84
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
85
+
86
+
87
+ @dataclass(frozen=True)
88
+ # (:EntraGroup)<-[:OWNER_OF]-(:EntraUser)
89
+ class EntraGroupToOwnerRel(CartographyRelSchema):
90
+ # EntraUsers and Entra service principals can be owners of a group, so we match on the general label
91
+ # Because id is indexed, this should be fast even though EntraIdentity will also include EntraGroups
92
+ target_node_label: str = "EntraIdentity"
93
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
94
+ {"id": PropertyRef("owner_ids", one_to_many=True)}
95
+ )
96
+ direction: LinkDirection = LinkDirection.INWARD
97
+ rel_label: str = "OWNER_OF"
98
+ properties: EntraGroupToOwnerRelProperties = EntraGroupToOwnerRelProperties()
99
+
100
+
81
101
  @dataclass(frozen=True)
82
102
  class EntraGroupSchema(CartographyNodeSchema):
83
103
  label: str = "EntraGroup"
@@ -87,5 +107,11 @@ class EntraGroupSchema(CartographyNodeSchema):
87
107
  [
88
108
  EntraGroupToGroupRel(),
89
109
  EntraGroupToUserRel(),
110
+ EntraGroupToOwnerRel(),
111
+ ]
112
+ )
113
+ extra_node_labels: ExtraNodeLabels = ExtraNodeLabels(
114
+ [
115
+ "EntraIdentity",
90
116
  ]
91
117
  )
@@ -3,6 +3,7 @@ from dataclasses import dataclass
3
3
  from cartography.models.core.common import PropertyRef
4
4
  from cartography.models.core.nodes import CartographyNodeProperties
5
5
  from cartography.models.core.nodes import CartographyNodeSchema
6
+ from cartography.models.core.nodes import ExtraNodeLabels
6
7
  from cartography.models.core.relationships import CartographyRelProperties
7
8
  from cartography.models.core.relationships import CartographyRelSchema
8
9
  from cartography.models.core.relationships import LinkDirection
@@ -63,3 +64,8 @@ class EntraUserSchema(CartographyNodeSchema):
63
64
  label: str = "EntraUser"
64
65
  properties: EntraUserNodeProperties = EntraUserNodeProperties()
65
66
  sub_resource_relationship: EntraUserToTenantRel = EntraUserToTenantRel()
67
+ extra_node_labels: ExtraNodeLabels = ExtraNodeLabels(
68
+ [
69
+ "EntraIdentity",
70
+ ]
71
+ )
File without changes
@@ -0,0 +1,50 @@
1
+ from dataclasses import dataclass
2
+
3
+ from cartography.models.core.common import PropertyRef
4
+ from cartography.models.core.nodes import CartographyNodeProperties
5
+ from cartography.models.core.nodes import CartographyNodeSchema
6
+ from cartography.models.core.relationships import CartographyRelProperties
7
+ from cartography.models.core.relationships import CartographyRelSchema
8
+ from cartography.models.core.relationships import LinkDirection
9
+ from cartography.models.core.relationships import make_target_node_matcher
10
+ from cartography.models.core.relationships import TargetNodeMatcher
11
+
12
+
13
+ @dataclass(frozen=True)
14
+ class GCPVpcNodeProperties(CartographyNodeProperties):
15
+ id: PropertyRef = PropertyRef("partial_uri", extra_index=True)
16
+ lastupdated: PropertyRef = PropertyRef("LASTUPDATED", set_in_kwargs=True)
17
+ partial_uri: PropertyRef = PropertyRef("partial_uri")
18
+ self_link: PropertyRef = PropertyRef("self_link")
19
+ name: PropertyRef = PropertyRef("name", extra_index=True)
20
+ project_id: PropertyRef = PropertyRef("PROJECT_ID", set_in_kwargs=True)
21
+ auto_create_subnetworks: PropertyRef = PropertyRef("auto_create_subnetworks")
22
+ routing_config_routing_mode: PropertyRef = PropertyRef(
23
+ "routing_config_routing_mode"
24
+ )
25
+ description: PropertyRef = PropertyRef("description")
26
+
27
+
28
+ @dataclass(frozen=True)
29
+ class GCPVpcToProjectRelProperties(CartographyRelProperties):
30
+ lastupdated: PropertyRef = PropertyRef("LASTUPDATED", set_in_kwargs=True)
31
+
32
+
33
+ @dataclass(frozen=True)
34
+ class GCPVpcToProjectRel(CartographyRelSchema):
35
+ target_node_label: str = "GCPProject"
36
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
37
+ {
38
+ "id": PropertyRef("PROJECT_ID", set_in_kwargs=True),
39
+ }
40
+ )
41
+ direction: LinkDirection = LinkDirection.INWARD
42
+ rel_label: str = "RESOURCE"
43
+ properties: GCPVpcToProjectRelProperties = GCPVpcToProjectRelProperties()
44
+
45
+
46
+ @dataclass(frozen=True)
47
+ class GCPVpcSchema(CartographyNodeSchema):
48
+ label: str = "GCPVpc"
49
+ properties: GCPVpcNodeProperties = GCPVpcNodeProperties()
50
+ sub_resource_relationship: GCPVpcToProjectRel = GCPVpcToProjectRel()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cartography
3
- Version: 0.108.0rc1
3
+ Version: 0.109.0rc1
4
4
  Summary: Explore assets and their relationships across your technical infrastructure.
5
5
  Maintainer: Cartography Contributors
6
6
  License: apache2
@@ -1,6 +1,6 @@
1
1
  cartography/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  cartography/__main__.py,sha256=y5iqUrj4BmqZfjeDT-9balzpXeMARgHeIedRMRI1gr8,100
3
- cartography/_version.py,sha256=eEqrH1vh8eixiAKTF8j2rZx8PgqciWc7qQgFtyY-itY,525
3
+ cartography/_version.py,sha256=ThpDtvU85F19Feu0CxbU2VZVzCSAwa5MahvagaUWtuE,525
4
4
  cartography/cli.py,sha256=qOu3nSIKWsuDbuPe5XrKBoAArFQKZP8jSjK8OtI69_E,46595
5
5
  cartography/config.py,sha256=q-fVcWJH9ida_cAII9RcOT0FUpFFify7W6NMvmC3kGk,16873
6
6
  cartography/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -14,7 +14,7 @@ cartography/client/aws/iam.py,sha256=dYsGikc36DEsSeR2XVOVFFUDwuU9yWj_EVkpgVYCFgM
14
14
  cartography/client/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  cartography/client/core/tx.py,sha256=Xx6_a5u7PE5pyREuBL_J39ORcafqieFf4KdosaEv1c4,13530
16
16
  cartography/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- cartography/data/indexes.cypher,sha256=QW6YFuxki0wkZKjHZ_AvETXPs2bxHK_mEw5oRZY-0lY,23578
17
+ cartography/data/indexes.cypher,sha256=TiTedBNkvIg3FHcIcn-zqbDv2WiboxTAHZ-qACO8-Ys,23435
18
18
  cartography/data/permission_relationships.yaml,sha256=RuKGGc_3ZUQ7ag0MssB8k_zaonCkVM5E8I_svBWTmGc,969
19
19
  cartography/data/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
20
  cartography/data/jobs/analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -56,7 +56,6 @@ cartography/data/jobs/cleanup/aws_import_roles_cleanup.json,sha256=z6M8to_4TcOx4
56
56
  cartography/data/jobs/cleanup/aws_import_roles_policy_cleanup.json,sha256=qssEDBXg5yVaOLg2lpsrnPTHBfW7ERD9BMeciTm22oM,307
57
57
  cartography/data/jobs/cleanup/aws_import_s3_acl_cleanup.json,sha256=AmQDF8VZwXLtZ9cYe4xB7uY-VA3BMhc1YUS8HJKZ2q4,533
58
58
  cartography/data/jobs/cleanup/aws_import_s3_buckets_cleanup.json,sha256=zF_TRTZGorQO6SIXryO3qAUVWM8We2fBABuTS3rflQU,756
59
- cartography/data/jobs/cleanup/aws_import_secrets_cleanup.json,sha256=ehQJQSoWmDths9FjhBJZA3SndlvmzWjzrUaKxmz-2PY,283
60
59
  cartography/data/jobs/cleanup/aws_import_securityhub_cleanup.json,sha256=WO6OrIFr6tqbRtF0bG_JwVp4ofnnsHciJISnDBZkZxU,266
61
60
  cartography/data/jobs/cleanup/aws_import_sqs_queues_cleanup.json,sha256=Mla8y-CWaQdPJO9IDmWDz_zCAuclcJ4GRhlAlYVj_qw,629
62
61
  cartography/data/jobs/cleanup/aws_import_tags_cleanup.json,sha256=mVOmhpoeHYItYQFATlTTeBhUt2GipAliRhh69zQcHok,7360
@@ -90,7 +89,7 @@ cartography/data/jobs/cleanup/digitalocean_project_cleanup.json,sha256=5mo9vPshC
90
89
  cartography/data/jobs/cleanup/gcp_compute_firewall_cleanup.json,sha256=FVNJ8EPaPhmQ_sh4vyTdMyEgs6Y-DIoFTdWJaELgz44,1904
91
90
  cartography/data/jobs/cleanup/gcp_compute_forwarding_rules_cleanup.json,sha256=1xP5eTaHkAuVIRU5fHAOIv2tG90rdl2sFpIm-1Yv39E,992
92
91
  cartography/data/jobs/cleanup/gcp_compute_instance_cleanup.json,sha256=i_Ni3HfuralAWxePLVAv09DNWwTl6_8l6q7HnlPO254,2774
93
- cartography/data/jobs/cleanup/gcp_compute_vpc_cleanup.json,sha256=Rvh6sKun9fYKU6-EYp3f28o3kv_BfsXBCkOE5gPGk5w,931
92
+ cartography/data/jobs/cleanup/gcp_compute_vpc_cleanup.json,sha256=MipVxpRuzsYt2F1-ioZxGg94MsL8yK6ciULjEtMWG1Y,355
94
93
  cartography/data/jobs/cleanup/gcp_compute_vpc_subnet_cleanup.json,sha256=4OhOBCSAbaED-HdKTCcaYyYjyq4HCRIR05qYy4ZdI2c,1610
95
94
  cartography/data/jobs/cleanup/gcp_crm_folder_cleanup.json,sha256=hjEcSzG775un37uPBGz3FWm6nSQPQx9glWvGi1DrRN8,950
96
95
  cartography/data/jobs/cleanup/gcp_crm_organization_cleanup.json,sha256=Jftx00zgZRBwnCRWF7oie9ZQnydshN0qnGx0HXnraxc,613
@@ -154,17 +153,17 @@ cartography/intel/anthropic/workspaces.py,sha256=_t2kdGIFceDziC_BqIJa9-nLWIoWJbP
154
153
  cartography/intel/aws/__init__.py,sha256=lgu0kxERg_dJGuktEDU0ImpHuNGHJharoLEpirKWPZM,12330
155
154
  cartography/intel/aws/acm.py,sha256=a_i2pYPpocjlL8itwlcrmg8KrSLfjcmrkhcrPP-Omj8,3827
156
155
  cartography/intel/aws/apigateway.py,sha256=hOYVSY70DbrEfhi9gkX7PAMtg9WiPE0Pbp2wqGes7Vs,12198
157
- cartography/intel/aws/cloudtrail.py,sha256=kip3O39ulRmuo9RpfkofzUcGnkNnF8ksD7hP0Qe75-A,2441
158
- cartography/intel/aws/cloudtrail_management_events.py,sha256=_kJR3N4eHm1c1OgObsUgAdB11UQjN91B9B0U3kuk0_o,13036
159
- cartography/intel/aws/cloudwatch.py,sha256=Irocf84_n-JqFIbTf9tPkpJe5cpKSubd5daE7G8298Q,5107
156
+ cartography/intel/aws/cloudtrail.py,sha256=LCqf3pQMiMY4h1Wehb_OjwXst2fMIEnNOD8HbXsK4X4,2753
157
+ cartography/intel/aws/cloudtrail_management_events.py,sha256=e4P9HTqv7JKqJk-QtjWuFFt4X753PPw5JgtT5Y6GW2U,34732
158
+ cartography/intel/aws/cloudwatch.py,sha256=bBPlx5W15nun-jhYs-UAZQpo9Qm7FcBs4gBQevTqmi4,7246
160
159
  cartography/intel/aws/codebuild.py,sha256=8I-Xzm_c5-ixnGOOHIQLYYpClnaGjjHrEMjQ0-DGsgM,3958
161
160
  cartography/intel/aws/config.py,sha256=IIICicLQ0OTT3H3o8LDakIkA1BPUMwSyzpKonet-PaY,7658
162
161
  cartography/intel/aws/dynamodb.py,sha256=VvvjeUgi1ZrqY9flXIQnfhhaSVSEqXXHW6T9917VLBk,5728
163
- cartography/intel/aws/ecr.py,sha256=7a9EHZru6AUIGE_6MJ4h4_ZmrvBxsXaerCHtGr59lJ0,8393
162
+ cartography/intel/aws/ecr.py,sha256=_caYJexDxTzYMzyJ3oJwEOuEQJKjwEuH-5PHOejt7Ec,7131
164
163
  cartography/intel/aws/ecs.py,sha256=h5Nn09MzqPftbXV46jybjsxnYVYW1Vit41kCkaFIq_4,14105
165
164
  cartography/intel/aws/efs.py,sha256=6ZvFmVHLfZlyo8xx2dlRsC1IoVOpBOtsij_AdFczkDo,7884
166
165
  cartography/intel/aws/eks.py,sha256=bPItyEj5q0nSDltJrr0S5MIrTPV0fK3xkqF6EV8fcqA,3759
167
- cartography/intel/aws/elasticache.py,sha256=dpRJCYxgUW2ImgGMt4L54xFil8apUoJxZq6hpewXxAE,4590
166
+ cartography/intel/aws/elasticache.py,sha256=ePTi-49Lbw94L6m7id5dUk1cG6FZRizFxojxKZBk8XY,5552
168
167
  cartography/intel/aws/elasticsearch.py,sha256=8X_Rp1zejkvXho0Zz_Cr4g-w9IpompdYRc-YS595Aso,8645
169
168
  cartography/intel/aws/emr.py,sha256=EJoKjHQP7-F_A1trUNU05Sb42yNR1i0C9VIpGcCfAXw,3662
170
169
  cartography/intel/aws/guardduty.py,sha256=QpwWisz3TzbOxkRKNjByk4WWDCCMXr8jgNOgOdjQM5g,8532
@@ -178,12 +177,12 @@ cartography/intel/aws/organizations.py,sha256=m5qk60N6pe7iKLN-Rtfg9aYv7OozoloSkc
178
177
  cartography/intel/aws/permission_relationships.py,sha256=LTmnHS6zk9hcdL548V5ka3Ey-6NsFjy1JYZTfRyB9Ys,15647
179
178
  cartography/intel/aws/rds.py,sha256=9TQsoUQAJXj3x7laqJp06N9TQIN9ARyRiImBW9lQKOI,26574
180
179
  cartography/intel/aws/redshift.py,sha256=FGcCzcnm1OOrbJvLqtR1DwWVn1pt4Y6_eKkTUERT7Ws,7108
181
- cartography/intel/aws/resourcegroupstaggingapi.py,sha256=CebHaVLh8cr4CDYz54p5MGANPuE5Ni-_nFC78Znh4uU,10807
180
+ cartography/intel/aws/resourcegroupstaggingapi.py,sha256=TkMlUKLrRBWAyeUu-cHKce7TFkwBnWV_Im8DONgnLGU,12852
182
181
  cartography/intel/aws/resources.py,sha256=rr5TB5QiOymjoTR7Lr09HbdnCgycMGq52mC4CP7MhQo,4238
183
182
  cartography/intel/aws/route53.py,sha256=-AZDD4zVR5pQ_c1bx87UZuzbC0mDiI-YS_8llFMZkwI,14424
184
183
  cartography/intel/aws/s3.py,sha256=Da_5NYvQ7MN1AIN7CK9XXlVZo0fPdNHkqBZY1JWnHH4,33598
185
184
  cartography/intel/aws/s3accountpublicaccessblock.py,sha256=XkqHnbj9ODRcc7Rbl4swi03qvw_T-7Bnx3BHpTmlxio,4688
186
- cartography/intel/aws/secretsmanager.py,sha256=TelS5Th0Yooj-cv243VHWu-xEadhfyP9x7B1sjPWDIM,7606
185
+ cartography/intel/aws/secretsmanager.py,sha256=xM6znqD0cKNJbAhO2Zg3svyO7YUOqPFbunhODAVXMgw,7777
187
186
  cartography/intel/aws/securityhub.py,sha256=oR808vrEAHsHH79u8hf-hkVTBcdNd6ZObCeNGD_xnSo,2324
188
187
  cartography/intel/aws/sns.py,sha256=UlBvYzEjjXDgxN_dihqRatIcAt-NivNp_YsZPasVuT4,6377
189
188
  cartography/intel/aws/sqs.py,sha256=RUR8chO1oU5esZbHzKyhOO4L7LXmH78G6kGGtUCqB5Q,4096
@@ -204,7 +203,7 @@ cartography/intel/aws/ec2/reserved_instances.py,sha256=BsshVUzkuOstbidYEGq0By2Y-
204
203
  cartography/intel/aws/ec2/route_tables.py,sha256=NSW7B-4wII4mf5ClX5F1q4cKfSNAjxBSnrdk4EhxXz0,10465
205
204
  cartography/intel/aws/ec2/security_groups.py,sha256=VAa4Cp0PJtjLrl95MIudXdF8VR4ZafY3bOjuyrlPnmc,6582
206
205
  cartography/intel/aws/ec2/snapshots.py,sha256=X7J9xmhrvPILFEt7yS6yiQFElvddjkhZj2V8b9KaGRM,4460
207
- cartography/intel/aws/ec2/subnets.py,sha256=LDuWdkQH-2O8TmqYlvyIn3STUgP6vlhKjG8o8XNMuGE,4142
206
+ cartography/intel/aws/ec2/subnets.py,sha256=uzZ_YyRY2zycKXsGS05qmT6cHHi4SNbN2v1y-r4MgLY,2828
208
207
  cartography/intel/aws/ec2/tgw.py,sha256=FcXWgLkr4EcD9DRXJMeyWQIgIHidaq40UrZneKhvnuE,9621
209
208
  cartography/intel/aws/ec2/util.py,sha256=t6oJX9nCTejvp0D9ihxfhmCoD1aoOXQB0cuvz0pMCe0,226
210
209
  cartography/intel/aws/ec2/volumes.py,sha256=C5V9LRE41REU4siHMAaE9yAjtbpLi8yTkaqLEw1uXMg,3726
@@ -250,11 +249,11 @@ cartography/intel/duo/users.py,sha256=e2eK716wVlO71O9Q9KrWZot2cHjHZ7KgC9ZW27pCDa
250
249
  cartography/intel/duo/web_authn_credentials.py,sha256=mLWXdBe4V6fHCFotmtJmwhTSoOY6Hx87D3zI3hlL2nc,2656
251
250
  cartography/intel/entra/__init__.py,sha256=c4zkMFKRem8aRDUqjAvcNw8UwBvAv24Xq8yednlhAjU,2331
252
251
  cartography/intel/entra/applications.py,sha256=RAvUxk_hwsKbf64ohhg3f-QuTzsT7zb8q13d9nQuyqg,13625
253
- cartography/intel/entra/groups.py,sha256=PiXW28jWv1zoAYsTy_6ntAUDdQWdO2-AZvH5BfGytvg,5026
252
+ cartography/intel/entra/groups.py,sha256=dENox8CUU_ngHkH0dDgzhH7mBthEovE6Trw6TyNAfGo,5994
254
253
  cartography/intel/entra/ou.py,sha256=iv5UgRcPIaUZ8DdveKTmMkz0thEPYichpL9XntbHiPo,3803
255
254
  cartography/intel/entra/users.py,sha256=LiQuvpzPefRWvW1o07l-8TYrr6sUmpiYFli_4ROKJEw,8491
256
- cartography/intel/gcp/__init__.py,sha256=PtzheGqf2otRVmDe3Ai1n6JFq3_OtS2hmJrRfj8_BnQ,18896
257
- cartography/intel/gcp/compute.py,sha256=BShmgIhv_9E4rYfDe2ER3XIWZmU1NJIyZWIAvZY0uh0,49805
255
+ cartography/intel/gcp/__init__.py,sha256=K8UOJmrhmG6b3ULJQVmOM4UC-v0KyKMKmhR_07_O41M,19421
256
+ cartography/intel/gcp/compute.py,sha256=id8B8RqrfyfRITD57KPh4zIHmjrQFSwtH4aNq3XHB2A,48897
258
257
  cartography/intel/gcp/crm.py,sha256=BoVBKthjviOD7WSGhXdKtBhrk4TR9qTxMQX6xsmEedw,12682
259
258
  cartography/intel/gcp/dns.py,sha256=motkUXZLO30FEemqdffWuZA1Y1DLv0lGOgUqOi6ep4c,8157
260
259
  cartography/intel/gcp/gke.py,sha256=2-lhTzFEh-gAQ756Sr0kZZJY5_zcFWPS7_p0EVNzuR8,8326
@@ -371,11 +370,12 @@ cartography/models/aws/emr.py,sha256=iZPzyqFrDsyRSRZqjCHlyDkO91H__6iszJq5hkNpOLU
371
370
  cartography/models/aws/acm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
372
371
  cartography/models/aws/acm/certificate.py,sha256=GvB7xKBCoPmLsV9LnqAUg8x8sGTsDDsr7WIaqh4Sc-M,3141
373
372
  cartography/models/aws/cloudtrail/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
374
- cartography/models/aws/cloudtrail/management_events.py,sha256=RKAHm6RGVJBaOS90Csa7Vg1LEgq4lXY9YnRIMD2iLwM,2816
375
- cartography/models/aws/cloudtrail/trail.py,sha256=qQnpqFypKef8E7-JOR83euAtI6_j2KdjzGGFiQa6xkA,3676
373
+ cartography/models/aws/cloudtrail/management_events.py,sha256=b-p_SoZsumJggaD3CfmSHRfIfW1G_29uFwgFIJdW0lw,6634
374
+ cartography/models/aws/cloudtrail/trail.py,sha256=dQi5txRQBnpdoHLFSl8VaWVI2Bx5tPDevGCbT7RIr0o,4452
376
375
  cartography/models/aws/cloudwatch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
377
376
  cartography/models/aws/cloudwatch/log_metric_filter.py,sha256=hROU3pp_D_q21dAPTddm4lcAcCZaDV_UJ49QAZ6SCLc,3321
378
377
  cartography/models/aws/cloudwatch/loggroup.py,sha256=_MRpRvU_Vg2rVlUdzfae6vOpbpmYaYE1EVN5zWucFbE,2456
378
+ cartography/models/aws/cloudwatch/metric_alarm.py,sha256=_I-ZZLYpIVKLWntMH9X53LNyfWgr302MAeP4oeSehAE,2332
379
379
  cartography/models/aws/codebuild/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
380
380
  cartography/models/aws/codebuild/project.py,sha256=r_DMCtHlbG9FGUk_I8j_E1inIbFcGAXtL6HxHrcgg0U,2122
381
381
  cartography/models/aws/dynamodb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -409,7 +409,12 @@ cartography/models/aws/ec2/securitygroup_networkinterface.py,sha256=2MBxYXxuq_L0
409
409
  cartography/models/aws/ec2/snapshots.py,sha256=2J5bAwW6ZK2R7NW_zGGkQe64bxr2uBvQckBK0yjtGmM,2597
410
410
  cartography/models/aws/ec2/subnet_instance.py,sha256=6bgrWbFcCjBIjqd_6lcKv6rWyll-Zx1aA5TK68DcIhg,2952
411
411
  cartography/models/aws/ec2/subnet_networkinterface.py,sha256=B60S1YvEopVWNlRL5W-hMby3-P06uaNcC_8oOLoRGik,3872
412
+ cartography/models/aws/ec2/subnets.py,sha256=BtlFgf03IaD9XFesv5uzHBCm6xr71LT435m9t4MHkY8,2915
412
413
  cartography/models/aws/ec2/volumes.py,sha256=spAi4QjoYjp5G-qNuFJdW4b-oZg7by5g5FEaqJv1mZo,5242
414
+ cartography/models/aws/ecr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
415
+ cartography/models/aws/ecr/image.py,sha256=8atk1Z13BgUOcAq3uIK-sJ9gDxwcmeCIk7x1PW9B4BE,1753
416
+ cartography/models/aws/ecr/repository.py,sha256=goItMJ3XnLSSk8FCMvgCpWCSsleTqdNzUT_Asvw8Yhk,2908
417
+ cartography/models/aws/ecr/repository_image.py,sha256=p_uV3rImyWMYl9DdLU7mpHI74xRuBd4cJvJI5wutBeM,3883
413
418
  cartography/models/aws/ecs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
414
419
  cartography/models/aws/ecs/clusters.py,sha256=uu-UzkSbpLu4UG5I6NsFMaThrPYl6jYe71EX8baMy1Q,2845
415
420
  cartography/models/aws/ecs/container_definitions.py,sha256=ocJMyl6wfxbW3aPrR6xwzqP9VMpkanKA3ghqcM5BWL0,4169
@@ -424,6 +429,9 @@ cartography/models/aws/efs/file_system.py,sha256=6BNzjQJKZ-rYlDLw1UvDBhVRKre07-9
424
429
  cartography/models/aws/efs/mount_target.py,sha256=Bdd2zgWp9HtsK9EmEAgoIYpT9AOTs5wzH3sgCq4HLMU,3347
425
430
  cartography/models/aws/eks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
426
431
  cartography/models/aws/eks/clusters.py,sha256=OthI554MrYNSl-p6ArMJsSH43xKPRDSnEmvJEmXwLeU,2327
432
+ cartography/models/aws/elasticache/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
433
+ cartography/models/aws/elasticache/cluster.py,sha256=3tx3fL3FPSp4QX3pd42sV71t6kYRl-IfvU_56S7WmGo,3227
434
+ cartography/models/aws/elasticache/topic.py,sha256=Rq-Hj6xo9xouRLw2NRNU1cmmVUlOP0ieRA8fT5GlZ2w,2757
427
435
  cartography/models/aws/guardduty/__init__.py,sha256=ILQhP6R9RLgXzPKdmPzuGqhOgAXeIReUEyqKS-ZXS3k,19
428
436
  cartography/models/aws/guardduty/findings.py,sha256=LwUE1DbDyl9c3g5fUSZxsYKQ8U44wDS4Pps-QPMyr3Y,4184
429
437
  cartography/models/aws/iam/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -439,6 +447,7 @@ cartography/models/aws/s3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
439
447
  cartography/models/aws/s3/account_public_access_block.py,sha256=L6AS0OncfSOWHP4pOXshnJFDPwnWqywzUIeUppJcw-Q,2256
440
448
  cartography/models/aws/s3/notification.py,sha256=SF1VvCP_2WVh8K29d4ms8MUcg9AyO_MN8vCgzLFlGAs,1017
441
449
  cartography/models/aws/secretsmanager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
450
+ cartography/models/aws/secretsmanager/secret.py,sha256=q1uSqqL6wCvSJuCooORqHg6uMXiWxiGZYhDzYtF54wo,3928
442
451
  cartography/models/aws/secretsmanager/secret_version.py,sha256=Ah4b9BjgL24MhmxRV-HarvmNs_uCRNVMkxgvzIEp9uk,4167
443
452
  cartography/models/aws/sns/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
444
453
  cartography/models/aws/sns/topic.py,sha256=_Lcu7_c_UCUcPKEo5-kCdX3fAOkar_YKZbLmonX3BR8,2349
@@ -482,11 +491,13 @@ cartography/models/duo/web_authn_credential.py,sha256=nCdonZFyShuE5-CnI2Vxiu5BZ0
482
491
  cartography/models/entra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
483
492
  cartography/models/entra/app_role_assignment.py,sha256=BvZBWq3jd1Fw448dmIXQpHT-mBOqevNY_my-iQHpZp8,4618
484
493
  cartography/models/entra/application.py,sha256=ZNVY0a0T2nmdoVj2i5Xri0J8oIR5d9HVcLAl0yLG6s8,1968
485
- cartography/models/entra/group.py,sha256=d8QLBzqje4MkdN2uC4LXSxjUQ8_2T_cv4YbrPGfZ994,3809
494
+ cartography/models/entra/group.py,sha256=Ora5w7t7D7m98EVjknchsAmoEhEtlMJAeziCvkbYtAU,4859
486
495
  cartography/models/entra/ou.py,sha256=YmtW1Cp_XX29uzbunhEGl073AzV6PZsQtLs_MR-ACNU,2056
487
496
  cartography/models/entra/tenant.py,sha256=abpNTvOtXHgdrU-y7q6jt--odcq1eRsT2j5nMdVy_Gw,1793
488
- cartography/models/entra/user.py,sha256=uVMOYhVMwnR1dqokhAzk1IlHpmKwGpz0H5osS_9ENBE,3144
497
+ cartography/models/entra/user.py,sha256=UIZ3y4JRMfU5QgcOSGAdURH1wKvtQwicDw1q48AbhX8,3315
489
498
  cartography/models/gcp/iam.py,sha256=k6egP-DHvMX18QcLuwklxqLZXd4YPMhAs5-qWWloqJ4,3071
499
+ cartography/models/gcp/compute/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
500
+ cartography/models/gcp/compute/vpc.py,sha256=bbFfo_Rh7brXvNqY8fx-jz9zUDtPew_Wcq-WGv9j9cI,2131
490
501
  cartography/models/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
491
502
  cartography/models/github/dependencies.py,sha256=QHUgWSLTkSdhTxcgx5ct-yD2-Il7plg3N-fcZGZpKM4,3143
492
503
  cartography/models/github/manifests.py,sha256=1trwgECCjvZKS63z2k8mB55Fa8d2l-uU7HSgfL95iwA,2078
@@ -552,9 +563,9 @@ cartography/models/trivy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
552
563
  cartography/models/trivy/findings.py,sha256=SgI_h1aRyR20uAHvuXIZ1T6r4IZJt6SVhxRaF2bTsm0,3085
553
564
  cartography/models/trivy/fix.py,sha256=ho9ENVl9HSXqyggyCwR6ilkOBKDxpQ7rGibo_j21NA4,2587
554
565
  cartography/models/trivy/package.py,sha256=IwO1RZZ-MFRtNbt8Cq6YFl6fdNJMFmULnJkkK8Q4rL4,2809
555
- cartography-0.108.0rc1.dist-info/licenses/LICENSE,sha256=kvLEBRYaQ1RvUni6y7Ti9uHeooqnjPoo6n_-0JO1ETc,11351
556
- cartography-0.108.0rc1.dist-info/METADATA,sha256=Px6J_NNZibJQ4mUuBGy5e24Gl97Dfe9FNx0QyPIC9fw,12914
557
- cartography-0.108.0rc1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
558
- cartography-0.108.0rc1.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
559
- cartography-0.108.0rc1.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
560
- cartography-0.108.0rc1.dist-info/RECORD,,
566
+ cartography-0.109.0rc1.dist-info/licenses/LICENSE,sha256=kvLEBRYaQ1RvUni6y7Ti9uHeooqnjPoo6n_-0JO1ETc,11351
567
+ cartography-0.109.0rc1.dist-info/METADATA,sha256=9FTYbotYU554ja61uz3NBql3-KAmXR65ulsDLpHYfkk,12914
568
+ cartography-0.109.0rc1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
569
+ cartography-0.109.0rc1.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
570
+ cartography-0.109.0rc1.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
571
+ cartography-0.109.0rc1.dist-info/RECORD,,
@@ -1,8 +0,0 @@
1
- {
2
- "statements": [{
3
- "query": "MATCH (:AWSAccount{id: $AWS_ID})-[:RESOURCE]->(s:SecretsManagerSecret) WHERE s.lastupdated <> $UPDATE_TAG WITH s LIMIT $LIMIT_SIZE DETACH DELETE (s)",
4
- "iterative": true,
5
- "iterationsize": 100
6
- }],
7
- "name": "cleanup SecretsManagerSecret"
8
- }