cartography 0.104.0rc2__py3-none-any.whl → 0.105.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.

Files changed (44) hide show
  1. cartography/_version.py +2 -2
  2. cartography/cli.py +26 -1
  3. cartography/client/aws/__init__.py +19 -0
  4. cartography/client/aws/ecr.py +51 -0
  5. cartography/config.py +8 -0
  6. cartography/data/indexes.cypher +0 -3
  7. cartography/data/jobs/cleanup/aws_import_lambda_cleanup.json +1 -1
  8. cartography/graph/cleanupbuilder.py +151 -41
  9. cartography/intel/aws/acm.py +124 -0
  10. cartography/intel/aws/cloudtrail.py +3 -38
  11. cartography/intel/aws/ecr.py +8 -2
  12. cartography/intel/aws/iam.py +1 -1
  13. cartography/intel/aws/lambda_function.py +1 -1
  14. cartography/intel/aws/resources.py +2 -2
  15. cartography/intel/aws/s3.py +195 -4
  16. cartography/intel/aws/secretsmanager.py +19 -5
  17. cartography/intel/aws/sqs.py +36 -90
  18. cartography/intel/entra/__init__.py +11 -0
  19. cartography/intel/entra/groups.py +151 -0
  20. cartography/intel/entra/ou.py +21 -5
  21. cartography/intel/trivy/__init__.py +161 -0
  22. cartography/intel/trivy/scanner.py +363 -0
  23. cartography/models/aws/acm/certificate.py +75 -0
  24. cartography/models/aws/cloudtrail/trail.py +24 -0
  25. cartography/models/aws/s3/notification.py +24 -0
  26. cartography/models/aws/secretsmanager/secret_version.py +0 -2
  27. cartography/models/aws/sqs/__init__.py +0 -0
  28. cartography/models/aws/sqs/queue.py +89 -0
  29. cartography/models/core/nodes.py +15 -2
  30. cartography/models/entra/group.py +91 -0
  31. cartography/models/trivy/__init__.py +0 -0
  32. cartography/models/trivy/findings.py +66 -0
  33. cartography/models/trivy/fix.py +66 -0
  34. cartography/models/trivy/package.py +71 -0
  35. cartography/sync.py +2 -0
  36. {cartography-0.104.0rc2.dist-info → cartography-0.105.0.dist-info}/METADATA +3 -2
  37. {cartography-0.104.0rc2.dist-info → cartography-0.105.0.dist-info}/RECORD +42 -30
  38. cartography/intel/aws/efs.py +0 -93
  39. cartography/models/aws/efs/mount_target.py +0 -52
  40. /cartography/models/aws/{efs → acm}/__init__.py +0 -0
  41. {cartography-0.104.0rc2.dist-info → cartography-0.105.0.dist-info}/WHEEL +0 -0
  42. {cartography-0.104.0rc2.dist-info → cartography-0.105.0.dist-info}/entry_points.txt +0 -0
  43. {cartography-0.104.0rc2.dist-info → cartography-0.105.0.dist-info}/licenses/LICENSE +0 -0
  44. {cartography-0.104.0rc2.dist-info → cartography-0.105.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,91 @@
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 EntraGroupNodeProperties(CartographyNodeProperties):
16
+ id: PropertyRef = PropertyRef("id")
17
+ display_name: PropertyRef = PropertyRef("display_name")
18
+ description: PropertyRef = PropertyRef("description")
19
+ mail: PropertyRef = PropertyRef("mail")
20
+ mail_nickname: PropertyRef = PropertyRef("mail_nickname")
21
+ mail_enabled: PropertyRef = PropertyRef("mail_enabled")
22
+ security_enabled: PropertyRef = PropertyRef("security_enabled")
23
+ group_types: PropertyRef = PropertyRef("group_types")
24
+ visibility: PropertyRef = PropertyRef("visibility")
25
+ is_assignable_to_role: PropertyRef = PropertyRef("is_assignable_to_role")
26
+ created_date_time: PropertyRef = PropertyRef("created_date_time")
27
+ deleted_date_time: PropertyRef = PropertyRef("deleted_date_time")
28
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
29
+
30
+
31
+ @dataclass(frozen=True)
32
+ class EntraGroupToTenantRelProperties(CartographyRelProperties):
33
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
34
+
35
+
36
+ @dataclass(frozen=True)
37
+ class EntraGroupToTenantRel(CartographyRelSchema):
38
+ target_node_label: str = "EntraTenant"
39
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
40
+ {"id": PropertyRef("TENANT_ID", set_in_kwargs=True)}
41
+ )
42
+ direction: LinkDirection = LinkDirection.INWARD
43
+ rel_label: str = "RESOURCE"
44
+ properties: EntraGroupToTenantRelProperties = EntraGroupToTenantRelProperties()
45
+
46
+
47
+ @dataclass(frozen=True)
48
+ class EntraGroupToUserRelProperties(CartographyRelProperties):
49
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
50
+
51
+
52
+ @dataclass(frozen=True)
53
+ # (:EntraUser)-[:MEMBER_OF]->(:EntraGroup)
54
+ class EntraGroupToUserRel(CartographyRelSchema):
55
+ target_node_label: str = "EntraUser"
56
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
57
+ {"id": PropertyRef("member_ids", one_to_many=True)}
58
+ )
59
+ direction: LinkDirection = LinkDirection.INWARD
60
+ rel_label: str = "MEMBER_OF"
61
+ properties: EntraGroupToUserRelProperties = EntraGroupToUserRelProperties()
62
+
63
+
64
+ @dataclass(frozen=True)
65
+ class EntraGroupToGroupRelProperties(CartographyRelProperties):
66
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
67
+
68
+
69
+ @dataclass(frozen=True)
70
+ # (:EntraGroup)-[:MEMBER_OF]->(:EntraGroup)
71
+ class EntraGroupToGroupRel(CartographyRelSchema):
72
+ target_node_label: str = "EntraGroup"
73
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
74
+ {"id": PropertyRef("member_group_ids", one_to_many=True)}
75
+ )
76
+ direction: LinkDirection = LinkDirection.INWARD
77
+ rel_label: str = "MEMBER_OF"
78
+ properties: EntraGroupToGroupRelProperties = EntraGroupToGroupRelProperties()
79
+
80
+
81
+ @dataclass(frozen=True)
82
+ class EntraGroupSchema(CartographyNodeSchema):
83
+ label: str = "EntraGroup"
84
+ properties: EntraGroupNodeProperties = EntraGroupNodeProperties()
85
+ sub_resource_relationship: EntraGroupToTenantRel = EntraGroupToTenantRel()
86
+ other_relationships: OtherRelationships = OtherRelationships(
87
+ [
88
+ EntraGroupToGroupRel(),
89
+ EntraGroupToUserRel(),
90
+ ]
91
+ )
File without changes
@@ -0,0 +1,66 @@
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.nodes import ExtraNodeLabels
7
+ from cartography.models.core.relationships import CartographyRelProperties
8
+ from cartography.models.core.relationships import CartographyRelSchema
9
+ from cartography.models.core.relationships import LinkDirection
10
+ from cartography.models.core.relationships import make_target_node_matcher
11
+ from cartography.models.core.relationships import OtherRelationships
12
+ from cartography.models.core.relationships import TargetNodeMatcher
13
+
14
+
15
+ @dataclass(frozen=True)
16
+ class TrivyImageFindingNodeProperties(CartographyNodeProperties):
17
+ id: PropertyRef = PropertyRef("id")
18
+ name: PropertyRef = PropertyRef("VulnerabilityID")
19
+ cve_id: PropertyRef = PropertyRef("cve_id")
20
+ description: PropertyRef = PropertyRef("Description")
21
+ last_modified_date: PropertyRef = PropertyRef("LastModifiedDate")
22
+ primary_url: PropertyRef = PropertyRef("PrimaryURL")
23
+ published_date: PropertyRef = PropertyRef("PublishedDate")
24
+ severity: PropertyRef = PropertyRef("Severity")
25
+ severity_source: PropertyRef = PropertyRef("SeveritySource")
26
+ title: PropertyRef = PropertyRef("Title")
27
+ cvss_nvd_v2_score: PropertyRef = PropertyRef("nvd_v2_score")
28
+ cvss_nvd_v2_vector: PropertyRef = PropertyRef("nvd_v2_vector")
29
+ cvss_nvd_v3_score: PropertyRef = PropertyRef("nvd_v3_score")
30
+ cvss_nvd_v3_vector: PropertyRef = PropertyRef("nvd_v3_vector")
31
+ cvss_redhat_v3_score: PropertyRef = PropertyRef("redhat_v3_score")
32
+ cvss_redhat_v3_vector: PropertyRef = PropertyRef("redhat_v3_vector")
33
+ cvss_ubuntu_v3_score: PropertyRef = PropertyRef("ubuntu_v3_score")
34
+ cvss_ubuntu_v3_vector: PropertyRef = PropertyRef("ubuntu_v3_vector")
35
+ class_name: PropertyRef = PropertyRef("Class")
36
+ type: PropertyRef = PropertyRef("Type")
37
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
38
+
39
+
40
+ @dataclass(frozen=True)
41
+ class TrivyFindingToImageRelProperties(CartographyRelProperties):
42
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
43
+
44
+
45
+ @dataclass(frozen=True)
46
+ class TrivyFindingToImage(CartographyRelSchema):
47
+ target_node_label: str = "ECRImage"
48
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
49
+ {"id": PropertyRef("ImageDigest")},
50
+ )
51
+ direction: LinkDirection = LinkDirection.OUTWARD
52
+ rel_label: str = "AFFECTS"
53
+ properties: TrivyFindingToImageRelProperties = TrivyFindingToImageRelProperties()
54
+
55
+
56
+ @dataclass(frozen=True)
57
+ class TrivyImageFindingSchema(CartographyNodeSchema):
58
+ label: str = "TrivyImageFinding"
59
+ scoped_cleanup: bool = False
60
+ extra_node_labels: ExtraNodeLabels = ExtraNodeLabels(["Risk", "CVE"])
61
+ properties: TrivyImageFindingNodeProperties = TrivyImageFindingNodeProperties()
62
+ other_relationships: OtherRelationships = OtherRelationships(
63
+ [
64
+ TrivyFindingToImage(),
65
+ ],
66
+ )
@@ -0,0 +1,66 @@
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.nodes import ExtraNodeLabels
7
+ from cartography.models.core.relationships import CartographyRelProperties
8
+ from cartography.models.core.relationships import CartographyRelSchema
9
+ from cartography.models.core.relationships import LinkDirection
10
+ from cartography.models.core.relationships import make_target_node_matcher
11
+ from cartography.models.core.relationships import OtherRelationships
12
+ from cartography.models.core.relationships import TargetNodeMatcher
13
+
14
+
15
+ @dataclass(frozen=True)
16
+ class TrivyFixNodeProperties(CartographyNodeProperties):
17
+ id: PropertyRef = PropertyRef("id")
18
+ version: PropertyRef = PropertyRef("FixedVersion")
19
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
20
+
21
+
22
+ @dataclass(frozen=True)
23
+ class TrivyFixToPackageRelProperties(CartographyRelProperties):
24
+ version: PropertyRef = PropertyRef("FixedVersion")
25
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
26
+
27
+
28
+ @dataclass(frozen=True)
29
+ class TrivyFixToPackage(CartographyRelSchema):
30
+ target_node_label: str = "Package"
31
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
32
+ {"id": PropertyRef("PackageId")},
33
+ )
34
+ direction: LinkDirection = LinkDirection.INWARD
35
+ rel_label: str = "SHOULD_UPDATE_TO"
36
+ properties: TrivyFixToPackageRelProperties = TrivyFixToPackageRelProperties()
37
+
38
+
39
+ @dataclass(frozen=True)
40
+ class TrivyFixToFindingRelProperties(CartographyRelProperties):
41
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
42
+
43
+
44
+ @dataclass(frozen=True)
45
+ class TrivyFixToFinding(CartographyRelSchema):
46
+ target_node_label: str = "TrivyImageFinding"
47
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
48
+ {"id": PropertyRef("FindingId")},
49
+ )
50
+ direction: LinkDirection = LinkDirection.OUTWARD
51
+ rel_label: str = "APPLIES_TO"
52
+ properties: TrivyFixToFindingRelProperties = TrivyFixToFindingRelProperties()
53
+
54
+
55
+ @dataclass(frozen=True)
56
+ class TrivyFixSchema(CartographyNodeSchema):
57
+ label: str = "TrivyFix"
58
+ scoped_cleanup: bool = False
59
+ extra_node_labels: ExtraNodeLabels = ExtraNodeLabels(["Fix"])
60
+ properties: TrivyFixNodeProperties = TrivyFixNodeProperties()
61
+ other_relationships: OtherRelationships = OtherRelationships(
62
+ [
63
+ TrivyFixToPackage(),
64
+ TrivyFixToFinding(),
65
+ ],
66
+ )
@@ -0,0 +1,71 @@
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.nodes import ExtraNodeLabels
7
+ from cartography.models.core.relationships import CartographyRelProperties
8
+ from cartography.models.core.relationships import CartographyRelSchema
9
+ from cartography.models.core.relationships import LinkDirection
10
+ from cartography.models.core.relationships import make_target_node_matcher
11
+ from cartography.models.core.relationships import OtherRelationships
12
+ from cartography.models.core.relationships import TargetNodeMatcher
13
+
14
+
15
+ @dataclass(frozen=True)
16
+ class TrivyPackageNodeProperties(CartographyNodeProperties):
17
+ id: PropertyRef = PropertyRef("id")
18
+ installed_version: PropertyRef = PropertyRef("InstalledVersion")
19
+ name: PropertyRef = PropertyRef("PkgName")
20
+ version: PropertyRef = PropertyRef("InstalledVersion")
21
+ class_name: PropertyRef = PropertyRef("Class")
22
+ type: PropertyRef = PropertyRef("Type")
23
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
24
+
25
+
26
+ @dataclass(frozen=True)
27
+ class TrivyPackageToImageRelProperties(CartographyRelProperties):
28
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
29
+
30
+
31
+ @dataclass(frozen=True)
32
+ class TrivyPackageToImage(CartographyRelSchema):
33
+ target_node_label: str = "ECRImage"
34
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
35
+ {"id": PropertyRef("ImageDigest")},
36
+ )
37
+ direction: LinkDirection = LinkDirection.OUTWARD
38
+ rel_label: str = "DEPLOYED"
39
+ properties: TrivyPackageToImageRelProperties = TrivyPackageToImageRelProperties()
40
+
41
+
42
+ @dataclass(frozen=True)
43
+ class TrivyPackageToFindingRelProperties(CartographyRelProperties):
44
+ lastupdated: PropertyRef = PropertyRef("lastupdated", set_in_kwargs=True)
45
+
46
+
47
+ @dataclass(frozen=True)
48
+ class TrivyPackageToFinding(CartographyRelSchema):
49
+ target_node_label: str = "TrivyImageFinding"
50
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
51
+ {"id": PropertyRef("FindingId")},
52
+ )
53
+ direction: LinkDirection = LinkDirection.INWARD
54
+ rel_label: str = "AFFECTS"
55
+ properties: TrivyPackageToFindingRelProperties = (
56
+ TrivyPackageToFindingRelProperties()
57
+ )
58
+
59
+
60
+ @dataclass(frozen=True)
61
+ class TrivyPackageSchema(CartographyNodeSchema):
62
+ label: str = "Package"
63
+ scoped_cleanup: bool = False
64
+ extra_node_labels: ExtraNodeLabels = ExtraNodeLabels(["TrivyPackage"])
65
+ properties: TrivyPackageNodeProperties = TrivyPackageNodeProperties()
66
+ other_relationships: OtherRelationships = OtherRelationships(
67
+ [
68
+ TrivyPackageToImage(),
69
+ TrivyPackageToFinding(),
70
+ ],
71
+ )
cartography/sync.py CHANGED
@@ -37,6 +37,7 @@ import cartography.intel.openai
37
37
  import cartography.intel.semgrep
38
38
  import cartography.intel.snipeit
39
39
  import cartography.intel.tailscale
40
+ import cartography.intel.trivy
40
41
  from cartography.config import Config
41
42
  from cartography.stats import set_stats_client
42
43
  from cartography.util import STATUS_FAILURE
@@ -70,6 +71,7 @@ TOP_LEVEL_MODULES = OrderedDict(
70
71
  "semgrep": cartography.intel.semgrep.start_semgrep_ingestion,
71
72
  "snipeit": cartography.intel.snipeit.start_snipeit_ingestion,
72
73
  "tailscale": cartography.intel.tailscale.start_tailscale_ingestion,
74
+ "trivy": cartography.intel.trivy.start_trivy_ingestion,
73
75
  "analysis": cartography.intel.analysis.run,
74
76
  }
75
77
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cartography
3
- Version: 0.104.0rc2
3
+ Version: 0.105.0
4
4
  Summary: Explore assets and their relationships across your technical infrastructure.
5
5
  Maintainer: Cartography Contributors
6
6
  License: apache2
@@ -80,7 +80,7 @@ You can learn more about the story behind Cartography in our [presentation at BS
80
80
 
81
81
 
82
82
  ## Supported platforms
83
- - [Amazon Web Services](https://cartography-cncf.github.io/cartography/modules/aws/index.html) - API Gateway, CloudWatch, Config, EC2, ECS, ECR, Elasticsearch, Elastic Kubernetes Service (EKS), DynamoDB, IAM, Inspector, KMS, Lambda, RDS, Redshift, Route53, S3, Secrets Manager(Secret Versions), Security Hub, SQS, SSM, STS, Tags
83
+ - [Amazon Web Services](https://cartography-cncf.github.io/cartography/modules/aws/index.html) - ACM, API Gateway, CloudWatch, Config, EC2, ECS, ECR, Elasticsearch, Elastic Kubernetes Service (EKS), DynamoDB, IAM, Inspector, KMS, Lambda, RDS, Redshift, Route53, S3, Secrets Manager(Secret Versions), Security Hub, SQS, SSM, STS, Tags
84
84
  - [Google Cloud Platform](https://cartography-cncf.github.io/cartography/modules/gcp/index.html) - Cloud Resource Manager, Compute, DNS, Storage, Google Kubernetes Engine
85
85
  - [Google GSuite](https://cartography-cncf.github.io/cartography/modules/gsuite/index.html) - users, groups
86
86
  - [Oracle Cloud Infrastructure](https://cartography-cncf.github.io/cartography/modules/oci/index.html) - IAM
@@ -102,6 +102,7 @@ You can learn more about the story behind Cartography in our [presentation at BS
102
102
  - [Cloudflare](https://cartography-cncf.github.io/cartography/modules/cloudflare/index.html) - Account, Role, Member, Zone, DNSRecord
103
103
  - [OpenAI](https://cartography-cncf.github.io/cartography/modules/openai/index.html) - Organization, AdminApiKey, User, Project, ServiceAccount, ApiKey
104
104
  - [Anthropic](https://cartography-cncf.github.io/cartography/modules/anthropic/index.html) - Organization, ApiKey, User, Workspace
105
+ - [Trivy Scanner](https://cartography-cncf.github.io/cartography/modules/trivy/index.html) - AWS ECR Images
105
106
 
106
107
 
107
108
  ## Philosophy
@@ -1,19 +1,20 @@
1
1
  cartography/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  cartography/__main__.py,sha256=y5iqUrj4BmqZfjeDT-9balzpXeMARgHeIedRMRI1gr8,100
3
- cartography/_version.py,sha256=aWWdVpnQJ2cX8gSZq76U2idC12R6QYuGZW7a11_6sUw,525
4
- cartography/cli.py,sha256=FCm81J7u_yjOuyuaXiXmZ-7v2i-rl3T6nS_xvnX5ndQ,40226
5
- cartography/config.py,sha256=WlvHWN9zHYNcytMsqgCB2yvR4Llvx-PPFoj-TTUN-DA,13906
3
+ cartography/_version.py,sha256=gxdpR-gLQKp1kUASq4M2OLJ3WIBhZ7POeIyhaomuOPY,515
4
+ cartography/cli.py,sha256=LIH9uY6LyctL8VDsrllxFvU17f1vAAhXQVsQ83wGvRI,41072
5
+ cartography/config.py,sha256=Magq4iNynKdIl3hYjrxlikXfVLxryf73t41L2bAyUPI,14298
6
6
  cartography/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  cartography/stats.py,sha256=N95prYlSzY8U52VFgKIDgOWOawu5Mig4N7GcVp3binQ,4420
8
- cartography/sync.py,sha256=eeiIShkhjcAKd3WGvXMn8VQwKOdE0Gq1p3J2QxJTt1Q,13306
8
+ cartography/sync.py,sha256=y9ByjTesFr7VY4EsAO4C9nZ9uXdWK3H_zmg4Au9e9EQ,13401
9
9
  cartography/util.py,sha256=F1-sQrU3x8HdDV2JDTllJvYNy7CKBNg7W93GMqXSjFU,15281
10
10
  cartography/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- cartography/client/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
+ cartography/client/aws/__init__.py,sha256=Zj7nX21QQELwPLZlpldm_22IiXZ1VFsEFQbWX_e4okU,558
12
+ cartography/client/aws/ecr.py,sha256=04IXnuEAauyO5Mx9Wmt79WdUnYDhYsk2QSOnwE5_BeM,1664
12
13
  cartography/client/aws/iam.py,sha256=dYsGikc36DEsSeR2XVOVFFUDwuU9yWj_EVkpgVYCFgM,1293
13
14
  cartography/client/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
15
  cartography/client/core/tx.py,sha256=1kvITtFseyG4C8h5xUxYEvhatejMs71oE0gCjjbDHkQ,10950
15
16
  cartography/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
- cartography/data/indexes.cypher,sha256=aUHMiLPsEt09W61GyjJHfpkRJ07S2sGcpU9IReYxKC0,26551
17
+ cartography/data/indexes.cypher,sha256=7W1ZtqiSxDXqm9yNM_mSJXUAfXUhhQgH3k4zaudPIZc,26378
17
18
  cartography/data/permission_relationships.yaml,sha256=RuKGGc_3ZUQ7ag0MssB8k_zaonCkVM5E8I_svBWTmGc,969
18
19
  cartography/data/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
20
  cartography/data/jobs/analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -45,7 +46,7 @@ cartography/data/jobs/cleanup/aws_import_groups_policy_cleanup.json,sha256=U_yKH
45
46
  cartography/data/jobs/cleanup/aws_import_identity_center_cleanup.json,sha256=PSyerOlZkiLaWYFa3Hg1mqqX83FGwj36-p0BF1lR-Q8,650
46
47
  cartography/data/jobs/cleanup/aws_import_internet_gateways_cleanup.json,sha256=SHHrR9pX0V1r-RxwJggHGeFA7JVQAAK02D-n-vqOvdU,287
47
48
  cartography/data/jobs/cleanup/aws_import_kms_cleanup.json,sha256=NU9doXVk4UmAY59aYnld95Wc1b8DrfCbvJltUsATxko,1441
48
- cartography/data/jobs/cleanup/aws_import_lambda_cleanup.json,sha256=ntjEpy_WyLxD66Dxydi9GliBVK0DVZWza6908KYeoyA,2268
49
+ cartography/data/jobs/cleanup/aws_import_lambda_cleanup.json,sha256=h219-cmOY19RjcGZiecM21HS52hw4S5EXFVAxIpyyTw,2267
49
50
  cartography/data/jobs/cleanup/aws_import_principals_cleanup.json,sha256=yrI1FISGTlgaUZXFSj7XUCNzRoLqkcavLur4Lw4zSmU,1363
50
51
  cartography/data/jobs/cleanup/aws_import_rds_clusters_cleanup.json,sha256=aHpM8qvN7TNTUJMQjOlv5-lxz0BzJl-tKIj_m5i_uqc,1166
51
52
  cartography/data/jobs/cleanup/aws_import_rds_instances_cleanup.json,sha256=vmulpaxqqzBYSTtS6lYzbm55ksYjCab3UeRI0l13ktY,2733
@@ -130,7 +131,7 @@ cartography/driftdetect/shortcut.py,sha256=0AvX9vZGNRWeLiRqxU7eOOo77gcfufHx4IHZv
130
131
  cartography/driftdetect/storage.py,sha256=xvDY4qn6jDhDpBvc8hFXXpbcYIbMNqkm3wX5LBf28u0,1549
131
132
  cartography/driftdetect/util.py,sha256=Lqxv8QoFn3_3Fz18qCOjkjJ6yBwgrHjrxXmArBAEdkc,929
132
133
  cartography/graph/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
133
- cartography/graph/cleanupbuilder.py,sha256=gyPTnlRJUoA0kF4PvmtFC346Jet4CFPHyvcRdIcRiTI,9598
134
+ cartography/graph/cleanupbuilder.py,sha256=T71aR_IVp4oLu5SQb1miwn9Is8tqg25JJm4SkEdZ-80,14542
134
135
  cartography/graph/context.py,sha256=RGxGb8EnxowcqjR0nFF86baNhgRHeUF9wjIoFUoG8LU,1230
135
136
  cartography/graph/job.py,sha256=5e1L6D3RCM2WgEgbm7CUeqEhMkgw-TEh2cl1-xmzlwQ,7739
136
137
  cartography/graph/querybuilder.py,sha256=Pd_WVJtZB_vh9VR7cm9PAS5Fl4qW783Hvq5njW5XMxA,21814
@@ -145,37 +146,37 @@ cartography/intel/anthropic/users.py,sha256=8tE18LVlweG2BhdMPdicEw-_WCmFs5AR6cyF
145
146
  cartography/intel/anthropic/util.py,sha256=m2OopxCC6chCwOxUXmc9nWW--nOlYyBL_Nc3Kd4CEwY,1847
146
147
  cartography/intel/anthropic/workspaces.py,sha256=_t2kdGIFceDziC_BqIJa9-nLWIoWJbPoFNX1JYqbQ-w,2544
147
148
  cartography/intel/aws/__init__.py,sha256=ZF59ftkFFnGKXxKvm0ONg3YNQGc38xhDxAH78DufoXE,12130
149
+ cartography/intel/aws/acm.py,sha256=a_i2pYPpocjlL8itwlcrmg8KrSLfjcmrkhcrPP-Omj8,3827
148
150
  cartography/intel/aws/apigateway.py,sha256=hOYVSY70DbrEfhi9gkX7PAMtg9WiPE0Pbp2wqGes7Vs,12198
149
- cartography/intel/aws/cloudtrail.py,sha256=5PwogjaraliVB7pgy-eCk5AD_OjJtRPUKdM0vzZ9M8Q,3579
151
+ cartography/intel/aws/cloudtrail.py,sha256=kip3O39ulRmuo9RpfkofzUcGnkNnF8ksD7hP0Qe75-A,2441
150
152
  cartography/intel/aws/cloudwatch.py,sha256=k9A8h__dE8N2LeF0o8lpJcNqNAaTCG1Ip3PgAF9mnlQ,2488
151
153
  cartography/intel/aws/config.py,sha256=IIICicLQ0OTT3H3o8LDakIkA1BPUMwSyzpKonet-PaY,7658
152
154
  cartography/intel/aws/dynamodb.py,sha256=VvvjeUgi1ZrqY9flXIQnfhhaSVSEqXXHW6T9917VLBk,5728
153
- cartography/intel/aws/ecr.py,sha256=ucIzMm-Gazo7tRuuKmipqPqsOrJ23o7aK-ZEjxdY6Qg,8013
155
+ cartography/intel/aws/ecr.py,sha256=7a9EHZru6AUIGE_6MJ4h4_ZmrvBxsXaerCHtGr59lJ0,8393
154
156
  cartography/intel/aws/ecs.py,sha256=LRaVdu-6aFOoO8ctHJaJl5O1ieKAVUjGp-KGUAApn20,23965
155
- cartography/intel/aws/efs.py,sha256=u5vOib8E5ZvWeMEzTIHLkczxLv-G4CERX5EAqlmOyqI,2486
156
157
  cartography/intel/aws/eks.py,sha256=bPItyEj5q0nSDltJrr0S5MIrTPV0fK3xkqF6EV8fcqA,3759
157
158
  cartography/intel/aws/elasticache.py,sha256=dpRJCYxgUW2ImgGMt4L54xFil8apUoJxZq6hpewXxAE,4590
158
159
  cartography/intel/aws/elasticsearch.py,sha256=8X_Rp1zejkvXho0Zz_Cr4g-w9IpompdYRc-YS595Aso,8645
159
160
  cartography/intel/aws/emr.py,sha256=EJoKjHQP7-F_A1trUNU05Sb42yNR1i0C9VIpGcCfAXw,3662
160
- cartography/intel/aws/iam.py,sha256=qak7ZEvhjEWgKTolozbEF8njv2v6kq7IKZO5rvfTXXM,34323
161
+ cartography/intel/aws/iam.py,sha256=bkyIzWw2OC4MHxuoCvTiZ5eEGEQhz2asiUgY_tkX2GY,34322
161
162
  cartography/intel/aws/iam_instance_profiles.py,sha256=QUyu30xid60BFaemp-q0y9FgNsHaIQyQnQ8gHUzWC4k,2211
162
163
  cartography/intel/aws/identitycenter.py,sha256=J5Qnt3FddWBrJUVvQDdhOZdOErri0tJ55VJu8C9fEiY,9212
163
164
  cartography/intel/aws/inspector.py,sha256=oF-QLWN2Bt73YsuR5RW5wnPNnATkd4zUuLZumtZeO8c,9957
164
165
  cartography/intel/aws/kms.py,sha256=RtCxNG-Den-f4Il-NO3YL_-BFUmg1qFt4lNucue9SQM,12130
165
- cartography/intel/aws/lambda_function.py,sha256=0ObieuMNOxzxtabczmlM2WuCrb0xomAJC8Sdr5yGhP4,10390
166
+ cartography/intel/aws/lambda_function.py,sha256=cutCsMnvyJB8vKUP0fHORrhijw944cXSoLKOHYdi6SM,10389
166
167
  cartography/intel/aws/organizations.py,sha256=m5qk60N6pe7iKLN-Rtfg9aYv7OozoloSkcsuePd-RGs,4680
167
168
  cartography/intel/aws/permission_relationships.py,sha256=LTmnHS6zk9hcdL548V5ka3Ey-6NsFjy1JYZTfRyB9Ys,15647
168
169
  cartography/intel/aws/rds.py,sha256=mjGrn7ftpk_Xdm-jBdP-PXyGhtv3zAEpYDPs-SaKwiE,26542
169
170
  cartography/intel/aws/redshift.py,sha256=FGcCzcnm1OOrbJvLqtR1DwWVn1pt4Y6_eKkTUERT7Ws,7108
170
171
  cartography/intel/aws/resourcegroupstaggingapi.py,sha256=CebHaVLh8cr4CDYz54p5MGANPuE5Ni-_nFC78Znh4uU,10807
171
- cartography/intel/aws/resources.py,sha256=79alRrmn-T3G9uRKxUVAwxdWPMWV32ncUPb5KbBVWKY,3959
172
+ cartography/intel/aws/resources.py,sha256=UJ0J_akiGW2LTU6Nj4L6NMS0zgn34Z7EwGcHRcYRmZY,3971
172
173
  cartography/intel/aws/route53.py,sha256=-AZDD4zVR5pQ_c1bx87UZuzbC0mDiI-YS_8llFMZkwI,14424
173
- cartography/intel/aws/s3.py,sha256=2mLYIPwyZu2oBxP_zFbTi713cgjuOkjIjjwxxCDE7mo,27581
174
+ cartography/intel/aws/s3.py,sha256=Da_5NYvQ7MN1AIN7CK9XXlVZo0fPdNHkqBZY1JWnHH4,33598
174
175
  cartography/intel/aws/s3accountpublicaccessblock.py,sha256=XkqHnbj9ODRcc7Rbl4swi03qvw_T-7Bnx3BHpTmlxio,4688
175
- cartography/intel/aws/secretsmanager.py,sha256=WnHA7QQVJgD_2Q9eFl0YfJvTM2S34srkHSymLe7gzkc,7272
176
+ cartography/intel/aws/secretsmanager.py,sha256=TelS5Th0Yooj-cv243VHWu-xEadhfyP9x7B1sjPWDIM,7606
176
177
  cartography/intel/aws/securityhub.py,sha256=oR808vrEAHsHH79u8hf-hkVTBcdNd6ZObCeNGD_xnSo,2324
177
178
  cartography/intel/aws/sns.py,sha256=R92aSStNxr8Qu3iVFShSXeTBXOOkebiQMXNoQM9HjCc,4793
178
- cartography/intel/aws/sqs.py,sha256=HUZZlNdyjt1ZIkSaTEDUXsWuIVxGxTC0ypNSsRvXKVQ,6519
179
+ cartography/intel/aws/sqs.py,sha256=RUR8chO1oU5esZbHzKyhOO4L7LXmH78G6kGGtUCqB5Q,4096
179
180
  cartography/intel/aws/ssm.py,sha256=fHcx929my-Lb6fgJavyWLTBtPV6onaY7_GPnhKsv8hk,8173
180
181
  cartography/intel/aws/ec2/__init__.py,sha256=Lh_keh8WH-GNxxT4-Gw5MNiZFhDHe2kr3AChPgELa9w,346
181
182
  cartography/intel/aws/ec2/auto_scaling_groups.py,sha256=s2XP1HPEWYg752trj_bwH9kB5zsRORErD9VFqfU6c1s,9141
@@ -237,8 +238,9 @@ cartography/intel/duo/phones.py,sha256=3_MPXmR4ub4Jra0ISr6cKzC5z_Pvx7YhHojWeJJku
237
238
  cartography/intel/duo/tokens.py,sha256=lVe0ByS3ncLA3FZXoqN8eLj_HMsl5s4uDT-uWlLJhSs,2407
238
239
  cartography/intel/duo/users.py,sha256=e2eK716wVlO71O9Q9KrWZot2cHjHZ7KgC9ZW27pCDaI,4143
239
240
  cartography/intel/duo/web_authn_credentials.py,sha256=mLWXdBe4V6fHCFotmtJmwhTSoOY6Hx87D3zI3hlL2nc,2656
240
- cartography/intel/entra/__init__.py,sha256=QuJHoxw06JBHt18JCuiMA2oNTRgBIPCiS2_Uz5CdgaE,1637
241
- cartography/intel/entra/ou.py,sha256=xoKxl6KjtpTIBr64vaefpojR1iJiTSAyO70kAOF9rJs,3242
241
+ cartography/intel/entra/__init__.py,sha256=oqdLlzQv9tYXn-BuKBlPmZ87ljl5MOih_REHM_L6mas,1972
242
+ cartography/intel/entra/groups.py,sha256=PiXW28jWv1zoAYsTy_6ntAUDdQWdO2-AZvH5BfGytvg,5026
243
+ cartography/intel/entra/ou.py,sha256=iv5UgRcPIaUZ8DdveKTmMkz0thEPYichpL9XntbHiPo,3803
242
244
  cartography/intel/entra/users.py,sha256=Zk9k8A3XeE-ZgUhY9fwN7GYhzbguGE-nHNOm6kvOCpo,7557
243
245
  cartography/intel/gcp/__init__.py,sha256=PtzheGqf2otRVmDe3Ai1n6JFq3_OtS2hmJrRfj8_BnQ,18896
244
246
  cartography/intel/gcp/compute.py,sha256=BShmgIhv_9E4rYfDe2ER3XIWZmU1NJIyZWIAvZY0uh0,49805
@@ -311,6 +313,8 @@ cartography/intel/tailscale/postureintegrations.py,sha256=C75HPfJkWHqlcXjk81YYcS
311
313
  cartography/intel/tailscale/tailnets.py,sha256=Ooc4XSOArWWFJoKykJDrk_tm2OKK1BHwfK_KEhckPp4,1679
312
314
  cartography/intel/tailscale/users.py,sha256=kjHAdIVGUwx28RRQ0KwLsdsZT9L-HlfwTph9dis7grc,1820
313
315
  cartography/intel/tailscale/utils.py,sha256=Xhwcb_31LWQy4MhoFWre_fX8gvddFVt13jjk5p0TPH4,4828
316
+ cartography/intel/trivy/__init__.py,sha256=hYroW2ewXRiTPYC7QqxFBaakUgk6j7U66bCSh8cgrGY,5277
317
+ cartography/intel/trivy/scanner.py,sha256=u9b5ORpVXaqR6owO6QXjNh9Nz1Vx1nn-rsYfcyrSlx8,12021
314
318
  cartography/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
315
319
  cartography/models/anthropic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
316
320
  cartography/models/anthropic/apikey.py,sha256=eDaaXBHkZtRrKCDgeBD5BYR4jVUH-5QTi7Ji9uEpd-0,3578
@@ -323,8 +327,10 @@ cartography/models/aws/apigatewaycertificate.py,sha256=vFKip_EeOws3Ke-77xI6eyUMD
323
327
  cartography/models/aws/apigatewayresource.py,sha256=iyri4znJo1pgAAe4xBs-eoE5dHK8fEsg6-5OusdvwE0,2856
324
328
  cartography/models/aws/apigatewaystage.py,sha256=d3m82TH4ggC--0HdE3SG7n-Uwm5Gu9eZMRT23h7a2as,3179
325
329
  cartography/models/aws/emr.py,sha256=iZPzyqFrDsyRSRZqjCHlyDkO91H__6iszJq5hkNpOLU,3071
330
+ cartography/models/aws/acm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
331
+ cartography/models/aws/acm/certificate.py,sha256=GvB7xKBCoPmLsV9LnqAUg8x8sGTsDDsr7WIaqh4Sc-M,3141
326
332
  cartography/models/aws/cloudtrail/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
327
- cartography/models/aws/cloudtrail/trail.py,sha256=kd_nOBdIDXZDTbLc7HwIuDvI23edySxtKVsROwPCHjY,2849
333
+ cartography/models/aws/cloudtrail/trail.py,sha256=qQnpqFypKef8E7-JOR83euAtI6_j2KdjzGGFiQa6xkA,3676
328
334
  cartography/models/aws/cloudwatch/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
329
335
  cartography/models/aws/cloudwatch/loggroup.py,sha256=_MRpRvU_Vg2rVlUdzfae6vOpbpmYaYE1EVN5zWucFbE,2456
330
336
  cartography/models/aws/dynamodb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -356,8 +362,6 @@ cartography/models/aws/ec2/securitygroup_networkinterface.py,sha256=2MBxYXxuq_L0
356
362
  cartography/models/aws/ec2/subnet_instance.py,sha256=gAw2TJIlBnBNWn83l60N_Pi5Ni4oNe2lbZpg-u39BU8,2818
357
363
  cartography/models/aws/ec2/subnet_networkinterface.py,sha256=YCfribtM4gEIb2Jan3xoBZke_IeNnejB95unfnIrX3Y,3739
358
364
  cartography/models/aws/ec2/volumes.py,sha256=ITSJ_1HgrU5wTF1zZV8sYRZsI0QzktoHkvTgpnfM1hI,4547
359
- cartography/models/aws/efs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
360
- cartography/models/aws/efs/mount_target.py,sha256=GRV5wcVcg6D-UTntFaD54G3_YLP8sLTq4SVB-Zz1Iqk,2376
361
365
  cartography/models/aws/eks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
362
366
  cartography/models/aws/eks/clusters.py,sha256=OthI554MrYNSl-p6ArMJsSH43xKPRDSnEmvJEmXwLeU,2327
363
367
  cartography/models/aws/iam/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -371,10 +375,13 @@ cartography/models/aws/inspector/findings.py,sha256=z6fVygv8rmlYB1huX64jDgrCEjoT
371
375
  cartography/models/aws/inspector/packages.py,sha256=4TWu9EiS8aOR-n5z0FqG7564t-GKS4zrD4THX_2NKRo,3348
372
376
  cartography/models/aws/s3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
373
377
  cartography/models/aws/s3/account_public_access_block.py,sha256=L6AS0OncfSOWHP4pOXshnJFDPwnWqywzUIeUppJcw-Q,2256
378
+ cartography/models/aws/s3/notification.py,sha256=SF1VvCP_2WVh8K29d4ms8MUcg9AyO_MN8vCgzLFlGAs,1017
374
379
  cartography/models/aws/secretsmanager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
375
- cartography/models/aws/secretsmanager/secret_version.py,sha256=y-iSOkbTZjHKw4RMW6B2W5l-5g_ndYz24N-4myHScC0,4271
380
+ cartography/models/aws/secretsmanager/secret_version.py,sha256=Ah4b9BjgL24MhmxRV-HarvmNs_uCRNVMkxgvzIEp9uk,4167
376
381
  cartography/models/aws/sns/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
377
382
  cartography/models/aws/sns/topic.py,sha256=_Lcu7_c_UCUcPKEo5-kCdX3fAOkar_YKZbLmonX3BR8,2349
383
+ cartography/models/aws/sqs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
384
+ cartography/models/aws/sqs/queue.py,sha256=ELSbeeYXotmzku6KAeDt2i1qMTUsV4tOIVA5JaPgXEE,3992
378
385
  cartography/models/aws/ssm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
379
386
  cartography/models/aws/ssm/instance_information.py,sha256=URlqoum2ZSKrd2BYgqFRwqJxW8mdgzjNhlvzM02v2_4,4149
380
387
  cartography/models/aws/ssm/instance_patch.py,sha256=03eHkwLaCXDv5LR9yJXH8DYfUYH6O6uZcGtaI9PV5B0,3158
@@ -390,7 +397,7 @@ cartography/models/cloudflare/role.py,sha256=HRjDoLMSs0YJlJosZsXEZV58OE_3vGAWSDN
390
397
  cartography/models/cloudflare/zone.py,sha256=uMHTSHq32eWe47k3b08sbnQBLrbNWPKpL9Osc4jcFD0,2805
391
398
  cartography/models/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
392
399
  cartography/models/core/common.py,sha256=O8hF-kNdQ5-1NGKJuX5fcOcHf4kDYYc1b9tndPCcwUU,6202
393
- cartography/models/core/nodes.py,sha256=Yrl06yqE1Z1uQxVjRIAL5tW_RYG1ZfI6JTiBF3WcecM,3714
400
+ cartography/models/core/nodes.py,sha256=GFK-optqan5L57D36ZQ7AdylGRELUl9pMyBfZ7l-cz4,4367
394
401
  cartography/models/core/relationships.py,sha256=_ph52obhjeqc67IZ_rwuAtIbBqMHtKb04ceCP6g4Q04,5151
395
402
  cartography/models/crowdstrike/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
396
403
  cartography/models/crowdstrike/hosts.py,sha256=J4UpdsVUNiQXqxnvmWdVkwsFueVagPV-7sTV3D7Lkts,2686
@@ -410,6 +417,7 @@ cartography/models/duo/token.py,sha256=WTV7Lv-_X1HH_tmyiK0dC0zfwkaHyXcHWH6XDPThv
410
417
  cartography/models/duo/user.py,sha256=Yqc4BUZ8DlFrYtJwHYn-QtID_T5Plc7TkQvJ3Wq8PsI,6570
411
418
  cartography/models/duo/web_authn_credential.py,sha256=nCdonZFyShuE5-CnI2Vxiu5BZ07TWJ5dZ7wx2Oe-0QE,2993
412
419
  cartography/models/entra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
420
+ cartography/models/entra/group.py,sha256=d8QLBzqje4MkdN2uC4LXSxjUQ8_2T_cv4YbrPGfZ994,3809
413
421
  cartography/models/entra/ou.py,sha256=YmtW1Cp_XX29uzbunhEGl073AzV6PZsQtLs_MR-ACNU,2056
414
422
  cartography/models/entra/tenant.py,sha256=abpNTvOtXHgdrU-y7q6jt--odcq1eRsT2j5nMdVy_Gw,1793
415
423
  cartography/models/entra/user.py,sha256=YExHNKhHHhnwal0O12OCpvtdjcED5RONdBjMpPeMDBw,4877
@@ -447,9 +455,13 @@ cartography/models/tailscale/postureintegration.py,sha256=nwyzYoCZn9PPaChVxCL7ib
447
455
  cartography/models/tailscale/tag.py,sha256=7a8SidgsBI8f_ZzoHo3NPAA83JSXgS785VxlDeU2cBs,3955
448
456
  cartography/models/tailscale/tailnet.py,sha256=QE7Wl_JEthqZbfUK9fgURERnd91i-a3VIchxi6H7Css,1341
449
457
  cartography/models/tailscale/user.py,sha256=i3skB3IYQgRSuHkP3SUWEyv3QnyPwnXjdBUkhwQBWko,2299
450
- cartography-0.104.0rc2.dist-info/licenses/LICENSE,sha256=kvLEBRYaQ1RvUni6y7Ti9uHeooqnjPoo6n_-0JO1ETc,11351
451
- cartography-0.104.0rc2.dist-info/METADATA,sha256=9gNaIRcEc2js8FT6O22hf3qZg-wUrY1rfPYI5qbvOQw,12296
452
- cartography-0.104.0rc2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
453
- cartography-0.104.0rc2.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
454
- cartography-0.104.0rc2.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
455
- cartography-0.104.0rc2.dist-info/RECORD,,
458
+ cartography/models/trivy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
459
+ cartography/models/trivy/findings.py,sha256=SgI_h1aRyR20uAHvuXIZ1T6r4IZJt6SVhxRaF2bTsm0,3085
460
+ cartography/models/trivy/fix.py,sha256=ho9ENVl9HSXqyggyCwR6ilkOBKDxpQ7rGibo_j21NA4,2587
461
+ cartography/models/trivy/package.py,sha256=IwO1RZZ-MFRtNbt8Cq6YFl6fdNJMFmULnJkkK8Q4rL4,2809
462
+ cartography-0.105.0.dist-info/licenses/LICENSE,sha256=kvLEBRYaQ1RvUni6y7Ti9uHeooqnjPoo6n_-0JO1ETc,11351
463
+ cartography-0.105.0.dist-info/METADATA,sha256=6qMEpGPsSOaFa8c_lkpHqsgNEtnlGst6SLyMrxsrJ9M,12406
464
+ cartography-0.105.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
465
+ cartography-0.105.0.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
466
+ cartography-0.105.0.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
467
+ cartography-0.105.0.dist-info/RECORD,,
@@ -1,93 +0,0 @@
1
- import logging
2
- from typing import Any
3
- from typing import Dict
4
- from typing import List
5
-
6
- import boto3
7
- import neo4j
8
-
9
- from cartography.client.core.tx import load
10
- from cartography.graph.job import GraphJob
11
- from cartography.intel.aws.ec2.util import get_botocore_config
12
- from cartography.models.aws.efs.mount_target import EfsMountTargetSchema
13
- from cartography.util import aws_handle_regions
14
- from cartography.util import timeit
15
-
16
- logger = logging.getLogger(__name__)
17
-
18
-
19
- @timeit
20
- @aws_handle_regions
21
- def get_efs_mount_targets(
22
- boto3_session: boto3.Session, region: str
23
- ) -> List[Dict[str, Any]]:
24
- client = boto3_session.client(
25
- "efs", region_name=region, config=get_botocore_config()
26
- )
27
- paginator = client.get_paginator("describe_mount_targets")
28
- mountTargets = []
29
- for page in paginator.paginate():
30
- mountTargets.extend(page["MountTargets"])
31
- return mountTargets
32
-
33
-
34
- @timeit
35
- def load_efs_mount_targets(
36
- neo4j_session: neo4j.Session,
37
- data: List[Dict[str, Any]],
38
- region: str,
39
- current_aws_account_id: str,
40
- aws_update_tag: int,
41
- ) -> None:
42
- logger.info(
43
- f"Loading Efs {len(data)} mount targets for region '{region}' into graph.",
44
- )
45
- load(
46
- neo4j_session,
47
- EfsMountTargetSchema(),
48
- data,
49
- lastupdated=aws_update_tag,
50
- Region=region,
51
- AWS_ID=current_aws_account_id,
52
- )
53
-
54
-
55
- @timeit
56
- def cleanup(
57
- neo4j_session: neo4j.Session,
58
- common_job_parameters: Dict[str, Any],
59
- ) -> None:
60
- logger.debug("Running Efs cleanup job.")
61
- cleanup_job = GraphJob.from_node_schema(
62
- EfsMountTargetSchema(), common_job_parameters
63
- )
64
- cleanup_job.run(neo4j_session)
65
-
66
-
67
- @timeit
68
- def sync(
69
- neo4j_session: neo4j.Session,
70
- boto3_session: boto3.session.Session,
71
- regions: List[str],
72
- current_aws_account_id: str,
73
- update_tag: int,
74
- common_job_parameters: Dict[str, Any],
75
- ) -> None:
76
- for region in regions:
77
- logger.info(
78
- f"Syncing Efs for region '{region}' in account '{current_aws_account_id}'.",
79
- )
80
- mountTargets = get_efs_mount_targets(boto3_session, region)
81
- mount_target_data: List[Dict[str, Any]] = []
82
- for mountTarget in mountTargets:
83
- mount_target_data.append(mountTarget)
84
-
85
- load_efs_mount_targets(
86
- neo4j_session,
87
- mount_target_data,
88
- region,
89
- current_aws_account_id,
90
- update_tag,
91
- )
92
-
93
- cleanup(neo4j_session, common_job_parameters)