cartography 0.95.0__py3-none-any.whl → 0.96.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 (42) hide show
  1. cartography/cli.py +15 -0
  2. cartography/client/core/tx.py +1 -1
  3. cartography/config.py +6 -2
  4. cartography/data/indexes.cypher +1 -2
  5. cartography/data/jobs/cleanup/aws_import_identity_center_cleanup.json +16 -0
  6. cartography/data/jobs/cleanup/{github_users_cleanup.json → github_org_and_users_cleanup.json} +5 -0
  7. cartography/data/jobs/cleanup/github_repos_cleanup.json +25 -0
  8. cartography/graph/querybuilder.py +4 -0
  9. cartography/intel/aws/apigateway.py +3 -3
  10. cartography/intel/aws/ec2/auto_scaling_groups.py +147 -185
  11. cartography/intel/aws/ec2/instances.py +2 -0
  12. cartography/intel/aws/ec2/network_acls.py +209 -0
  13. cartography/intel/aws/ec2/subnets.py +2 -0
  14. cartography/intel/aws/iam.py +4 -3
  15. cartography/intel/aws/identitycenter.py +307 -0
  16. cartography/intel/aws/resources.py +4 -0
  17. cartography/intel/cve/__init__.py +1 -1
  18. cartography/intel/cve/feed.py +10 -7
  19. cartography/intel/github/repos.py +176 -27
  20. cartography/intel/github/users.py +156 -39
  21. cartography/intel/okta/users.py +2 -1
  22. cartography/intel/semgrep/__init__.py +1 -1
  23. cartography/intel/semgrep/dependencies.py +54 -22
  24. cartography/models/aws/ec2/auto_scaling_groups.py +204 -0
  25. cartography/models/aws/ec2/launch_configurations.py +55 -0
  26. cartography/models/aws/ec2/network_acl_rules.py +98 -0
  27. cartography/models/aws/ec2/network_acls.py +86 -0
  28. cartography/models/aws/identitycenter/__init__.py +0 -0
  29. cartography/models/aws/identitycenter/awsidentitycenter.py +44 -0
  30. cartography/models/aws/identitycenter/awspermissionset.py +84 -0
  31. cartography/models/aws/identitycenter/awsssouser.py +68 -0
  32. cartography/models/core/common.py +18 -1
  33. cartography/models/github/orgs.py +26 -0
  34. cartography/models/github/users.py +119 -0
  35. cartography/models/semgrep/dependencies.py +13 -0
  36. cartography-0.96.0.dist-info/METADATA +53 -0
  37. {cartography-0.95.0.dist-info → cartography-0.96.0.dist-info}/RECORD +41 -28
  38. {cartography-0.95.0.dist-info → cartography-0.96.0.dist-info}/WHEEL +1 -1
  39. cartography-0.95.0.dist-info/METADATA +0 -53
  40. {cartography-0.95.0.dist-info → cartography-0.96.0.dist-info}/LICENSE +0 -0
  41. {cartography-0.95.0.dist-info → cartography-0.96.0.dist-info}/entry_points.txt +0 -0
  42. {cartography-0.95.0.dist-info → cartography-0.96.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,84 @@
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 PermissionSetProperties(CartographyNodeProperties):
16
+ id: PropertyRef = PropertyRef('PermissionSetArn')
17
+ name: PropertyRef = PropertyRef('Name')
18
+ arn: PropertyRef = PropertyRef('PermissionSetArn')
19
+ description: PropertyRef = PropertyRef('Description')
20
+ session_duration: PropertyRef = PropertyRef('SessionDuration')
21
+ instance_arn: PropertyRef = PropertyRef('InstanceArn', set_in_kwargs=True)
22
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
23
+
24
+
25
+ @dataclass(frozen=True)
26
+ class PermissionSetToInstanceRelProperties(CartographyRelProperties):
27
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
28
+
29
+
30
+ @dataclass(frozen=True)
31
+ class PermissionSetToInstance(CartographyRelSchema):
32
+ target_node_label: str = 'AWSIdentityCenter'
33
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
34
+ {'arn': PropertyRef('InstanceArn', set_in_kwargs=True)},
35
+ )
36
+ direction: LinkDirection = LinkDirection.INWARD
37
+ rel_label: str = "HAS_PERMISSION_SET"
38
+ properties: PermissionSetToInstanceRelProperties = PermissionSetToInstanceRelProperties()
39
+
40
+
41
+ @dataclass(frozen=True)
42
+ class PermissionSetToAWSRoleRelProperties(CartographyRelProperties):
43
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
44
+
45
+
46
+ @dataclass(frozen=True)
47
+ class PermissionSetToAWSRole(CartographyRelSchema):
48
+ target_node_label: str = 'AWSRole'
49
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
50
+ {'arn': PropertyRef('RoleHint', fuzzy_and_ignore_case=True)},
51
+ )
52
+ direction: LinkDirection = LinkDirection.OUTWARD
53
+ rel_label: str = "ASSIGNED_TO_ROLE"
54
+ properties: PermissionSetToAWSRoleRelProperties = PermissionSetToAWSRoleRelProperties()
55
+
56
+
57
+ @dataclass(frozen=True)
58
+ class AWSPermissionSetToAwsAccountRelProperties(CartographyRelProperties):
59
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
60
+
61
+
62
+ @dataclass(frozen=True)
63
+ # (:IdentityCenter)<-[:RESOURCE]-(:AWSAccount)
64
+ class AWSPermissionSetToAWSAccount(CartographyRelSchema):
65
+ target_node_label: str = 'AWSAccount'
66
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
67
+ {'id': PropertyRef('AWS_ID', set_in_kwargs=True)},
68
+ )
69
+ direction: LinkDirection = LinkDirection.INWARD
70
+ rel_label: str = "RESOURCE"
71
+ properties: AWSPermissionSetToAwsAccountRelProperties = AWSPermissionSetToAwsAccountRelProperties()
72
+
73
+
74
+ @dataclass(frozen=True)
75
+ class AWSPermissionSetSchema(CartographyNodeSchema):
76
+ label: str = 'AWSPermissionSet'
77
+ properties: PermissionSetProperties = PermissionSetProperties()
78
+ sub_resource_relationship: AWSPermissionSetToAWSAccount = AWSPermissionSetToAWSAccount()
79
+ other_relationships: OtherRelationships = OtherRelationships(
80
+ [
81
+ PermissionSetToInstance(),
82
+ PermissionSetToAWSRole(),
83
+ ],
84
+ )
@@ -0,0 +1,68 @@
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 SSOUserProperties(CartographyNodeProperties):
17
+ id: PropertyRef = PropertyRef('UserId', extra_index=True)
18
+ user_name: PropertyRef = PropertyRef('UserName')
19
+ identity_store_id: PropertyRef = PropertyRef('IdentityStoreId')
20
+ external_id: PropertyRef = PropertyRef('ExternalId', extra_index=True)
21
+ region: PropertyRef = PropertyRef('Region')
22
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
23
+
24
+
25
+ @dataclass(frozen=True)
26
+ class SSOUserToOktaUserRelProperties(CartographyRelProperties):
27
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
28
+
29
+
30
+ @dataclass(frozen=True)
31
+ class SSOUserToOktaUser(CartographyRelSchema):
32
+ target_node_label: str = 'UserAccount'
33
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
34
+ {'id': PropertyRef('ExternalId')},
35
+ )
36
+ direction: LinkDirection = LinkDirection.INWARD
37
+ rel_label: str = "CAN_ASSUME_IDENTITY"
38
+ properties: SSOUserToOktaUserRelProperties = SSOUserToOktaUserRelProperties()
39
+
40
+
41
+ @dataclass(frozen=True)
42
+ class AWSSSOUserToAwsAccountRelProperties(CartographyRelProperties):
43
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
44
+
45
+
46
+ @dataclass(frozen=True)
47
+ # (:IdentityCenter)<-[:RESOURCE]-(:AWSAccount)
48
+ class AWSSSOUserToAWSAccount(CartographyRelSchema):
49
+ target_node_label: str = 'AWSAccount'
50
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
51
+ {'id': PropertyRef('AWS_ID', set_in_kwargs=True)},
52
+ )
53
+ direction: LinkDirection = LinkDirection.INWARD
54
+ rel_label: str = "RESOURCE"
55
+ properties: AWSSSOUserToAwsAccountRelProperties = AWSSSOUserToAwsAccountRelProperties()
56
+
57
+
58
+ @dataclass(frozen=True)
59
+ class AWSSSOUserSchema(CartographyNodeSchema):
60
+ label: str = 'AWSSSOUser'
61
+ properties: SSOUserProperties = SSOUserProperties()
62
+ extra_node_labels: ExtraNodeLabels = ExtraNodeLabels(["UserAccount"])
63
+ sub_resource_relationship: AWSSSOUserToAWSAccount = AWSSSOUserToAWSAccount()
64
+ other_relationships: OtherRelationships = OtherRelationships(
65
+ [
66
+ SSOUserToOktaUser(),
67
+ ],
68
+ )
@@ -8,7 +8,14 @@ class PropertyRef:
8
8
  (PropertyRef.set_in_kwargs=True).
9
9
  """
10
10
 
11
- def __init__(self, name: str, set_in_kwargs=False, extra_index=False, ignore_case=False):
11
+ def __init__(
12
+ self,
13
+ name: str,
14
+ set_in_kwargs=False,
15
+ extra_index=False,
16
+ ignore_case=False,
17
+ fuzzy_and_ignore_case=False,
18
+ ):
12
19
  """
13
20
  :param name: The name of the property
14
21
  :param set_in_kwargs: Optional. If True, the property is not defined on the data dict, and we expect to find the
@@ -33,11 +40,21 @@ class PropertyRef:
33
40
  cartography catalog of GitHubUser nodes. Therefore, you would need `ignore_case=True` in the PropertyRef
34
41
  that points to the GitHubUser node's name field, otherwise if one of your employees' GitHub usernames
35
42
  contains capital letters, you would not be able to map them properly to a GitHubUser node in your graph.
43
+ :param fuzzy_and_ignore_case: If True, performs a fuzzy + case-insensitive match when comparing the value of
44
+ this property using the `CONTAINS` operator.
45
+ query. Defaults to False. This only has effect as part of a TargetNodeMatcher and is not supported for the
46
+ sub resource relationship.
36
47
  """
37
48
  self.name = name
38
49
  self.set_in_kwargs = set_in_kwargs
39
50
  self.extra_index = extra_index
40
51
  self.ignore_case = ignore_case
52
+ self.fuzzy_and_ignore_case = fuzzy_and_ignore_case
53
+ if self.fuzzy_and_ignore_case and self.ignore_case:
54
+ raise ValueError(
55
+ f'Error setting PropertyRef "{self.name}": ignore_case cannot be used together with'
56
+ 'fuzzy_and_ignore_case. Pick one or the other.',
57
+ )
41
58
 
42
59
  def _parameterize_name(self) -> str:
43
60
  return f"${self.name}"
@@ -0,0 +1,26 @@
1
+ """
2
+ This schema does not handle the org's relationships. Those are handled by other schemas, for example:
3
+ * GitHubTeamSchema defines (GitHubOrganization)-[RESOURCE]->(GitHubTeam)
4
+ * GitHubUserSchema defines (GitHubUser)-[MEMBER_OF|UNAFFILIATED]->(GitHubOrganization)
5
+ (There may be others, these are just two examples.)
6
+ """
7
+ from dataclasses import dataclass
8
+
9
+ from cartography.models.core.common import PropertyRef
10
+ from cartography.models.core.nodes import CartographyNodeProperties
11
+ from cartography.models.core.nodes import CartographyNodeSchema
12
+
13
+
14
+ @dataclass(frozen=True)
15
+ class GitHubOrganizationNodeProperties(CartographyNodeProperties):
16
+ id: PropertyRef = PropertyRef('url')
17
+ username: PropertyRef = PropertyRef('login', extra_index=True)
18
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
19
+
20
+
21
+ @dataclass(frozen=True)
22
+ class GitHubOrganizationSchema(CartographyNodeSchema):
23
+ label: str = 'GitHubOrganization'
24
+ properties: GitHubOrganizationNodeProperties = GitHubOrganizationNodeProperties()
25
+ other_relationships = None
26
+ sub_resource_relationship = None
@@ -0,0 +1,119 @@
1
+ """
2
+ RE: Tenant relationship between GitHubUser and GitHubOrganization
3
+
4
+ Note this relationship is implemented via 'other_relationships' and not via the 'sub_resource_relationship'
5
+ as might be expected.
6
+
7
+ The 'sub_resource_relationship' typically describes the relationship of a node to its tenant (the org, project, or
8
+ other resource to which other nodes belong). An assumption of that relationship is that if the tenant goes
9
+ away, all nodes related to it should be cleaned up.
10
+
11
+ In GitHub, though the GitHubUser's tenant seems to be GitHubOrganization, users actually exist independently. There
12
+ is a concept of 'UNAFFILIATED' users (https://docs.github.com/en/graphql/reference/enums#roleinorganization) like
13
+ Enterprise Owners who are related to an org even if they are not direct members of it. You would not want them to be
14
+ cleaned up, if an org goes away, and you could want them in your graph even if they are not members of any org in
15
+ the enterprise.
16
+
17
+ To allow for this in the schema, this relationship is treated as any other node-to-node relationship, via
18
+ 'other_relationships', instead of as the typical 'sub_resource_relationship'.
19
+
20
+ RE: GitHubOrganizationUserSchema vs GitHubUnaffiliatedUserSchema
21
+
22
+ As noted above, there are implicitly two types of users, those that are part of, or affiliated, to a target
23
+ GitHubOrganization, and those thare are not part, or unaffiliated. Both are represented as GitHubUser nodes,
24
+ but there are two schemas below to allow for some differences between them, e.g., unaffiliated lack these properties:
25
+ * the 'role' property, because unaffiliated have no 'role' in the target org
26
+ * the 'has_2fa_enabled' property, because the GitHub api does not return it, for these users
27
+ The main importance of having two schemas is to allow the two sets of users to be loaded separately. If we are loading
28
+ an unaffiliated user, but the user already exists in the graph (perhaps they are members of another GitHub orgs for
29
+ example), then loading the unaffiliated user will not blank out the 'role' and 'has_2fa_enabled' properties.
30
+ """
31
+ from dataclasses import dataclass
32
+
33
+ from cartography.models.core.common import PropertyRef
34
+ from cartography.models.core.nodes import CartographyNodeProperties
35
+ from cartography.models.core.nodes import CartographyNodeSchema
36
+ from cartography.models.core.relationships import CartographyRelProperties
37
+ from cartography.models.core.relationships import CartographyRelSchema
38
+ from cartography.models.core.relationships import LinkDirection
39
+ from cartography.models.core.relationships import make_target_node_matcher
40
+ from cartography.models.core.relationships import OtherRelationships
41
+ from cartography.models.core.relationships import TargetNodeMatcher
42
+
43
+
44
+ @dataclass(frozen=True)
45
+ class BaseGitHubUserNodeProperties(CartographyNodeProperties):
46
+ # core properties in all GitHubUser nodes
47
+ id: PropertyRef = PropertyRef('url')
48
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
49
+ fullname: PropertyRef = PropertyRef('name')
50
+ username: PropertyRef = PropertyRef('login', extra_index=True)
51
+ is_site_admin: PropertyRef = PropertyRef('isSiteAdmin')
52
+ is_enterprise_owner: PropertyRef = PropertyRef('isEnterpriseOwner')
53
+ email: PropertyRef = PropertyRef('email')
54
+ company: PropertyRef = PropertyRef('company')
55
+
56
+
57
+ @dataclass(frozen=True)
58
+ class GitHubOrganizationUserNodeProperties(BaseGitHubUserNodeProperties):
59
+ # specified for affiliated users only. The GitHub api does not return this property for unaffiliated users.
60
+ has_2fa_enabled: PropertyRef = PropertyRef('hasTwoFactorEnabled')
61
+ # specified for affiliated uers only. Unaffiliated users do not have a 'role' in the target organization.
62
+ role: PropertyRef = PropertyRef('role')
63
+
64
+
65
+ @dataclass(frozen=True)
66
+ class GitHubUnaffiliatedUserNodeProperties(BaseGitHubUserNodeProperties):
67
+ # No additional properties needed
68
+ pass
69
+
70
+
71
+ @dataclass(frozen=True)
72
+ class GitHubUserToOrganizationRelProperties(CartographyRelProperties):
73
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
74
+
75
+
76
+ @dataclass(frozen=True)
77
+ class GitHubUserMemberOfOrganizationRel(CartographyRelSchema):
78
+ target_node_label: str = 'GitHubOrganization'
79
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
80
+ {'id': PropertyRef('MEMBER_OF')},
81
+ )
82
+ direction: LinkDirection = LinkDirection.OUTWARD
83
+ rel_label: str = "MEMBER_OF"
84
+ properties: GitHubUserToOrganizationRelProperties = GitHubUserToOrganizationRelProperties()
85
+
86
+
87
+ @dataclass(frozen=True)
88
+ class GitHubUserUnaffiliatedOrganizationRel(CartographyRelSchema):
89
+ target_node_label: str = 'GitHubOrganization'
90
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
91
+ {'id': PropertyRef('UNAFFILIATED')},
92
+ )
93
+ direction: LinkDirection = LinkDirection.OUTWARD
94
+ rel_label: str = "UNAFFILIATED"
95
+ properties: GitHubUserToOrganizationRelProperties = GitHubUserToOrganizationRelProperties()
96
+
97
+
98
+ @dataclass(frozen=True)
99
+ class GitHubOrganizationUserSchema(CartographyNodeSchema):
100
+ label: str = 'GitHubUser'
101
+ properties: GitHubOrganizationUserNodeProperties = GitHubOrganizationUserNodeProperties()
102
+ other_relationships: OtherRelationships = OtherRelationships(
103
+ [
104
+ GitHubUserMemberOfOrganizationRel(),
105
+ ],
106
+ )
107
+ sub_resource_relationship = None
108
+
109
+
110
+ @dataclass(frozen=True)
111
+ class GitHubUnaffiliatedUserSchema(CartographyNodeSchema):
112
+ label: str = 'GitHubUser'
113
+ properties: GitHubUnaffiliatedUserNodeProperties = GitHubUnaffiliatedUserNodeProperties()
114
+ other_relationships: OtherRelationships = OtherRelationships(
115
+ [
116
+ GitHubUserUnaffiliatedOrganizationRel(),
117
+ ],
118
+ )
119
+ sub_resource_relationship = None
@@ -75,3 +75,16 @@ class SemgrepGoLibrarySchema(CartographyNodeSchema):
75
75
  SemgrepDependencyToGithubRepoRel(),
76
76
  ],
77
77
  )
78
+
79
+
80
+ @dataclass(frozen=True)
81
+ class SemgrepNpmLibrarySchema(CartographyNodeSchema):
82
+ label: str = 'NpmLibrary'
83
+ extra_node_labels: Optional[ExtraNodeLabels] = ExtraNodeLabels(['Dependency', 'SemgrepDependency'])
84
+ properties: SemgrepDependencyNodeProperties = SemgrepDependencyNodeProperties()
85
+ sub_resource_relationship: SemgrepDependencyToSemgrepDeploymentSchema = SemgrepDependencyToSemgrepDeploymentSchema()
86
+ other_relationships: OtherRelationships = OtherRelationships(
87
+ [
88
+ SemgrepDependencyToGithubRepoRel(),
89
+ ],
90
+ )
@@ -0,0 +1,53 @@
1
+ Metadata-Version: 2.1
2
+ Name: cartography
3
+ Version: 0.96.0
4
+ Summary: Explore assets and their relationships across your technical infrastructure.
5
+ Home-page: https://www.github.com/cartography-cncf/cartography
6
+ Maintainer: Cartography Contributors
7
+ License: apache2
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: Apache Software License
11
+ Classifier: Natural Language :: English
12
+ Classifier: Programming Language :: Python
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Topic :: Security
16
+ Classifier: Topic :: Software Development :: Libraries
17
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ Requires-Dist: backoff>=2.1.2
21
+ Requires-Dist: boto3>=1.15.1
22
+ Requires-Dist: botocore>=1.18.1
23
+ Requires-Dist: dnspython>=1.15.0
24
+ Requires-Dist: neo4j<5.0.0,>=4.4.4
25
+ Requires-Dist: policyuniverse>=1.1.0.0
26
+ Requires-Dist: google-api-python-client>=1.7.8
27
+ Requires-Dist: oauth2client>=4.1.3
28
+ Requires-Dist: marshmallow>=3.0.0rc7
29
+ Requires-Dist: oci>=2.71.0
30
+ Requires-Dist: okta<1.0.0
31
+ Requires-Dist: pyyaml>=5.3.1
32
+ Requires-Dist: requests>=2.22.0
33
+ Requires-Dist: statsd
34
+ Requires-Dist: packaging
35
+ Requires-Dist: python-digitalocean>=1.16.0
36
+ Requires-Dist: adal>=1.2.4
37
+ Requires-Dist: azure-cli-core>=2.26.0
38
+ Requires-Dist: azure-mgmt-compute>=5.0.0
39
+ Requires-Dist: azure-mgmt-resource>=10.2.0
40
+ Requires-Dist: azure-mgmt-cosmosdb>=6.0.0
41
+ Requires-Dist: msrestazure>=0.6.4
42
+ Requires-Dist: azure-mgmt-storage>=16.0.0
43
+ Requires-Dist: azure-mgmt-sql<=1.0.0
44
+ Requires-Dist: azure-identity>=1.5.0
45
+ Requires-Dist: kubernetes>=22.6.0
46
+ Requires-Dist: pdpyras>=4.3.0
47
+ Requires-Dist: crowdstrike-falconpy>=0.5.1
48
+ Requires-Dist: python-dateutil
49
+ Requires-Dist: xmltodict
50
+ Requires-Dist: duo-client
51
+ Requires-Dist: importlib-resources; python_version < "3.7"
52
+
53
+ file: README.md
@@ -1,7 +1,7 @@
1
1
  cartography/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  cartography/__main__.py,sha256=JftXT_nUPkqcEh8uxCCT4n-OyHYqbldEgrDS-4ygy0U,101
3
- cartography/cli.py,sha256=tfIPOMh3DtQG7Dgmg9rNNqoTcxgocBu45k88CAM09Nk,32368
4
- cartography/config.py,sha256=QbFqwUb6P8-wdkf4ljE5HJhduXl_3Gt2xzBQRayq0sg,11566
3
+ cartography/cli.py,sha256=LPjeOkx-cKhRkuhqMicB-0X3SHOjLXxEeGqsp2FtpC0,33285
4
+ cartography/config.py,sha256=ZcadsKmooAkti9Kv0eDl8Ec1PcZDu3lWobtNaCnwY3k,11872
5
5
  cartography/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  cartography/stats.py,sha256=dbybb9V2FuvSuHjjNwz6Vjwnd1hap2C7h960rLoKcl8,4406
7
7
  cartography/sync.py,sha256=ziD63T_774gXSuD5zdz6fLGvv1Kt2ntQySSVbmcCZb8,9708
@@ -10,9 +10,9 @@ cartography/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
10
10
  cartography/client/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  cartography/client/aws/iam.py,sha256=dYsGikc36DEsSeR2XVOVFFUDwuU9yWj_EVkpgVYCFgM,1293
12
12
  cartography/client/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
- cartography/client/core/tx.py,sha256=4_kTBxrtlwsOM-e8Xtjf7wmmzwZ-DGRJL0rPFp0Xj0Q,10805
13
+ cartography/client/core/tx.py,sha256=FcUPfmNIKSXkN5UK3nL5-GFoGkPYXmAxIWP7knvrHWg,10794
14
14
  cartography/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- cartography/data/indexes.cypher,sha256=Ha8VemktSz8ikIS4On-8FTiv2-WwRx5j3l02gQnSWXk,27262
15
+ cartography/data/indexes.cypher,sha256=zMEzytgcvMLgclMmCkFUdWp4t_EFsOEOp1M2v1vGctM,27208
16
16
  cartography/data/permission_relationships.yaml,sha256=RuKGGc_3ZUQ7ag0MssB8k_zaonCkVM5E8I_svBWTmGc,969
17
17
  cartography/data/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
18
  cartography/data/jobs/analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -45,6 +45,7 @@ cartography/data/jobs/cleanup/aws_import_es_cleanup.json,sha256=VqRqiMcT0Ag0Qif2
45
45
  cartography/data/jobs/cleanup/aws_import_groups_cleanup.json,sha256=QSdWIpC_Ru4TFBm9I5mpI-ZHyusbzCzCePWN-yn8TQU,463
46
46
  cartography/data/jobs/cleanup/aws_import_groups_membership_cleanup.json,sha256=OSeasbv01pn47J1ib3yal_dAzbEOCZVJnldMqK0SAOQ,292
47
47
  cartography/data/jobs/cleanup/aws_import_groups_policy_cleanup.json,sha256=U_yKHAsjHoI9fiiTqGyhlMazgeZumlZwMO70CpJpuAM,309
48
+ cartography/data/jobs/cleanup/aws_import_identity_center_cleanup.json,sha256=PSyerOlZkiLaWYFa3Hg1mqqX83FGwj36-p0BF1lR-Q8,650
48
49
  cartography/data/jobs/cleanup/aws_import_internet_gateways_cleanup.json,sha256=SHHrR9pX0V1r-RxwJggHGeFA7JVQAAK02D-n-vqOvdU,287
49
50
  cartography/data/jobs/cleanup/aws_import_kms_cleanup.json,sha256=NU9doXVk4UmAY59aYnld95Wc1b8DrfCbvJltUsATxko,1441
50
51
  cartography/data/jobs/cleanup/aws_import_lambda_cleanup.json,sha256=ntjEpy_WyLxD66Dxydi9GliBVK0DVZWza6908KYeoyA,2268
@@ -101,8 +102,8 @@ cartography/data/jobs/cleanup/gcp_crm_project_cleanup.json,sha256=JImcuuz9HI2TL0
101
102
  cartography/data/jobs/cleanup/gcp_dns_cleanup.json,sha256=NGs5UYFmm65Rq8gyqbzIe8_OnFchfpNFf9iAcIj_hyY,1286
102
103
  cartography/data/jobs/cleanup/gcp_gke_cluster_cleanup.json,sha256=3bMEJ44AEvjkj_1ibclk6Ys5r1LniUWefpZ_U5hTwHI,671
103
104
  cartography/data/jobs/cleanup/gcp_storage_bucket_cleanup.json,sha256=sGygB_meoCpGdGgEZtIlC4L-19meAXdfP99gkNJHD7o,1288
104
- cartography/data/jobs/cleanup/github_repos_cleanup.json,sha256=tFXDcsWyCrr5C4Hzl157sv8GjF3aj9dsKKs94bhcEYA,2628
105
- cartography/data/jobs/cleanup/github_users_cleanup.json,sha256=wxqbOkOShVA3mYUdZwc8UuS4gH5Al8bc7rij6R0cyDQ,806
105
+ cartography/data/jobs/cleanup/github_org_and_users_cleanup.json,sha256=vjaOlWdnjaCHmvmaWadOzHXqFnjpR1wW8cykb_M54fM,1010
106
+ cartography/data/jobs/cleanup/github_repos_cleanup.json,sha256=Ko6zya72yLjLt_m-wogAUmuzzL2-IJiO457clEHFxPk,3676
106
107
  cartography/data/jobs/cleanup/gsuite_ingest_groups_cleanup.json,sha256=ddXAUi6aVi2htf5R1bNn6YrC3SjshjLBgWtlzBgZ9Do,961
107
108
  cartography/data/jobs/cleanup/gsuite_ingest_users_cleanup.json,sha256=0qMLbVSTyq5F9vt4-TvVa3YAAvZCpPtzF9EwblaTxWg,353
108
109
  cartography/data/jobs/cleanup/jamf_import_computers_cleanup.json,sha256=sEF6VSkOcFO210y3VHFO45PDYi5ZePS6xRm3GL9lW7A,248
@@ -135,14 +136,14 @@ cartography/graph/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
135
136
  cartography/graph/cleanupbuilder.py,sha256=87vFrOJo66hOrrqeNwXp18WrNQEheHTlZko9KUkXWhY,8021
136
137
  cartography/graph/context.py,sha256=RGxGb8EnxowcqjR0nFF86baNhgRHeUF9wjIoFUoG8LU,1230
137
138
  cartography/graph/job.py,sha256=RZWsbNhHuJlcSpw4C73ZuovRTp7kGrcm3X9yUH8vT1Q,7488
138
- cartography/graph/querybuilder.py,sha256=MMXzUEg4td-YmHMNM97KAqDZ6-1wNClO2jmJoG47BTY,20108
139
+ cartography/graph/querybuilder.py,sha256=7DtIGPlfeKcIWKw_ReCAX1OeUkhSnIRV_reeVaKL6I4,20416
139
140
  cartography/graph/statement.py,sha256=VsqG46ty_Mm87fr8YdIwfr6a82OUXU7yZe6S-Py9hZg,5345
140
141
  cartography/intel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
142
  cartography/intel/analysis.py,sha256=gHtN42NqqLL1G5MOm2Q6rMyg-V5lU_wqbnKp5hbOOao,1499
142
143
  cartography/intel/create_indexes.py,sha256=HM2jB2v3NZvGqgVDtNoBQRVpkei_JXcYXqM14w8Rjss,741
143
144
  cartography/intel/dns.py,sha256=M-WSiGQoxWZsl0sg-2SDR8OD8e1Rexkt2Tbb2OpeioA,5596
144
145
  cartography/intel/aws/__init__.py,sha256=siRhVNypfGxMPNIXHSjfYbLX9qlB6RYyN6aWX64N-t8,11076
145
- cartography/intel/aws/apigateway.py,sha256=se0plc9ZnkGQAEtlfqgrJGTa2JeWljvwC3E3JFM7YbI,12764
146
+ cartography/intel/aws/apigateway.py,sha256=aTUVjpAksfLJwq_ttye8NWt5LMkCV8vKyXbPW4gN7-U,12736
146
147
  cartography/intel/aws/config.py,sha256=wrZbz7bc8vImLmRvTLkPcWnjjPzk3tOG4bB_BFS2lq8,7329
147
148
  cartography/intel/aws/dynamodb.py,sha256=LZ6LGNThLi0zC3eLMq2JN3mwiSwZeaH58YQQHvsXMGE,5013
148
149
  cartography/intel/aws/ecr.py,sha256=9yK8bXnXBJHW_AOalATjqfC4GTpR9pilpDScla4EFuY,6624
@@ -151,7 +152,8 @@ cartography/intel/aws/eks.py,sha256=OerAX7qT2uGPbqliPvuy8JZUIgle_KMlnkkHxk8O5fk,
151
152
  cartography/intel/aws/elasticache.py,sha256=fCI47aDFmIDyE26GiReKYb6XIZUwrzcvsXBQ4ruFhuI,4427
152
153
  cartography/intel/aws/elasticsearch.py,sha256=ZL7MkXF_bXRSoXuDSI1dwGckRLG2zDB8LuAD07vSLnE,8374
153
154
  cartography/intel/aws/emr.py,sha256=xhWBVZngxJRFjMEDxwq3G6SgytRGLq0v2a_CeDvByR0,3372
154
- cartography/intel/aws/iam.py,sha256=eLw0NkBGKzCI_tQ3wmrx3aUibQerrsxKJd3d0RCKcKQ,32374
155
+ cartography/intel/aws/iam.py,sha256=zRlF9cKcYm44iL63G6bd-_flNOFHVrjsEfW0jZHpUNg,32387
156
+ cartography/intel/aws/identitycenter.py,sha256=zIWe_JpXPC-kkWu26aFjYtGsClNG_GaQ3bdCeiRkApc,9475
155
157
  cartography/intel/aws/inspector.py,sha256=S22ZgRKEnmnBTJ-u0rodqRPB7_LkSIek47NeBxN4XJw,9336
156
158
  cartography/intel/aws/kms.py,sha256=bZUzMxAH_DsAcGTJBs08gg2tLKYu-QWjvMvV9C-6v50,11731
157
159
  cartography/intel/aws/lambda_function.py,sha256=KKTyn53xpaMI9WvIqxmsOASFwflHt-2_5ow-zUFc2wg,9890
@@ -160,7 +162,7 @@ cartography/intel/aws/permission_relationships.py,sha256=IarV9gt5BaplZ5TPo_mfypt
160
162
  cartography/intel/aws/rds.py,sha256=vnlNYmrO2Cc0PNn31CeG2QwYhwjVosbQFE9Ol1vQyLE,25252
161
163
  cartography/intel/aws/redshift.py,sha256=KOqiXIllHmtPTeaNGl-cX4srY5pFE6o12j8MQ5-zWpc,6694
162
164
  cartography/intel/aws/resourcegroupstaggingapi.py,sha256=aq4kPF6t8QZZoTxdkQVLXH65Di41CDJVM9llJNe6iaY,10278
163
- cartography/intel/aws/resources.py,sha256=exmPQXk9V75ubwgzL7sksVI9mKIdfEbNSSXGW206fvg,3181
165
+ cartography/intel/aws/resources.py,sha256=A8Dc3PtCfDyk5a1ZgAoHthhDPS6aWN_kR0PLwnHdC0Q,3370
164
166
  cartography/intel/aws/route53.py,sha256=IYqeQud1HuHnf11A7T-Jeif5DWgjpaaU-Jfr2cLUc_o,14099
165
167
  cartography/intel/aws/s3.py,sha256=SVxUMtMSkbdjZv5qOSYIbYb8BQa-QTojbHG85-EFWLA,27034
166
168
  cartography/intel/aws/secretsmanager.py,sha256=YogwRPT6qZPVg5HrND71zI-nNn60oxoWaW7eUlhuTS0,3304
@@ -168,20 +170,21 @@ cartography/intel/aws/securityhub.py,sha256=8FF7vW0ykdqn07xGExtsOLxYTyCTTbDiRuA1
168
170
  cartography/intel/aws/sqs.py,sha256=cosScBKxAm_6GsM9zzg4U12KvAjXUzxpJ1zGv0lsVZI,6199
169
171
  cartography/intel/aws/ssm.py,sha256=IDOYa8v2FgziU8nBOZ7wyDG4o_nFYshbB-si9Ut_9Zc,5562
170
172
  cartography/intel/aws/ec2/__init__.py,sha256=IDK2Yap7mllK_ab6yVMLXatJ94znIkn-szv5RJP5fbo,346
171
- cartography/intel/aws/ec2/auto_scaling_groups.py,sha256=4erjP31KSVW-Pp2ASmDox_VLp_AQUAin4KYxfZKZcSM,9223
173
+ cartography/intel/aws/ec2/auto_scaling_groups.py,sha256=ylfks8_oC0-fVMnToFbmRcbKdEN0H17LlN1-ZqW6ULc,8148
172
174
  cartography/intel/aws/ec2/elastic_ip_addresses.py,sha256=0k4NwS73VyWbEj5jXvSkaq2RNvmAlBlrN-UKa_Bj0uk,3957
173
175
  cartography/intel/aws/ec2/images.py,sha256=heElwHJGqVD3iUJjxwA_Sdc3CmE4HPs00CTMHuQ1wkc,3782
174
- cartography/intel/aws/ec2/instances.py,sha256=mnTjdBY-4D-TGhH29UrSaLUW0Uft0JApDIJkkLz4zPc,12170
176
+ cartography/intel/aws/ec2/instances.py,sha256=IJS9TJhk0aqFaRbmUOCE_sHVhZJLg8fPTF8zEnTlyvk,12372
175
177
  cartography/intel/aws/ec2/internet_gateways.py,sha256=dI-4-85_3DGGZZBcY_DN6XqESx9P26S6jKok314lcnQ,2883
176
178
  cartography/intel/aws/ec2/key_pairs.py,sha256=SvRgd56vE4eouvTSNoFK8PP8HYoECO91goxc36oq_FY,2508
177
179
  cartography/intel/aws/ec2/launch_templates.py,sha256=aeqaL8On38ET8nM8bISsIXLy6PkZoV-tqSWG38YXgkI,6010
178
180
  cartography/intel/aws/ec2/load_balancer_v2s.py,sha256=95FfQQn740gexINIHDJizOM4OKzRtQT_y2XQMipQ5Dg,8661
179
181
  cartography/intel/aws/ec2/load_balancers.py,sha256=1GwErzGqi3BKCARqfGJcD_r_D84rFKVy5kNMas9jAok,6756
182
+ cartography/intel/aws/ec2/network_acls.py,sha256=_UiOx79OxcqH0ecRjcVMglAzz5XJ4aVYLlv6dl_ism4,6809
180
183
  cartography/intel/aws/ec2/network_interfaces.py,sha256=CzF8PooCYUQ2pk8DR8JDAhkWRUQSBj_27OsIfkL_-Cs,9199
181
184
  cartography/intel/aws/ec2/reserved_instances.py,sha256=jv8-VLI5KL8jN1QRI20yim8lzZ7I7wR8a5EF8DckahA,3122
182
185
  cartography/intel/aws/ec2/security_groups.py,sha256=vxLeaCpCowkbl-YpON1UdbjtPolMfj_reOEuKujN80Y,6060
183
186
  cartography/intel/aws/ec2/snapshots.py,sha256=R3U6ZwE4bQPy5yikLCRcUHyXN1dD7TzS-3jULQO-F0g,5432
184
- cartography/intel/aws/ec2/subnets.py,sha256=wdv9TXI1BR_iilOCYmYXL2yok8qef49-I77_DPlyheQ,3694
187
+ cartography/intel/aws/ec2/subnets.py,sha256=42KODMXswv4OCVnkWDHZbZDLUnc_ZAD-1TDMk88rWdo,3892
185
188
  cartography/intel/aws/ec2/tgw.py,sha256=lTFPlRNoDHNklR38alSywXlSiiTyg86vJNth7Pc4pZQ,9114
186
189
  cartography/intel/aws/ec2/util.py,sha256=Pv-x1QEAAmyxcpEl6y8M24ija3ERjXFE36fswuKXHDs,226
187
190
  cartography/intel/aws/ec2/volumes.py,sha256=4jmeuf-l_Wje4VaKq2mcF_cd02rBZdnDoMPvKb4Lh8w,3507
@@ -205,8 +208,8 @@ cartography/intel/crowdstrike/__init__.py,sha256=dAtgI-0vZAQZ3cTFQhMEzzt7aqiNSNu
205
208
  cartography/intel/crowdstrike/endpoints.py,sha256=tdqokMDW3p4fK3dHKKb2T1DTogvOJBCpwyrxdQlbUhw,3815
206
209
  cartography/intel/crowdstrike/spotlight.py,sha256=yNhj44-RYF6ubck-hHMKhKiNU0fCfhQf4Oagopc31EM,4754
207
210
  cartography/intel/crowdstrike/util.py,sha256=gfJ6Ptr6YdbBS9Qj9a_-Jc-IJroADDRcXqjh5TW0qXE,277
208
- cartography/intel/cve/__init__.py,sha256=A7XjKQSanmwMSIXSum1qJSegtYcQCuz_713RU-bFQz8,2504
209
- cartography/intel/cve/feed.py,sha256=JkfRV18JoydOuncKR1y3s8esuN2Xk4gIB6viKNXU_X0,10020
211
+ cartography/intel/cve/__init__.py,sha256=3PLAhQ36g-aq40IHvba789WANsA-TY9B-Oe9mpQweQ8,2516
212
+ cartography/intel/cve/feed.py,sha256=bKzetBVGYz8e2GKupUh2BilBCZuIwSfZdN23ArxYLZU,10147
210
213
  cartography/intel/digitalocean/__init__.py,sha256=SMYB7LGIQOj_EgGSGVjWZk7SJNbP43hQuOfgOu6xYm4,1526
211
214
  cartography/intel/digitalocean/compute.py,sha256=9XctwMjq9h5dExFgExvawoqyiEwSoocNgaMm3Fgl5GM,4911
212
215
  cartography/intel/digitalocean/management.py,sha256=YWRnBLLL_bAP1vefIAQgm_-QzefGH0sZKmyU_EokHfA,3764
@@ -226,9 +229,9 @@ cartography/intel/gcp/dns.py,sha256=y2pvbmV04cnrMyuu_nbW3oc7uwHX6yEzn1n7veCsjmk,
226
229
  cartography/intel/gcp/gke.py,sha256=qaTwsVaxkwNhW5_Mw4bedOk7fgJK8y0LwwcYlUABXDg,7966
227
230
  cartography/intel/gcp/storage.py,sha256=oO_ayEhkXlj2Gn7T5MU41ZXiqwRwe6Ud4wzqyRTsyf4,9075
228
231
  cartography/intel/github/__init__.py,sha256=y876JJGTDJZEOFCDiNCJfcLNxN24pVj4s2N0YmuuoaE,1914
229
- cartography/intel/github/repos.py,sha256=YPDdBMk6NkZjwPcqPW5LlCy_OS9tKcrZD6ygiUG93J0,21766
232
+ cartography/intel/github/repos.py,sha256=HwTI4gzg8rnI4GC4Sl2r1q2ElieN3WuNcd9szbhAoaA,27995
230
233
  cartography/intel/github/teams.py,sha256=aXI-XbxlA1IDaAUX0XSdEt6pA2n4ew5j_doj1iNYCDM,6618
231
- cartography/intel/github/users.py,sha256=kQp0dxzP08DVrdvfVeCciQbrKPbbFvwbR_p_I_XGt7s,3826
234
+ cartography/intel/github/users.py,sha256=zkMLVNfEMZIYYtPfqTsMXs2BNFzK8SfFRO7qnnlHy_s,8399
232
235
  cartography/intel/github/util.py,sha256=K6hbxypy4luKhIE1Uh5VWZc9OyjMK2OuO00vBAQfloA,8049
233
236
  cartography/intel/gsuite/__init__.py,sha256=AGIUskGlLCVGHbnQicNpNWi9AvmV7_7hUKTt-hsB2J8,4306
234
237
  cartography/intel/gsuite/api.py,sha256=J0dkNdfBVMrEv8vvStQu7YKVxXSyV45WueFhUS4aOG4,10310
@@ -258,7 +261,7 @@ cartography/intel/okta/organization.py,sha256=YLQc7ETdtf8Vc-CRCYivV_xmVl2Oz0Px53
258
261
  cartography/intel/okta/origins.py,sha256=LNswsOXx8oBk9tL6Qc_3EuqXpa9qgD6fWEWrbsP-_fE,3730
259
262
  cartography/intel/okta/roles.py,sha256=_H3o8RveEBt5Mx_nHle81pYEB3NrGq2R2UGL_ChArFs,5840
260
263
  cartography/intel/okta/sync_state.py,sha256=GYtAJlbEObiZKPihcIzVzB6APdI_TwUYzhycsDJ8cDE,702
261
- cartography/intel/okta/users.py,sha256=VODob-izytSZDxSW-YDb7vaBLcu4cXkD6hTGcS26DeE,6395
264
+ cartography/intel/okta/users.py,sha256=rkOvLaZkBOV2QrgsCa-O0p2Iq7AfguUO078w7XB8CMM,6422
262
265
  cartography/intel/okta/utils.py,sha256=XSXw8QiaaXwL_PfOlbpvjgPfy2Etmt_PkS7T6ruTFmc,2165
263
266
  cartography/intel/pagerduty/__init__.py,sha256=kXYtgUFLl4eldveyBoxNiebcfOOktTVvLf6rVkriNuA,2164
264
267
  cartography/intel/pagerduty/escalation_policies.py,sha256=5Fnm0WLF9TP1GH0BJ2sZlO6U9tH1KdhCvoMxGtL_318,6455
@@ -267,8 +270,8 @@ cartography/intel/pagerduty/services.py,sha256=Cjm37mWmuBNXSY49-xUQ3xV0DZ391GTLv
267
270
  cartography/intel/pagerduty/teams.py,sha256=aRubUXgEVVReyLrXAX_be1E_QBJv3Qlr4n779Jkkz8Q,2498
268
271
  cartography/intel/pagerduty/users.py,sha256=oltGssxrnzYsV6QTGP1SsPoA1rCUDStj6vGlGWY695g,1623
269
272
  cartography/intel/pagerduty/vendors.py,sha256=WlDHExrWRBegDQKtxBV5nJiYgwoTLxNee4HrQDJ-Pdg,1559
270
- cartography/intel/semgrep/__init__.py,sha256=XhfixZPJXBIA9SRQDxe2wY26KW447lTPR0Q_DV7aFTU,1150
271
- cartography/intel/semgrep/dependencies.py,sha256=2Uq86WLDlfO-lNPot__z0TXPbe_cXC_5HFLyYqfbVKU,6742
273
+ cartography/intel/semgrep/__init__.py,sha256=dNosNlFJtIJI-XZMF_5qV2nZ-barQNEZaIkEL-JFTyk,1202
274
+ cartography/intel/semgrep/dependencies.py,sha256=PeEeroI38BUH-TefJeimzxNP5y429y6i-jJj3M2s9N4,8163
272
275
  cartography/intel/semgrep/deployment.py,sha256=sh-yJHtdgZjxIJimNnA-DxsM-MYgMhQ_WX2E7w4PWiM,2012
273
276
  cartography/intel/semgrep/findings.py,sha256=GDqZmfl9-HiZ93u0jhlkZ1w_qzrD1cFFFJtVc7DFdPk,9761
274
277
  cartography/intel/snipeit/__init__.py,sha256=0uIh8NbuI7IbfgaOrPHg4Nfm1yO6mTRC_qaFiIjR2FA,992
@@ -282,12 +285,16 @@ cartography/models/aws/dynamodb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
282
285
  cartography/models/aws/dynamodb/gsi.py,sha256=KYsHJpSgrTQndZGIdKAi5MjgvUne2iNvqTr29BDzI14,3021
283
286
  cartography/models/aws/dynamodb/tables.py,sha256=iNTnI0FLdqHs0-EYGqWLGHWEy4mkSEDny2l5f7HBXN0,2198
284
287
  cartography/models/aws/ec2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
288
+ cartography/models/aws/ec2/auto_scaling_groups.py,sha256=ImIu-i5iU_CJQ25oa2MDnOhOjL4jcpBagPiB95JUvSE,8660
285
289
  cartography/models/aws/ec2/images.py,sha256=uGhXS7Xb6sKUdwwkS0O0dWP4sIREjusUaV_unODv9gE,3012
286
290
  cartography/models/aws/ec2/instances.py,sha256=cNMHngdGNRhxoyID6AmG2F7CQGC1fYani8DV8lSKvsI,3902
287
291
  cartography/models/aws/ec2/keypairs.py,sha256=scKC3SdExHAWkPNmb6tT9LK-9q4sweqS2ejFzMec10M,2630
292
+ cartography/models/aws/ec2/launch_configurations.py,sha256=zdfWJEx93HXDXd_IzSEkhvcztkJI7_v_TCE_d8ZNAyI,2764
288
293
  cartography/models/aws/ec2/launch_template_versions.py,sha256=RitfnAuAj0XpFsCXkRbtUhHMAi8Vsvmtury231eKvGU,3897
289
294
  cartography/models/aws/ec2/launch_templates.py,sha256=GqiwFuMp72LNSt2eQlp2WfdU_vHsom-xKV5AaUewSHQ,2157
290
295
  cartography/models/aws/ec2/loadbalancerv2.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
296
+ cartography/models/aws/ec2/network_acl_rules.py,sha256=4Rq2J-Dce8J6y9J6YIalmYtuQRWLp652LXO1Xg6XGPE,3951
297
+ cartography/models/aws/ec2/network_acls.py,sha256=pJKsXdMLB8L79lmTYpLJfFJ6p7PWpf3rBN6eW6y-5hY,3419
291
298
  cartography/models/aws/ec2/networkinterface_instance.py,sha256=t3oqcQ4GjYf7dwqPUGCiXd70ie4ibYLilOXiE5_Ad8g,4707
292
299
  cartography/models/aws/ec2/networkinterfaces.py,sha256=z1-Dl6I79-TCxXKG8QBpSKga93lPCPaLR1XqKJZK3ME,4127
293
300
  cartography/models/aws/ec2/privateip_networkinterface.py,sha256=j8MyiZsiUCuzuGUH_4PBKV3rLTk1GkE-SZb6K11oSdM,3038
@@ -299,6 +306,10 @@ cartography/models/aws/ec2/subnet_networkinterface.py,sha256=JHlxfBojBw7LfJS4a5L
299
306
  cartography/models/aws/ec2/volumes.py,sha256=WSP7YNZeJE3s4wnY9QrIAbcJN3OathqNgEBX0cVahDg,4470
300
307
  cartography/models/aws/eks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
301
308
  cartography/models/aws/eks/clusters.py,sha256=WeuC1wcjB_twsvgS0EMvU2wENhD-pm4t6N3HZ19x3vk,2293
309
+ cartography/models/aws/identitycenter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
310
+ cartography/models/aws/identitycenter/awsidentitycenter.py,sha256=lmpo-qqmMN6BMGEkBQyxmb0Nfal0qI1HetqmRmOWkSU,1988
311
+ cartography/models/aws/identitycenter/awspermissionset.py,sha256=30BBY-XG3-rJMihKKTdUVobkdqQYWWGsFD83uTVJqkI,3539
312
+ cartography/models/aws/identitycenter/awsssouser.py,sha256=HSXSHDVM36eIlYfRAwZ8KT470v_s1hC0_lrzZxCbYjw,2837
302
313
  cartography/models/aws/inspector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
303
314
  cartography/models/aws/inspector/findings.py,sha256=_o5dsHCl6LNZrwSjEWBHiawMxgMMwlVOGoYQl8cHKJQ,5585
304
315
  cartography/models/aws/inspector/packages.py,sha256=dtY5JsVb6Ri78Lqigb2nHNq0Qc926U_m90SmbvZEDGc,3267
@@ -309,7 +320,7 @@ cartography/models/bigfix/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
309
320
  cartography/models/bigfix/bigfix_computer.py,sha256=HQQsQPUphfkBsW8jIP0b9InNAb3vtOSWVD_GqSikkm4,3520
310
321
  cartography/models/bigfix/bigfix_root.py,sha256=GkyI0Gmnat8Q-3aQWJdCaNzKB89fY0ee4-lRvvPRLns,598
311
322
  cartography/models/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
312
- cartography/models/core/common.py,sha256=twXdP5gprpmDJYpBmSYL5GWaWDu1Xn-0EVzFsRJ42QQ,3583
323
+ cartography/models/core/common.py,sha256=uAMmUAY7_ENDsq-CvEZ0bQNAwdWOFRCzIQEFz7NOtmI,4316
313
324
  cartography/models/core/nodes.py,sha256=h5dwBOk_a2uCHZWeQz3pidr7gkqMKf7buIZgl6M1Ox4,3699
314
325
  cartography/models/core/relationships.py,sha256=6AwXvk0dq48BxqyxBpHyBXZ3dJNm65t1y4vNg4n25uA,5103
315
326
  cartography/models/cve/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -324,7 +335,9 @@ cartography/models/duo/token.py,sha256=BS_AvF-TAGzCY9Owtqxr8g_s6716dnzFOO1Iwkckm
324
335
  cartography/models/duo/user.py,sha256=ih3DH_QveAve4cX9dmIwC5gVN6_RNnuLK3bfJ5I9u6g,6554
325
336
  cartography/models/duo/web_authn_credential.py,sha256=OcZnfG5zCMlphxSltRcAXQ12hHYJjxrBt6A9L28g7Vk,2920
326
337
  cartography/models/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
338
+ cartography/models/github/orgs.py,sha256=f5kJ-51MDGW5k4sWMeTfyBDxcHdhFJZGkRUvGcjllBU,1097
327
339
  cartography/models/github/teams.py,sha256=mk3OFGTDqWkLz7aX7Q9AtpOMOkZDDGH0MWoVeevK2-k,4376
340
+ cartography/models/github/users.py,sha256=XliVsBKWF7wW7Dwjwdoz9E2gk1cASyfQgAddKYr23VY,5739
328
341
  cartography/models/kandji/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
329
342
  cartography/models/kandji/device.py,sha256=C3zPhLi1oPNysbSUr4H2u8b-Xy14sb3FE7YcjCwlntw,2214
330
343
  cartography/models/kandji/tenant.py,sha256=KhcbahNBemny3coQPiadIY8B-yDMg_ejYB2BR6vqBfw,674
@@ -332,7 +345,7 @@ cartography/models/lastpass/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
332
345
  cartography/models/lastpass/tenant.py,sha256=TG-9LFo9Sfzb9UgcTt_gFVTKocLItbgQMMPkN_iprXU,618
333
346
  cartography/models/lastpass/user.py,sha256=SMTTYN6jgccc9k76hY3rVImElJOhHhZ9f1aZ6JzcrHw,3487
334
347
  cartography/models/semgrep/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
335
- cartography/models/semgrep/dependencies.py,sha256=QcvlqKKvX1bi4iqcM0ioYb1ZfGfisJ9E2o2CMnEf2CE,3399
348
+ cartography/models/semgrep/dependencies.py,sha256=zO8NxfFIvL6vzFWaIDAXqPF7VfUwLMj5YizqA0IS-eA,3959
336
349
  cartography/models/semgrep/deployment.py,sha256=or5qZDuR51MXzINpH15jZrqmSUvXQevCNYWJ7D6v-JI,745
337
350
  cartography/models/semgrep/findings.py,sha256=RPd-QzvP38fbTIqFARx6XpcZSsd5JM3KIg-ZlJA7NlE,5490
338
351
  cartography/models/semgrep/locations.py,sha256=kSk7Nn5Mn4Ob84MVZOo2GR0YFi-9Okq9pgA3FfC6_bk,3061
@@ -340,9 +353,9 @@ cartography/models/snipeit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
340
353
  cartography/models/snipeit/asset.py,sha256=FyRAaeXuZjMy0eUQcSDFcgEAF5lbLMlvqp1Tv9d3Lv4,3238
341
354
  cartography/models/snipeit/tenant.py,sha256=p4rFnpNNuF1W5ilGBbexDaETWTwavfb38RcQGoImkQI,679
342
355
  cartography/models/snipeit/user.py,sha256=MsB4MiCVNTH6JpESime7cOkB89autZOXQpL6Z0l7L6o,2113
343
- cartography-0.95.0.dist-info/LICENSE,sha256=kvLEBRYaQ1RvUni6y7Ti9uHeooqnjPoo6n_-0JO1ETc,11351
344
- cartography-0.95.0.dist-info/METADATA,sha256=ucYZ9aFJYHMxhZ6NnBDXxLEOerbuFq4k7NaPCw_-jzY,1963
345
- cartography-0.95.0.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
346
- cartography-0.95.0.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
347
- cartography-0.95.0.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
348
- cartography-0.95.0.dist-info/RECORD,,
356
+ cartography-0.96.0.dist-info/LICENSE,sha256=kvLEBRYaQ1RvUni6y7Ti9uHeooqnjPoo6n_-0JO1ETc,11351
357
+ cartography-0.96.0.dist-info/METADATA,sha256=i5d9scepvNyWXclezQtJ-UmhQYb7ZCnkS_8dVHLgI3E,1938
358
+ cartography-0.96.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
359
+ cartography-0.96.0.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
360
+ cartography-0.96.0.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
361
+ cartography-0.96.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.3.0)
2
+ Generator: setuptools (75.6.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5