cartography 0.99.0rc1__py3-none-any.whl → 0.100.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.
- cartography/_version.py +9 -4
- cartography/cli.py +3 -2
- cartography/intel/aws/apigateway.py +140 -177
- cartography/intel/aws/ec2/images.py +31 -43
- cartography/intel/aws/ec2/launch_templates.py +35 -32
- cartography/intel/aws/ecr.py +20 -4
- cartography/intel/cve/feed.py +13 -13
- cartography/intel/gcp/__init__.py +24 -2
- cartography/intel/gcp/iam.py +222 -0
- cartography/intel/gsuite/__init__.py +21 -4
- cartography/intel/gsuite/api.py +18 -3
- cartography/models/aws/apigateway.py +47 -0
- cartography/models/aws/apigatewaycertificate.py +66 -0
- cartography/models/aws/apigatewayresource.py +62 -0
- cartography/models/aws/apigatewaystage.py +67 -0
- cartography/models/gcp/iam.py +70 -0
- {cartography-0.99.0rc1.dist-info → cartography-0.100.0.dist-info}/METADATA +13 -6
- {cartography-0.99.0rc1.dist-info → cartography-0.100.0.dist-info}/RECORD +22 -18
- {cartography-0.99.0rc1.dist-info → cartography-0.100.0.dist-info}/WHEEL +1 -1
- cartography/data/jobs/cleanup/aws_apigateway_details.json +0 -10
- cartography/data/jobs/cleanup/aws_import_apigateway_cleanup.json +0 -45
- {cartography-0.99.0rc1.dist-info → cartography-0.100.0.dist-info}/entry_points.txt +0 -0
- {cartography-0.99.0rc1.dist-info → cartography-0.100.0.dist-info/licenses}/LICENSE +0 -0
- {cartography-0.99.0rc1.dist-info → cartography-0.100.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
from dataclasses import dataclass
|
|
2
|
+
|
|
3
|
+
from cartography.models.core.common import PropertyRef
|
|
4
|
+
from cartography.models.core.nodes import CartographyNodeProperties
|
|
5
|
+
from cartography.models.core.nodes import CartographyNodeSchema
|
|
6
|
+
from cartography.models.core.relationships import CartographyRelProperties
|
|
7
|
+
from cartography.models.core.relationships import CartographyRelSchema
|
|
8
|
+
from cartography.models.core.relationships import LinkDirection
|
|
9
|
+
from cartography.models.core.relationships import make_target_node_matcher
|
|
10
|
+
from cartography.models.core.relationships import OtherRelationships
|
|
11
|
+
from cartography.models.core.relationships import TargetNodeMatcher
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@dataclass(frozen=True)
|
|
15
|
+
class APIGatewayStageNodeProperties(CartographyNodeProperties):
|
|
16
|
+
id: PropertyRef = PropertyRef('arn')
|
|
17
|
+
stagename: PropertyRef = PropertyRef('stageName')
|
|
18
|
+
createddate: PropertyRef = PropertyRef('createdDate')
|
|
19
|
+
deploymentid: PropertyRef = PropertyRef('deploymentId')
|
|
20
|
+
clientcertificateid: PropertyRef = PropertyRef('clientCertificateId')
|
|
21
|
+
cacheclusterenabled: PropertyRef = PropertyRef('cacheClusterEnabled')
|
|
22
|
+
cacheclusterstatus: PropertyRef = PropertyRef('cacheClusterStatus')
|
|
23
|
+
tracingenabled: PropertyRef = PropertyRef('tracingEnabled')
|
|
24
|
+
webaclarn: PropertyRef = PropertyRef('webAclArn')
|
|
25
|
+
lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@dataclass(frozen=True)
|
|
29
|
+
class APIGatewayStageToRestAPIRelProperties(CartographyRelProperties):
|
|
30
|
+
lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
@dataclass(frozen=True)
|
|
34
|
+
# (:APIGatewayStage)<-[:ASSOCIATED_WITH]-(:APIGatewayRestAPI)
|
|
35
|
+
class APIGatewayStageToRestAPI(CartographyRelSchema):
|
|
36
|
+
target_node_label: str = 'APIGatewayRestAPI'
|
|
37
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
38
|
+
{'id': PropertyRef('apiId')},
|
|
39
|
+
)
|
|
40
|
+
direction: LinkDirection = LinkDirection.INWARD
|
|
41
|
+
rel_label: str = "ASSOCIATED_WITH"
|
|
42
|
+
properties: APIGatewayStageToRestAPIRelProperties = APIGatewayStageToRestAPIRelProperties()
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
@dataclass(frozen=True)
|
|
46
|
+
class APIGatewayStageToAwsAccountRelProperties(CartographyRelProperties):
|
|
47
|
+
lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@dataclass(frozen=True)
|
|
51
|
+
# (:APIGatewayStage)<-[:RESOURCE]-(:AWSAccount)
|
|
52
|
+
class APIGatewayStageToAWSAccount(CartographyRelSchema):
|
|
53
|
+
target_node_label: str = 'AWSAccount'
|
|
54
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
55
|
+
{'id': PropertyRef('AWS_ID', set_in_kwargs=True)},
|
|
56
|
+
)
|
|
57
|
+
direction: LinkDirection = LinkDirection.INWARD
|
|
58
|
+
rel_label: str = "RESOURCE"
|
|
59
|
+
properties: APIGatewayStageToAwsAccountRelProperties = APIGatewayStageToAwsAccountRelProperties()
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
@dataclass(frozen=True)
|
|
63
|
+
class APIGatewayStageSchema(CartographyNodeSchema):
|
|
64
|
+
label: str = 'APIGatewayStage'
|
|
65
|
+
properties: APIGatewayStageNodeProperties = APIGatewayStageNodeProperties()
|
|
66
|
+
sub_resource_relationship: APIGatewayStageToAWSAccount = APIGatewayStageToAWSAccount()
|
|
67
|
+
other_relationships: OtherRelationships = OtherRelationships([APIGatewayStageToRestAPI()])
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
|
|
4
|
+
from cartography.models.core.common import PropertyRef
|
|
5
|
+
from cartography.models.core.nodes import CartographyNodeProperties
|
|
6
|
+
from cartography.models.core.nodes import CartographyNodeSchema
|
|
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 TargetNodeMatcher
|
|
12
|
+
|
|
13
|
+
logger = logging.getLogger(__name__)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@dataclass(frozen=True)
|
|
17
|
+
class GCPServiceAccountNodeProperties(CartographyNodeProperties):
|
|
18
|
+
id: PropertyRef = PropertyRef('id', extra_index=True)
|
|
19
|
+
email: PropertyRef = PropertyRef('email', extra_index=True)
|
|
20
|
+
display_name: PropertyRef = PropertyRef('displayName')
|
|
21
|
+
oauth2_client_id: PropertyRef = PropertyRef('oauth2ClientId')
|
|
22
|
+
unique_id: PropertyRef = PropertyRef('uniqueId')
|
|
23
|
+
disabled: PropertyRef = PropertyRef('disabled')
|
|
24
|
+
lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
|
|
25
|
+
project_id: PropertyRef = PropertyRef('projectId', set_in_kwargs=True)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@dataclass(frozen=True)
|
|
29
|
+
class GCPRoleNodeProperties(CartographyNodeProperties):
|
|
30
|
+
id: PropertyRef = PropertyRef('name', extra_index=True)
|
|
31
|
+
name: PropertyRef = PropertyRef('name', extra_index=True)
|
|
32
|
+
title: PropertyRef = PropertyRef('title')
|
|
33
|
+
description: PropertyRef = PropertyRef('description')
|
|
34
|
+
deleted: PropertyRef = PropertyRef('deleted')
|
|
35
|
+
etag: PropertyRef = PropertyRef('etag')
|
|
36
|
+
permissions: PropertyRef = PropertyRef('includedPermissions')
|
|
37
|
+
role_type: PropertyRef = PropertyRef('roleType')
|
|
38
|
+
lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
|
|
39
|
+
project_id: PropertyRef = PropertyRef('projectId', set_in_kwargs=True)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
@dataclass(frozen=True)
|
|
43
|
+
class GCPIAMToProjectRelProperties(CartographyRelProperties):
|
|
44
|
+
lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
@dataclass(frozen=True)
|
|
48
|
+
# (:GCPUser|GCPServiceAccount|GCPRole)<-[:RESOURCE]-(:GCPProject)
|
|
49
|
+
class GCPPrincipalToProject(CartographyRelSchema):
|
|
50
|
+
target_node_label: str = 'GCPProject'
|
|
51
|
+
target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
|
|
52
|
+
{'id': PropertyRef('projectId', set_in_kwargs=True)},
|
|
53
|
+
)
|
|
54
|
+
direction: LinkDirection = LinkDirection.INWARD
|
|
55
|
+
rel_label: str = "RESOURCE"
|
|
56
|
+
properties: GCPIAMToProjectRelProperties = GCPIAMToProjectRelProperties()
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
@dataclass(frozen=True)
|
|
60
|
+
class GCPServiceAccountSchema(CartographyNodeSchema):
|
|
61
|
+
label: str = 'GCPServiceAccount'
|
|
62
|
+
properties: GCPServiceAccountNodeProperties = GCPServiceAccountNodeProperties()
|
|
63
|
+
sub_resource_relationship: GCPPrincipalToProject = GCPPrincipalToProject()
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
@dataclass(frozen=True)
|
|
67
|
+
class GCPRoleSchema(CartographyNodeSchema):
|
|
68
|
+
label: str = 'GCPRole'
|
|
69
|
+
properties: GCPRoleNodeProperties = GCPRoleNodeProperties()
|
|
70
|
+
sub_resource_relationship: GCPPrincipalToProject = GCPPrincipalToProject()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: cartography
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.100.0
|
|
4
4
|
Summary: Explore assets and their relationships across your technical infrastructure.
|
|
5
5
|
Maintainer: Cartography Contributors
|
|
6
6
|
License: apache2
|
|
@@ -59,13 +59,20 @@ Requires-Dist: moto; extra == "dev"
|
|
|
59
59
|
Requires-Dist: pre-commit; extra == "dev"
|
|
60
60
|
Requires-Dist: pytest>=6.2.4; extra == "dev"
|
|
61
61
|
Requires-Dist: pytest-mock; extra == "dev"
|
|
62
|
-
Requires-Dist: pytest-cov==
|
|
62
|
+
Requires-Dist: pytest-cov==6.0.0; extra == "dev"
|
|
63
63
|
Requires-Dist: pytest-rerunfailures; extra == "dev"
|
|
64
64
|
Requires-Dist: types-PyYAML; extra == "dev"
|
|
65
|
-
Requires-Dist: types-requests<2.
|
|
65
|
+
Requires-Dist: types-requests<2.32.0.20250307; extra == "dev"
|
|
66
|
+
Dynamic: license-file
|
|
66
67
|
|
|
67
68
|

|
|
68
69
|
|
|
70
|
+
[](https://scorecard.dev/viewer/?uri=github.com/cartography-cncf/cartography)
|
|
71
|
+
[](https://www.bestpractices.dev/projects/9637)
|
|
72
|
+

|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
69
76
|
Cartography is a Python tool that consolidates infrastructure assets and the relationships between them in an intuitive graph view powered by a [Neo4j](https://www.neo4j.com) database.
|
|
70
77
|
|
|
71
78
|

|
|
@@ -147,9 +154,9 @@ Directly querying Neo4j is already very useful as a sort of "swiss army knife" f
|
|
|
147
154
|
## Community
|
|
148
155
|
|
|
149
156
|
- Hang out with us on Slack: Join the CNCF Slack workspace [here](https://communityinviter.com/apps/cloud-native/cncf), and then join the `#cartography` channel.
|
|
150
|
-
- Talk to us and see what we're working on at our [monthly community meeting](https://
|
|
157
|
+
- Talk to us and see what we're working on at our [monthly community meeting](https://zoom-lfx.platform.linuxfoundation.org/meetings/cartography?view=week).
|
|
151
158
|
- Meeting minutes are [here](https://docs.google.com/document/d/1VyRKmB0dpX185I15BmNJZpfAJ_Ooobwz0U1WIhjDxvw).
|
|
152
|
-
- Recorded videos are posted [here](https://www.youtube.com/playlist?list=PLMga2YJvAGzidUWJB_fnG7EHI4wsDDsE1).
|
|
159
|
+
- Recorded videos from before 2025 are posted [here](https://www.youtube.com/playlist?list=PLMga2YJvAGzidUWJB_fnG7EHI4wsDDsE1).
|
|
153
160
|
|
|
154
161
|
## License
|
|
155
162
|
|
|
@@ -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/_version.py,sha256=
|
|
4
|
-
cartography/cli.py,sha256
|
|
3
|
+
cartography/_version.py,sha256=_UTa1FrSsVMu0iBJE_CWtJlC-ZW8bb6y97KeQVj2unU,515
|
|
4
|
+
cartography/cli.py,sha256=-77DOKUQn3N-TDIi55V4RHLb3k36ZGZ64o1XgiT0qmE,33370
|
|
5
5
|
cartography/config.py,sha256=ZcadsKmooAkti9Kv0eDl8Ec1PcZDu3lWobtNaCnwY3k,11872
|
|
6
6
|
cartography/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
7
|
cartography/stats.py,sha256=dbybb9V2FuvSuHjjNwz6Vjwnd1hap2C7h960rLoKcl8,4406
|
|
@@ -31,10 +31,8 @@ cartography/data/jobs/analysis/gcp_gke_basic_auth.json,sha256=qLkrw1eZvV9ETtkIQN
|
|
|
31
31
|
cartography/data/jobs/analysis/gsuite_human_link.json,sha256=ArWA51fNIeeXwYiroJbKnuqN8y-TLrndOq0ZdC9q5os,541
|
|
32
32
|
cartography/data/jobs/cleanup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
33
|
cartography/data/jobs/cleanup/aws_account_cleanup.json,sha256=DEB4h6Z4NSpYaLXECPhNk8HHbT0XNlqUA01pXIskBxc,473
|
|
34
|
-
cartography/data/jobs/cleanup/aws_apigateway_details.json,sha256=rh7cMTebjyUoEu_s7nKl3m-GLQ3gXgw0s3kMJfWKjro,323
|
|
35
34
|
cartography/data/jobs/cleanup/aws_dns_cleanup.json,sha256=H5uMZV4tN6HcjTYwh2I1dENzNGqu2D2Rs2q-5CK5e0Y,3498
|
|
36
35
|
cartography/data/jobs/cleanup/aws_import_account_access_key_cleanup.json,sha256=UCrAXf-8yQIoUa843VLLTpqrSpNa753c1cxzg32oqU0,737
|
|
37
|
-
cartography/data/jobs/cleanup/aws_import_apigateway_cleanup.json,sha256=wCV95ydo3dmlhK7VrDrxCqrP6dbhCCMTzcz_qaJQ4Jo,2189
|
|
38
36
|
cartography/data/jobs/cleanup/aws_import_config_cleanup.json,sha256=VCAJjEnFcQUR16VxKdpsOkBJEnhMuLk-7Kgm_p9k1NM,754
|
|
39
37
|
cartography/data/jobs/cleanup/aws_import_ec2_launch_configurations_cleanup.json,sha256=x9IIzb9Sr1353ygkA-qqUUbZS9XO2v3GzUHe-0J4Pw8,281
|
|
40
38
|
cartography/data/jobs/cleanup/aws_import_ec2_security_groupinfo_cleanup.json,sha256=CackEgSs1PN15pTg8oIdS0amB-n-PsKODLAaqC3gf_A,1183
|
|
@@ -143,10 +141,10 @@ cartography/intel/analysis.py,sha256=gHtN42NqqLL1G5MOm2Q6rMyg-V5lU_wqbnKp5hbOOao
|
|
|
143
141
|
cartography/intel/create_indexes.py,sha256=HM2jB2v3NZvGqgVDtNoBQRVpkei_JXcYXqM14w8Rjss,741
|
|
144
142
|
cartography/intel/dns.py,sha256=M-WSiGQoxWZsl0sg-2SDR8OD8e1Rexkt2Tbb2OpeioA,5596
|
|
145
143
|
cartography/intel/aws/__init__.py,sha256=siRhVNypfGxMPNIXHSjfYbLX9qlB6RYyN6aWX64N-t8,11076
|
|
146
|
-
cartography/intel/aws/apigateway.py,sha256=
|
|
144
|
+
cartography/intel/aws/apigateway.py,sha256=w4QdxlwnVegKKsZFfoI36i-FGlIUjzxzaayZyz9oQvM,11654
|
|
147
145
|
cartography/intel/aws/config.py,sha256=wrZbz7bc8vImLmRvTLkPcWnjjPzk3tOG4bB_BFS2lq8,7329
|
|
148
146
|
cartography/intel/aws/dynamodb.py,sha256=LZ6LGNThLi0zC3eLMq2JN3mwiSwZeaH58YQQHvsXMGE,5013
|
|
149
|
-
cartography/intel/aws/ecr.py,sha256=
|
|
147
|
+
cartography/intel/aws/ecr.py,sha256=neykNgcr6wjB7lEZC_7cGDu75-NsAhQKvL9sN18vOHI,7513
|
|
150
148
|
cartography/intel/aws/ecs.py,sha256=gulrIZ--iEFLpkkPH58MJIkctsxWeWdO2ofM9amDNZA,23654
|
|
151
149
|
cartography/intel/aws/eks.py,sha256=OerAX7qT2uGPbqliPvuy8JZUIgle_KMlnkkHxk8O5fk,3546
|
|
152
150
|
cartography/intel/aws/elasticache.py,sha256=fCI47aDFmIDyE26GiReKYb6XIZUwrzcvsXBQ4ruFhuI,4427
|
|
@@ -172,11 +170,11 @@ cartography/intel/aws/ssm.py,sha256=IDOYa8v2FgziU8nBOZ7wyDG4o_nFYshbB-si9Ut_9Zc,
|
|
|
172
170
|
cartography/intel/aws/ec2/__init__.py,sha256=IDK2Yap7mllK_ab6yVMLXatJ94znIkn-szv5RJP5fbo,346
|
|
173
171
|
cartography/intel/aws/ec2/auto_scaling_groups.py,sha256=ylfks8_oC0-fVMnToFbmRcbKdEN0H17LlN1-ZqW6ULc,8148
|
|
174
172
|
cartography/intel/aws/ec2/elastic_ip_addresses.py,sha256=0k4NwS73VyWbEj5jXvSkaq2RNvmAlBlrN-UKa_Bj0uk,3957
|
|
175
|
-
cartography/intel/aws/ec2/images.py,sha256=
|
|
173
|
+
cartography/intel/aws/ec2/images.py,sha256=SLoxcy_PQgNomVMDMdutm0zXJCOLosiHJlN63YQPA0k,3973
|
|
176
174
|
cartography/intel/aws/ec2/instances.py,sha256=uI8eVJmeEybS8y_T8CVKAkwxJyVDCH7sbuEJYeWGSWY,12468
|
|
177
175
|
cartography/intel/aws/ec2/internet_gateways.py,sha256=dI-4-85_3DGGZZBcY_DN6XqESx9P26S6jKok314lcnQ,2883
|
|
178
176
|
cartography/intel/aws/ec2/key_pairs.py,sha256=g4imIo_5jk8upq9J4--erg-OZXG2i3cJMe6SnNCYj9s,2635
|
|
179
|
-
cartography/intel/aws/ec2/launch_templates.py,sha256=
|
|
177
|
+
cartography/intel/aws/ec2/launch_templates.py,sha256=uw0_knQW0DGFgD4BUyaxYW0RpWyA_oXcDe-oT6MEaps,5902
|
|
180
178
|
cartography/intel/aws/ec2/load_balancer_v2s.py,sha256=95FfQQn740gexINIHDJizOM4OKzRtQT_y2XQMipQ5Dg,8661
|
|
181
179
|
cartography/intel/aws/ec2/load_balancers.py,sha256=1GwErzGqi3BKCARqfGJcD_r_D84rFKVy5kNMas9jAok,6756
|
|
182
180
|
cartography/intel/aws/ec2/network_acls.py,sha256=_UiOx79OxcqH0ecRjcVMglAzz5XJ4aVYLlv6dl_ism4,6809
|
|
@@ -209,7 +207,7 @@ cartography/intel/crowdstrike/endpoints.py,sha256=tdqokMDW3p4fK3dHKKb2T1DTogvOJB
|
|
|
209
207
|
cartography/intel/crowdstrike/spotlight.py,sha256=yNhj44-RYF6ubck-hHMKhKiNU0fCfhQf4Oagopc31EM,4754
|
|
210
208
|
cartography/intel/crowdstrike/util.py,sha256=gfJ6Ptr6YdbBS9Qj9a_-Jc-IJroADDRcXqjh5TW0qXE,277
|
|
211
209
|
cartography/intel/cve/__init__.py,sha256=u9mv5O_qkSLmdhLhLm1qbwmhoeLQ3A3fQTjNyLQpEyI,3656
|
|
212
|
-
cartography/intel/cve/feed.py,sha256=
|
|
210
|
+
cartography/intel/cve/feed.py,sha256=a_PnT5vbfrMSXOf4WV8PUIqA8TkSKlwWWot62s6_sAY,9884
|
|
213
211
|
cartography/intel/digitalocean/__init__.py,sha256=SMYB7LGIQOj_EgGSGVjWZk7SJNbP43hQuOfgOu6xYm4,1526
|
|
214
212
|
cartography/intel/digitalocean/compute.py,sha256=9XctwMjq9h5dExFgExvawoqyiEwSoocNgaMm3Fgl5GM,4911
|
|
215
213
|
cartography/intel/digitalocean/management.py,sha256=YWRnBLLL_bAP1vefIAQgm_-QzefGH0sZKmyU_EokHfA,3764
|
|
@@ -222,19 +220,20 @@ cartography/intel/duo/phones.py,sha256=ueJheqSLD2xYcMus5eOiixPYS3_xVjgQzeomjV2a6
|
|
|
222
220
|
cartography/intel/duo/tokens.py,sha256=bEEnjfc4waQnkRHVSnZLAeGE8wHOOZL7FA9m80GGQdQ,2396
|
|
223
221
|
cartography/intel/duo/users.py,sha256=lc7ly_XKeUjJ50szw31WT_GiCrZfGKJv1zVUpmTchh4,4097
|
|
224
222
|
cartography/intel/duo/web_authn_credentials.py,sha256=IbDf3CWqfEyI7f9zJugUvoDd6vZOECfb_7ANZaRYzuk,2636
|
|
225
|
-
cartography/intel/gcp/__init__.py,sha256=
|
|
223
|
+
cartography/intel/gcp/__init__.py,sha256=csFnE0_lznp3UfJZZSCCWF0gzdf_qz7sXuMzzZs_NvY,16516
|
|
226
224
|
cartography/intel/gcp/compute.py,sha256=CH2cBdOwbLZCAbkfRJkkI-sFybXVKRWEUGDJANQmvyA,48333
|
|
227
225
|
cartography/intel/gcp/crm.py,sha256=Uw5PILhVFhpM8gq7uu2v7F_YikDW3gsTZ3d7-e8Z1_k,12324
|
|
228
226
|
cartography/intel/gcp/dns.py,sha256=y2pvbmV04cnrMyuu_nbW3oc7uwHX6yEzn1n7veCsjmk,7748
|
|
229
227
|
cartography/intel/gcp/gke.py,sha256=qaTwsVaxkwNhW5_Mw4bedOk7fgJK8y0LwwcYlUABXDg,7966
|
|
228
|
+
cartography/intel/gcp/iam.py,sha256=S2IHbq2YwtQs51EqcpoRPpWpB6PcVGI06GiBjdyYvuo,7482
|
|
230
229
|
cartography/intel/gcp/storage.py,sha256=oO_ayEhkXlj2Gn7T5MU41ZXiqwRwe6Ud4wzqyRTsyf4,9075
|
|
231
230
|
cartography/intel/github/__init__.py,sha256=y876JJGTDJZEOFCDiNCJfcLNxN24pVj4s2N0YmuuoaE,1914
|
|
232
231
|
cartography/intel/github/repos.py,sha256=MmpxZASDJFQxDeSMxX3pZcpxCHFPos4_uYC_cX9KjOg,29865
|
|
233
232
|
cartography/intel/github/teams.py,sha256=AltQSmBHHmyzBtnRkez9Bo5yChEKBSt3wwzhGcfqmX4,14180
|
|
234
233
|
cartography/intel/github/users.py,sha256=MCLE0V0UCzQm3k3KmrNe6PYkI6usRQZYy2rCN3mT8o0,8948
|
|
235
234
|
cartography/intel/github/util.py,sha256=K0cXOPuhnGvN-aqcSUBO3vTuKQLjufVal9kn2HwOpbo,8110
|
|
236
|
-
cartography/intel/gsuite/__init__.py,sha256=
|
|
237
|
-
cartography/intel/gsuite/api.py,sha256=
|
|
235
|
+
cartography/intel/gsuite/__init__.py,sha256=FZS4WVCjOCvGqrq2E-yhZ_dtViQSy1srs_YEohibpWU,5466
|
|
236
|
+
cartography/intel/gsuite/api.py,sha256=bx0mPn6x6fgssxgm343NHdwjbtFkO6SZTucOsoW0Hgk,11143
|
|
238
237
|
cartography/intel/jamf/__init__.py,sha256=Nof-LrUeevoieo6oP2GyfTwx8k5TUIgreW6hSj53YjQ,419
|
|
239
238
|
cartography/intel/jamf/computers.py,sha256=EfjlupQ-9HYTjOrmuwrGuJDy9ApAnJvk8WrYcp6_Jkk,1673
|
|
240
239
|
cartography/intel/jamf/util.py,sha256=EAyP8VpOY2uAvW3HtX6r7qORNjGa1Tr3fuqezuLQ0j4,1017
|
|
@@ -280,6 +279,10 @@ cartography/intel/snipeit/user.py,sha256=hm9v_p29bphHtGe9LKVo1FD_rQcbCigrCRf8Ysm
|
|
|
280
279
|
cartography/intel/snipeit/util.py,sha256=fXlzdFQXm01Oaa2REYNN7x3y3k2l3zCVhf_BxcRUELY,1040
|
|
281
280
|
cartography/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
282
281
|
cartography/models/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
282
|
+
cartography/models/aws/apigateway.py,sha256=NTzaHlZVGBWv9GNWoHDOgMUt53HN9xO1E06s9RPj7Ek,2262
|
|
283
|
+
cartography/models/aws/apigatewaycertificate.py,sha256=xNjB2wDtW16jo1S4cPYEjU3BUttjQvW8TysrBVpuNnw,2924
|
|
284
|
+
cartography/models/aws/apigatewayresource.py,sha256=qj9OYoDCoAtw4olRgmhfhdQ1Y6ESq14n-mRr2gzUgfI,2760
|
|
285
|
+
cartography/models/aws/apigatewaystage.py,sha256=C1ntCj52iHyyR4APxeYJootvICMk4FVOovvoluL8lIM,3083
|
|
283
286
|
cartography/models/aws/emr.py,sha256=TkuwoZnw_VHbJ5bwkac7-ZfwSLe_TeK3gxkuwGQOUk4,3037
|
|
284
287
|
cartography/models/aws/dynamodb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
285
288
|
cartography/models/aws/dynamodb/gsi.py,sha256=KYsHJpSgrTQndZGIdKAi5MjgvUne2iNvqTr29BDzI14,3021
|
|
@@ -335,6 +338,7 @@ cartography/models/duo/phone.py,sha256=oxgMmwKLRiCWbAhqrTKE4ILseu0j96GugEIV_hchR
|
|
|
335
338
|
cartography/models/duo/token.py,sha256=BS_AvF-TAGzCY9Owtqxr8g_s6716dnzFOO1IwkckmVA,2668
|
|
336
339
|
cartography/models/duo/user.py,sha256=ih3DH_QveAve4cX9dmIwC5gVN6_RNnuLK3bfJ5I9u6g,6554
|
|
337
340
|
cartography/models/duo/web_authn_credential.py,sha256=OcZnfG5zCMlphxSltRcAXQ12hHYJjxrBt6A9L28g7Vk,2920
|
|
341
|
+
cartography/models/gcp/iam.py,sha256=N7OGmnRlkIFZOv0rh3QGGBmYV7WYy3-xeE4Wv7StGOE,3071
|
|
338
342
|
cartography/models/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
339
343
|
cartography/models/github/orgs.py,sha256=EcUmkeyoCJmkmzLsfKdUwwTE0N2IIwyaUrIK32dQybo,1106
|
|
340
344
|
cartography/models/github/teams.py,sha256=qFyFAKKsiiHqFZkMM7Fd9My16dgXgylcFy3BbXHhzng,6069
|
|
@@ -354,9 +358,9 @@ cartography/models/snipeit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
|
|
|
354
358
|
cartography/models/snipeit/asset.py,sha256=FyRAaeXuZjMy0eUQcSDFcgEAF5lbLMlvqp1Tv9d3Lv4,3238
|
|
355
359
|
cartography/models/snipeit/tenant.py,sha256=p4rFnpNNuF1W5ilGBbexDaETWTwavfb38RcQGoImkQI,679
|
|
356
360
|
cartography/models/snipeit/user.py,sha256=MsB4MiCVNTH6JpESime7cOkB89autZOXQpL6Z0l7L6o,2113
|
|
357
|
-
cartography-0.
|
|
358
|
-
cartography-0.
|
|
359
|
-
cartography-0.
|
|
360
|
-
cartography-0.
|
|
361
|
-
cartography-0.
|
|
362
|
-
cartography-0.
|
|
361
|
+
cartography-0.100.0.dist-info/licenses/LICENSE,sha256=kvLEBRYaQ1RvUni6y7Ti9uHeooqnjPoo6n_-0JO1ETc,11351
|
|
362
|
+
cartography-0.100.0.dist-info/METADATA,sha256=BhjREV_NRRbNZSoTGg5a6kZcWYLAI5PxEws-0pF60-c,11878
|
|
363
|
+
cartography-0.100.0.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
|
364
|
+
cartography-0.100.0.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
|
|
365
|
+
cartography-0.100.0.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
|
|
366
|
+
cartography-0.100.0.dist-info/RECORD,,
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"statements": [
|
|
3
|
-
{
|
|
4
|
-
"query": "MATCH (:AWSAccount{id: $AWS_ID})-[:RESOURCE]->(s:RestAPI) WHERE s.anonymous_access IS NOT NULL\n WITH s LIMIT $LIMIT_SIZE\nREMOVE s.anonymous_access, s.anonymous_actions",
|
|
5
|
-
"iterative": true,
|
|
6
|
-
"iterationsize": 100
|
|
7
|
-
}
|
|
8
|
-
],
|
|
9
|
-
"name": "AWS APIGateway Exposure Details"
|
|
10
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"statements": [
|
|
3
|
-
{
|
|
4
|
-
"query": "MATCH (n:APIGatewayClientCertificate)<-[:HAS_CERTIFICATE]-(:APIGatewayStage)<-[:ASSOCIATED_WITH]-(:APIGatewayRestAPI)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE n.lastupdated <> $UPDATE_TAG WITH n LIMIT $LIMIT_SIZE DETACH DELETE (n)",
|
|
5
|
-
"iterative": true,
|
|
6
|
-
"iterationsize": 100
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
"query": "MATCH (:APIGatewayClientCertificate)<-[r:HAS_CERTIFICATE]-(:APIGatewayStage)<-[:ASSOCIATED_WITH]-(:APIGatewayRestAPI)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r)",
|
|
10
|
-
"iterative": true,
|
|
11
|
-
"iterationsize": 100
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"query": "MATCH (n:APIGatewayStage)<-[:ASSOCIATED_WITH]-(:APIGatewayRestAPI)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE n.lastupdated <> $UPDATE_TAG WITH n LIMIT $LIMIT_SIZE DETACH DELETE (n)",
|
|
15
|
-
"iterative": true,
|
|
16
|
-
"iterationsize": 100
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"query": "MATCH (:APIGatewayStage)<-[r:ASSOCIATED_WITH]-(:APIGatewayRestAPI)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r)",
|
|
20
|
-
"iterative": true,
|
|
21
|
-
"iterationsize": 100
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"query": "MATCH (n:APIGatewayResource)<-[:RESOURCE]-(:APIGatewayRestAPI)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE n.lastupdated <> $UPDATE_TAG WITH n LIMIT $LIMIT_SIZE DETACH DELETE (n)",
|
|
25
|
-
"iterative": true,
|
|
26
|
-
"iterationsize": 100
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"query": "MATCH (:APIGatewayResource)<-[r:RESOURCE]-(:APIGatewayRestAPI)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r)",
|
|
30
|
-
"iterative": true,
|
|
31
|
-
"iterationsize": 100
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"query": "MATCH (n:APIGatewayRestAPI)<-[:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE n.lastupdated <> $UPDATE_TAG WITH n LIMIT $LIMIT_SIZE DETACH DELETE (n)",
|
|
35
|
-
"iterative": true,
|
|
36
|
-
"iterationsize": 100
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"query": "MATCH (:APIGatewayRestAPI)<-[r:RESOURCE]-(:AWSAccount{id: $AWS_ID}) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r)",
|
|
40
|
-
"iterative": true,
|
|
41
|
-
"iterationsize": 100
|
|
42
|
-
}
|
|
43
|
-
],
|
|
44
|
-
"name": "cleanup APIGateway"
|
|
45
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|