cartography 0.104.0rc2__py3-none-any.whl → 0.123.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.
- cartography/_version.py +16 -3
- cartography/cli.py +466 -5
- cartography/client/aws/__init__.py +19 -0
- cartography/client/aws/ecr.py +51 -0
- cartography/client/core/tx.py +357 -8
- cartography/config.py +153 -0
- cartography/data/azure_permission_relationships.yaml +20 -0
- cartography/data/gcp_permission_relationships.yaml +21 -0
- cartography/data/indexes.cypher +0 -186
- cartography/data/jobs/analysis/aws_ec2_keypair_analysis.json +2 -2
- cartography/data/jobs/analysis/keycloak_inheritance.json +30 -0
- cartography/data/jobs/cleanup/gcp_compute_vpc_cleanup.json +0 -12
- cartography/data/jobs/cleanup/github_repos_cleanup.json +2 -0
- cartography/driftdetect/cli.py +3 -2
- cartography/graph/cleanupbuilder.py +198 -41
- cartography/graph/job.py +54 -6
- cartography/graph/querybuilder.py +528 -27
- cartography/graph/statement.py +5 -1
- cartography/intel/airbyte/__init__.py +105 -0
- cartography/intel/airbyte/connections.py +120 -0
- cartography/intel/airbyte/destinations.py +81 -0
- cartography/intel/airbyte/organizations.py +59 -0
- cartography/intel/airbyte/sources.py +78 -0
- cartography/intel/airbyte/tags.py +64 -0
- cartography/intel/airbyte/users.py +106 -0
- cartography/intel/airbyte/util.py +122 -0
- cartography/intel/airbyte/workspaces.py +63 -0
- cartography/intel/aws/__init__.py +24 -9
- cartography/intel/aws/acm.py +124 -0
- cartography/intel/aws/apigateway.py +253 -22
- cartography/intel/aws/apigatewayv2.py +116 -0
- cartography/intel/aws/cloudtrail.py +17 -39
- cartography/intel/aws/cloudtrail_management_events.py +962 -0
- cartography/intel/aws/cloudwatch.py +150 -4
- cartography/intel/aws/codebuild.py +132 -0
- cartography/intel/aws/cognito.py +201 -0
- cartography/intel/aws/config.py +7 -3
- cartography/intel/aws/ec2/elastic_ip_addresses.py +3 -1
- cartography/intel/aws/ec2/instances.py +25 -1
- cartography/intel/aws/ec2/internet_gateways.py +4 -2
- cartography/intel/aws/ec2/load_balancer_v2s.py +11 -5
- cartography/intel/aws/ec2/network_interfaces.py +5 -1
- cartography/intel/aws/ec2/reserved_instances.py +3 -1
- cartography/intel/aws/ec2/security_groups.py +140 -122
- cartography/intel/aws/ec2/snapshots.py +47 -84
- cartography/intel/aws/ec2/subnets.py +37 -63
- cartography/intel/aws/ec2/tgw.py +11 -5
- cartography/intel/aws/ec2/volumes.py +1 -1
- cartography/intel/aws/ec2/vpc.py +140 -124
- cartography/intel/aws/ec2/vpc_peerings.py +262 -125
- cartography/intel/aws/ecr.py +269 -98
- cartography/intel/aws/ecr_image_layers.py +923 -0
- cartography/intel/aws/ecs.py +251 -380
- cartography/intel/aws/efs.py +179 -11
- cartography/intel/aws/elasticache.py +102 -79
- cartography/intel/aws/elasticsearch.py +13 -4
- cartography/intel/aws/eventbridge.py +164 -0
- cartography/intel/aws/glue.py +181 -0
- cartography/intel/aws/guardduty.py +443 -0
- cartography/intel/aws/iam.py +750 -493
- cartography/intel/aws/identitycenter.py +605 -83
- cartography/intel/aws/inspector.py +221 -105
- cartography/intel/aws/kms.py +173 -201
- cartography/intel/aws/lambda_function.py +272 -189
- cartography/intel/aws/organizations.py +10 -9
- cartography/intel/aws/permission_relationships.py +10 -20
- cartography/intel/aws/rds.py +337 -446
- cartography/intel/aws/redshift.py +9 -4
- cartography/intel/aws/resourcegroupstaggingapi.py +78 -19
- cartography/intel/aws/resources.py +18 -0
- cartography/intel/aws/route53.py +386 -332
- cartography/intel/aws/s3.py +322 -14
- cartography/intel/aws/secretsmanager.py +81 -49
- cartography/intel/aws/securityhub.py +3 -1
- cartography/intel/aws/sns.py +62 -2
- cartography/intel/aws/sqs.py +36 -90
- cartography/intel/aws/ssm.py +3 -5
- cartography/intel/azure/__init__.py +202 -48
- cartography/intel/azure/aks.py +175 -0
- cartography/intel/azure/app_service.py +105 -0
- cartography/intel/azure/compute.py +59 -112
- cartography/intel/azure/container_instances.py +95 -0
- cartography/intel/azure/cosmosdb.py +222 -361
- cartography/intel/azure/data_factory.py +85 -0
- cartography/intel/azure/data_factory_dataset.py +128 -0
- cartography/intel/azure/data_factory_linked_service.py +119 -0
- cartography/intel/azure/data_factory_pipeline.py +142 -0
- cartography/intel/azure/data_lake.py +124 -0
- cartography/intel/azure/event_grid.py +94 -0
- cartography/intel/azure/functions.py +124 -0
- cartography/intel/azure/load_balancers.py +263 -0
- cartography/intel/azure/logic_apps.py +101 -0
- cartography/intel/azure/monitor.py +105 -0
- cartography/intel/azure/network.py +467 -0
- cartography/intel/azure/permission_relationships.py +466 -0
- cartography/intel/azure/rbac.py +309 -0
- cartography/intel/azure/resource_groups.py +82 -0
- cartography/intel/azure/security_center.py +106 -0
- cartography/intel/azure/sql.py +145 -292
- cartography/intel/azure/storage.py +185 -262
- cartography/intel/azure/subscription.py +21 -43
- cartography/intel/azure/tenant.py +39 -30
- cartography/intel/azure/util/common.py +13 -0
- cartography/intel/azure/util/credentials.py +49 -174
- cartography/intel/azure/util/tag.py +41 -0
- cartography/intel/create_indexes.py +2 -1
- cartography/intel/crowdstrike/spotlight.py +5 -2
- cartography/intel/dns.py +5 -2
- cartography/intel/entra/__init__.py +100 -1
- cartography/intel/entra/app_role_assignments.py +284 -0
- cartography/intel/entra/applications.py +182 -0
- cartography/intel/entra/federation/__init__.py +0 -0
- cartography/intel/entra/federation/aws_identity_center.py +77 -0
- cartography/intel/entra/groups.py +198 -0
- cartography/intel/entra/ou.py +48 -24
- cartography/intel/entra/service_principals.py +217 -0
- cartography/intel/entra/users.py +105 -57
- cartography/intel/gcp/__init__.py +334 -396
- cartography/intel/gcp/bigtable_app_profile.py +101 -0
- cartography/intel/gcp/bigtable_backup.py +91 -0
- cartography/intel/gcp/bigtable_cluster.py +93 -0
- cartography/intel/gcp/bigtable_instance.py +86 -0
- cartography/intel/gcp/bigtable_table.py +87 -0
- cartography/intel/gcp/cai.py +292 -0
- cartography/intel/gcp/clients.py +112 -0
- cartography/intel/gcp/compute.py +128 -119
- cartography/intel/gcp/crm/__init__.py +0 -0
- cartography/intel/gcp/crm/folders.py +114 -0
- cartography/intel/gcp/crm/orgs.py +70 -0
- cartography/intel/gcp/crm/projects.py +120 -0
- cartography/intel/gcp/dns.py +83 -169
- cartography/intel/gcp/gke.py +72 -113
- cartography/intel/gcp/iam.py +111 -91
- cartography/intel/gcp/permission_relationships.py +394 -0
- cartography/intel/gcp/policy_bindings.py +225 -0
- cartography/intel/gcp/storage.py +75 -159
- cartography/intel/github/__init__.py +62 -25
- cartography/intel/github/commits.py +423 -0
- cartography/intel/github/repos.py +463 -85
- cartography/intel/github/teams.py +3 -3
- cartography/intel/github/users.py +5 -0
- cartography/intel/github/util.py +12 -0
- cartography/intel/googleworkspace/__init__.py +193 -0
- cartography/intel/googleworkspace/devices.py +254 -0
- cartography/intel/googleworkspace/groups.py +568 -0
- cartography/intel/googleworkspace/oauth_apps.py +259 -0
- cartography/intel/googleworkspace/tenant.py +85 -0
- cartography/intel/googleworkspace/users.py +138 -0
- cartography/intel/gsuite/__init__.py +17 -9
- cartography/intel/gsuite/groups.py +291 -0
- cartography/intel/gsuite/users.py +142 -0
- cartography/intel/jamf/computers.py +7 -1
- cartography/intel/keycloak/__init__.py +153 -0
- cartography/intel/keycloak/authenticationexecutions.py +322 -0
- cartography/intel/keycloak/authenticationflows.py +77 -0
- cartography/intel/keycloak/clients.py +187 -0
- cartography/intel/keycloak/groups.py +126 -0
- cartography/intel/keycloak/identityproviders.py +94 -0
- cartography/intel/keycloak/organizations.py +163 -0
- cartography/intel/keycloak/realms.py +61 -0
- cartography/intel/keycloak/roles.py +202 -0
- cartography/intel/keycloak/scopes.py +73 -0
- cartography/intel/keycloak/users.py +70 -0
- cartography/intel/keycloak/util.py +47 -0
- cartography/intel/kubernetes/__init__.py +60 -14
- cartography/intel/kubernetes/clusters.py +86 -0
- cartography/intel/kubernetes/eks.py +402 -0
- cartography/intel/kubernetes/namespaces.py +59 -57
- cartography/intel/kubernetes/pods.py +168 -75
- cartography/intel/kubernetes/rbac.py +597 -0
- cartography/intel/kubernetes/secrets.py +95 -45
- cartography/intel/kubernetes/services.py +131 -67
- cartography/intel/kubernetes/util.py +142 -14
- cartography/intel/oci/iam.py +23 -9
- cartography/intel/oci/organizations.py +3 -1
- cartography/intel/oci/utils.py +28 -5
- cartography/intel/okta/applications.py +15 -5
- cartography/intel/okta/awssaml.py +14 -10
- cartography/intel/okta/factors.py +3 -1
- cartography/intel/okta/groups.py +5 -2
- cartography/intel/okta/organization.py +3 -1
- cartography/intel/okta/origins.py +3 -1
- cartography/intel/okta/roles.py +5 -2
- cartography/intel/okta/users.py +10 -2
- cartography/intel/ontology/__init__.py +44 -0
- cartography/intel/ontology/devices.py +54 -0
- cartography/intel/ontology/users.py +54 -0
- cartography/intel/ontology/utils.py +176 -0
- cartography/intel/pagerduty/escalation_policies.py +13 -6
- cartography/intel/pagerduty/schedules.py +9 -4
- cartography/intel/pagerduty/services.py +7 -3
- cartography/intel/pagerduty/teams.py +5 -2
- cartography/intel/pagerduty/users.py +3 -1
- cartography/intel/pagerduty/vendors.py +3 -1
- cartography/intel/scaleway/__init__.py +127 -0
- cartography/intel/scaleway/iam/__init__.py +0 -0
- cartography/intel/scaleway/iam/apikeys.py +71 -0
- cartography/intel/scaleway/iam/applications.py +71 -0
- cartography/intel/scaleway/iam/groups.py +71 -0
- cartography/intel/scaleway/iam/users.py +71 -0
- cartography/intel/scaleway/instances/__init__.py +0 -0
- cartography/intel/scaleway/instances/flexibleips.py +86 -0
- cartography/intel/scaleway/instances/instances.py +92 -0
- cartography/intel/scaleway/projects.py +79 -0
- cartography/intel/scaleway/storage/__init__.py +0 -0
- cartography/intel/scaleway/storage/snapshots.py +86 -0
- cartography/intel/scaleway/storage/volumes.py +84 -0
- cartography/intel/scaleway/utils.py +37 -0
- cartography/intel/sentinelone/__init__.py +75 -0
- cartography/intel/sentinelone/account.py +140 -0
- cartography/intel/sentinelone/agent.py +139 -0
- cartography/intel/sentinelone/api.py +124 -0
- cartography/intel/sentinelone/application.py +248 -0
- cartography/intel/sentinelone/cve.py +119 -0
- cartography/intel/sentinelone/utils.py +28 -0
- cartography/intel/slack/__init__.py +78 -0
- cartography/intel/slack/channels.py +80 -0
- cartography/intel/slack/groups.py +90 -0
- cartography/intel/slack/teams.py +65 -0
- cartography/intel/slack/users.py +57 -0
- cartography/intel/slack/utils.py +29 -0
- cartography/intel/spacelift/__init__.py +161 -0
- cartography/intel/spacelift/account.py +73 -0
- cartography/intel/spacelift/ec2_ownership.py +280 -0
- cartography/intel/spacelift/runs.py +463 -0
- cartography/intel/spacelift/spaces.py +112 -0
- cartography/intel/spacelift/stacks.py +119 -0
- cartography/intel/spacelift/util.py +122 -0
- cartography/intel/spacelift/workerpools.py +131 -0
- cartography/intel/spacelift/workers.py +128 -0
- cartography/intel/trivy/__init__.py +272 -0
- cartography/intel/trivy/scanner.py +386 -0
- cartography/models/airbyte/__init__.py +0 -0
- cartography/models/airbyte/connection.py +138 -0
- cartography/models/airbyte/destination.py +75 -0
- cartography/models/airbyte/organization.py +19 -0
- cartography/models/airbyte/source.py +75 -0
- cartography/models/airbyte/stream.py +74 -0
- cartography/models/airbyte/tag.py +69 -0
- cartography/models/airbyte/user.py +115 -0
- cartography/models/airbyte/workspace.py +46 -0
- cartography/models/anthropic/apikey.py +4 -0
- cartography/models/anthropic/user.py +4 -0
- cartography/models/aws/acm/__init__.py +0 -0
- cartography/models/aws/acm/certificate.py +75 -0
- cartography/models/aws/apigateway/__init__.py +0 -0
- cartography/models/aws/apigateway/apigatewaydeployment.py +74 -0
- cartography/models/aws/apigateway/apigatewayintegration.py +79 -0
- cartography/models/aws/apigateway/apigatewaymethod.py +74 -0
- cartography/models/aws/apigatewayv2/__init__.py +0 -0
- cartography/models/aws/apigatewayv2/apigatewayv2.py +53 -0
- cartography/models/aws/cloudtrail/management_events.py +153 -0
- cartography/models/aws/cloudtrail/trail.py +45 -0
- cartography/models/aws/cloudwatch/log_metric_filter.py +79 -0
- cartography/models/aws/cloudwatch/metric_alarm.py +53 -0
- cartography/models/aws/codebuild/__init__.py +0 -0
- cartography/models/aws/codebuild/project.py +49 -0
- cartography/models/aws/cognito/__init__.py +0 -0
- cartography/models/aws/cognito/identity_pool.py +70 -0
- cartography/models/aws/cognito/user_pool.py +47 -0
- cartography/models/aws/dynamodb/tables.py +2 -0
- cartography/models/aws/ec2/instances.py +25 -1
- cartography/models/aws/ec2/networkinterfaces.py +4 -0
- cartography/models/aws/ec2/security_group_rules.py +109 -0
- cartography/models/aws/ec2/security_groups.py +90 -0
- cartography/models/aws/ec2/snapshots.py +58 -0
- cartography/models/aws/ec2/subnet_instance.py +2 -0
- cartography/models/aws/ec2/subnet_networkinterface.py +2 -0
- cartography/models/aws/ec2/subnets.py +65 -0
- cartography/models/aws/ec2/volumes.py +20 -0
- cartography/models/aws/ec2/vpc.py +46 -0
- cartography/models/aws/ec2/vpc_cidr.py +102 -0
- cartography/models/aws/ec2/vpc_peering.py +157 -0
- cartography/models/aws/ecr/__init__.py +0 -0
- cartography/models/aws/ecr/image.py +146 -0
- cartography/models/aws/ecr/image_layer.py +107 -0
- cartography/models/aws/ecr/repository.py +72 -0
- cartography/models/aws/ecr/repository_image.py +95 -0
- cartography/models/aws/ecs/__init__.py +0 -0
- cartography/models/aws/ecs/clusters.py +64 -0
- cartography/models/aws/ecs/container_definitions.py +93 -0
- cartography/models/aws/ecs/container_instances.py +84 -0
- cartography/models/aws/ecs/containers.py +101 -0
- cartography/models/aws/ecs/services.py +134 -0
- cartography/models/aws/ecs/task_definitions.py +135 -0
- cartography/models/aws/ecs/tasks.py +134 -0
- cartography/models/aws/efs/access_point.py +77 -0
- cartography/models/aws/efs/file_system.py +60 -0
- cartography/models/aws/efs/mount_target.py +29 -2
- cartography/models/aws/elasticache/__init__.py +0 -0
- cartography/models/aws/elasticache/cluster.py +65 -0
- cartography/models/aws/elasticache/topic.py +67 -0
- cartography/models/aws/eventbridge/__init__.py +0 -0
- cartography/models/aws/eventbridge/rule.py +77 -0
- cartography/models/aws/eventbridge/target.py +71 -0
- cartography/models/aws/glue/__init__.py +0 -0
- cartography/models/aws/glue/connection.py +51 -0
- cartography/models/aws/glue/job.py +69 -0
- cartography/models/aws/guardduty/__init__.py +1 -0
- cartography/models/aws/guardduty/detectors.py +50 -0
- cartography/models/aws/guardduty/findings.py +121 -0
- cartography/models/aws/iam/access_key.py +103 -0
- cartography/models/aws/iam/account_role.py +24 -0
- cartography/models/aws/iam/federated_principal.py +60 -0
- cartography/models/aws/iam/group.py +60 -0
- cartography/models/aws/iam/group_membership.py +27 -0
- cartography/models/aws/iam/inline_policy.py +78 -0
- cartography/models/aws/iam/managed_policy.py +51 -0
- cartography/models/aws/iam/policy_statement.py +57 -0
- cartography/models/aws/iam/role.py +83 -0
- cartography/models/aws/iam/root_principal.py +52 -0
- cartography/models/aws/iam/service_principal.py +30 -0
- cartography/models/aws/iam/sts_assumerole_allow.py +38 -0
- cartography/models/aws/iam/user.py +59 -0
- cartography/models/aws/identitycenter/awsidentitycenter.py +1 -0
- cartography/models/aws/identitycenter/awspermissionset.py +70 -0
- cartography/models/aws/identitycenter/awssogroup.py +70 -0
- cartography/models/aws/identitycenter/awsssouser.py +49 -9
- cartography/models/aws/inspector/findings.py +37 -0
- cartography/models/aws/inspector/packages.py +1 -31
- cartography/models/aws/kms/__init__.py +0 -0
- cartography/models/aws/kms/aliases.py +86 -0
- cartography/models/aws/kms/grants.py +65 -0
- cartography/models/aws/kms/keys.py +88 -0
- cartography/models/aws/lambda_function/__init__.py +0 -0
- cartography/models/aws/lambda_function/alias.py +74 -0
- cartography/models/aws/lambda_function/event_source_mapping.py +88 -0
- cartography/models/aws/lambda_function/lambda_function.py +91 -0
- cartography/models/aws/lambda_function/layer.py +72 -0
- cartography/models/aws/rds/__init__.py +0 -0
- cartography/models/aws/rds/cluster.py +91 -0
- cartography/models/aws/rds/event_subscription.py +146 -0
- cartography/models/aws/rds/instance.py +156 -0
- cartography/models/aws/rds/snapshot.py +108 -0
- cartography/models/aws/rds/subnet_group.py +101 -0
- cartography/models/aws/route53/__init__.py +0 -0
- cartography/models/aws/route53/dnsrecord.py +235 -0
- cartography/models/aws/route53/nameserver.py +63 -0
- cartography/models/aws/route53/subzone.py +40 -0
- cartography/models/aws/route53/zone.py +47 -0
- cartography/models/aws/s3/notification.py +24 -0
- cartography/models/aws/secretsmanager/secret.py +106 -0
- cartography/models/aws/secretsmanager/secret_version.py +0 -2
- cartography/models/aws/sns/topic_subscription.py +74 -0
- cartography/models/aws/sqs/__init__.py +0 -0
- cartography/models/aws/sqs/queue.py +89 -0
- cartography/models/azure/__init__.py +0 -0
- cartography/models/azure/aks_cluster.py +54 -0
- cartography/models/azure/aks_nodepool.py +54 -0
- cartography/models/azure/app_service.py +59 -0
- cartography/models/azure/container_instance.py +57 -0
- cartography/models/azure/cosmosdb/__init__.py +0 -0
- cartography/models/azure/cosmosdb/account.py +77 -0
- cartography/models/azure/cosmosdb/accountfailoverpolicy.py +77 -0
- cartography/models/azure/cosmosdb/cassandrakeyspace.py +82 -0
- cartography/models/azure/cosmosdb/cassandratable.py +81 -0
- cartography/models/azure/cosmosdb/corspolicy.py +74 -0
- cartography/models/azure/cosmosdb/dblocation.py +120 -0
- cartography/models/azure/cosmosdb/mongodbcollection.py +82 -0
- cartography/models/azure/cosmosdb/mongodbdatabase.py +78 -0
- cartography/models/azure/cosmosdb/privateendpointconnection.py +81 -0
- cartography/models/azure/cosmosdb/sqlcontainer.py +88 -0
- cartography/models/azure/cosmosdb/sqldatabase.py +78 -0
- cartography/models/azure/cosmosdb/tableresource.py +76 -0
- cartography/models/azure/cosmosdb/virtualnetworkrule.py +78 -0
- cartography/models/azure/data_factory/__init__.py +0 -0
- cartography/models/azure/data_factory/data_factory.py +51 -0
- cartography/models/azure/data_factory/data_factory_dataset.py +94 -0
- cartography/models/azure/data_factory/data_factory_linked_service.py +78 -0
- cartography/models/azure/data_factory/data_factory_pipeline.py +93 -0
- cartography/models/azure/data_lake_filesystem.py +51 -0
- cartography/models/azure/event_grid_topic.py +57 -0
- cartography/models/azure/function_app.py +59 -0
- cartography/models/azure/load_balancer/__init__.py +0 -0
- cartography/models/azure/load_balancer/load_balancer.py +49 -0
- cartography/models/azure/load_balancer/load_balancer_backend_pool.py +73 -0
- cartography/models/azure/load_balancer/load_balancer_frontend_ip.py +75 -0
- cartography/models/azure/load_balancer/load_balancer_inbound_nat_rule.py +78 -0
- cartography/models/azure/load_balancer/load_balancer_rule.py +108 -0
- cartography/models/azure/logic_apps.py +56 -0
- cartography/models/azure/monitor.py +54 -0
- cartography/models/azure/network_interface.py +112 -0
- cartography/models/azure/network_security_group.py +50 -0
- cartography/models/azure/permission_relationships.py +60 -0
- cartography/models/azure/principal.py +41 -0
- cartography/models/azure/public_ip_address.py +50 -0
- cartography/models/azure/rbac.py +268 -0
- cartography/models/azure/resource_groups.py +52 -0
- cartography/models/azure/security_center.py +50 -0
- cartography/models/azure/sql/__init__.py +0 -0
- cartography/models/azure/sql/databasethreatdetectionpolicy.py +85 -0
- cartography/models/azure/sql/elasticpool.py +77 -0
- cartography/models/azure/sql/failovergroup.py +73 -0
- cartography/models/azure/sql/recoverabledatabase.py +75 -0
- cartography/models/azure/sql/replicationlink.py +81 -0
- cartography/models/azure/sql/restorabledroppeddatabase.py +82 -0
- cartography/models/azure/sql/restorepoint.py +74 -0
- cartography/models/azure/sql/serveradadministrator.py +74 -0
- cartography/models/azure/sql/serverdnsalias.py +71 -0
- cartography/models/azure/sql/sqldatabase.py +85 -0
- cartography/models/azure/sql/sqlserver.py +50 -0
- cartography/models/azure/sql/transparentdataencryption.py +76 -0
- cartography/models/azure/storage/__init__.py +0 -0
- cartography/models/azure/storage/account.py +59 -0
- cartography/models/azure/storage/blobcontainer.py +85 -0
- cartography/models/azure/storage/blobservice.py +71 -0
- cartography/models/azure/storage/fileservice.py +71 -0
- cartography/models/azure/storage/fileshare.py +82 -0
- cartography/models/azure/storage/queue.py +71 -0
- cartography/models/azure/storage/queueservice.py +73 -0
- cartography/models/azure/storage/table.py +72 -0
- cartography/models/azure/storage/tableservice.py +73 -0
- cartography/models/azure/subnet.py +101 -0
- cartography/models/azure/subscription.py +47 -0
- cartography/models/azure/tags/__init__.py +0 -0
- cartography/models/azure/tags/storage_tag.py +40 -0
- cartography/models/azure/tags/tag.py +37 -0
- cartography/models/azure/tenant.py +17 -0
- cartography/models/azure/virtual_network.py +49 -0
- cartography/models/azure/vm/__init__.py +0 -0
- cartography/models/azure/vm/datadisk.py +80 -0
- cartography/models/azure/vm/disk.py +55 -0
- cartography/models/azure/vm/snapshot.py +56 -0
- cartography/models/azure/vm/virtualmachine.py +59 -0
- cartography/models/bigfix/bigfix_computer.py +1 -1
- cartography/models/cloudflare/member.py +4 -0
- cartography/models/core/common.py +1 -0
- cartography/models/core/nodes.py +15 -2
- cartography/models/core/relationships.py +44 -0
- cartography/models/crowdstrike/hosts.py +1 -1
- cartography/models/digitalocean/droplet.py +2 -0
- cartography/models/duo/endpoint.py +1 -1
- cartography/models/duo/phone.py +2 -2
- cartography/models/duo/user.py +4 -0
- cartography/models/entra/app_role_assignment.py +115 -0
- cartography/models/entra/application.py +49 -0
- cartography/models/entra/entra_user_to_aws_sso.py +41 -0
- cartography/models/entra/group.py +117 -0
- cartography/models/entra/service_principal.py +104 -0
- cartography/models/entra/user.py +42 -51
- cartography/models/gcp/__init__.py +0 -0
- cartography/models/gcp/bigtable/__init__.py +0 -0
- cartography/models/gcp/bigtable/app_profile.py +94 -0
- cartography/models/gcp/bigtable/backup.py +91 -0
- cartography/models/gcp/bigtable/cluster.py +73 -0
- cartography/models/gcp/bigtable/instance.py +52 -0
- cartography/models/gcp/bigtable/table.py +69 -0
- cartography/models/gcp/compute/__init__.py +0 -0
- cartography/models/gcp/compute/subnet.py +74 -0
- cartography/models/gcp/compute/vpc.py +50 -0
- cartography/models/gcp/crm/__init__.py +0 -0
- cartography/models/gcp/crm/folders.py +98 -0
- cartography/models/gcp/crm/organizations.py +21 -0
- cartography/models/gcp/crm/projects.py +100 -0
- cartography/models/gcp/dns.py +109 -0
- cartography/models/gcp/gke.py +69 -0
- cartography/models/gcp/iam.py +3 -0
- cartography/models/gcp/permission_relationships.py +61 -0
- cartography/models/gcp/policy_bindings.py +93 -0
- cartography/models/gcp/storage/__init__.py +0 -0
- cartography/models/gcp/storage/bucket.py +119 -0
- cartography/models/github/commits.py +63 -0
- cartography/models/github/dependencies.py +73 -0
- cartography/models/github/manifests.py +49 -0
- cartography/models/github/users.py +10 -0
- cartography/models/googleworkspace/__init__.py +0 -0
- cartography/models/googleworkspace/device.py +132 -0
- cartography/models/googleworkspace/group.py +382 -0
- cartography/models/googleworkspace/oauth_app.py +124 -0
- cartography/models/googleworkspace/tenant.py +30 -0
- cartography/models/googleworkspace/user.py +113 -0
- cartography/models/gsuite/__init__.py +0 -0
- cartography/models/gsuite/group.py +218 -0
- cartography/models/gsuite/tenant.py +29 -0
- cartography/models/gsuite/user.py +107 -0
- cartography/models/kandji/device.py +1 -2
- cartography/models/keycloak/__init__.py +0 -0
- cartography/models/keycloak/authenticationexecution.py +160 -0
- cartography/models/keycloak/authenticationflow.py +54 -0
- cartography/models/keycloak/client.py +179 -0
- cartography/models/keycloak/group.py +101 -0
- cartography/models/keycloak/identityprovider.py +89 -0
- cartography/models/keycloak/organization.py +116 -0
- cartography/models/keycloak/organizationdomain.py +73 -0
- cartography/models/keycloak/realm.py +173 -0
- cartography/models/keycloak/role.py +126 -0
- cartography/models/keycloak/scope.py +73 -0
- cartography/models/keycloak/user.py +55 -0
- cartography/models/kubernetes/__init__.py +0 -0
- cartography/models/kubernetes/clusterrolebindings.py +138 -0
- cartography/models/kubernetes/clusterroles.py +52 -0
- cartography/models/kubernetes/clusters.py +26 -0
- cartography/models/kubernetes/containers.py +133 -0
- cartography/models/kubernetes/groups.py +107 -0
- cartography/models/kubernetes/namespaces.py +51 -0
- cartography/models/kubernetes/oidc.py +51 -0
- cartography/models/kubernetes/pods.py +80 -0
- cartography/models/kubernetes/rolebindings.py +159 -0
- cartography/models/kubernetes/roles.py +76 -0
- cartography/models/kubernetes/secrets.py +79 -0
- cartography/models/kubernetes/serviceaccounts.py +77 -0
- cartography/models/kubernetes/services.py +108 -0
- cartography/models/kubernetes/users.py +105 -0
- cartography/models/lastpass/user.py +4 -0
- cartography/models/ontology/__init__.py +0 -0
- cartography/models/ontology/device.py +137 -0
- cartography/models/ontology/mapping/__init__.py +76 -0
- cartography/models/ontology/mapping/data/__init__.py +0 -0
- cartography/models/ontology/mapping/data/apikeys.py +93 -0
- cartography/models/ontology/mapping/data/computeinstance.py +95 -0
- cartography/models/ontology/mapping/data/containers.py +88 -0
- cartography/models/ontology/mapping/data/databases.py +182 -0
- cartography/models/ontology/mapping/data/devices.py +194 -0
- cartography/models/ontology/mapping/data/thirdpartyapps.py +140 -0
- cartography/models/ontology/mapping/data/useraccounts.py +416 -0
- cartography/models/ontology/mapping/data/users.py +63 -0
- cartography/models/ontology/mapping/specs.py +85 -0
- cartography/models/ontology/user.py +51 -0
- cartography/models/openai/adminapikey.py +4 -0
- cartography/models/openai/apikey.py +4 -0
- cartography/models/openai/user.py +4 -0
- cartography/models/scaleway/__init__.py +0 -0
- cartography/models/scaleway/iam/__init__.py +0 -0
- cartography/models/scaleway/iam/apikey.py +100 -0
- cartography/models/scaleway/iam/application.py +52 -0
- cartography/models/scaleway/iam/group.py +95 -0
- cartography/models/scaleway/iam/user.py +64 -0
- cartography/models/scaleway/instance/__init__.py +0 -0
- cartography/models/scaleway/instance/flexibleip.py +52 -0
- cartography/models/scaleway/instance/instance.py +120 -0
- cartography/models/scaleway/organization.py +19 -0
- cartography/models/scaleway/project.py +48 -0
- cartography/models/scaleway/storage/__init__.py +0 -0
- cartography/models/scaleway/storage/snapshot.py +78 -0
- cartography/models/scaleway/storage/volume.py +51 -0
- cartography/models/sentinelone/__init__.py +1 -0
- cartography/models/sentinelone/account.py +40 -0
- cartography/models/sentinelone/agent.py +50 -0
- cartography/models/sentinelone/application.py +44 -0
- cartography/models/sentinelone/application_version.py +96 -0
- cartography/models/sentinelone/cve.py +73 -0
- cartography/models/slack/__init__.py +0 -0
- cartography/models/slack/channels.py +92 -0
- cartography/models/slack/group.py +129 -0
- cartography/models/slack/team.py +22 -0
- cartography/models/slack/user.py +62 -0
- cartography/models/snipeit/asset.py +2 -0
- cartography/models/snipeit/user.py +4 -0
- cartography/models/spacelift/__init__.py +0 -0
- cartography/models/spacelift/cloudtrailevent.py +120 -0
- cartography/models/spacelift/run.py +162 -0
- cartography/models/spacelift/space.py +131 -0
- cartography/models/spacelift/spaceliftaccount.py +31 -0
- cartography/models/spacelift/spaceliftgitcommit.py +157 -0
- cartography/models/spacelift/stack.py +96 -0
- cartography/models/spacelift/user.py +63 -0
- cartography/models/spacelift/worker.py +97 -0
- cartography/models/spacelift/workerpool.py +90 -0
- cartography/models/tailscale/device.py +2 -1
- cartography/models/tailscale/user.py +6 -1
- cartography/models/trivy/__init__.py +0 -0
- cartography/models/trivy/findings.py +66 -0
- cartography/models/trivy/fix.py +66 -0
- cartography/models/trivy/package.py +71 -0
- cartography/rules/README.md +1 -0
- cartography/rules/__init__.py +0 -0
- cartography/rules/cli.py +261 -0
- cartography/rules/data/__init__.py +0 -0
- cartography/rules/data/rules/__init__.py +46 -0
- cartography/rules/data/rules/cloud_security_product_deactivated.py +49 -0
- cartography/rules/data/rules/compute_instance_exposed.py +51 -0
- cartography/rules/data/rules/database_instance_exposed.py +53 -0
- cartography/rules/data/rules/delegation_boundary_modifiable.py +90 -0
- cartography/rules/data/rules/identity_administration_privileges.py +100 -0
- cartography/rules/data/rules/inactive_user_active_accounts.py +48 -0
- cartography/rules/data/rules/malicious_npm_dependencies_shai_hulud.py +2222 -0
- cartography/rules/data/rules/mfa_missing.py +46 -0
- cartography/rules/data/rules/object_storage_public.py +100 -0
- cartography/rules/data/rules/policy_administration_privileges.py +104 -0
- cartography/rules/data/rules/unmanaged_accounts.py +43 -0
- cartography/rules/data/rules/workload_identity_admin_capabilities.py +193 -0
- cartography/rules/formatters.py +108 -0
- cartography/rules/runners.py +216 -0
- cartography/rules/spec/__init__.py +0 -0
- cartography/rules/spec/model.py +267 -0
- cartography/rules/spec/result.py +38 -0
- cartography/sync.py +25 -5
- cartography/util.py +101 -31
- {cartography-0.104.0rc2.dist-info → cartography-0.123.0.dist-info}/METADATA +61 -22
- cartography-0.123.0.dist-info/RECORD +856 -0
- {cartography-0.104.0rc2.dist-info → cartography-0.123.0.dist-info}/entry_points.txt +1 -0
- cartography/data/jobs/cleanup/aws_dns_cleanup.json +0 -65
- cartography/data/jobs/cleanup/aws_import_account_access_key_cleanup.json +0 -17
- cartography/data/jobs/cleanup/aws_import_ec2_security_groupinfo_cleanup.json +0 -24
- cartography/data/jobs/cleanup/aws_import_groups_cleanup.json +0 -13
- cartography/data/jobs/cleanup/aws_import_identity_center_cleanup.json +0 -16
- cartography/data/jobs/cleanup/aws_import_lambda_cleanup.json +0 -50
- cartography/data/jobs/cleanup/aws_import_principals_cleanup.json +0 -30
- cartography/data/jobs/cleanup/aws_import_rds_clusters_cleanup.json +0 -23
- cartography/data/jobs/cleanup/aws_import_rds_instances_cleanup.json +0 -47
- cartography/data/jobs/cleanup/aws_import_rds_snapshots_cleanup.json +0 -23
- cartography/data/jobs/cleanup/aws_import_roles_cleanup.json +0 -13
- cartography/data/jobs/cleanup/aws_import_secrets_cleanup.json +0 -8
- cartography/data/jobs/cleanup/aws_import_snapshots_cleanup.json +0 -30
- cartography/data/jobs/cleanup/aws_import_users_cleanup.json +0 -8
- cartography/data/jobs/cleanup/aws_import_vpc_cleanup.json +0 -23
- cartography/data/jobs/cleanup/aws_import_vpc_peering_cleanup.json +0 -45
- cartography/data/jobs/cleanup/aws_kms_details.json +0 -10
- cartography/data/jobs/cleanup/azure_cosmosdb_cassandra_keyspace_cleanup.json +0 -25
- cartography/data/jobs/cleanup/azure_cosmosdb_cors_details.json +0 -15
- cartography/data/jobs/cleanup/azure_cosmosdb_mongodb_database_cleanup.json +0 -25
- cartography/data/jobs/cleanup/azure_cosmosdb_sql_database_cleanup.json +0 -25
- cartography/data/jobs/cleanup/azure_cosmosdb_table_resources_cleanup.json +0 -15
- cartography/data/jobs/cleanup/azure_database_account_cleanup.json +0 -85
- cartography/data/jobs/cleanup/azure_import_disks_cleanup.json +0 -15
- cartography/data/jobs/cleanup/azure_import_snapshots_cleanup.json +0 -15
- cartography/data/jobs/cleanup/azure_import_virtual_machines_cleanup.json +0 -25
- cartography/data/jobs/cleanup/azure_sql_server_cleanup.json +0 -125
- cartography/data/jobs/cleanup/azure_storage_account_cleanup.json +0 -95
- cartography/data/jobs/cleanup/azure_subscriptions_cleanup.json +0 -14
- cartography/data/jobs/cleanup/azure_tenant_cleanup.json +0 -9
- cartography/data/jobs/cleanup/gcp_compute_vpc_subnet_cleanup.json +0 -35
- cartography/data/jobs/cleanup/gcp_crm_folder_cleanup.json +0 -23
- cartography/data/jobs/cleanup/gcp_crm_organization_cleanup.json +0 -17
- cartography/data/jobs/cleanup/gcp_crm_project_cleanup.json +0 -23
- cartography/data/jobs/cleanup/gcp_dns_cleanup.json +0 -29
- cartography/data/jobs/cleanup/gcp_gke_cluster_cleanup.json +0 -17
- cartography/data/jobs/cleanup/gcp_storage_bucket_cleanup.json +0 -29
- cartography/data/jobs/cleanup/gsuite_ingest_groups_cleanup.json +0 -23
- cartography/data/jobs/cleanup/gsuite_ingest_users_cleanup.json +0 -11
- cartography/data/jobs/cleanup/kubernetes_import_cleanup.json +0 -70
- cartography/intel/gcp/crm.py +0 -355
- cartography/intel/gsuite/api.py +0 -342
- cartography-0.104.0rc2.dist-info/RECORD +0 -455
- /cartography/data/jobs/{analysis → scoped_analysis}/aws_s3acl_analysis.json +0 -0
- /cartography/models/aws/{apigateway.py → apigateway/apigateway.py} +0 -0
- /cartography/models/aws/{apigatewaycertificate.py → apigateway/apigatewaycertificate.py} +0 -0
- /cartography/models/aws/{apigatewayresource.py → apigateway/apigatewayresource.py} +0 -0
- /cartography/models/aws/{apigatewaystage.py → apigateway/apigatewaystage.py} +0 -0
- {cartography-0.104.0rc2.dist-info → cartography-0.123.0.dist-info}/WHEEL +0 -0
- {cartography-0.104.0rc2.dist-info → cartography-0.123.0.dist-info}/licenses/LICENSE +0 -0
- {cartography-0.104.0rc2.dist-info → cartography-0.123.0.dist-info}/top_level.txt +0 -0
cartography/config.py
CHANGED
|
@@ -31,6 +31,8 @@ class Config:
|
|
|
31
31
|
:type aws_best_effort_mode: bool
|
|
32
32
|
:param aws_best_effort_mode: If True, AWS sync will not raise any exceptions, just log. If False (default),
|
|
33
33
|
exceptions will be raised.
|
|
34
|
+
:type aws_cloudtrail_management_events_lookback_hours: int
|
|
35
|
+
:param aws_cloudtrail_management_events_lookback_hours: Number of hours back to retrieve CloudTrail management events from. Optional.
|
|
34
36
|
:type azure_sync_all_subscriptions: bool
|
|
35
37
|
:param azure_sync_all_subscriptions: If True, Azure sync will run for all profiles in azureProfile.json. If
|
|
36
38
|
False (default), Azure sync will run using current user session via CLI credentials. Optional.
|
|
@@ -43,6 +45,8 @@ class Config:
|
|
|
43
45
|
:param azure_client_id: Client Id for connecting in a Service Principal Authentication approach. Optional.
|
|
44
46
|
:type azure_client_secret: str
|
|
45
47
|
:param azure_client_secret: Client Secret for connecting in a Service Principal Authentication approach. Optional.
|
|
48
|
+
:type azure_subscription_id: str | None
|
|
49
|
+
:param azure_subscription_id: The Azure Subscription ID to sync.
|
|
46
50
|
:type entra_tenant_id: str
|
|
47
51
|
:param entra_tenant_id: Tenant Id for connecting in a Service Principal Authentication approach. Optional.
|
|
48
52
|
:type entra_client_id: str
|
|
@@ -51,6 +55,12 @@ class Config:
|
|
|
51
55
|
:param entra_client_secret: Client Secret for connecting in a Service Principal Authentication approach. Optional.
|
|
52
56
|
:type aws_requested_syncs: str
|
|
53
57
|
:param aws_requested_syncs: Comma-separated list of AWS resources to sync. Optional.
|
|
58
|
+
:type aws_guardduty_severity_threshold: str
|
|
59
|
+
:param aws_guardduty_severity_threshold: GuardDuty severity threshold filter. Only findings at or above this
|
|
60
|
+
severity level will be synced. Valid values: LOW, MEDIUM, HIGH, CRITICAL. Optional.
|
|
61
|
+
:type experimental_aws_inspector_batch: int
|
|
62
|
+
:param experimental_aws_inspector_batch: EXPERIMENTAL: Batch size for AWS Inspector findings sync. Controls how
|
|
63
|
+
many findings are fetched, processed and cleaned up at a time. Default is 1000. Optional.
|
|
54
64
|
:type analysis_job_directory: str
|
|
55
65
|
:param analysis_job_directory: Path to a directory tree containing analysis jobs to run. Optional.
|
|
56
66
|
:type oci_sync_all_profiles: bool
|
|
@@ -63,10 +73,16 @@ class Config:
|
|
|
63
73
|
:param okta_saml_role_regex: The regex used to map okta groups to AWS roles. Optional.
|
|
64
74
|
:type github_config: str
|
|
65
75
|
:param github_config: Base64 encoded config object for GitHub ingestion. Optional.
|
|
76
|
+
:type github_commit_lookback_days: int
|
|
77
|
+
:param github_commit_lookback_days: Number of days to look back for GitHub commit tracking. Optional.
|
|
66
78
|
:type digitalocean_token: str
|
|
67
79
|
:param digitalocean_token: DigitalOcean access token. Optional.
|
|
68
80
|
:type permission_relationships_file: str
|
|
69
81
|
:param permission_relationships_file: File path for the resource permission relationships file. Optional.
|
|
82
|
+
:type azure_permission_relationships_file: str
|
|
83
|
+
:param azure_permission_relationships_file: File path for the Azure permission relationships file. Optional.
|
|
84
|
+
:type gcp_permission_relationships_file: str
|
|
85
|
+
:param gcp_permission_relationships_file: File path for the GCP resource permission relationships file. Optional.
|
|
70
86
|
:type jamf_base_uri: string
|
|
71
87
|
:param jamf_base_uri: Jamf data provider base URI, e.g. https://example.com/JSSResource. Optional.
|
|
72
88
|
:type jamf_user: string
|
|
@@ -87,6 +103,8 @@ class Config:
|
|
|
87
103
|
:param statsd_port: If statsd_enabled is True, send metrics to this port on statsd_host. Optional.
|
|
88
104
|
:type: k8s_kubeconfig: str
|
|
89
105
|
:param k8s_kubeconfig: Path to kubeconfig file for kubernetes cluster(s). Optional
|
|
106
|
+
:type: managed_kubernetes: str
|
|
107
|
+
:param managed_kubernetes: Type of managed Kubernetes service (e.g., "eks"). Optional.
|
|
90
108
|
:type: pagerduty_api_key: str
|
|
91
109
|
:param pagerduty_api_key: API authentication key for pagerduty. Optional.
|
|
92
110
|
:type: pagerduty_request_timeout: int
|
|
@@ -97,6 +115,10 @@ class Config:
|
|
|
97
115
|
:param gsuite_auth_method: Auth method (delegated, oauth) used for Google Workspace. Optional.
|
|
98
116
|
:type gsuite_config: str
|
|
99
117
|
:param gsuite_config: Base64 encoded config object or config file path for Google Workspace. Optional.
|
|
118
|
+
:type googleworkspace_auth_method: str
|
|
119
|
+
:param googleworkspace_auth_method: Auth method (delegated, oauth, default) used for Google Workspace. Optional.
|
|
120
|
+
:type googleworkspace_config: str
|
|
121
|
+
:param googleworkspace_config: Base64 encoded config object or config file path for Google Workspace. Optional.
|
|
100
122
|
:type lastpass_cid: str
|
|
101
123
|
:param lastpass_cid: Lastpass account ID. Optional.
|
|
102
124
|
:type lastpass_provhash: str
|
|
@@ -137,6 +159,61 @@ class Config:
|
|
|
137
159
|
:param openai_org_id: OpenAI organization id. Optional.
|
|
138
160
|
:type anthropic_apikey: string
|
|
139
161
|
:param anthropic_apikey: Anthropic API key. Optional.
|
|
162
|
+
:type airbyte_client_id: str
|
|
163
|
+
:param airbyte_client_id: Airbyte client ID for API authentication. Optional.
|
|
164
|
+
:type airbyte_client_secret: str
|
|
165
|
+
:param airbyte_client_secret: Airbyte client secret for API authentication. Optional.
|
|
166
|
+
:type airbyte_api_url: str
|
|
167
|
+
:param airbyte_api_url: Airbyte API base URL, e.g. https://api.airbyte.com/v1. Optional.
|
|
168
|
+
:type trivy_s3_bucket: str
|
|
169
|
+
:param trivy_s3_bucket: The S3 bucket name containing Trivy scan results. Optional.
|
|
170
|
+
:type trivy_s3_prefix: str
|
|
171
|
+
:param trivy_s3_prefix: The S3 prefix path containing Trivy scan results. Optional.
|
|
172
|
+
:type ontology_users_source: str
|
|
173
|
+
:param ontology_users_source: Comma-separated list of sources of truth for user data in the ontology. Optional.
|
|
174
|
+
:type ontology_devices_source: str
|
|
175
|
+
:param ontology_devices_source: Comma-separated list of sources of truth for client computers data in the ontology.
|
|
176
|
+
Optional.
|
|
177
|
+
:type trivy_results_dir: str
|
|
178
|
+
:param trivy_results_dir: Local directory containing Trivy scan results. Optional.
|
|
179
|
+
:type scaleway_access_key: str
|
|
180
|
+
:param scaleway_access_key: Scaleway access key. Optional.
|
|
181
|
+
:type scaleway_secret_key: str
|
|
182
|
+
:param scaleway_secret_key: Scaleway secret key. Optional.
|
|
183
|
+
:type scaleway_org: str
|
|
184
|
+
:param scaleway_org: Scaleway organization id. Optional.
|
|
185
|
+
:type sentinelone_api_url: string
|
|
186
|
+
:param sentinelone_api_url: SentinelOne API URL. Optional.
|
|
187
|
+
:type sentinelone_api_token: string
|
|
188
|
+
:param sentinelone_api_token: SentinelOne API token for authentication. Optional.
|
|
189
|
+
:type sentinelone_account_ids: list[str]
|
|
190
|
+
:param sentinelone_account_ids: List of SentinelOne account IDs to sync. Optional.
|
|
191
|
+
:type spacelift_api_endpoint: string
|
|
192
|
+
:param spacelift_api_endpoint: Spacelift GraphQL API endpoint. Optional.
|
|
193
|
+
:type spacelift_api_token: string
|
|
194
|
+
:param spacelift_api_token: Spacelift API token for authentication. Optional (can use API key instead).
|
|
195
|
+
:type spacelift_api_key_id: string
|
|
196
|
+
:param spacelift_api_key_id: Spacelift API key ID for token exchange authentication. Optional (alternative to token).
|
|
197
|
+
:type spacelift_api_key_secret: string
|
|
198
|
+
:param spacelift_api_key_secret: Spacelift API key secret for token exchange authentication. Optional (alternative to token).
|
|
199
|
+
:type spacelift_ec2_ownership_s3_bucket: string
|
|
200
|
+
:param spacelift_ec2_ownership_s3_bucket: S3 bucket name containing EC2 ownership data from Athena. Optional.
|
|
201
|
+
:type spacelift_ec2_ownership_s3_prefix: string
|
|
202
|
+
:param spacelift_ec2_ownership_s3_prefix: S3 prefix for EC2 ownership data from Athena. All JSON files under this prefix will be processed. Optional.
|
|
203
|
+
:type keycloak_client_id: str
|
|
204
|
+
:param keycloak_client_id: Keycloak client ID for API authentication. Optional.
|
|
205
|
+
:type keycloak_client_secret: str
|
|
206
|
+
:param keycloak_client_secret: Keycloak client secret for API authentication. Optional.
|
|
207
|
+
:type keycloak_realm: str
|
|
208
|
+
:param keycloak_realm: Keycloak realm for authentication (all realms will be synced). Optional.
|
|
209
|
+
:type keycloak_url: str
|
|
210
|
+
:param keycloak_url: Keycloak base URL, e.g. https://keycloak.example.com. Optional.
|
|
211
|
+
:type slack_token: str
|
|
212
|
+
:param slack_token: Slack API token. Optional.
|
|
213
|
+
:type slack_teams: list[str]
|
|
214
|
+
:param slack_teams: List of Slack team IDs to sync. Optional.
|
|
215
|
+
:type slack_channels_memberships: bool
|
|
216
|
+
:param slack_channels_memberships: If True, sync Slack channel membership data. Optional.
|
|
140
217
|
"""
|
|
141
218
|
|
|
142
219
|
def __init__(
|
|
@@ -151,23 +228,30 @@ class Config:
|
|
|
151
228
|
aws_sync_all_profiles=False,
|
|
152
229
|
aws_regions=None,
|
|
153
230
|
aws_best_effort_mode=False,
|
|
231
|
+
aws_cloudtrail_management_events_lookback_hours=None,
|
|
232
|
+
experimental_aws_inspector_batch=1000,
|
|
154
233
|
azure_sync_all_subscriptions=False,
|
|
155
234
|
azure_sp_auth=None,
|
|
156
235
|
azure_tenant_id=None,
|
|
157
236
|
azure_client_id=None,
|
|
158
237
|
azure_client_secret=None,
|
|
238
|
+
azure_subscription_id: str | None = None,
|
|
159
239
|
entra_tenant_id=None,
|
|
160
240
|
entra_client_id=None,
|
|
161
241
|
entra_client_secret=None,
|
|
162
242
|
aws_requested_syncs=None,
|
|
243
|
+
aws_guardduty_severity_threshold=None,
|
|
163
244
|
analysis_job_directory=None,
|
|
164
245
|
oci_sync_all_profiles=None,
|
|
165
246
|
okta_org_id=None,
|
|
166
247
|
okta_api_key=None,
|
|
167
248
|
okta_saml_role_regex=None,
|
|
168
249
|
github_config=None,
|
|
250
|
+
github_commit_lookback_days=30,
|
|
169
251
|
digitalocean_token=None,
|
|
170
252
|
permission_relationships_file=None,
|
|
253
|
+
azure_permission_relationships_file=None,
|
|
254
|
+
gcp_permission_relationships_file=None,
|
|
171
255
|
jamf_base_uri=None,
|
|
172
256
|
jamf_user=None,
|
|
173
257
|
jamf_password=None,
|
|
@@ -175,6 +259,7 @@ class Config:
|
|
|
175
259
|
kandji_tenant_id=None,
|
|
176
260
|
kandji_token=None,
|
|
177
261
|
k8s_kubeconfig=None,
|
|
262
|
+
managed_kubernetes=None,
|
|
178
263
|
statsd_enabled=False,
|
|
179
264
|
statsd_prefix=None,
|
|
180
265
|
statsd_host=None,
|
|
@@ -189,6 +274,8 @@ class Config:
|
|
|
189
274
|
crowdstrike_api_url=None,
|
|
190
275
|
gsuite_auth_method=None,
|
|
191
276
|
gsuite_config=None,
|
|
277
|
+
googleworkspace_auth_method=None,
|
|
278
|
+
googleworkspace_config=None,
|
|
192
279
|
lastpass_cid=None,
|
|
193
280
|
lastpass_provhash=None,
|
|
194
281
|
bigfix_username=None,
|
|
@@ -209,6 +296,33 @@ class Config:
|
|
|
209
296
|
openai_apikey=None,
|
|
210
297
|
openai_org_id=None,
|
|
211
298
|
anthropic_apikey=None,
|
|
299
|
+
airbyte_client_id=None,
|
|
300
|
+
airbyte_client_secret=None,
|
|
301
|
+
airbyte_api_url=None,
|
|
302
|
+
trivy_s3_bucket=None,
|
|
303
|
+
trivy_s3_prefix=None,
|
|
304
|
+
ontology_users_source=None,
|
|
305
|
+
ontology_devices_source=None,
|
|
306
|
+
trivy_results_dir=None,
|
|
307
|
+
scaleway_access_key=None,
|
|
308
|
+
scaleway_secret_key=None,
|
|
309
|
+
scaleway_org=None,
|
|
310
|
+
sentinelone_api_url=None,
|
|
311
|
+
sentinelone_api_token=None,
|
|
312
|
+
sentinelone_account_ids=None,
|
|
313
|
+
spacelift_api_endpoint=None,
|
|
314
|
+
spacelift_api_token=None,
|
|
315
|
+
spacelift_api_key_id=None,
|
|
316
|
+
spacelift_api_key_secret=None,
|
|
317
|
+
spacelift_ec2_ownership_s3_bucket=None,
|
|
318
|
+
spacelift_ec2_ownership_s3_prefix=None,
|
|
319
|
+
keycloak_client_id=None,
|
|
320
|
+
keycloak_client_secret=None,
|
|
321
|
+
keycloak_realm=None,
|
|
322
|
+
keycloak_url=None,
|
|
323
|
+
slack_token=None,
|
|
324
|
+
slack_teams=None,
|
|
325
|
+
slack_channels_memberships=False,
|
|
212
326
|
):
|
|
213
327
|
self.neo4j_uri = neo4j_uri
|
|
214
328
|
self.neo4j_user = neo4j_user
|
|
@@ -220,23 +334,32 @@ class Config:
|
|
|
220
334
|
self.aws_sync_all_profiles = aws_sync_all_profiles
|
|
221
335
|
self.aws_regions = aws_regions
|
|
222
336
|
self.aws_best_effort_mode = aws_best_effort_mode
|
|
337
|
+
self.aws_cloudtrail_management_events_lookback_hours = (
|
|
338
|
+
aws_cloudtrail_management_events_lookback_hours
|
|
339
|
+
)
|
|
340
|
+
self.experimental_aws_inspector_batch = experimental_aws_inspector_batch
|
|
223
341
|
self.azure_sync_all_subscriptions = azure_sync_all_subscriptions
|
|
224
342
|
self.azure_sp_auth = azure_sp_auth
|
|
225
343
|
self.azure_tenant_id = azure_tenant_id
|
|
226
344
|
self.azure_client_id = azure_client_id
|
|
227
345
|
self.azure_client_secret = azure_client_secret
|
|
346
|
+
self.azure_subscription_id = azure_subscription_id
|
|
228
347
|
self.entra_tenant_id = entra_tenant_id
|
|
229
348
|
self.entra_client_id = entra_client_id
|
|
230
349
|
self.entra_client_secret = entra_client_secret
|
|
231
350
|
self.aws_requested_syncs = aws_requested_syncs
|
|
351
|
+
self.aws_guardduty_severity_threshold = aws_guardduty_severity_threshold
|
|
232
352
|
self.analysis_job_directory = analysis_job_directory
|
|
233
353
|
self.oci_sync_all_profiles = oci_sync_all_profiles
|
|
234
354
|
self.okta_org_id = okta_org_id
|
|
235
355
|
self.okta_api_key = okta_api_key
|
|
236
356
|
self.okta_saml_role_regex = okta_saml_role_regex
|
|
237
357
|
self.github_config = github_config
|
|
358
|
+
self.github_commit_lookback_days = github_commit_lookback_days
|
|
238
359
|
self.digitalocean_token = digitalocean_token
|
|
239
360
|
self.permission_relationships_file = permission_relationships_file
|
|
361
|
+
self.azure_permission_relationships_file = azure_permission_relationships_file
|
|
362
|
+
self.gcp_permission_relationships_file = gcp_permission_relationships_file
|
|
240
363
|
self.jamf_base_uri = jamf_base_uri
|
|
241
364
|
self.jamf_user = jamf_user
|
|
242
365
|
self.jamf_password = jamf_password
|
|
@@ -244,6 +367,7 @@ class Config:
|
|
|
244
367
|
self.kandji_tenant_id = kandji_tenant_id
|
|
245
368
|
self.kandji_token = kandji_token
|
|
246
369
|
self.k8s_kubeconfig = k8s_kubeconfig
|
|
370
|
+
self.managed_kubernetes = managed_kubernetes
|
|
247
371
|
self.statsd_enabled = statsd_enabled
|
|
248
372
|
self.statsd_prefix = statsd_prefix
|
|
249
373
|
self.statsd_host = statsd_host
|
|
@@ -258,6 +382,8 @@ class Config:
|
|
|
258
382
|
self.crowdstrike_api_url = crowdstrike_api_url
|
|
259
383
|
self.gsuite_auth_method = gsuite_auth_method
|
|
260
384
|
self.gsuite_config = gsuite_config
|
|
385
|
+
self.googleworkspace_auth_method = googleworkspace_auth_method
|
|
386
|
+
self.googleworkspace_config = googleworkspace_config
|
|
261
387
|
self.lastpass_cid = lastpass_cid
|
|
262
388
|
self.lastpass_provhash = lastpass_provhash
|
|
263
389
|
self.bigfix_username = bigfix_username
|
|
@@ -278,3 +404,30 @@ class Config:
|
|
|
278
404
|
self.openai_apikey = openai_apikey
|
|
279
405
|
self.openai_org_id = openai_org_id
|
|
280
406
|
self.anthropic_apikey = anthropic_apikey
|
|
407
|
+
self.airbyte_client_id = airbyte_client_id
|
|
408
|
+
self.airbyte_client_secret = airbyte_client_secret
|
|
409
|
+
self.airbyte_api_url = airbyte_api_url
|
|
410
|
+
self.trivy_s3_bucket = trivy_s3_bucket
|
|
411
|
+
self.trivy_s3_prefix = trivy_s3_prefix
|
|
412
|
+
self.ontology_users_source = ontology_users_source
|
|
413
|
+
self.ontology_devices_source = ontology_devices_source
|
|
414
|
+
self.trivy_results_dir = trivy_results_dir
|
|
415
|
+
self.scaleway_access_key = scaleway_access_key
|
|
416
|
+
self.scaleway_secret_key = scaleway_secret_key
|
|
417
|
+
self.scaleway_org = scaleway_org
|
|
418
|
+
self.sentinelone_api_url = sentinelone_api_url
|
|
419
|
+
self.sentinelone_api_token = sentinelone_api_token
|
|
420
|
+
self.sentinelone_account_ids = sentinelone_account_ids
|
|
421
|
+
self.spacelift_api_endpoint = spacelift_api_endpoint
|
|
422
|
+
self.spacelift_api_token = spacelift_api_token
|
|
423
|
+
self.spacelift_api_key_id = spacelift_api_key_id
|
|
424
|
+
self.spacelift_api_key_secret = spacelift_api_key_secret
|
|
425
|
+
self.spacelift_ec2_ownership_s3_bucket = spacelift_ec2_ownership_s3_bucket
|
|
426
|
+
self.spacelift_ec2_ownership_s3_prefix = spacelift_ec2_ownership_s3_prefix
|
|
427
|
+
self.keycloak_client_id = keycloak_client_id
|
|
428
|
+
self.keycloak_client_secret = keycloak_client_secret
|
|
429
|
+
self.keycloak_realm = keycloak_realm
|
|
430
|
+
self.keycloak_url = keycloak_url
|
|
431
|
+
self.slack_token = slack_token
|
|
432
|
+
self.slack_teams = slack_teams
|
|
433
|
+
self.slack_channels_memberships = slack_channels_memberships
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Map principals that can manage Azure SQL Servers. Specifically,
|
|
2
|
+
# create an (:EntraUser|EntraGroup|EntraServicePrincipal)-[:CAN_MANAGE]->(:AzureSQLServer) relationship
|
|
3
|
+
# for principals that have a role assignment with _any_ of the below
|
|
4
|
+
# permissions. Similar logic applies for the other entries in this file.
|
|
5
|
+
- target_label: AzureSQLServer
|
|
6
|
+
permissions:
|
|
7
|
+
- Microsoft.Sql/servers/delete
|
|
8
|
+
relationship_name: CAN_MANAGE
|
|
9
|
+
|
|
10
|
+
# Map principals that can read Azure SQL Servers.
|
|
11
|
+
- target_label: AzureSQLServer
|
|
12
|
+
permissions:
|
|
13
|
+
- Microsoft.Sql/servers/read
|
|
14
|
+
relationship_name: CAN_READ
|
|
15
|
+
|
|
16
|
+
# Map principals that can write to Azure SQL Servers.
|
|
17
|
+
- target_label: AzureSQLServer
|
|
18
|
+
permissions:
|
|
19
|
+
- Microsoft.Sql/servers/write
|
|
20
|
+
relationship_name: CAN_WRITE
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Map principals that can read objects from a GCPBucket. Specifically,
|
|
2
|
+
# create an (:GCPPrincipal)-[:CAN_READ]->(:GCPBucket) relationship
|
|
3
|
+
# for principals that have a policy attached with _any_ of the below
|
|
4
|
+
# permissions. Similar logic applies for the other entries in this file.
|
|
5
|
+
- target_label: GCPBucket
|
|
6
|
+
permissions:
|
|
7
|
+
- storage.objects.get
|
|
8
|
+
relationship_name: CAN_READ
|
|
9
|
+
|
|
10
|
+
# Map principals that can write objects to a GCPBucket.
|
|
11
|
+
- target_label: GCPBucket
|
|
12
|
+
permissions:
|
|
13
|
+
- storage.objects.create
|
|
14
|
+
- storage.objects.update
|
|
15
|
+
relationship_name: CAN_WRITE
|
|
16
|
+
|
|
17
|
+
# Map principals that can delete objects from a GCPBucket.
|
|
18
|
+
- target_label: GCPBucket
|
|
19
|
+
permissions:
|
|
20
|
+
- storage.objects.delete
|
|
21
|
+
relationship_name: CAN_DELETE
|
cartography/data/indexes.cypher
CHANGED
|
@@ -21,33 +21,12 @@ CREATE INDEX IF NOT EXISTS FOR (n:AWSDNSRecord) ON (n.lastupdated);
|
|
|
21
21
|
CREATE INDEX IF NOT EXISTS FOR (n:AWSDNSZone) ON (n.name);
|
|
22
22
|
CREATE INDEX IF NOT EXISTS FOR (n:AWSDNSZone) ON (n.zoneid);
|
|
23
23
|
CREATE INDEX IF NOT EXISTS FOR (n:AWSDNSZone) ON (n.lastupdated);
|
|
24
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSGroup) ON (n.arn);
|
|
25
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSGroup) ON (n.lastupdated);
|
|
26
24
|
CREATE INDEX IF NOT EXISTS FOR (n:AWSInternetGateway) ON (n.id);
|
|
27
25
|
CREATE INDEX IF NOT EXISTS FOR (n:AWSInternetGateway) ON (n.lastupdated);
|
|
28
26
|
CREATE INDEX IF NOT EXISTS FOR (n:AWSIpv4CidrBlock) ON (n.id);
|
|
29
27
|
CREATE INDEX IF NOT EXISTS FOR (n:AWSIpv4CidrBlock) ON (n.lastupdated);
|
|
30
28
|
CREATE INDEX IF NOT EXISTS FOR (n:AWSIpv6CidrBlock) ON (n.id);
|
|
31
29
|
CREATE INDEX IF NOT EXISTS FOR (n:AWSIpv6CidrBlock) ON (n.lastupdated);
|
|
32
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSLambda) ON (n.id);
|
|
33
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSLambda) ON (n.lastupdated);
|
|
34
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSLambdaEventSourceMapping) ON (n.id);
|
|
35
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSLambdaEventSourceMapping) ON (n.lastupdated);
|
|
36
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSLambdaFunctionAlias) ON (n.id);
|
|
37
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSLambdaFunctionAlias) ON (n.lastupdated);
|
|
38
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSLambdaLayer) ON (n.id);
|
|
39
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSLambdaLayer) ON (n.lastupdated);
|
|
40
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSPeeringConnection) ON (n.id);
|
|
41
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSPeeringConnection) ON (n.lastupdated);
|
|
42
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSPolicy) ON (n.id);
|
|
43
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSPolicy) ON (n.name);
|
|
44
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSPolicy) ON (n.lastupdated);
|
|
45
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSPolicyStatement) ON (n.id);
|
|
46
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSPolicyStatement) ON (n.lastupdated);
|
|
47
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSPrincipal) ON (n.arn);
|
|
48
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSPrincipal) ON (n.lastupdated);
|
|
49
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSRole) ON (n.arn);
|
|
50
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSRole) ON (n.lastupdated);
|
|
51
30
|
CREATE INDEX IF NOT EXISTS FOR (n:AWSTag) ON (n.id);
|
|
52
31
|
CREATE INDEX IF NOT EXISTS FOR (n:AWSTag) ON (n.key);
|
|
53
32
|
CREATE INDEX IF NOT EXISTS FOR (n:AWSTag) ON (n.lastupdated);
|
|
@@ -56,13 +35,6 @@ CREATE INDEX IF NOT EXISTS FOR (n:AWSTransitGateway) ON (n.id);
|
|
|
56
35
|
CREATE INDEX IF NOT EXISTS FOR (n:AWSTransitGateway) ON (n.lastupdated);
|
|
57
36
|
CREATE INDEX IF NOT EXISTS FOR (n:AWSTransitGatewayAttachment) ON (n.id);
|
|
58
37
|
CREATE INDEX IF NOT EXISTS FOR (n:AWSTransitGatewayAttachment) ON (n.lastupdated);
|
|
59
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSUser) ON (n.arn);
|
|
60
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSUser) ON (n.name);
|
|
61
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSUser) ON (n.lastupdated);
|
|
62
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSVpc) ON (n.id);
|
|
63
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AWSVpc) ON (n.lastupdated);
|
|
64
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AccountAccessKey) ON (n.accesskeyid);
|
|
65
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AccountAccessKey) ON (n.lastupdated);
|
|
66
38
|
CREATE INDEX IF NOT EXISTS FOR (n:AutoScalingGroup) ON (n.arn);
|
|
67
39
|
CREATE INDEX IF NOT EXISTS FOR (n:AutoScalingGroup) ON (n.lastupdated);
|
|
68
40
|
CREATE INDEX IF NOT EXISTS FOR (n:CVE) ON (n.id);
|
|
@@ -81,14 +53,9 @@ CREATE INDEX IF NOT EXISTS FOR (n:DODroplet) ON (n.id);
|
|
|
81
53
|
CREATE INDEX IF NOT EXISTS FOR (n:DODroplet) ON (n.lastupdated);
|
|
82
54
|
CREATE INDEX IF NOT EXISTS FOR (n:DOProject) ON (n.id);
|
|
83
55
|
CREATE INDEX IF NOT EXISTS FOR (n:DOProject) ON (n.lastupdated);
|
|
84
|
-
CREATE INDEX IF NOT EXISTS FOR (n:EBSSnapshot) ON (n.id);
|
|
85
|
-
CREATE INDEX IF NOT EXISTS FOR (n:EBSSnapshot) ON (n.lastupdated);
|
|
86
56
|
CREATE INDEX IF NOT EXISTS FOR (n:EC2KeyPair) ON (n.keyfingerprint);
|
|
87
57
|
CREATE INDEX IF NOT EXISTS FOR (n:EC2ReservedInstance) ON (n.id);
|
|
88
58
|
CREATE INDEX IF NOT EXISTS FOR (n:EC2ReservedInstance) ON (n.lastupdated);
|
|
89
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECRImage) ON (n.id);
|
|
90
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECRImage) ON (n.digest);
|
|
91
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECRImage) ON (n.lastupdated);
|
|
92
59
|
CREATE INDEX IF NOT EXISTS FOR (n:ECRRepository) ON (n.id);
|
|
93
60
|
CREATE INDEX IF NOT EXISTS FOR (n:ECRRepository) ON (n.name);
|
|
94
61
|
CREATE INDEX IF NOT EXISTS FOR (n:ECRRepository) ON (n.uri);
|
|
@@ -99,21 +66,6 @@ CREATE INDEX IF NOT EXISTS FOR (n:ECRRepositoryImage) ON (n.tag);
|
|
|
99
66
|
CREATE INDEX IF NOT EXISTS FOR (n:ECRRepositoryImage) ON (n.lastupdated);
|
|
100
67
|
CREATE INDEX IF NOT EXISTS FOR (n:ECRScanFinding) ON (n.id);
|
|
101
68
|
CREATE INDEX IF NOT EXISTS FOR (n:ECRScanFinding) ON (n.lastupdated);
|
|
102
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECSCluster) ON (n.id);
|
|
103
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECSCluster) ON (n.lastupdated);
|
|
104
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECSContainerInstance) ON (n.id);
|
|
105
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECSContainerInstance) ON (n.lastupdated);
|
|
106
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECSService) ON (n.id);
|
|
107
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECSService) ON (n.lastupdated);
|
|
108
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECSTaskDefinition) ON (n.id);
|
|
109
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECSTaskDefinition) ON (n.arn);
|
|
110
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECSTaskDefinition) ON (n.lastupdated);
|
|
111
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECSTask) ON (n.id);
|
|
112
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECSTask) ON (n.lastupdated);
|
|
113
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECSContainerDefinition) ON (n.id);
|
|
114
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECSContainerDefinition) ON (n.lastupdated);
|
|
115
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECSContainer) ON (n.id);
|
|
116
|
-
CREATE INDEX IF NOT EXISTS FOR (n:ECSContainer) ON (n.lastupdated);
|
|
117
69
|
CREATE INDEX IF NOT EXISTS FOR (n:ElasticacheCluster) ON (n.id);
|
|
118
70
|
CREATE INDEX IF NOT EXISTS FOR (n:ElasticacheCluster) ON (n.arn);
|
|
119
71
|
CREATE INDEX IF NOT EXISTS FOR (n:ElasticacheCluster) ON (n.lastupdated);
|
|
@@ -129,12 +81,6 @@ CREATE INDEX IF NOT EXISTS FOR (n:ESDomain) ON (n.arn);
|
|
|
129
81
|
CREATE INDEX IF NOT EXISTS FOR (n:ESDomain) ON (n.id);
|
|
130
82
|
CREATE INDEX IF NOT EXISTS FOR (n:ESDomain) ON (n.name);
|
|
131
83
|
CREATE INDEX IF NOT EXISTS FOR (n:ESDomain) ON (n.lastupdated);
|
|
132
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GCPDNSZone) ON (n.id);
|
|
133
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GCPDNSZone) ON (n.lastupdated);
|
|
134
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GCPRecordSet) ON (n.id);
|
|
135
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GCPRecordSet) ON (n.lastupdated);
|
|
136
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GCPFolder) ON (n.id);
|
|
137
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GCPFolder) ON (n.lastupdated);
|
|
138
84
|
CREATE INDEX IF NOT EXISTS FOR (n:GCPForwardingRule) ON (n.id);
|
|
139
85
|
CREATE INDEX IF NOT EXISTS FOR (n:GCPForwardingRule) ON (n.lastupdated);
|
|
140
86
|
CREATE INDEX IF NOT EXISTS FOR (n:GCPInstance) ON (n.id);
|
|
@@ -145,49 +91,21 @@ CREATE INDEX IF NOT EXISTS FOR (n:GCPNetworkTag) ON (n.id);
|
|
|
145
91
|
CREATE INDEX IF NOT EXISTS FOR (n:GCPNetworkTag) ON (n.lastupdated);
|
|
146
92
|
CREATE INDEX IF NOT EXISTS FOR (n:GCPNicAccessConfig) ON (n.id);
|
|
147
93
|
CREATE INDEX IF NOT EXISTS FOR (n:GCPNicAccessConfig) ON (n.lastupdated);
|
|
148
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GCPOrganization) ON (n.id);
|
|
149
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GCPOrganization) ON (n.lastupdated);
|
|
150
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GCPProject) ON (n.id);
|
|
151
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GCPProject) ON (n.projectnumber);
|
|
152
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GCPProject) ON (n.lastupdated);
|
|
153
94
|
CREATE INDEX IF NOT EXISTS FOR (n:GCPBucket) ON (n.id);
|
|
154
95
|
CREATE INDEX IF NOT EXISTS FOR (n:GCPBucket) ON (n.lastupdated);
|
|
155
96
|
CREATE INDEX IF NOT EXISTS FOR (n:GCPBucketLabel) ON (n.key);
|
|
156
97
|
CREATE INDEX IF NOT EXISTS FOR (n:GCPBucketLabel) ON (n.lastupdated);
|
|
157
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GCPSubnet) ON (n.id);
|
|
158
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GCPSubnet) ON (n.lastupdated);
|
|
159
98
|
CREATE INDEX IF NOT EXISTS FOR (n:GCPVpc) ON (n.id);
|
|
160
99
|
CREATE INDEX IF NOT EXISTS FOR (n:GCPVpc) ON (n.lastupdated);
|
|
161
100
|
CREATE INDEX IF NOT EXISTS FOR (n:GitHubRepository) ON (n.id);
|
|
162
101
|
CREATE INDEX IF NOT EXISTS FOR (n:GitHubRepository) ON (n.lastupdated);
|
|
163
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GKECluster) ON (n.id);
|
|
164
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GKECluster) ON (n.lastupdated);
|
|
165
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GSuiteGroup) ON (n.email);
|
|
166
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GSuiteGroup) ON (n.id);
|
|
167
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GSuiteGroup) ON (n.lastupdated);
|
|
168
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GSuiteUser) ON (n.email);
|
|
169
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GSuiteUser) ON (n.id);
|
|
170
|
-
CREATE INDEX IF NOT EXISTS FOR (n:GSuiteUser) ON (n.lastupdated);
|
|
171
102
|
CREATE INDEX IF NOT EXISTS FOR (n:Ip) ON (n.id);
|
|
172
103
|
CREATE INDEX IF NOT EXISTS FOR (n:Ip) ON (n.ip);
|
|
173
104
|
CREATE INDEX IF NOT EXISTS FOR (n:Ip) ON (n.lastupdated);
|
|
174
|
-
CREATE INDEX IF NOT EXISTS FOR (n:IpPermissionInbound) ON (n.ruleid);
|
|
175
|
-
CREATE INDEX IF NOT EXISTS FOR (n:IpPermissionInbound) ON (n.lastupdated);
|
|
176
|
-
CREATE INDEX IF NOT EXISTS FOR (n:IpPermissionsEgress) ON (n.ruleid);
|
|
177
|
-
CREATE INDEX IF NOT EXISTS FOR (n:IpPermissionsEgress) ON (n.lastupdated);
|
|
178
105
|
CREATE INDEX IF NOT EXISTS FOR (n:IpRange) ON (n.id);
|
|
179
106
|
CREATE INDEX IF NOT EXISTS FOR (n:IpRange) ON (n.lastupdated);
|
|
180
|
-
CREATE INDEX IF NOT EXISTS FOR (n:IpRule) ON (n.ruleid);
|
|
181
|
-
CREATE INDEX IF NOT EXISTS FOR (n:IpRule) ON (n.lastupdated);
|
|
182
107
|
CREATE INDEX IF NOT EXISTS FOR (n:JamfComputerGroup) ON (n.id);
|
|
183
108
|
CREATE INDEX IF NOT EXISTS FOR (n:JamfComputerGroup) ON (n.lastupdated);
|
|
184
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KMSKey) ON (n.id);
|
|
185
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KMSKey) ON (n.arn);
|
|
186
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KMSKey) ON (n.lastupdated);
|
|
187
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KMSAlias) ON (n.id);
|
|
188
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KMSAlias) ON (n.lastupdated);
|
|
189
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KMSGrant) ON (n.id);
|
|
190
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KMSGrant) ON (n.lastupdated);
|
|
191
109
|
CREATE INDEX IF NOT EXISTS FOR (n:LaunchConfiguration) ON (n.id);
|
|
192
110
|
CREATE INDEX IF NOT EXISTS FOR (n:LaunchConfiguration) ON (n.name);
|
|
193
111
|
CREATE INDEX IF NOT EXISTS FOR (n:LaunchConfiguration) ON (n.lastupdated);
|
|
@@ -227,9 +145,6 @@ CREATE INDEX IF NOT EXISTS FOR (n:OCITenancy) ON (n.lastupdated);
|
|
|
227
145
|
CREATE INDEX IF NOT EXISTS FOR (n:OCIUser) ON (n.ocid);
|
|
228
146
|
CREATE INDEX IF NOT EXISTS FOR (n:OCIUser) ON (n.name);
|
|
229
147
|
CREATE INDEX IF NOT EXISTS FOR (n:OCIUser) ON (n.lastupdated);
|
|
230
|
-
CREATE INDEX IF NOT EXISTS FOR (n:Package) ON (n.id);
|
|
231
|
-
CREATE INDEX IF NOT EXISTS FOR (n:Package) ON (n.name);
|
|
232
|
-
CREATE INDEX IF NOT EXISTS FOR (n:Package) ON (n.lastupdated);
|
|
233
148
|
CREATE INDEX IF NOT EXISTS FOR (n:PagerDutyEscalationPolicy) ON (n.id);
|
|
234
149
|
CREATE INDEX IF NOT EXISTS FOR (n:PagerDutyEscalationPolicy) ON (n.name);
|
|
235
150
|
CREATE INDEX IF NOT EXISTS FOR (n:PagerDutyEscalationPolicy) ON (n.lastupdated);
|
|
@@ -285,8 +200,6 @@ CREATE INDEX IF NOT EXISTS FOR (n:S3Bucket) ON (n.id);
|
|
|
285
200
|
CREATE INDEX IF NOT EXISTS FOR (n:S3Bucket) ON (n.name);
|
|
286
201
|
CREATE INDEX IF NOT EXISTS FOR (n:S3Bucket) ON (n.arn);
|
|
287
202
|
CREATE INDEX IF NOT EXISTS FOR (n:S3Bucket) ON (n.lastupdated);
|
|
288
|
-
CREATE INDEX IF NOT EXISTS FOR (n:SecretsManagerSecret) ON (n.id);
|
|
289
|
-
CREATE INDEX IF NOT EXISTS FOR (n:SecretsManagerSecret) ON (n.lastupdated);
|
|
290
203
|
CREATE INDEX IF NOT EXISTS FOR (n:SecurityHub) ON (n.id);
|
|
291
204
|
CREATE INDEX IF NOT EXISTS FOR (n:SecurityHub) ON (n.lastupdated);
|
|
292
205
|
CREATE INDEX IF NOT EXISTS FOR (n:SpotlightVulnerability) ON (n.id);
|
|
@@ -296,104 +209,5 @@ CREATE INDEX IF NOT EXISTS FOR (n:SpotlightVulnerability) ON (n.lastupdated);
|
|
|
296
209
|
CREATE INDEX IF NOT EXISTS FOR (n:SQSQueue) ON (n.id);
|
|
297
210
|
CREATE INDEX IF NOT EXISTS FOR (n:SQSQueue) ON (n.lastupdated);
|
|
298
211
|
CREATE INDEX IF NOT EXISTS FOR (n:UserAccount) ON (n.id);
|
|
299
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureTenant) ON (n.id);
|
|
300
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureTenant) ON (n.lastupdated);
|
|
301
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzurePrincipal) ON (n.email);
|
|
302
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzurePrincipal) ON (n.lastupdated);
|
|
303
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureSubscription) ON (n.id);
|
|
304
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureSubscription) ON (n.lastupdated);
|
|
305
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBAccount) ON (n.id);
|
|
306
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBAccount) ON (n.lastupdated);
|
|
307
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBLocation) ON (n.id);
|
|
308
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBLocation) ON (n.lastupdated);
|
|
309
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBCorsPolicy) ON (n.id);
|
|
310
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBCorsPolicy) ON (n.lastupdated);
|
|
311
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBAccountFailoverPolicy) ON (n.id);
|
|
312
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBAccountFailoverPolicy) ON (n.lastupdated);
|
|
313
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCDBPrivateEndpointConnection) ON (n.id);
|
|
314
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCDBPrivateEndpointConnection) ON (n.lastupdated);
|
|
315
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBVirtualNetworkRule) ON (n.id);
|
|
316
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBVirtualNetworkRule) ON (n.lastupdated);
|
|
317
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBSqlDatabase) ON (n.id);
|
|
318
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBSqlDatabase) ON (n.lastupdated);
|
|
319
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBCassandraKeyspace) ON (n.id);
|
|
320
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBCassandraKeyspace) ON (n.lastupdated);
|
|
321
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBMongoDBDatabase) ON (n.id);
|
|
322
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBMongoDBDatabase) ON (n.lastupdated);
|
|
323
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBTableResource) ON (n.id);
|
|
324
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBTableResource) ON (n.lastupdated);
|
|
325
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBSqlContainer) ON (n.id);
|
|
326
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBSqlContainer) ON (n.lastupdated);
|
|
327
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBCassandraTable) ON (n.id);
|
|
328
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBCassandraTable) ON (n.lastupdated);
|
|
329
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBMongoDBCollection) ON (n.id);
|
|
330
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureCosmosDBMongoDBCollection) ON (n.lastupdated);
|
|
331
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageAccount) ON (n.id);
|
|
332
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageAccount) ON (n.lastupdated);
|
|
333
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageQueueService) ON (n.id);
|
|
334
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageQueueService) ON (n.lastupdated);
|
|
335
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageTableService) ON (n.id);
|
|
336
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageTableService) ON (n.lastupdated);
|
|
337
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageFileService) ON (n.id);
|
|
338
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageFileService) ON (n.lastupdated);
|
|
339
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageBlobService) ON (n.id);
|
|
340
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageBlobService) ON (n.lastupdated);
|
|
341
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageQueue) ON (n.id);
|
|
342
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageQueue) ON (n.lastupdated);
|
|
343
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageTable) ON (n.id);
|
|
344
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageTable) ON (n.lastupdated);
|
|
345
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageFileShare) ON (n.id);
|
|
346
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageFileShare) ON (n.lastupdated);
|
|
347
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageBlobContainer) ON (n.id);
|
|
348
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureStorageBlobContainer) ON (n.lastupdated);
|
|
349
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureSQLServer) ON (n.id);
|
|
350
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureSQLServer) ON (n.lastupdated);
|
|
351
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureServerDNSAlias) ON (n.id);
|
|
352
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureServerDNSAlias) ON (n.lastupdated);
|
|
353
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureServerADAdministrator) ON (n.id);
|
|
354
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureServerADAdministrator) ON (n.lastupdated);
|
|
355
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureRecoverableDatabase) ON (n.id);
|
|
356
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureRecoverableDatabase) ON (n.lastupdated);
|
|
357
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureRestorableDroppedDatabase) ON (n.id);
|
|
358
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureRestorableDroppedDatabase) ON (n.lastupdated);
|
|
359
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureFailoverGroup) ON (n.id);
|
|
360
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureFailoverGroup) ON (n.lastupdated);
|
|
361
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureElasticPool) ON (n.id);
|
|
362
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureElasticPool) ON (n.lastupdated);
|
|
363
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureSQLDatabase) ON (n.id);
|
|
364
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureSQLDatabase) ON (n.lastupdated);
|
|
365
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureReplicationLink) ON (n.id);
|
|
366
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureReplicationLink) ON (n.lastupdated);
|
|
367
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureDatabaseThreatDetectionPolicy) ON (n.id);
|
|
368
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureDatabaseThreatDetectionPolicy) ON (n.lastupdated);
|
|
369
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureRestorePoint) ON (n.id);
|
|
370
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureRestorePoint) ON (n.lastupdated);
|
|
371
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureTransparentDataEncryption) ON (n.id);
|
|
372
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureTransparentDataEncryption) ON (n.lastupdated);
|
|
373
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureVirtualMachine) ON (n.id);
|
|
374
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureVirtualMachine) ON (n.lastupdated);
|
|
375
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureDataDisk) ON (n.id);
|
|
376
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureDataDisk) ON (n.lastupdated);
|
|
377
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureDisk) ON (n.id);
|
|
378
|
-
CREATE INDEX IF NOT EXISTS FOR (n:AzureDisk) ON (n.lastupdated);
|
|
379
212
|
CREATE INDEX IF NOT EXISTS FOR (n:AzureSnapshot) ON (n.id);
|
|
380
213
|
CREATE INDEX IF NOT EXISTS FOR (n:AzureSnapshot) ON (n.lastupdated);
|
|
381
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesCluster) ON (n.id);
|
|
382
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesCluster) ON (n.name);
|
|
383
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesCluster) ON (n.lastupdated);
|
|
384
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesNamespace) ON (n.id);
|
|
385
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesNamespace) ON (n.name);
|
|
386
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesNamespace) ON (n.lastupdated);
|
|
387
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesPod) ON (n.id);
|
|
388
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesPod) ON (n.name);
|
|
389
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesPod) ON (n.lastupdated);
|
|
390
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesContainer) ON (n.id);
|
|
391
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesContainer) ON (n.name);
|
|
392
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesContainer) ON (n.image);
|
|
393
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesContainer) ON (n.lastupdated);
|
|
394
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesSecret) ON (n.id);
|
|
395
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesSecret) ON (n.name);
|
|
396
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesSecret) ON (n.lastupdated);
|
|
397
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesService) ON (n.id);
|
|
398
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesService) ON (n.name);
|
|
399
|
-
CREATE INDEX IF NOT EXISTS FOR (n:KubernetesService) ON (n.lastupdated);
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
"iterative": false
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
|
-
"__comment__": "Attach EC2KeyPairs with matching fingerprints to
|
|
26
|
-
"query": "MATCH (k1:EC2KeyPair)
|
|
25
|
+
"__comment__": "Attach EC2KeyPairs with matching fingerprints to each other and set duplicate_keyfingerprint = True. Use id(k1) < id(k2) to avoid Cartesian product warning and ensure O(1) comparison.",
|
|
26
|
+
"query": "MATCH (k1:EC2KeyPair) MATCH (k2:EC2KeyPair) WHERE id(k1) < id(k2) AND k1.keyfingerprint = k2.keyfingerprint SET k1.duplicate_keyfingerprint = True, k2.duplicate_keyfingerprint = True MERGE (k1)-[r:MATCHING_FINGERPRINT]-(k2) ON CREATE SET r.firstseen = $UPDATE_TAG SET r.lastupdated = $UPDATE_TAG RETURN COUNT(*) as TotalCompleted",
|
|
27
27
|
"iterative": false
|
|
28
28
|
}
|
|
29
29
|
]
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"statements": [
|
|
3
|
+
{
|
|
4
|
+
"__comment__": "Inherit group memberships from subgroups to parent groups",
|
|
5
|
+
"query": "MATCH (u:KeycloakUser)-[:MEMBER_OF]->(g:KeycloakGroup)-[:SUBGROUP_OF*1..5]->(pg:KeycloakGroup) MERGE (u)-[r:INHERITED_MEMBER_OF]->(pg) ON CREATE SET r.firstseen = $UPDATE_TAG SET r.lastupdated = $UPDATE_TAG",
|
|
6
|
+
"iterative": false
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"__comment__": "Assign roles to users based on group memberships",
|
|
10
|
+
"query": "MATCH (u:KeycloakUser)-[:MEMBER_OF|INHERITED_MEMBER_OR]->(g:KeycloakGroup)-[:GRANTS]->(r:KeycloakRole) MERGE (u)-[r0:ASSUME_ROLE]-(r) ON CREATE SET r0.firstseen = $UPDATE_TAG SET r0.lastupdated = $UPDATE_TAG",
|
|
11
|
+
"iterative": false
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"__comment__": "Propagate role grants to composite roles",
|
|
15
|
+
"query": "MATCH (r:KeycloakRole)-[:INCLUDES*1..5]->(c:KeycloakRole)-[:GRANTS]->(s:KeycloakScope) MERGE (r)-[r0:INDIRECT_GRANTS]-(s) ON CREATE SET r0.firstseen = $UPDATE_TAG SET r0.lastupdated = $UPDATE_TAG",
|
|
16
|
+
"iterative": false
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"__comment__": "Identify legitimate scopes for users based on assumed roles",
|
|
20
|
+
"query": "MATCH (u:KeycloakUser)-[:ASSUME_ROLE]-(:KeycloakRole)-[:GRANTS|INDIRECT_GRANTS]->(s:KeycloakScope) MERGE (u)-[r:ASSUME_SCOPE]->(s) ON CREATE SET r.firstseen = $UPDATE_TAG SET r.lastupdated = $UPDATE_TAG",
|
|
21
|
+
"iterative": false
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"__comment__": "Assign assumed scopes to users for orphan scopes (scopes not granted by any role)",
|
|
25
|
+
"query": "MATCH (s:KeycloakScope)<-[:RESOURCE]-(r:KeycloakRealm) MATCH (u:KeycloakUser)<-[:RESOURCE]-(r) WHERE NOT (s)<-[:GRANTS|INDIRECT_GRANTS]-(:KeycloakRole) MERGE (u)-[r0:ASSUME_SCOPE]->(s) SET r0.firstseen = $UPDATE_TAG SET r0.lastupdated = $UPDATE_TAG",
|
|
26
|
+
"iterative": false
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"name": "Keycloak inheritance analysis"
|
|
30
|
+
}
|
|
@@ -1,17 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"statements": [
|
|
3
|
-
{
|
|
4
|
-
"query": "MATCH (n:GCPVpc) WHERE n.lastupdated <> $UPDATE_TAG WITH n LIMIT $LIMIT_SIZE DETACH DELETE (n)",
|
|
5
|
-
"iterative": true,
|
|
6
|
-
"iterationsize": 100,
|
|
7
|
-
"__comment__": "Delete GCP VPCs that no longer exist and detach them from all previously connected nodes."
|
|
8
|
-
},
|
|
9
|
-
{
|
|
10
|
-
"query": "MATCH (:GCPVpc)<-[r:RESOURCE]-(:GCPProject) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r)",
|
|
11
|
-
"iterative": true,
|
|
12
|
-
"iterationsize": 100,
|
|
13
|
-
"__comment__": "Remove GCP VPC-to-Project relationships that are out of date."
|
|
14
|
-
},
|
|
15
3
|
{
|
|
16
4
|
"query": "MATCH (:GCPInstance)-[r:MEMBER_OF_GCP_VPC]->(:GCPVpc) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r)",
|
|
17
5
|
"iterative": true,
|