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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

@@ -122,7 +122,7 @@ def read_list_of_tuples_tx(tx: neo4j.Transaction, query: str, **kwargs) -> List[
122
122
  return [tuple(val) for val in values]
123
123
 
124
124
 
125
- def read_single_dict_tx(tx: neo4j.Transaction, query: str, **kwargs) -> Dict[str, Any]:
125
+ def read_single_dict_tx(tx: neo4j.Transaction, query: str, **kwargs) -> Any:
126
126
  """
127
127
  Runs the given Neo4j query in the given transaction object and returns the single dict result. This is intended to
128
128
  be run only with queries that return a single dict.
cartography/config.py CHANGED
@@ -157,7 +157,7 @@ class Config:
157
157
  pagerduty_request_timeout=None,
158
158
  nist_cve_url=None,
159
159
  cve_enabled=False,
160
- cve_api_key=None,
160
+ cve_api_key: str | None = None,
161
161
  crowdstrike_client_id=None,
162
162
  crowdstrike_client_secret=None,
163
163
  crowdstrike_api_url=None,
@@ -215,7 +215,7 @@ class Config:
215
215
  self.pagerduty_request_timeout = pagerduty_request_timeout
216
216
  self.nist_cve_url = nist_cve_url
217
217
  self.cve_enabled = cve_enabled
218
- self.cve_api_key = cve_api_key
218
+ self.cve_api_key: str | None = cve_api_key
219
219
  self.crowdstrike_client_id = crowdstrike_client_id
220
220
  self.crowdstrike_client_secret = crowdstrike_client_secret
221
221
  self.crowdstrike_api_url = crowdstrike_api_url
@@ -43,7 +43,7 @@ def get_rest_api_details(
43
43
  for api in rest_apis:
44
44
  stages = get_rest_api_stages(api, client)
45
45
  # clientcertificate id is given by the api stage
46
- certificate = get_rest_api_client_certificate(stages, client) # type: ignore
46
+ certificate = get_rest_api_client_certificate(stages, client)
47
47
  resources = get_rest_api_resources(api, client)
48
48
  policy = get_rest_api_policy(api, client)
49
49
  apis.append((api['id'], stages, certificate, resources, policy))
@@ -51,7 +51,7 @@ def get_rest_api_details(
51
51
 
52
52
 
53
53
  @timeit
54
- def get_rest_api_stages(api: Dict, client: botocore.client.BaseClient) -> List[Any]:
54
+ def get_rest_api_stages(api: Dict, client: botocore.client.BaseClient) -> Any:
55
55
  """
56
56
  Gets the REST API Stage Resources.
57
57
  """
@@ -99,7 +99,7 @@ def get_rest_api_resources(api: Dict, client: botocore.client.BaseClient) -> Lis
99
99
 
100
100
 
101
101
  @timeit
102
- def get_rest_api_policy(api: Dict, client: botocore.client.BaseClient) -> List[Any]:
102
+ def get_rest_api_policy(api: Dict, client: botocore.client.BaseClient) -> Any:
103
103
  """
104
104
  Gets the REST API policy. Returns policy string or None if no policy is present.
105
105
  """
@@ -25,7 +25,7 @@ def start_cve_ingestion(
25
25
  """
26
26
  if not config.cve_enabled:
27
27
  return
28
- cve_api_key = config.cve_api_key if config.cve_api_key else None
28
+ cve_api_key: str | None = config.cve_api_key if config.cve_api_key else None
29
29
 
30
30
  # sync CVE year archives, if not yet synced
31
31
  existing_years = feed.get_cve_sync_metadata(neo4j_session)
@@ -68,7 +68,7 @@ def _map_cve_dict(cve_dict: Dict[Any, Any], data: Dict[Any, Any]) -> None:
68
68
  cve_dict["startIndex"] = data["startIndex"]
69
69
 
70
70
 
71
- def _call_cves_api(url: str, api_key: str, params: Dict[str, Any]) -> Dict[Any, Any]:
71
+ def _call_cves_api(url: str, api_key: str | None, params: Dict[str, Any]) -> Dict[Any, Any]:
72
72
  totalResults = 0
73
73
  sleep_time = DEFAULT_SLEEP_TIME
74
74
  retries = 0
@@ -114,7 +114,7 @@ def get_cves_in_batches(
114
114
  start_date: datetime,
115
115
  end_date: datetime,
116
116
  date_param_names: Dict[str, str],
117
- api_key: str,
117
+ api_key: str | None,
118
118
  ) -> Dict[Any, Any]:
119
119
  cves: Dict[Any, Any] = dict()
120
120
  current_start_date: datetime = start_date
@@ -153,7 +153,7 @@ def get_cves_in_batches(
153
153
 
154
154
 
155
155
  def get_modified_cves(
156
- nist_cve_url: str, last_modified_date: str, api_key: str,
156
+ nist_cve_url: str, last_modified_date: str, api_key: str | None,
157
157
  ) -> Dict[Any, Any]:
158
158
  cves = dict()
159
159
  end_date = datetime.now(tz=timezone.utc)
@@ -171,7 +171,7 @@ def get_modified_cves(
171
171
 
172
172
 
173
173
  def get_published_cves_per_year(
174
- nist_cve_url: str, year: str, api_key: str,
174
+ nist_cve_url: str, year: str, api_key: str | None,
175
175
  ) -> Dict[Any, Any]:
176
176
  cves = {}
177
177
  start_of_year = datetime.strptime(f"{year}-01-01", "%Y-%m-%d")
File without changes
@@ -0,0 +1,44 @@
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 IdentityCenterInstanceProperties(CartographyNodeProperties):
15
+ identity_store_id: PropertyRef = PropertyRef('IdentityStoreId')
16
+ arn: PropertyRef = PropertyRef('InstanceArn')
17
+ created_date: PropertyRef = PropertyRef('CreatedDate')
18
+ id: PropertyRef = PropertyRef('InstanceArn')
19
+ status: PropertyRef = PropertyRef('Status')
20
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
21
+
22
+
23
+ @dataclass(frozen=True)
24
+ class IdentityCenterToAwsAccountRelProperties(CartographyRelProperties):
25
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
26
+
27
+
28
+ @dataclass(frozen=True)
29
+ # (:IdentityCenter)<-[:RESOURCE]-(:AWSAccount)
30
+ class IdentityCenterToAWSAccount(CartographyRelSchema):
31
+ target_node_label: str = 'AWSAccount'
32
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
33
+ {'id': PropertyRef('AWS_ID', set_in_kwargs=True)},
34
+ )
35
+ direction: LinkDirection = LinkDirection.INWARD
36
+ rel_label: str = "RESOURCE"
37
+ properties: IdentityCenterToAwsAccountRelProperties = IdentityCenterToAwsAccountRelProperties()
38
+
39
+
40
+ @dataclass(frozen=True)
41
+ class AWSIdentityCenterInstanceSchema(CartographyNodeSchema):
42
+ label: str = 'AWSIdentityCenter'
43
+ properties: IdentityCenterInstanceProperties = IdentityCenterInstanceProperties()
44
+ sub_resource_relationship: IdentityCenterToAWSAccount = IdentityCenterToAWSAccount()
@@ -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
+ )
@@ -0,0 +1,53 @@
1
+ Metadata-Version: 2.1
2
+ Name: cartography
3
+ Version: 0.96.0rc3
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
3
  cartography/cli.py,sha256=LPjeOkx-cKhRkuhqMicB-0X3SHOjLXxEeGqsp2FtpC0,33285
4
- cartography/config.py,sha256=VpFCSQU88cz6GIfppQcc7LywthpR0lgYnKATyXVws_E,11846
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,7 +10,7 @@ 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
15
  cartography/data/indexes.cypher,sha256=zMEzytgcvMLgclMmCkFUdWp4t_EFsOEOp1M2v1vGctM,27208
16
16
  cartography/data/permission_relationships.yaml,sha256=RuKGGc_3ZUQ7ag0MssB8k_zaonCkVM5E8I_svBWTmGc,969
@@ -143,7 +143,7 @@ cartography/intel/analysis.py,sha256=gHtN42NqqLL1G5MOm2Q6rMyg-V5lU_wqbnKp5hbOOao
143
143
  cartography/intel/create_indexes.py,sha256=HM2jB2v3NZvGqgVDtNoBQRVpkei_JXcYXqM14w8Rjss,741
144
144
  cartography/intel/dns.py,sha256=M-WSiGQoxWZsl0sg-2SDR8OD8e1Rexkt2Tbb2OpeioA,5596
145
145
  cartography/intel/aws/__init__.py,sha256=siRhVNypfGxMPNIXHSjfYbLX9qlB6RYyN6aWX64N-t8,11076
146
- cartography/intel/aws/apigateway.py,sha256=se0plc9ZnkGQAEtlfqgrJGTa2JeWljvwC3E3JFM7YbI,12764
146
+ cartography/intel/aws/apigateway.py,sha256=aTUVjpAksfLJwq_ttye8NWt5LMkCV8vKyXbPW4gN7-U,12736
147
147
  cartography/intel/aws/config.py,sha256=wrZbz7bc8vImLmRvTLkPcWnjjPzk3tOG4bB_BFS2lq8,7329
148
148
  cartography/intel/aws/dynamodb.py,sha256=LZ6LGNThLi0zC3eLMq2JN3mwiSwZeaH58YQQHvsXMGE,5013
149
149
  cartography/intel/aws/ecr.py,sha256=9yK8bXnXBJHW_AOalATjqfC4GTpR9pilpDScla4EFuY,6624
@@ -208,8 +208,8 @@ cartography/intel/crowdstrike/__init__.py,sha256=dAtgI-0vZAQZ3cTFQhMEzzt7aqiNSNu
208
208
  cartography/intel/crowdstrike/endpoints.py,sha256=tdqokMDW3p4fK3dHKKb2T1DTogvOJBCpwyrxdQlbUhw,3815
209
209
  cartography/intel/crowdstrike/spotlight.py,sha256=yNhj44-RYF6ubck-hHMKhKiNU0fCfhQf4Oagopc31EM,4754
210
210
  cartography/intel/crowdstrike/util.py,sha256=gfJ6Ptr6YdbBS9Qj9a_-Jc-IJroADDRcXqjh5TW0qXE,277
211
- cartography/intel/cve/__init__.py,sha256=A7XjKQSanmwMSIXSum1qJSegtYcQCuz_713RU-bFQz8,2504
212
- 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=771Q_vR_VCpE-Fm1K2b-yWtuFtSUgCq_GhnN_bqRVsg,10048
213
213
  cartography/intel/digitalocean/__init__.py,sha256=SMYB7LGIQOj_EgGSGVjWZk7SJNbP43hQuOfgOu6xYm4,1526
214
214
  cartography/intel/digitalocean/compute.py,sha256=9XctwMjq9h5dExFgExvawoqyiEwSoocNgaMm3Fgl5GM,4911
215
215
  cartography/intel/digitalocean/management.py,sha256=YWRnBLLL_bAP1vefIAQgm_-QzefGH0sZKmyU_EokHfA,3764
@@ -304,6 +304,10 @@ cartography/models/aws/ec2/subnet_networkinterface.py,sha256=JHlxfBojBw7LfJS4a5L
304
304
  cartography/models/aws/ec2/volumes.py,sha256=WSP7YNZeJE3s4wnY9QrIAbcJN3OathqNgEBX0cVahDg,4470
305
305
  cartography/models/aws/eks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
306
306
  cartography/models/aws/eks/clusters.py,sha256=WeuC1wcjB_twsvgS0EMvU2wENhD-pm4t6N3HZ19x3vk,2293
307
+ cartography/models/aws/identitycenter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
308
+ cartography/models/aws/identitycenter/awsidentitycenter.py,sha256=lmpo-qqmMN6BMGEkBQyxmb0Nfal0qI1HetqmRmOWkSU,1988
309
+ cartography/models/aws/identitycenter/awspermissionset.py,sha256=30BBY-XG3-rJMihKKTdUVobkdqQYWWGsFD83uTVJqkI,3539
310
+ cartography/models/aws/identitycenter/awsssouser.py,sha256=HSXSHDVM36eIlYfRAwZ8KT470v_s1hC0_lrzZxCbYjw,2837
307
311
  cartography/models/aws/inspector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
308
312
  cartography/models/aws/inspector/findings.py,sha256=_o5dsHCl6LNZrwSjEWBHiawMxgMMwlVOGoYQl8cHKJQ,5585
309
313
  cartography/models/aws/inspector/packages.py,sha256=dtY5JsVb6Ri78Lqigb2nHNq0Qc926U_m90SmbvZEDGc,3267
@@ -347,9 +351,9 @@ cartography/models/snipeit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
347
351
  cartography/models/snipeit/asset.py,sha256=FyRAaeXuZjMy0eUQcSDFcgEAF5lbLMlvqp1Tv9d3Lv4,3238
348
352
  cartography/models/snipeit/tenant.py,sha256=p4rFnpNNuF1W5ilGBbexDaETWTwavfb38RcQGoImkQI,679
349
353
  cartography/models/snipeit/user.py,sha256=MsB4MiCVNTH6JpESime7cOkB89autZOXQpL6Z0l7L6o,2113
350
- cartography-0.96.0rc2.dist-info/LICENSE,sha256=kvLEBRYaQ1RvUni6y7Ti9uHeooqnjPoo6n_-0JO1ETc,11351
351
- cartography-0.96.0rc2.dist-info/METADATA,sha256=TZRI_txSoyOf6cEy50VjF6X9jA-tjukRutReucOcbBY,1966
352
- cartography-0.96.0rc2.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
353
- cartography-0.96.0rc2.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
354
- cartography-0.96.0rc2.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
355
- cartography-0.96.0rc2.dist-info/RECORD,,
354
+ cartography-0.96.0rc3.dist-info/LICENSE,sha256=kvLEBRYaQ1RvUni6y7Ti9uHeooqnjPoo6n_-0JO1ETc,11351
355
+ cartography-0.96.0rc3.dist-info/METADATA,sha256=cdvWi9VHF1E1NZuSDNw2IWHJTr3xrGj6BMv1Kqyvel8,1941
356
+ cartography-0.96.0rc3.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
357
+ cartography-0.96.0rc3.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
358
+ cartography-0.96.0rc3.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
359
+ cartography-0.96.0rc3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.5.0)
2
+ Generator: setuptools (75.6.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,53 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: cartography
3
- Version: 0.96.0rc2
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