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.
- cartography/client/core/tx.py +1 -1
- cartography/config.py +2 -2
- cartography/intel/aws/apigateway.py +3 -3
- cartography/intel/cve/__init__.py +1 -1
- cartography/intel/cve/feed.py +4 -4
- cartography/models/aws/identitycenter/__init__.py +0 -0
- cartography/models/aws/identitycenter/awsidentitycenter.py +44 -0
- cartography/models/aws/identitycenter/awspermissionset.py +84 -0
- cartography/models/aws/identitycenter/awsssouser.py +68 -0
- cartography-0.96.0rc3.dist-info/METADATA +53 -0
- {cartography-0.96.0rc2.dist-info → cartography-0.96.0rc3.dist-info}/RECORD +15 -11
- {cartography-0.96.0rc2.dist-info → cartography-0.96.0rc3.dist-info}/WHEEL +1 -1
- cartography-0.96.0rc2.dist-info/METADATA +0 -53
- {cartography-0.96.0rc2.dist-info → cartography-0.96.0rc3.dist-info}/LICENSE +0 -0
- {cartography-0.96.0rc2.dist-info → cartography-0.96.0rc3.dist-info}/entry_points.txt +0 -0
- {cartography-0.96.0rc2.dist-info → cartography-0.96.0rc3.dist-info}/top_level.txt +0 -0
cartography/client/core/tx.py
CHANGED
|
@@ -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) ->
|
|
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)
|
|
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) ->
|
|
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) ->
|
|
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)
|
cartography/intel/cve/feed.py
CHANGED
|
@@ -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=
|
|
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=
|
|
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=
|
|
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=
|
|
212
|
-
cartography/intel/cve/feed.py,sha256=
|
|
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.
|
|
351
|
-
cartography-0.96.
|
|
352
|
-
cartography-0.96.
|
|
353
|
-
cartography-0.96.
|
|
354
|
-
cartography-0.96.
|
|
355
|
-
cartography-0.96.
|
|
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,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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|