cartography 0.101.1rc1__py3-none-any.whl → 0.102.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 (34) hide show
  1. cartography/_version.py +2 -2
  2. cartography/cli.py +61 -0
  3. cartography/config.py +16 -0
  4. cartography/data/indexes.cypher +0 -6
  5. cartography/data/jobs/cleanup/crowdstrike_import_cleanup.json +0 -5
  6. cartography/intel/aws/__init__.py +11 -1
  7. cartography/intel/aws/ec2/launch_templates.py +14 -5
  8. cartography/intel/aws/ec2/load_balancers.py +126 -148
  9. cartography/intel/aws/ec2/route_tables.py +287 -0
  10. cartography/intel/aws/resources.py +2 -0
  11. cartography/intel/aws/util/common.py +27 -0
  12. cartography/intel/crowdstrike/__init__.py +17 -5
  13. cartography/intel/crowdstrike/endpoints.py +12 -44
  14. cartography/intel/entra/__init__.py +43 -0
  15. cartography/intel/entra/users.py +205 -0
  16. cartography/intel/kandji/devices.py +27 -3
  17. cartography/models/aws/ec2/load_balancer_listeners.py +68 -0
  18. cartography/models/aws/ec2/load_balancers.py +102 -0
  19. cartography/models/aws/ec2/route_table_associations.py +87 -0
  20. cartography/models/aws/ec2/route_tables.py +121 -0
  21. cartography/models/aws/ec2/routes.py +77 -0
  22. cartography/models/crowdstrike/__init__.py +0 -0
  23. cartography/models/crowdstrike/hosts.py +49 -0
  24. cartography/models/entra/__init__.py +0 -0
  25. cartography/models/entra/tenant.py +33 -0
  26. cartography/models/entra/user.py +83 -0
  27. cartography/stats.py +1 -1
  28. cartography/sync.py +2 -0
  29. {cartography-0.101.1rc1.dist-info → cartography-0.102.0.dist-info}/METADATA +4 -1
  30. {cartography-0.101.1rc1.dist-info → cartography-0.102.0.dist-info}/RECORD +34 -21
  31. {cartography-0.101.1rc1.dist-info → cartography-0.102.0.dist-info}/WHEEL +1 -1
  32. {cartography-0.101.1rc1.dist-info → cartography-0.102.0.dist-info}/entry_points.txt +0 -0
  33. {cartography-0.101.1rc1.dist-info → cartography-0.102.0.dist-info}/licenses/LICENSE +0 -0
  34. {cartography-0.101.1rc1.dist-info → cartography-0.102.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,77 @@
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 RouteNodeProperties(CartographyNodeProperties):
16
+ id: PropertyRef = PropertyRef('id')
17
+ carrier_gateway_id: PropertyRef = PropertyRef('carrier_gateway_id')
18
+ core_network_arn: PropertyRef = PropertyRef('core_network_arn')
19
+ destination_cidr_block: PropertyRef = PropertyRef('destination_cidr_block')
20
+ destination_ipv6_cidr_block: PropertyRef = PropertyRef('destination_ipv6_cidr_block')
21
+ destination_prefix_list_id: PropertyRef = PropertyRef('destination_prefix_list_id')
22
+ egress_only_internet_gateway_id: PropertyRef = PropertyRef('egress_only_internet_gateway_id')
23
+ gateway_id: PropertyRef = PropertyRef('gateway_id')
24
+ instance_id: PropertyRef = PropertyRef('instance_id')
25
+ instance_owner_id: PropertyRef = PropertyRef('instance_owner_id')
26
+ local_gateway_id: PropertyRef = PropertyRef('local_gateway_id')
27
+ nat_gateway_id: PropertyRef = PropertyRef('nat_gateway_id')
28
+ network_interface_id: PropertyRef = PropertyRef('network_interface_id')
29
+ origin: PropertyRef = PropertyRef('origin')
30
+ state: PropertyRef = PropertyRef('state')
31
+ transit_gateway_id: PropertyRef = PropertyRef('transit_gateway_id')
32
+ vpc_peering_connection_id: PropertyRef = PropertyRef('vpc_peering_connection_id')
33
+ region: PropertyRef = PropertyRef('Region', set_in_kwargs=True)
34
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
35
+ target: PropertyRef = PropertyRef('_target')
36
+
37
+
38
+ @dataclass(frozen=True)
39
+ class RouteToAwsAccountRelProperties(CartographyRelProperties):
40
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
41
+
42
+
43
+ @dataclass(frozen=True)
44
+ class RouteToAWSAccount(CartographyRelSchema):
45
+ target_node_label: str = 'AWSAccount'
46
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
47
+ {'id': PropertyRef('AWS_ID', set_in_kwargs=True)},
48
+ )
49
+ direction: LinkDirection = LinkDirection.INWARD
50
+ rel_label: str = "RESOURCE"
51
+ properties: RouteToAwsAccountRelProperties = RouteToAwsAccountRelProperties()
52
+
53
+
54
+ @dataclass(frozen=True)
55
+ class RouteToInternetGatewayRelProperties(CartographyRelProperties):
56
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
57
+
58
+
59
+ @dataclass(frozen=True)
60
+ class RouteToInternetGateway(CartographyRelSchema):
61
+ target_node_label: str = 'AWSInternetGateway'
62
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
63
+ {'id': PropertyRef('gateway_id')},
64
+ )
65
+ direction: LinkDirection = LinkDirection.OUTWARD
66
+ rel_label: str = "ROUTES_TO_GATEWAY"
67
+ properties: RouteToInternetGatewayRelProperties = RouteToInternetGatewayRelProperties()
68
+
69
+
70
+ @dataclass(frozen=True)
71
+ class RouteSchema(CartographyNodeSchema):
72
+ label: str = 'EC2Route'
73
+ properties: RouteNodeProperties = RouteNodeProperties()
74
+ sub_resource_relationship: RouteToAWSAccount = RouteToAWSAccount()
75
+ other_relationships: OtherRelationships = OtherRelationships([
76
+ RouteToInternetGateway(),
77
+ ])
File without changes
@@ -0,0 +1,49 @@
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
+
7
+
8
+ @dataclass(frozen=True)
9
+ class CrowdstrikeHostNodeProperties(CartographyNodeProperties):
10
+ id: PropertyRef = PropertyRef('device_id')
11
+ cid: PropertyRef = PropertyRef('cid')
12
+ instance_id: PropertyRef = PropertyRef('instance_id', extra_index=True)
13
+ serial_number: PropertyRef = PropertyRef('serial_number', extra_index=True)
14
+ status: PropertyRef = PropertyRef('status')
15
+ hostname: PropertyRef = PropertyRef('hostname')
16
+ machine_domain: PropertyRef = PropertyRef('machine_domain')
17
+ crowdstrike_first_seen: PropertyRef = PropertyRef('first_seen')
18
+ crowdstrike_last_seen: PropertyRef = PropertyRef('last_seen')
19
+ local_ip: PropertyRef = PropertyRef('local_ip')
20
+ external_ip: PropertyRef = PropertyRef('external_ip')
21
+ cpu_signature: PropertyRef = PropertyRef('cpu_signature')
22
+ bios_manufacturer: PropertyRef = PropertyRef('bios_manufacturer')
23
+ bios_version: PropertyRef = PropertyRef('bios_version')
24
+ mac_address: PropertyRef = PropertyRef('mac_address')
25
+ os_version: PropertyRef = PropertyRef('os_version')
26
+ os_build: PropertyRef = PropertyRef('os_build')
27
+ platform_id: PropertyRef = PropertyRef('platform_id')
28
+ platform_name: PropertyRef = PropertyRef('platform_name')
29
+ service_provider: PropertyRef = PropertyRef('service_provider')
30
+ service_provider_account_id: PropertyRef = PropertyRef('service_provider_account_id')
31
+ agent_version: PropertyRef = PropertyRef('agent_version')
32
+ system_manufacturer: PropertyRef = PropertyRef('system_manufacturer')
33
+ system_product_name: PropertyRef = PropertyRef('system_product_name')
34
+ product_type: PropertyRef = PropertyRef('product_type')
35
+ product_type_desc: PropertyRef = PropertyRef('product_type_desc')
36
+ provision_status: PropertyRef = PropertyRef('provision_status')
37
+ reduced_functionality_mode: PropertyRef = PropertyRef('reduced_functionality_mode')
38
+ kernel_version: PropertyRef = PropertyRef('kernel_version')
39
+ major_version: PropertyRef = PropertyRef('major_version')
40
+ minor_version: PropertyRef = PropertyRef('minor_version')
41
+ tags: PropertyRef = PropertyRef('tags')
42
+ modified_timestamp: PropertyRef = PropertyRef('modified_timestamp')
43
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
44
+
45
+
46
+ @dataclass(frozen=True)
47
+ class CrowdstrikeHostSchema(CartographyNodeSchema):
48
+ label: str = 'CrowdstrikeHost'
49
+ properties: CrowdstrikeHostNodeProperties = CrowdstrikeHostNodeProperties()
File without changes
@@ -0,0 +1,33 @@
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
+
8
+
9
+ @dataclass(frozen=True)
10
+ class EntraTenantNodeProperties(CartographyNodeProperties):
11
+ id: PropertyRef = PropertyRef('id')
12
+ created_date_time: PropertyRef = PropertyRef('created_date_time')
13
+ default_usage_location: PropertyRef = PropertyRef('default_usage_location')
14
+ deleted_date_time: PropertyRef = PropertyRef('deleted_date_time')
15
+ display_name: PropertyRef = PropertyRef('display_name')
16
+ marketing_notification_emails: PropertyRef = PropertyRef('marketing_notification_emails')
17
+ mobile_device_management_authority: PropertyRef = PropertyRef('mobile_device_management_authority')
18
+ on_premises_last_sync_date_time: PropertyRef = PropertyRef('on_premises_last_sync_date_time')
19
+ on_premises_sync_enabled: PropertyRef = PropertyRef('on_premises_sync_enabled')
20
+ partner_tenant_type: PropertyRef = PropertyRef('partner_tenant_type')
21
+ postal_code: PropertyRef = PropertyRef('postal_code')
22
+ preferred_language: PropertyRef = PropertyRef('preferred_language')
23
+ state: PropertyRef = PropertyRef('state')
24
+ street: PropertyRef = PropertyRef('street')
25
+ tenant_type: PropertyRef = PropertyRef('tenant_type')
26
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
27
+
28
+
29
+ @dataclass(frozen=True)
30
+ class EntraTenantSchema(CartographyNodeSchema):
31
+ label: str = 'AzureTenant'
32
+ properties: EntraTenantNodeProperties = EntraTenantNodeProperties()
33
+ extra_node_labels: ExtraNodeLabels = ExtraNodeLabels(['EntraTenant'])
@@ -0,0 +1,83 @@
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 EntraUserNodeProperties(CartographyNodeProperties):
15
+ id: PropertyRef = PropertyRef('id')
16
+ user_principal_name: PropertyRef = PropertyRef('user_principal_name')
17
+ display_name: PropertyRef = PropertyRef('display_name')
18
+ given_name: PropertyRef = PropertyRef('given_name')
19
+ surname: PropertyRef = PropertyRef('surname')
20
+ # The underlying datatype calls this 'mail' but everything else in cartography uses 'email'
21
+ email: PropertyRef = PropertyRef('mail', extra_index=True)
22
+ other_mails: PropertyRef = PropertyRef('other_mails')
23
+ preferred_language: PropertyRef = PropertyRef('preferred_language')
24
+ preferred_name: PropertyRef = PropertyRef('preferred_name')
25
+ state: PropertyRef = PropertyRef('state')
26
+ usage_location: PropertyRef = PropertyRef('usage_location')
27
+ user_type: PropertyRef = PropertyRef('user_type')
28
+ show_in_address_list: PropertyRef = PropertyRef('show_in_address_list')
29
+ sign_in_sessions_valid_from_date_time: PropertyRef = PropertyRef('sign_in_sessions_valid_from_date_time')
30
+ security_identifier: PropertyRef = PropertyRef('security_identifier')
31
+ account_enabled: PropertyRef = PropertyRef('account_enabled')
32
+ city: PropertyRef = PropertyRef('city')
33
+ company_name: PropertyRef = PropertyRef('company_name')
34
+ consent_provided_for_minor: PropertyRef = PropertyRef('consent_provided_for_minor')
35
+ country: PropertyRef = PropertyRef('country')
36
+ created_date_time: PropertyRef = PropertyRef('created_date_time')
37
+ creation_type: PropertyRef = PropertyRef('creation_type')
38
+ deleted_date_time: PropertyRef = PropertyRef('deleted_date_time')
39
+ department: PropertyRef = PropertyRef('department')
40
+ employee_id: PropertyRef = PropertyRef('employee_id')
41
+ employee_type: PropertyRef = PropertyRef('employee_type')
42
+ external_user_state: PropertyRef = PropertyRef('external_user_state')
43
+ external_user_state_change_date_time: PropertyRef = PropertyRef('external_user_state_change_date_time')
44
+ hire_date: PropertyRef = PropertyRef('hire_date')
45
+ is_management_restricted: PropertyRef = PropertyRef('is_management_restricted')
46
+ is_resource_account: PropertyRef = PropertyRef('is_resource_account')
47
+ job_title: PropertyRef = PropertyRef('job_title')
48
+ last_password_change_date_time: PropertyRef = PropertyRef('last_password_change_date_time')
49
+ mail_nickname: PropertyRef = PropertyRef('mail_nickname')
50
+ office_location: PropertyRef = PropertyRef('office_location')
51
+ on_premises_distinguished_name: PropertyRef = PropertyRef('on_premises_distinguished_name')
52
+ on_premises_domain_name: PropertyRef = PropertyRef('on_premises_domain_name')
53
+ on_premises_immutable_id: PropertyRef = PropertyRef('on_premises_immutable_id')
54
+ on_premises_last_sync_date_time: PropertyRef = PropertyRef('on_premises_last_sync_date_time')
55
+ on_premises_sam_account_name: PropertyRef = PropertyRef('on_premises_sam_account_name')
56
+ on_premises_security_identifier: PropertyRef = PropertyRef('on_premises_security_identifier')
57
+ on_premises_sync_enabled: PropertyRef = PropertyRef('on_premises_sync_enabled')
58
+ on_premises_user_principal_name: PropertyRef = PropertyRef('on_premises_user_principal_name')
59
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
60
+
61
+
62
+ @dataclass(frozen=True)
63
+ class EntraTenantToUserRelProperties(CartographyRelProperties):
64
+ lastupdated: PropertyRef = PropertyRef('lastupdated', set_in_kwargs=True)
65
+
66
+
67
+ @dataclass(frozen=True)
68
+ # (:EntraUser)<-[:RESOURCE]-(:AzureTenant)
69
+ class EntraUserToTenantRel(CartographyRelSchema):
70
+ target_node_label: str = 'AzureTenant'
71
+ target_node_matcher: TargetNodeMatcher = make_target_node_matcher(
72
+ {'id': PropertyRef('TENANT_ID', set_in_kwargs=True)},
73
+ )
74
+ direction: LinkDirection = LinkDirection.INWARD
75
+ rel_label: str = "RESOURCE"
76
+ properties: EntraTenantToUserRelProperties = EntraTenantToUserRelProperties()
77
+
78
+
79
+ @dataclass(frozen=True)
80
+ class EntraUserSchema(CartographyNodeSchema):
81
+ label: str = 'EntraUser'
82
+ properties: EntraUserNodeProperties = EntraUserNodeProperties()
83
+ sub_resource_relationship: EntraUserToTenantRel = EntraUserToTenantRel()
cartography/stats.py CHANGED
@@ -97,7 +97,7 @@ def set_stats_client(stats_client: StatsClient) -> None:
97
97
  """
98
98
  This is used to set the module level stats client configured to talk with a statsd host
99
99
  """
100
- global _scoped_stats_client
100
+ global _scoped_stats_client # noqa: F824
101
101
  _scoped_stats_client.set_stats_client(stats_client)
102
102
 
103
103
 
cartography/sync.py CHANGED
@@ -20,6 +20,7 @@ import cartography.intel.crowdstrike
20
20
  import cartography.intel.cve
21
21
  import cartography.intel.digitalocean
22
22
  import cartography.intel.duo
23
+ import cartography.intel.entra
23
24
  import cartography.intel.gcp
24
25
  import cartography.intel.github
25
26
  import cartography.intel.gsuite
@@ -42,6 +43,7 @@ TOP_LEVEL_MODULES = OrderedDict({ # preserve order so that the default sync alw
42
43
  'create-indexes': cartography.intel.create_indexes.run,
43
44
  'aws': cartography.intel.aws.start_aws_ingestion,
44
45
  'azure': cartography.intel.azure.start_azure_ingestion,
46
+ 'entra': cartography.intel.entra.start_entra_ingestion,
45
47
  'crowdstrike': cartography.intel.crowdstrike.start_crowdstrike_ingestion,
46
48
  'gcp': cartography.intel.gcp.start_gcp_ingestion,
47
49
  'gsuite': cartography.intel.gsuite.start_gsuite_ingestion,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cartography
3
- Version: 0.101.1rc1
3
+ Version: 0.102.0
4
4
  Summary: Explore assets and their relationships across your technical infrastructure.
5
5
  Maintainer: Cartography Contributors
6
6
  License: apache2
@@ -47,6 +47,7 @@ Requires-Dist: msrestazure>=0.6.4
47
47
  Requires-Dist: azure-mgmt-storage>=16.0.0
48
48
  Requires-Dist: azure-mgmt-sql<=1.0.0
49
49
  Requires-Dist: azure-identity>=1.5.0
50
+ Requires-Dist: msgraph-sdk
50
51
  Requires-Dist: kubernetes>=22.6.0
51
52
  Requires-Dist: pdpyras>=4.3.0
52
53
  Requires-Dist: crowdstrike-falconpy>=0.5.1
@@ -61,6 +62,7 @@ Requires-Dist: pytest>=6.2.4; extra == "dev"
61
62
  Requires-Dist: pytest-mock; extra == "dev"
62
63
  Requires-Dist: pytest-cov==6.1.1; extra == "dev"
63
64
  Requires-Dist: pytest-rerunfailures; extra == "dev"
65
+ Requires-Dist: pytest-asyncio; extra == "dev"
64
66
  Requires-Dist: types-PyYAML; extra == "dev"
65
67
  Requires-Dist: types-requests<2.32.0.20250329; extra == "dev"
66
68
  Dynamic: license-file
@@ -97,6 +99,7 @@ You can learn more about the story behind Cartography in our [presentation at BS
97
99
  - [GitHub](https://cartography-cncf.github.io/cartography/modules/github/index.html) - repos, branches, users, teams
98
100
  - [DigitalOcean](https://cartography-cncf.github.io/cartography/modules/digitalocean/index.html)
99
101
  - [Microsoft Azure](https://cartography-cncf.github.io/cartography/modules/azure/index.html) - CosmosDB, SQL, Storage, Virtual Machine
102
+ - [Microsoft Entra ID](https://cartography-cncf.github.io/cartography/modules/entra/index.html) - Users
100
103
  - [Kubernetes](https://cartography-cncf.github.io/cartography/modules/kubernetes/index.html) - Cluster, Namespace, Service, Pod, Container
101
104
  - [PagerDuty](https://cartography-cncf.github.io/cartography/modules/pagerduty/index.html) - Users, teams, services, schedules, escalation policies, integrations, vendors
102
105
  - [Crowdstrike Falcon](https://cartography-cncf.github.io/cartography/modules/crowdstrike/index.html) - Hosts, Spotlight vulnerabilities, CVEs
@@ -1,11 +1,11 @@
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=8kfUZC7PNnC8p044X5JGd8fihSWqOPBbU8RxewCFS2g,518
4
- cartography/cli.py,sha256=-77DOKUQn3N-TDIi55V4RHLb3k36ZGZ64o1XgiT0qmE,33370
5
- cartography/config.py,sha256=ZcadsKmooAkti9Kv0eDl8Ec1PcZDu3lWobtNaCnwY3k,11872
3
+ cartography/_version.py,sha256=2dCVAVjLoA0Nz6mUVPfnmWK3CdN7O6fPtzKMuHAZ3ok,515
4
+ cartography/cli.py,sha256=i0pVKdc9ym673ByreBpqxfI4VQVOTTULS1hJVaWxsBA,36225
5
+ cartography/config.py,sha256=uuqx7zpxXnexrKlTHtp5B6lCh013Wy7C3RPL9b3-Cvo,12724
6
6
  cartography/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- cartography/stats.py,sha256=dbybb9V2FuvSuHjjNwz6Vjwnd1hap2C7h960rLoKcl8,4406
8
- cartography/sync.py,sha256=ziD63T_774gXSuD5zdz6fLGvv1Kt2ntQySSVbmcCZb8,9708
7
+ cartography/stats.py,sha256=-KiqrNfUe_39z9TKAQamJwKs5XePnzXscEJocAuNiJs,4420
8
+ cartography/sync.py,sha256=LSDvK2vaMXhuNHvUkdncpDHAGdiJ7eP7-uDVhwLFjKM,9799
9
9
  cartography/util.py,sha256=VZgiHcAprn3nGzItee4_TggfsGWxWPTkLN-2MIhYUqM,14999
10
10
  cartography/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  cartography/client/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -13,7 +13,7 @@ cartography/client/aws/iam.py,sha256=dYsGikc36DEsSeR2XVOVFFUDwuU9yWj_EVkpgVYCFgM
13
13
  cartography/client/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  cartography/client/core/tx.py,sha256=55Cf9DJGHHXQk4HmPOdFwr1eh9Pr1nzmIvs4XoCVr0g,10892
15
15
  cartography/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
- cartography/data/indexes.cypher,sha256=KMhj8DoKl3d-o6Zx4PY6IZ_8eZNPqZWWVNnOzIi5dRw,26946
16
+ cartography/data/indexes.cypher,sha256=aUHMiLPsEt09W61GyjJHfpkRJ07S2sGcpU9IReYxKC0,26551
17
17
  cartography/data/permission_relationships.yaml,sha256=RuKGGc_3ZUQ7ag0MssB8k_zaonCkVM5E8I_svBWTmGc,969
18
18
  cartography/data/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  cartography/data/jobs/analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -85,7 +85,7 @@ cartography/data/jobs/cleanup/azure_sql_server_cleanup.json,sha256=97I2jIMBkqR3a
85
85
  cartography/data/jobs/cleanup/azure_storage_account_cleanup.json,sha256=XZdjKDOjTcvn9XYScFzHts6cbtYvXETaU142N_R2qlY,5431
86
86
  cartography/data/jobs/cleanup/azure_subscriptions_cleanup.json,sha256=bowUBCjHYlC4Xd60lv33sxRi-bv1wiT5gAOStaHMX4k,430
87
87
  cartography/data/jobs/cleanup/azure_tenant_cleanup.json,sha256=jcjmZH6kfVGZ9q68rfvnroF0kNNHZ2uTZQ17Rmd4FH0,220
88
- cartography/data/jobs/cleanup/crowdstrike_import_cleanup.json,sha256=bBPwftvz1iMUKrqKFCFZEH3LgVRzg-t5fRUh6Chx-vo,1426
88
+ cartography/data/jobs/cleanup/crowdstrike_import_cleanup.json,sha256=mkC96aKS_m7THGQ3LOE_ROXxIk11moK6Fd5cSPkcYsA,1239
89
89
  cartography/data/jobs/cleanup/digitalocean_droplet_cleanup.json,sha256=f26TdPUPYnIp45ipPys5M6VVfConUZySIbkgSr3iQno,703
90
90
  cartography/data/jobs/cleanup/digitalocean_project_cleanup.json,sha256=5mo9vPshCdUZfgTWd_22_TLSyfe6hd41u7z-B8H1qgY,702
91
91
  cartography/data/jobs/cleanup/gcp_compute_firewall_cleanup.json,sha256=FVNJ8EPaPhmQ_sh4vyTdMyEgs6Y-DIoFTdWJaELgz44,1904
@@ -139,7 +139,7 @@ cartography/intel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
139
139
  cartography/intel/analysis.py,sha256=gHtN42NqqLL1G5MOm2Q6rMyg-V5lU_wqbnKp5hbOOao,1499
140
140
  cartography/intel/create_indexes.py,sha256=HM2jB2v3NZvGqgVDtNoBQRVpkei_JXcYXqM14w8Rjss,741
141
141
  cartography/intel/dns.py,sha256=M-WSiGQoxWZsl0sg-2SDR8OD8e1Rexkt2Tbb2OpeioA,5596
142
- cartography/intel/aws/__init__.py,sha256=g9NPDlIlvOi2oDCq0VY09kxv0TaD1wihFQLdOcJyk18,11212
142
+ cartography/intel/aws/__init__.py,sha256=0UWecMbBsSEj51eAAg5x7Pb1vDBctc9SAF5vxNirL24,11631
143
143
  cartography/intel/aws/apigateway.py,sha256=w4QdxlwnVegKKsZFfoI36i-FGlIUjzxzaayZyz9oQvM,11654
144
144
  cartography/intel/aws/config.py,sha256=wrZbz7bc8vImLmRvTLkPcWnjjPzk3tOG4bB_BFS2lq8,7329
145
145
  cartography/intel/aws/dynamodb.py,sha256=LZ6LGNThLi0zC3eLMq2JN3mwiSwZeaH58YQQHvsXMGE,5013
@@ -160,7 +160,7 @@ cartography/intel/aws/permission_relationships.py,sha256=IarV9gt5BaplZ5TPo_mfypt
160
160
  cartography/intel/aws/rds.py,sha256=vnlNYmrO2Cc0PNn31CeG2QwYhwjVosbQFE9Ol1vQyLE,25252
161
161
  cartography/intel/aws/redshift.py,sha256=KOqiXIllHmtPTeaNGl-cX4srY5pFE6o12j8MQ5-zWpc,6694
162
162
  cartography/intel/aws/resourcegroupstaggingapi.py,sha256=I2VrL-oplGj2Jyhbo312V6vnER_FXpJRrc6OBJ-_VmI,10375
163
- cartography/intel/aws/resources.py,sha256=lg5j0z6Iwj16Gv25yuAb3gHG6x4vOfRNm43FoOVRfqg,3541
163
+ cartography/intel/aws/resources.py,sha256=jb2U6xsrwwp2AYirqHYc09ttOpIqYEsk-CR7He-qgzQ,3652
164
164
  cartography/intel/aws/route53.py,sha256=IYqeQud1HuHnf11A7T-Jeif5DWgjpaaU-Jfr2cLUc_o,14099
165
165
  cartography/intel/aws/s3.py,sha256=SVxUMtMSkbdjZv5qOSYIbYb8BQa-QTojbHG85-EFWLA,27034
166
166
  cartography/intel/aws/secretsmanager.py,sha256=YogwRPT6qZPVg5HrND71zI-nNn60oxoWaW7eUlhuTS0,3304
@@ -174,12 +174,13 @@ cartography/intel/aws/ec2/images.py,sha256=SLoxcy_PQgNomVMDMdutm0zXJCOLosiHJlN63
174
174
  cartography/intel/aws/ec2/instances.py,sha256=uI8eVJmeEybS8y_T8CVKAkwxJyVDCH7sbuEJYeWGSWY,12468
175
175
  cartography/intel/aws/ec2/internet_gateways.py,sha256=dI-4-85_3DGGZZBcY_DN6XqESx9P26S6jKok314lcnQ,2883
176
176
  cartography/intel/aws/ec2/key_pairs.py,sha256=g4imIo_5jk8upq9J4--erg-OZXG2i3cJMe6SnNCYj9s,2635
177
- cartography/intel/aws/ec2/launch_templates.py,sha256=nHpX-JobVzIHngJ-BBeKwp8wryBjPcJnUX_VJhIU5hE,6233
177
+ cartography/intel/aws/ec2/launch_templates.py,sha256=JNCT7WKvHcM8Z6D1MDR65GsBiqmd6bMuRQAMu9BWRKY,6634
178
178
  cartography/intel/aws/ec2/load_balancer_v2s.py,sha256=95FfQQn740gexINIHDJizOM4OKzRtQT_y2XQMipQ5Dg,8661
179
- cartography/intel/aws/ec2/load_balancers.py,sha256=1GwErzGqi3BKCARqfGJcD_r_D84rFKVy5kNMas9jAok,6756
179
+ cartography/intel/aws/ec2/load_balancers.py,sha256=ah9-lXvipzVDjGFqfpNCrEyBfdu-BdDeV2ZcPwJM78M,6013
180
180
  cartography/intel/aws/ec2/network_acls.py,sha256=_UiOx79OxcqH0ecRjcVMglAzz5XJ4aVYLlv6dl_ism4,6809
181
181
  cartography/intel/aws/ec2/network_interfaces.py,sha256=CzF8PooCYUQ2pk8DR8JDAhkWRUQSBj_27OsIfkL_-Cs,9199
182
182
  cartography/intel/aws/ec2/reserved_instances.py,sha256=jv8-VLI5KL8jN1QRI20yim8lzZ7I7wR8a5EF8DckahA,3122
183
+ cartography/intel/aws/ec2/route_tables.py,sha256=h3oXZP1TCUeEbjmknIgSIDGHmmofXrqtBK45lXh06cQ,10182
183
184
  cartography/intel/aws/ec2/security_groups.py,sha256=vxLeaCpCowkbl-YpON1UdbjtPolMfj_reOEuKujN80Y,6060
184
185
  cartography/intel/aws/ec2/snapshots.py,sha256=R3U6ZwE4bQPy5yikLCRcUHyXN1dD7TzS-3jULQO-F0g,5432
185
186
  cartography/intel/aws/ec2/subnets.py,sha256=42KODMXswv4OCVnkWDHZbZDLUnc_ZAD-1TDMk88rWdo,3892
@@ -190,7 +191,7 @@ cartography/intel/aws/ec2/vpc.py,sha256=5i0HKoYq1VcghdPZPFMiJ_DBcTm95RVRD4b_l0AG
190
191
  cartography/intel/aws/ec2/vpc_peerings.py,sha256=2-pPD9a3fF2gCFdfj8J5pz2kxIoC2MkO573hxrv8GiI,6375
191
192
  cartography/intel/aws/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
192
193
  cartography/intel/aws/util/arns.py,sha256=TEjrQEDbJM8Zwy6Eizh-vAFd9kMr5AKsdOsHYQHUSbk,573
193
- cartography/intel/aws/util/common.py,sha256=j_K9_Iy42dgCSvbGLdtJW8bRs_qTiJu4wkz54OId7w8,886
194
+ cartography/intel/aws/util/common.py,sha256=tQQ4c3MehuL55d-2kWNr9laPR5IQ28VJvSHTfLr6g28,1817
194
195
  cartography/intel/azure/__init__.py,sha256=RxbDGfsfDBM1eGtS-FPULB5mBBl3yYl7fIZ5P3RD9RE,3696
195
196
  cartography/intel/azure/compute.py,sha256=SIjvhmGp2tSpBpzNubIM1pgr_MrVHHuJsJxGpnFWDRw,8679
196
197
  cartography/intel/azure/cosmosdb.py,sha256=8ZtQntjkMUVsQUcjGgJw6geDjYqothPkssyNQALhJ0o,41275
@@ -202,8 +203,8 @@ cartography/intel/azure/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
202
203
  cartography/intel/azure/util/credentials.py,sha256=99PjTs0vZ2iu0tHD7TohN1VJYjuXYstfMg27F4CE0xU,7416
203
204
  cartography/intel/bigfix/__init__.py,sha256=3LoDCm01VNNaDRGsRiykJm1GJgUQ8zI1HO6NodLFVIA,1058
204
205
  cartography/intel/bigfix/computers.py,sha256=HAwA-muDBLu2xkFFL2Ae-xjCH1gxKKwxGMZM4BE_Qdo,5909
205
- cartography/intel/crowdstrike/__init__.py,sha256=dAtgI-0vZAQZ3cTFQhMEzzt7aqiNSNuiIYiw0qbut-I,1896
206
- cartography/intel/crowdstrike/endpoints.py,sha256=1Sn8jC5YARKbec-idUZniqCTLldde5ymwpBzSeGZVoM,3835
206
+ cartography/intel/crowdstrike/__init__.py,sha256=qDFCtNzUSnvMZFFoLjRAPK3pbKpIO6BaerY3bDyEASc,2397
207
+ cartography/intel/crowdstrike/endpoints.py,sha256=MVuUw7yXesJmQL79lbPxOnHjO48lD3WCH5WzL5asKUU,2144
207
208
  cartography/intel/crowdstrike/spotlight.py,sha256=yNhj44-RYF6ubck-hHMKhKiNU0fCfhQf4Oagopc31EM,4754
208
209
  cartography/intel/crowdstrike/util.py,sha256=gfJ6Ptr6YdbBS9Qj9a_-Jc-IJroADDRcXqjh5TW0qXE,277
209
210
  cartography/intel/cve/__init__.py,sha256=u9mv5O_qkSLmdhLhLm1qbwmhoeLQ3A3fQTjNyLQpEyI,3656
@@ -220,6 +221,8 @@ cartography/intel/duo/phones.py,sha256=ueJheqSLD2xYcMus5eOiixPYS3_xVjgQzeomjV2a6
220
221
  cartography/intel/duo/tokens.py,sha256=bEEnjfc4waQnkRHVSnZLAeGE8wHOOZL7FA9m80GGQdQ,2396
221
222
  cartography/intel/duo/users.py,sha256=lc7ly_XKeUjJ50szw31WT_GiCrZfGKJv1zVUpmTchh4,4097
222
223
  cartography/intel/duo/web_authn_credentials.py,sha256=IbDf3CWqfEyI7f9zJugUvoDd6vZOECfb_7ANZaRYzuk,2636
224
+ cartography/intel/entra/__init__.py,sha256=Qtn2-ZTZA-_3IzopJG1r2F8fkLd2DJ3b1H1ZbeF4xUA,1185
225
+ cartography/intel/entra/users.py,sha256=Tv7LutCEZ4zo3E9MNT8Z8jwiyV2TTzCfvflGP3bz9c0,7523
223
226
  cartography/intel/gcp/__init__.py,sha256=sZHPfDCPZFCE5d6aj20Ow4AC0vrFxV7RCn_cMinCDmI,17650
224
227
  cartography/intel/gcp/compute.py,sha256=CH2cBdOwbLZCAbkfRJkkI-sFybXVKRWEUGDJANQmvyA,48333
225
228
  cartography/intel/gcp/crm.py,sha256=Uw5PILhVFhpM8gq7uu2v7F_YikDW3gsTZ3d7-e8Z1_k,12324
@@ -238,7 +241,7 @@ cartography/intel/jamf/__init__.py,sha256=Nof-LrUeevoieo6oP2GyfTwx8k5TUIgreW6hSj
238
241
  cartography/intel/jamf/computers.py,sha256=EfjlupQ-9HYTjOrmuwrGuJDy9ApAnJvk8WrYcp6_Jkk,1673
239
242
  cartography/intel/jamf/util.py,sha256=EAyP8VpOY2uAvW3HtX6r7qORNjGa1Tr3fuqezuLQ0j4,1017
240
243
  cartography/intel/kandji/__init__.py,sha256=Y38bVRmrGVJRy0mSof8xU-cuEyJ7N_oI7KekYjYyuiQ,1076
241
- cartography/intel/kandji/devices.py,sha256=j_rP6rQ5VPT_XEcGXx7Yt6eCOm1Oe3I2qWIxXODXEcA,2224
244
+ cartography/intel/kandji/devices.py,sha256=bRePUC0xFeaST3PQdJ6Af2MdTeFZuIVq4r7CY5YEid0,2797
242
245
  cartography/intel/kubernetes/__init__.py,sha256=jaOTEanWnTrYvcBN1XUC5oqBhz1AJbFmzoT9uu_VBSg,1481
243
246
  cartography/intel/kubernetes/namespaces.py,sha256=6o-FgAX_Ai5NCj2xOWM-RNWEvn0gZjVQnZSGCJlcIhw,2710
244
247
  cartography/intel/kubernetes/pods.py,sha256=aX3pP_vs6icMe2vK4vgMak6HZ64okhRzoihpkPHscGU,4502
@@ -296,6 +299,8 @@ cartography/models/aws/ec2/keypair_instance.py,sha256=M1Ru8Z_2izW0cADAnQVVHaKsT_
296
299
  cartography/models/aws/ec2/launch_configurations.py,sha256=zdfWJEx93HXDXd_IzSEkhvcztkJI7_v_TCE_d8ZNAyI,2764
297
300
  cartography/models/aws/ec2/launch_template_versions.py,sha256=RitfnAuAj0XpFsCXkRbtUhHMAi8Vsvmtury231eKvGU,3897
298
301
  cartography/models/aws/ec2/launch_templates.py,sha256=GqiwFuMp72LNSt2eQlp2WfdU_vHsom-xKV5AaUewSHQ,2157
302
+ cartography/models/aws/ec2/load_balancer_listeners.py,sha256=M7oYOinOQkEUijJjhs1oCffB5VmLWYSa92tVWKwMSJQ,2879
303
+ cartography/models/aws/ec2/load_balancers.py,sha256=qJbPWePdO2vuyKzcVcSvKtHlEFMBkkUovZ826BaAcwg,4347
299
304
  cartography/models/aws/ec2/loadbalancerv2.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
300
305
  cartography/models/aws/ec2/network_acl_rules.py,sha256=4Rq2J-Dce8J6y9J6YIalmYtuQRWLp652LXO1Xg6XGPE,3951
301
306
  cartography/models/aws/ec2/network_acls.py,sha256=pJKsXdMLB8L79lmTYpLJfFJ6p7PWpf3rBN6eW6y-5hY,3419
@@ -303,6 +308,9 @@ cartography/models/aws/ec2/networkinterface_instance.py,sha256=t3oqcQ4GjYf7dwqPU
303
308
  cartography/models/aws/ec2/networkinterfaces.py,sha256=z1-Dl6I79-TCxXKG8QBpSKga93lPCPaLR1XqKJZK3ME,4127
304
309
  cartography/models/aws/ec2/privateip_networkinterface.py,sha256=j8MyiZsiUCuzuGUH_4PBKV3rLTk1GkE-SZb6K11oSdM,3038
305
310
  cartography/models/aws/ec2/reservations.py,sha256=dE9uSB3Em-ca1dDbetbu79JXr4ZWHC3r5gA1S3mjhVU,1930
311
+ cartography/models/aws/ec2/route_table_associations.py,sha256=MfP41U64XM86G0VMz_kbmlOc4cxMG6MbVWk1mfVoTaI,3846
312
+ cartography/models/aws/ec2/route_tables.py,sha256=qFdfb1QExqJ8r3wCMUPaticWY_ppoLKEjyZx8Xs9etE,4725
313
+ cartography/models/aws/ec2/routes.py,sha256=qmWkhvNavycKv422ih0b3jUYd02tOgHNAuIpivwj6XM,3626
306
314
  cartography/models/aws/ec2/securitygroup_instance.py,sha256=RZS9TzHHatTOESQgcs5_YHmF9sM7pRkUq2VPjk9FJlU,2876
307
315
  cartography/models/aws/ec2/securitygroup_networkinterface.py,sha256=PiaA8J82kybZyZ1wDsa-ACIDa88vt4NoA3smGNiwl14,2399
308
316
  cartography/models/aws/ec2/subnet_instance.py,sha256=ct_ibXiPN2C5ld06TczwSTXtsnlov5VCW6elphtbvPs,2752
@@ -329,6 +337,8 @@ cartography/models/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
329
337
  cartography/models/core/common.py,sha256=Bk0dCBkO9Udj9v4e8WE9mgBGaZTI170m9QpoiiYoz48,6206
330
338
  cartography/models/core/nodes.py,sha256=h5dwBOk_a2uCHZWeQz3pidr7gkqMKf7buIZgl6M1Ox4,3699
331
339
  cartography/models/core/relationships.py,sha256=6AwXvk0dq48BxqyxBpHyBXZ3dJNm65t1y4vNg4n25uA,5103
340
+ cartography/models/crowdstrike/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
341
+ cartography/models/crowdstrike/hosts.py,sha256=5PiDAhCPWDUd9kE61FliaPzsuIQBZRIQ87eHMgQF_M4,2672
332
342
  cartography/models/cve/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
333
343
  cartography/models/cve/cve.py,sha256=zaCLcGuEL2EnScExjbmpPBNVBivMBKnnRajCYL0LJFE,3720
334
344
  cartography/models/cve/cve_feed.py,sha256=A_h9ET2vQYGpgMr8_--iqdQfF5ZyUNM6aQDruUuA5OU,740
@@ -340,6 +350,9 @@ cartography/models/duo/phone.py,sha256=oxgMmwKLRiCWbAhqrTKE4ILseu0j96GugEIV_hchR
340
350
  cartography/models/duo/token.py,sha256=BS_AvF-TAGzCY9Owtqxr8g_s6716dnzFOO1IwkckmVA,2668
341
351
  cartography/models/duo/user.py,sha256=ih3DH_QveAve4cX9dmIwC5gVN6_RNnuLK3bfJ5I9u6g,6554
342
352
  cartography/models/duo/web_authn_credential.py,sha256=OcZnfG5zCMlphxSltRcAXQ12hHYJjxrBt6A9L28g7Vk,2920
353
+ cartography/models/entra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
354
+ cartography/models/entra/tenant.py,sha256=wxF6DTsLs653ObzPrEOj2xQ-YGtNJhg-E1desPQmmU0,1751
355
+ cartography/models/entra/user.py,sha256=Y6am84AEYdVJHIFUHHF5XSgwCQ-aOekeu4ZABJhnfp0,4765
343
356
  cartography/models/gcp/iam.py,sha256=N7OGmnRlkIFZOv0rh3QGGBmYV7WYy3-xeE4Wv7StGOE,3071
344
357
  cartography/models/github/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
345
358
  cartography/models/github/orgs.py,sha256=EcUmkeyoCJmkmzLsfKdUwwTE0N2IIwyaUrIK32dQybo,1106
@@ -360,9 +373,9 @@ cartography/models/snipeit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
360
373
  cartography/models/snipeit/asset.py,sha256=FyRAaeXuZjMy0eUQcSDFcgEAF5lbLMlvqp1Tv9d3Lv4,3238
361
374
  cartography/models/snipeit/tenant.py,sha256=p4rFnpNNuF1W5ilGBbexDaETWTwavfb38RcQGoImkQI,679
362
375
  cartography/models/snipeit/user.py,sha256=MsB4MiCVNTH6JpESime7cOkB89autZOXQpL6Z0l7L6o,2113
363
- cartography-0.101.1rc1.dist-info/licenses/LICENSE,sha256=kvLEBRYaQ1RvUni6y7Ti9uHeooqnjPoo6n_-0JO1ETc,11351
364
- cartography-0.101.1rc1.dist-info/METADATA,sha256=UxWV1DHIXB3ZSFQDE9bmM_21i4gh-3wkYnXgNJlBiG0,11909
365
- cartography-0.101.1rc1.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
366
- cartography-0.101.1rc1.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
367
- cartography-0.101.1rc1.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
368
- cartography-0.101.1rc1.dist-info/RECORD,,
376
+ cartography-0.102.0.dist-info/licenses/LICENSE,sha256=kvLEBRYaQ1RvUni6y7Ti9uHeooqnjPoo6n_-0JO1ETc,11351
377
+ cartography-0.102.0.dist-info/METADATA,sha256=DxJP6vhxa_KLem1IsyD3UF9x973pIMaf6HLRo_XF9yE,12084
378
+ cartography-0.102.0.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
379
+ cartography-0.102.0.dist-info/entry_points.txt,sha256=GVIAWD0o0_K077qMA_k1oZU4v-M0a8GLKGJR8tZ-qH8,112
380
+ cartography-0.102.0.dist-info/top_level.txt,sha256=BHqsNJQiI6Q72DeypC1IINQJE59SLhU4nllbQjgJi9g,12
381
+ cartography-0.102.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.1.0)
2
+ Generator: setuptools (80.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5