cartography 0.107.0rc2__tar.gz → 0.108.0rc1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of cartography might be problematic. Click here for more details.
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/.gitignore +1 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/AGENTS.md +36 -3
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/PKG-INFO +3 -3
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/README.md +2 -2
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/_version.py +2 -2
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/cli.py +10 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/config.py +5 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/indexes.cypher +0 -8
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/github_repos_cleanup.json +2 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/__init__.py +1 -0
- cartography-0.108.0rc1/cartography/intel/aws/cloudwatch.py +170 -0
- cartography-0.108.0rc1/cartography/intel/aws/ec2/security_groups.py +231 -0
- cartography-0.108.0rc1/cartography/intel/aws/ec2/snapshots.py +149 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/subnets.py +1 -1
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ecs.py +17 -0
- cartography-0.108.0rc1/cartography/intel/aws/guardduty.py +275 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/resources.py +2 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/github/repos.py +370 -28
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/sentinelone/__init__.py +8 -2
- cartography-0.108.0rc1/cartography/intel/sentinelone/application.py +248 -0
- cartography-0.108.0rc1/cartography/intel/sentinelone/utils.py +28 -0
- cartography-0.108.0rc1/cartography/models/aws/cloudwatch/log_metric_filter.py +79 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/networkinterfaces.py +2 -0
- cartography-0.108.0rc1/cartography/models/aws/ec2/security_group_rules.py +109 -0
- cartography-0.108.0rc1/cartography/models/aws/ec2/security_groups.py +90 -0
- cartography-0.108.0rc1/cartography/models/aws/ec2/snapshots.py +58 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/subnet_instance.py +2 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/subnet_networkinterface.py +2 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/volumes.py +20 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ecs/tasks.py +24 -1
- cartography-0.108.0rc1/cartography/models/aws/guardduty/__init__.py +1 -0
- cartography-0.108.0rc1/cartography/models/aws/guardduty/findings.py +102 -0
- cartography-0.108.0rc1/cartography/models/github/dependencies.py +74 -0
- cartography-0.108.0rc1/cartography/models/github/manifests.py +49 -0
- cartography-0.108.0rc1/cartography/models/sentinelone/application.py +44 -0
- cartography-0.108.0rc1/cartography/models/sentinelone/application_version.py +96 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography.egg-info/PKG-INFO +3 -3
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography.egg-info/SOURCES.txt +18 -2
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/aws/schema.md +87 -1
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/github/schema.md +67 -0
- cartography-0.108.0rc1/docs/root/modules/sentinelone/schema.md +138 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/setup.cfg +1 -1
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/cloudwatch.py +27 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/security_groups.py +53 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/snapshots.py +2 -2
- cartography-0.108.0rc1/tests/data/aws/guardduty.py +345 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/github/repos.py +48 -0
- cartography-0.108.0rc1/tests/data/sentinelone/application.py +154 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/test_ec2_instances.py +2 -2
- cartography-0.108.0rc1/tests/integration/cartography/intel/aws/ec2/test_ec2_security_groups.py +239 -0
- cartography-0.108.0rc1/tests/integration/cartography/intel/aws/ec2/test_ec2_snapshots.py +308 -0
- cartography-0.108.0rc1/tests/integration/cartography/intel/aws/ec2/test_ec2_subnets.py +167 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_cloudwatch.py +46 -1
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_ecs.py +42 -0
- cartography-0.108.0rc1/tests/integration/cartography/intel/aws/test_guardduty.py +174 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_init.py +1 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/github/test_repos.py +196 -1
- cartography-0.108.0rc1/tests/integration/cartography/intel/sentinelone/test_application.py +288 -0
- cartography-0.108.0rc1/tests/unit/cartography/intel/aws/test_guardduty.py +27 -0
- cartography-0.108.0rc1/tests/unit/cartography/intel/github/test_repos.py +102 -0
- cartography-0.108.0rc1/tests/unit/cartography/intel/sentinelone/test_application.py +350 -0
- cartography-0.107.0rc2/cartography/data/jobs/cleanup/aws_import_ec2_security_groupinfo_cleanup.json +0 -24
- cartography-0.107.0rc2/cartography/data/jobs/cleanup/aws_import_snapshots_cleanup.json +0 -30
- cartography-0.107.0rc2/cartography/intel/aws/cloudwatch.py +0 -93
- cartography-0.107.0rc2/cartography/intel/aws/ec2/security_groups.py +0 -213
- cartography-0.107.0rc2/cartography/intel/aws/ec2/snapshots.py +0 -186
- cartography-0.107.0rc2/cartography/intel/sentinelone/utils.py +0 -9
- cartography-0.107.0rc2/docs/root/modules/sentinelone/schema.md +0 -54
- cartography-0.107.0rc2/tests/integration/cartography/intel/aws/ec2/test_ec2_security_groups.py +0 -82
- cartography-0.107.0rc2/tests/integration/cartography/intel/aws/ec2/test_ec2_snapshots.py +0 -113
- cartography-0.107.0rc2/tests/integration/cartography/intel/aws/ec2/test_ec2_subnets.py +0 -80
- cartography-0.107.0rc2/tests/unit/cartography/intel/github/test_repos.py +0 -47
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/.cache/.gitignore +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/.devcontainer/devcontainer.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/.devcontainer/docker-compose.yml +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/.dockerignore +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/.env +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/.github/ISSUE_TEMPLATE/issue-report-feature-request.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/.github/dependabot.yml +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/.github/pull_request_template.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/.github/stale.yml +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/.github/workflows/ossf-scorecard.yml +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/.github/workflows/publish-to-ghcr-and-pypi.yml +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/.github/workflows/sphinx.yml +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/.github/workflows/test_suite.yml +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/.pre-commit-config.yaml +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/CODE_OF_CONDUCT.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/Dockerfile +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/GOVERNANCE.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/LICENSE +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/MAINTAINERS.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/Makefile +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/SECURITY.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/__main__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/client/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/client/aws/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/client/aws/ecr.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/client/aws/iam.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/client/core/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/client/core/tx.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/analysis/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/analysis/aws_ec2_asset_exposure.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/analysis/aws_ec2_keypair_analysis.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/analysis/aws_eks_asset_exposure.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/analysis/aws_foreign_accounts.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/analysis/aws_lambda_ecr.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/analysis/aws_s3acl_analysis.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/analysis/gcp_compute_asset_inet_exposure.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/analysis/gcp_gke_asset_exposure.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/analysis/gcp_gke_basic_auth.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/analysis/gsuite_human_link.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_account_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_dns_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_account_access_key_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_config_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_ec2_launch_configurations_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_ecr_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_ecs_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_elastic_ip_addresses_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_elasticache_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_es_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_groups_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_groups_membership_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_groups_policy_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_identity_center_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_internet_gateways_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_kms_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_lambda_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_principals_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_rds_clusters_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_rds_instances_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_rds_snapshots_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_redshift_clusters_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_reserved_instances_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_roles_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_roles_policy_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_s3_acl_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_s3_buckets_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_secrets_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_securityhub_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_sqs_queues_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_tags_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_tgw_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_users_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_vpc_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_import_vpc_peering_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_ingest_ec2_auto_scaling_groups_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_ingest_load_balancers_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_ingest_load_balancers_v2_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_ingest_subnets_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_kms_details.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_post_ingestion_principals_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/aws_s3_details.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/azure_cosmosdb_cassandra_keyspace_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/azure_cosmosdb_cors_details.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/azure_cosmosdb_mongodb_database_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/azure_cosmosdb_sql_database_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/azure_cosmosdb_table_resources_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/azure_database_account_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/azure_import_disks_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/azure_import_snapshots_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/azure_import_virtual_machines_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/azure_sql_server_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/azure_storage_account_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/azure_subscriptions_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/azure_tenant_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/crowdstrike_import_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/digitalocean_droplet_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/digitalocean_project_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/gcp_compute_firewall_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/gcp_compute_forwarding_rules_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/gcp_compute_instance_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/gcp_compute_vpc_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/gcp_compute_vpc_subnet_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/gcp_crm_folder_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/gcp_crm_organization_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/gcp_crm_project_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/gcp_dns_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/gcp_gke_cluster_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/gcp_storage_bucket_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/gsuite_ingest_groups_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/gsuite_ingest_users_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/jamf_import_computers_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/oci_import_compartments_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/oci_import_groups_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/oci_import_groups_membership_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/oci_import_policies_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/oci_import_users_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/oci_tenancy_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/okta_groups_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/okta_import_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/cleanup/pagerduty_import_cleanup.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/scoped_analysis/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/scoped_analysis/aws_ec2_iaminstanceprofile.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/jobs/scoped_analysis/semgrep_sca_risk_analysis.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/data/permission_relationships.yaml +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/driftdetect/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/driftdetect/__main__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/driftdetect/add_shortcut.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/driftdetect/cli.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/driftdetect/config.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/driftdetect/detect_deviations.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/driftdetect/get_states.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/driftdetect/model.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/driftdetect/reporter.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/driftdetect/serializers.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/driftdetect/shortcut.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/driftdetect/storage.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/driftdetect/util.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/graph/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/graph/cleanupbuilder.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/graph/context.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/graph/job.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/graph/querybuilder.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/graph/statement.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/airbyte/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/airbyte/connections.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/airbyte/destinations.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/airbyte/organizations.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/airbyte/sources.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/airbyte/tags.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/airbyte/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/airbyte/util.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/airbyte/workspaces.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/analysis.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/anthropic/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/anthropic/apikeys.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/anthropic/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/anthropic/util.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/anthropic/workspaces.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/acm.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/apigateway.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/cloudtrail.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/cloudtrail_management_events.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/codebuild.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/config.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/dynamodb.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/auto_scaling_groups.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/elastic_ip_addresses.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/images.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/instances.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/internet_gateways.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/key_pairs.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/launch_templates.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/load_balancer_v2s.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/load_balancers.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/network_acls.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/network_interfaces.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/reserved_instances.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/route_tables.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/tgw.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/util.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/volumes.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/vpc.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ec2/vpc_peerings.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ecr.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/efs.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/eks.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/elasticache.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/elasticsearch.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/emr.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/iam.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/iam_instance_profiles.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/identitycenter.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/inspector.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/kms.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/lambda_function.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/organizations.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/permission_relationships.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/rds.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/redshift.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/resourcegroupstaggingapi.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/route53.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/s3.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/s3accountpublicaccessblock.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/secretsmanager.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/securityhub.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/sns.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/sqs.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/ssm.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/util/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/util/arns.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/aws/util/common.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/azure/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/azure/compute.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/azure/cosmosdb.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/azure/sql.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/azure/storage.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/azure/subscription.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/azure/tenant.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/azure/util/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/azure/util/credentials.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/bigfix/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/bigfix/computers.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/cloudflare/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/cloudflare/accounts.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/cloudflare/dnsrecords.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/cloudflare/members.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/cloudflare/roles.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/cloudflare/zones.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/create_indexes.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/crowdstrike/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/crowdstrike/endpoints.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/crowdstrike/spotlight.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/crowdstrike/util.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/cve/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/cve/feed.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/digitalocean/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/digitalocean/compute.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/digitalocean/management.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/digitalocean/platform.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/dns.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/duo/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/duo/api_host.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/duo/endpoints.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/duo/groups.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/duo/phones.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/duo/tokens.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/duo/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/duo/web_authn_credentials.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/entra/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/entra/applications.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/entra/groups.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/entra/ou.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/entra/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/gcp/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/gcp/compute.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/gcp/crm.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/gcp/dns.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/gcp/gke.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/gcp/iam.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/gcp/storage.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/github/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/github/teams.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/github/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/github/util.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/gsuite/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/gsuite/api.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/jamf/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/jamf/computers.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/jamf/util.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/kandji/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/kandji/devices.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/kubernetes/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/kubernetes/clusters.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/kubernetes/namespaces.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/kubernetes/pods.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/kubernetes/secrets.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/kubernetes/services.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/kubernetes/util.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/lastpass/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/lastpass/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/oci/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/oci/iam.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/oci/organizations.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/oci/utils.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/okta/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/okta/applications.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/okta/awssaml.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/okta/factors.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/okta/groups.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/okta/organization.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/okta/origins.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/okta/roles.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/okta/sync_state.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/okta/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/okta/utils.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/openai/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/openai/adminapikeys.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/openai/apikeys.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/openai/projects.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/openai/serviceaccounts.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/openai/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/openai/util.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/pagerduty/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/pagerduty/escalation_policies.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/pagerduty/schedules.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/pagerduty/services.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/pagerduty/teams.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/pagerduty/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/pagerduty/vendors.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/scaleway/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/scaleway/iam/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/scaleway/iam/apikeys.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/scaleway/iam/applications.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/scaleway/iam/groups.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/scaleway/iam/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/scaleway/instances/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/scaleway/instances/flexibleips.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/scaleway/instances/instances.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/scaleway/projects.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/scaleway/storage/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/scaleway/storage/snapshots.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/scaleway/storage/volumes.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/scaleway/utils.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/semgrep/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/semgrep/dependencies.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/semgrep/deployment.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/semgrep/findings.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/sentinelone/account.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/sentinelone/agent.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/sentinelone/api.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/snipeit/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/snipeit/asset.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/snipeit/user.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/snipeit/util.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/tailscale/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/tailscale/acls.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/tailscale/devices.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/tailscale/postureintegrations.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/tailscale/tailnets.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/tailscale/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/tailscale/utils.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/trivy/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/intel/trivy/scanner.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/airbyte/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/airbyte/connection.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/airbyte/destination.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/airbyte/organization.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/airbyte/source.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/airbyte/stream.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/airbyte/tag.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/airbyte/user.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/airbyte/workspace.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/anthropic/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/anthropic/apikey.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/anthropic/organization.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/anthropic/user.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/anthropic/workspace.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/acm/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/acm/certificate.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/apigateway.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/apigatewaycertificate.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/apigatewayresource.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/apigatewaystage.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/cloudtrail/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/cloudtrail/management_events.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/cloudtrail/trail.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/cloudwatch/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/cloudwatch/loggroup.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/codebuild/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/codebuild/project.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/dynamodb/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/dynamodb/gsi.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/dynamodb/tables.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/auto_scaling_groups.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/images.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/instances.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/keypair.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/keypair_instance.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/launch_configurations.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/launch_template_versions.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/launch_templates.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/load_balancer_listeners.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/load_balancers.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/loadbalancerv2.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/network_acl_rules.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/network_acls.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/networkinterface_instance.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/privateip_networkinterface.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/reservations.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/route_table_associations.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/route_tables.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/routes.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/securitygroup_instance.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ec2/securitygroup_networkinterface.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ecs/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ecs/clusters.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ecs/container_definitions.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ecs/container_instances.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ecs/containers.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ecs/services.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ecs/task_definitions.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/efs/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/efs/access_point.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/efs/file_system.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/efs/mount_target.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/eks/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/eks/clusters.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/emr.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/iam/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/iam/instanceprofile.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/identitycenter/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/identitycenter/awsidentitycenter.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/identitycenter/awspermissionset.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/identitycenter/awsssouser.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/inspector/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/inspector/findings.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/inspector/packages.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/s3/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/s3/account_public_access_block.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/s3/notification.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/secretsmanager/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/secretsmanager/secret_version.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/sns/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/sns/topic.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/sns/topic_subscription.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/sqs/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/sqs/queue.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ssm/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ssm/instance_information.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ssm/instance_patch.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/aws/ssm/parameters.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/bigfix/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/bigfix/bigfix_computer.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/bigfix/bigfix_root.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/cloudflare/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/cloudflare/account.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/cloudflare/dnsrecord.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/cloudflare/member.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/cloudflare/role.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/cloudflare/zone.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/core/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/core/common.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/core/nodes.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/core/relationships.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/crowdstrike/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/crowdstrike/hosts.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/cve/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/cve/cve.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/cve/cve_feed.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/digitalocean/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/digitalocean/account.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/digitalocean/droplet.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/digitalocean/project.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/duo/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/duo/api_host.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/duo/endpoint.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/duo/group.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/duo/phone.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/duo/token.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/duo/user.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/duo/web_authn_credential.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/entra/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/entra/app_role_assignment.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/entra/application.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/entra/group.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/entra/ou.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/entra/tenant.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/entra/user.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/gcp/iam.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/github/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/github/orgs.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/github/teams.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/github/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/kandji/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/kandji/device.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/kandji/tenant.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/kubernetes/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/kubernetes/clusters.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/kubernetes/containers.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/kubernetes/namespaces.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/kubernetes/pods.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/kubernetes/secrets.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/kubernetes/services.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/lastpass/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/lastpass/tenant.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/lastpass/user.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/openai/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/openai/adminapikey.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/openai/apikey.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/openai/organization.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/openai/project.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/openai/serviceaccount.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/openai/user.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/scaleway/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/scaleway/iam/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/scaleway/iam/apikey.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/scaleway/iam/application.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/scaleway/iam/group.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/scaleway/iam/user.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/scaleway/instance/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/scaleway/instance/flexibleip.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/scaleway/instance/instance.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/scaleway/organization.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/scaleway/project.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/scaleway/storage/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/scaleway/storage/snapshot.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/scaleway/storage/volume.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/semgrep/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/semgrep/dependencies.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/semgrep/deployment.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/semgrep/findings.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/semgrep/locations.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/sentinelone/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/sentinelone/account.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/sentinelone/agent.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/snipeit/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/snipeit/asset.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/snipeit/tenant.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/snipeit/user.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/tailscale/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/tailscale/device.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/tailscale/group.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/tailscale/postureintegration.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/tailscale/tag.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/tailscale/tailnet.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/tailscale/user.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/trivy/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/trivy/findings.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/trivy/fix.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/models/trivy/package.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/py.typed +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/stats.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/sync.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography/util.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography.egg-info/dependency_links.txt +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography.egg-info/entry_points.txt +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography.egg-info/requires.txt +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/cartography.egg-info/top_level.txt +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/__main__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/airbyte.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/anthropic.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/azure.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/base.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/bigfix.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/cloudlare.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/crowdstrike.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/cve.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/digitalocean.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/duo.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/entra.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/github.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/kandji.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/lastpass.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/openai.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/scaleway.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/semgrep.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/snipeit.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/demo/seeds/tailscale.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/dev-entrypoint.sh +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/dev.Dockerfile +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docker-compose.yml +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/build.sh +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/conf.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/_static/custom.css +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/_templates/layout.html +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/_templates/partials/webfonts.html +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/contact.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/dev/developer-guide.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/dev/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/dev/matchlinks.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/dev/writing-analysis-jobs.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/dev/writing-intel-modules.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/accountsandrds.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/alice-bob-matchlinks.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/anonbuckets.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/app-direct.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/app-with-api.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/basic-dataflow.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/bucketsbyuser.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/cartography-schema-complete-open-source.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/changecolor.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/cncf-color.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/customizeview.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/docker-compose-run.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/dockercompose-flow.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/dockercompose-result.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/ec2-inet-open.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/exposed-internet.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/logo-horizontal.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/logo-vertical.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/logo-vertical.svg +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/nativeinstall-run.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/parallel-crons.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/pipeline-hive-mode.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/pipeline-neodash.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/poweruser.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/selectnode.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/unencryptedcounts.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/unencryptedinstances.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/images/yourowntestmachine.png +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/info.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/install.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/module-list.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/_cartography-metadata/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/airbyte/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/airbyte/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/airbyte/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/anthropic/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/anthropic/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/anthropic/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/aws/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/aws/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/aws/permissions-mapping.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/azure/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/azure/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/azure/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/bigfix/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/bigfix/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/bigfix/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/cloudflare/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/cloudflare/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/cloudflare/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/crowdstrike/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/crowdstrike/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/crowdstrike/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/cve/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/cve/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/cve/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/digitalocean/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/digitalocean/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/digitalocean/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/duo/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/duo/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/duo/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/entra/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/entra/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/entra/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/gcp/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/gcp/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/gcp/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/github/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/github/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/gsuite/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/gsuite/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/gsuite/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/jamf/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/jamf/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/kandji/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/kandji/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/kandji/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/kubernetes/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/kubernetes/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/kubernetes/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/lastpass/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/lastpass/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/lastpass/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/oci/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/oci/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/oci/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/okta/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/okta/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/okta/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/openai/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/openai/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/openai/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/pagerduty/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/pagerduty/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/pagerduty/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/scaleway/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/scaleway/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/scaleway/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/semgrep/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/semgrep/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/semgrep/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/sentinelone/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/sentinelone/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/snipeit/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/snipeit/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/snipeit/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/tailscale/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/tailscale/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/tailscale/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/trivy/config.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/trivy/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/modules/trivy/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/ops.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/usage/applications.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/usage/drift-detect.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/usage/index.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/usage/samplequeries.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/usage/schema.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/docs/root/usage/tutorial.md +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/pyproject.toml +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/setup.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/airbyte/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/airbyte/connections.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/airbyte/destinations.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/airbyte/organizations.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/airbyte/sources.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/airbyte/tags.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/airbyte/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/airbyte/workspaces.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/anthropic/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/anthropic/apikeys.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/anthropic/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/anthropic/workspaces.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/acm.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/apigateway.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/cloudtrail.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/cloudtrail_management_events.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/codebuild.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/config.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/dynamodb.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/auto_scaling_groups.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/elastic_ip_addresses.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/images.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/instances.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/internet_gateway.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/internet_gateways.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/key_pairs.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/launch_templates.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/load_balancers.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/network_acls/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/network_acls/instances.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/network_acls/network_acls.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/network_acls/subnets.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/network_acls/vpcs.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/network_interfaces.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/reserved_instances.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/route_tables.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/subnets.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/tgw.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/volumes.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/vpc_peerings.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ec2/vpcs.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ecr.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ecs.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/efs.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/eks.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/elasticache.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/emr.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/iam/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/iam/instance_profiles.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/iam/role_policies.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/iam/roles.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/iam/user_policies.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/identitycenter.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/inspector.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/kms.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/lambda_function.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/rds.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/redshift.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/resourcegroupstaggingapi.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/route53.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/s3.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/s3accountpublicaccessblock.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/secretsmanager.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/securityhub.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/sns.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/sqs.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/aws/ssm.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/azure/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/azure/compute.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/azure/cosmosdb.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/azure/sql.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/azure/storage.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/bigfix/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/bigfix/computers.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/cloudflare/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/cloudflare/accounts.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/cloudflare/dnsrecords.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/cloudflare/members.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/cloudflare/roles.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/cloudflare/zones.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/crowdstrike/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/crowdstrike/endpoints.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/crowdstrike/spotlight.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/cve/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/cve/feed.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/detectors/test_expectations.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/detectors/test_multiple_expectations.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/detectors/test_multiple_properties.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/digitalocean/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/digitalocean/compute.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/digitalocean/management.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/digitalocean/platform.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/duo/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/duo/endpoints.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/duo/groups.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/duo/phones.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/duo/tokens.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/duo/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/duo/web_authn_credentials.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/entra/applications.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/entra/groups.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/entra/ou.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/entra/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/gcp/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/gcp/compute.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/gcp/crm.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/gcp/dns.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/gcp/gke.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/gcp/iam.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/gcp/storage.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/github/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/github/rate_limit.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/github/teams.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/github/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/matchlink/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/matchlink/iam_permissions.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/querybuilder/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/querybuilder/sample_data/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/querybuilder/sample_data/case_insensitive_prop_ref.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/querybuilder/sample_data/helloworld_relationships.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/querybuilder/sample_data/multiple_attr_match.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/querybuilder/sample_data/simple_node_missing_fields.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/querybuilder/sample_models/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/querybuilder/sample_models/allow_unscoped.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/querybuilder/sample_models/asset_with_non_kwargs_tgm.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/querybuilder/sample_models/fake_emps_githubusers.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/querybuilder/sample_models/fake_emps_githubusers_fuzzy.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/querybuilder/sample_models/interesting_asset.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/querybuilder/sample_models/invalid_unscoped.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/querybuilder/sample_models/multiple_attr_match.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/graph/querybuilder/sample_models/simple_node.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/jamf/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/jamf/computers.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/jobs/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/jobs/sample.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/kandji/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/kandji/devices.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/kandji/tenant.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/kubernetes/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/kubernetes/clusters.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/kubernetes/namespaces.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/kubernetes/pods.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/kubernetes/secrets.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/kubernetes/services.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/lastpass/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/lastpass/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/oci/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/oci/iam.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/okta/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/okta/adminroles.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/okta/application.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/okta/groups.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/okta/trustedorigin.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/okta/userfactors.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/okta/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/okta/utils.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/openai/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/openai/adminapikeys.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/openai/apikeys.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/openai/projects.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/openai/serviceaccounts.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/openai/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/pagerduty/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/pagerduty/escalation_policies.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/pagerduty/schedules.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/pagerduty/services.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/pagerduty/teams.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/pagerduty/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/pagerduty/vendors.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/scaleway/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/scaleway/iam.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/scaleway/instances.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/scaleway/projects.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/scaleway/storages.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/semgrep/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/semgrep/dependencies.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/semgrep/deployment.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/semgrep/sca.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/sentinelone/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/sentinelone/account.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/sentinelone/agent.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/sentinelone/api.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/sentinelone/utils.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/snipeit/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/snipeit/assets.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/snipeit/tenants.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/snipeit/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/tailscale/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/tailscale/acls.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/tailscale/devices.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/tailscale/postureintegrations.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/tailscale/tailnets.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/tailscale/users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/test_cli_detectors/bad_shortcut/1.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/test_cli_detectors/bad_shortcut/2.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/test_cli_detectors/bad_shortcut/shortcut.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/test_cli_detectors/bad_shortcut/template.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/test_cli_detectors/detector/1.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/test_cli_detectors/detector/2.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/test_cli_detectors/detector/shortcut.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/test_cli_detectors/detector/template.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/test_update_detectors/invalid_query/shortcut.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/test_update_detectors/invalid_query/template.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/test_update_detectors/invalid_template/shortcut.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/test_update_detectors/invalid_template/template.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/test_update_detectors/test_detector/2019-01-01_00_00_01.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/test_update_detectors/test_detector/2019-01-01_00_00_02.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/test_update_detectors/test_detector/shortcut.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/test_update_detectors/test_detector/template.json +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/trivy/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/data/trivy/trivy_sample.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/client/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/client/aws/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/client/aws/test_iam.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/client/test_core.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/data/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/data/jobs/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/data/jobs/test_cleanup_jobs.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/data/jobs/test_syntax.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/graph/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/graph/test_cleanupbuilder.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/graph/test_cleanupbuilder_unscoped.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/graph/test_matchlink.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/graph/test_querybuilder_case_insensitive.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/graph/test_querybuilder_fuzzy_case_insensitive.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/graph/test_querybuilder_labels_and_var_num_rels.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/graph/test_querybuilder_match_on_multiple_attrs.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/graph/test_querybuilder_missing_fields_in_data.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/graph/test_querybuilder_rel_subsets.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/airbyte/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/airbyte/test_connections.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/airbyte/test_destinations.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/airbyte/test_organizations.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/airbyte/test_sources.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/airbyte/test_tags.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/airbyte/test_users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/airbyte/test_workspaces.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/anthropic/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/anthropic/test_apikeys.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/anthropic/test_users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/anthropic/test_workspaces.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/common.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/test_ec2_auto_scaling_groups.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/test_ec2_images.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/test_ec2_key_pairs.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/test_ec2_load_balancers.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/test_ec2_network_acls.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/test_ec2_network_interfaces.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/test_ec2_reserved_instances.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/test_ec2_route_tables.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/test_ec2_volumes.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/test_ec2_vpc_peerings.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/test_elastic_ip_addresses.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/test_internet_gateway.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/test_internet_gateways.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/test_launch_templates.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/test_tgw.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/ec2/test_vpc.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/iam/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/iam/test_iam.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/iam/test_role_policies.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/iam/test_user_policies.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/inspector/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/inspector/test_inspector_sync.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_acm.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_apigateway.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_cloudtrail.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_cloudtrail_management_events.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_codebuild.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_config.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_dynamodb.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_ecr.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_efs.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_eks.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_elasticache.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_emr.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_iam_instance_profiles.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_identitycenter.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_kms.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_lambda.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_rds.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_redshift.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_resourcegroupstaggingapi.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_route53.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_s3.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_s3_acls.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_s3accountpublicaccessblock.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_secretsmanager.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_securityhub.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_sns.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_sqs.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/aws/test_ssm.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/azure/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/azure/test_compute.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/azure/test_cosmosdb.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/azure/test_sql.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/azure/test_storage.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/bigfix/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/bigfix/test_bf_computers.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/cloudflare/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/cloudflare/test_accounts.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/cloudflare/test_dnsrecords.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/cloudflare/test_members.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/cloudflare/test_roles.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/cloudflare/test_zones.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/crowdstrike/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/crowdstrike/test_endpoints.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/crowdstrike/test_spotlight.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/cve/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/cve/test_feed.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/digitalocean/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/digitalocean/test_compute.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/digitalocean/test_management.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/digitalocean/test_platform.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/duo/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/duo/test_api_host.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/duo/test_endpoints.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/duo/test_groups.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/duo/test_phones.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/duo/test_tokens.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/duo/test_users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/duo/test_web_authn_credentials.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/entra/test_applications.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/entra/test_groups.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/entra/test_ous.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/entra/test_users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/gcp/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/gcp/test_compute.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/gcp/test_crm.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/gcp/test_dns.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/gcp/test_gke.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/gcp/test_iam.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/gcp/test_storage.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/github/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/github/test_teams.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/github/test_users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/jamf/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/jamf/test_jamf.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/kandji/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/kandji/test_kandji.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/kubernetes/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/kubernetes/test_clusters.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/kubernetes/test_namespaces.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/kubernetes/test_pods.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/kubernetes/test_secrets.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/kubernetes/test_services.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/lastpass/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/lastpass/test_users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/oci/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/oci/test_iam.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/okta/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/okta/test_awssaml.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/okta/test_group.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/openai/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/openai/test_adminapikeys.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/openai/test_apikeys.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/openai/test_projects.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/openai/test_serviceaccounts.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/openai/test_users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/pagerduty/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/pagerduty/test_escalation_policies.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/pagerduty/test_schedules.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/pagerduty/test_services.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/pagerduty/test_teams.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/pagerduty/test_users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/pagerduty/test_vendors.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/scaleway/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/scaleway/test_iam.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/scaleway/test_instances.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/scaleway/test_projects.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/scaleway/test_storage.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/semgrep/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/semgrep/common.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/semgrep/test_dependencies.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/semgrep/test_findings.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/sentinelone/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/sentinelone/test_account.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/sentinelone/test_agent.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/snipeit/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/snipeit/test_snipeit_assets.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/snipeit/test_snipeit_users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/tailscale/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/tailscale/test_devices.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/tailscale/test_groups.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/tailscale/test_postureintegrations.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/tailscale/test_tags.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/tailscale/test_tailnets.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/tailscale/test_users.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/trivy/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/intel/trivy/test_trivy_aws_ecr.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/test_cli.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/cartography/test_util.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/conftest.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/driftdetect/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/driftdetect/test_get_state.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/settings.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/test_basic.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/test_util.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/integration/util.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/client/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/client/core/test_tx.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/client/test_core.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/data/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/data/jobs/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/data/jobs/test_statement.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/data/jobs/test_syntax.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/data/test_graphjob.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/graph/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/graph/helpers.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/graph/test_cleanupbuilder.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/graph/test_cleanupbuilder_unscoped.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/graph/test_matchlink.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/graph/test_model.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/graph/test_querybuilder_build_attach_links_excs.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/graph/test_querybuilder_complex.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/graph/test_querybuilder_filter_selected_rels.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/graph/test_querybuilder_indexcreation.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/graph/test_querybuilder_onetomany.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/graph/test_querybuilder_simple.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/aws/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/aws/ec2/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/aws/ec2/test_launch_templates.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/aws/iam/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/aws/iam/test_iam.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/aws/iam/test_principal_policies.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/aws/test_acm.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/aws/test_apigateway.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/aws/test_cloudtrail_management_events.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/aws/test_identitycenter.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/aws/test_inspector.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/aws/test_permission_relationships.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/aws/test_resourcegroupstaggingapi.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/aws/test_util.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/cve/test_feed.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/entra/test_applications.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/entra/test_groups.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/gcp/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/gcp/test_compute.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/gcp/test_storage.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/github/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/github/test_github.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/github/test_teams.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/gsuite/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/gsuite/test_api.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/kandji/test_devices.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/oci/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/oci/test_iam.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/oci/test_organizations.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/oci/test_utils.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/okta/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/okta/test_admin_roles.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/okta/test_application.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/okta/test_awssaml.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/okta/test_factor.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/okta/test_group.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/okta/test_trusted_origin.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/okta/test_user.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/okta/test_utils.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/sentinelone/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/sentinelone/test_account.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/sentinelone/test_agent.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/sentinelone/test_api.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/sentinelone/test_utils.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/trivy/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/intel/trivy/test_scanner.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/test_sync.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/cartography/test_util.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/driftdetect/__init__.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/driftdetect/test_cli.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/driftdetect/test_detect_drift.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/driftdetect/test_detector.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/driftdetect/test_shortcuts.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/unit/test_hello_world.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/tests/utils.py +0 -0
- {cartography-0.107.0rc2 → cartography-0.108.0rc1}/uv.lock +0 -0
|
@@ -754,7 +754,7 @@ MOCK_USERS_RESPONSE = {
|
|
|
754
754
|
|
|
755
755
|
### Unit Tests
|
|
756
756
|
|
|
757
|
-
Test your transform functions in `tests/unit/cartography/intel/your_service/`:
|
|
757
|
+
(Optional) Test your transform functions in `tests/unit/cartography/intel/your_service/`:
|
|
758
758
|
|
|
759
759
|
```python
|
|
760
760
|
# tests/unit/cartography/intel/your_service/test_users.py
|
|
@@ -783,6 +783,10 @@ def test_transform_users():
|
|
|
783
783
|
|
|
784
784
|
Test actual Neo4j loading in `tests/integration/cartography/intel/your_service/`:
|
|
785
785
|
|
|
786
|
+
**Key Principle: Test outcomes, not implementation details.**
|
|
787
|
+
|
|
788
|
+
Focus on verifying that data is written to the graph as expected, rather than testing internal function parameters or implementation details. Mock external dependencies (APIs, databases) when necessary, but avoid brittle parameter testing.
|
|
789
|
+
|
|
786
790
|
```python
|
|
787
791
|
# tests/integration/cartography/intel/your_service/test_users.py
|
|
788
792
|
from unittest.mock import patch
|
|
@@ -813,7 +817,8 @@ def test_sync_users(mock_api, neo4j_session):
|
|
|
813
817
|
{"UPDATE_TAG": TEST_UPDATE_TAG, "TENANT_ID": TEST_TENANT_ID},
|
|
814
818
|
)
|
|
815
819
|
|
|
816
|
-
#
|
|
820
|
+
# ✅ DO: Test outcomes - verify data is written to the graph as expected
|
|
821
|
+
# Assert - Use check_nodes() instead of raw Neo4j queries.
|
|
817
822
|
expected_nodes = {
|
|
818
823
|
("user-123", "alice@example.com"),
|
|
819
824
|
("user-456", "bob@example.com"),
|
|
@@ -826,7 +831,8 @@ def test_sync_users(mock_api, neo4j_session):
|
|
|
826
831
|
}
|
|
827
832
|
assert check_nodes(neo4j_session, "YourServiceTenant", ["id"]) == expected_tenant_nodes
|
|
828
833
|
|
|
829
|
-
# Assert
|
|
834
|
+
# Assert relationships are created correctly.
|
|
835
|
+
# Use check_rels() instead of raw Neo4j queries for relationships
|
|
830
836
|
expected_rels = {
|
|
831
837
|
("user-123", TEST_TENANT_ID),
|
|
832
838
|
("user-456", TEST_TENANT_ID),
|
|
@@ -843,8 +849,35 @@ def test_sync_users(mock_api, neo4j_session):
|
|
|
843
849
|
)
|
|
844
850
|
== expected_rels
|
|
845
851
|
)
|
|
852
|
+
|
|
853
|
+
# ✅ DO: Mock external dependencies when needed
|
|
854
|
+
# mock_api.return_value = MOCK_USERS_RESPONSE # Good - provides test data
|
|
855
|
+
# (Prefer the decorator style though)
|
|
856
|
+
|
|
857
|
+
# ❌ DON'T: Test brittle implementation details
|
|
858
|
+
# mock_api.assert_called_once_with("fake-api-key", TEST_TENANT_ID) # Brittle!
|
|
859
|
+
# mock_api.assert_called_with(specific_params) # Brittle!
|
|
846
860
|
```
|
|
847
861
|
|
|
862
|
+
**What to Test:**
|
|
863
|
+
- ✅ **Outcomes**: Nodes created with correct properties
|
|
864
|
+
- ✅ **Outcomes**: Relationships created between expected nodes
|
|
865
|
+
|
|
866
|
+
**What NOT to Test:**
|
|
867
|
+
- ❌ **Implementation**: Function parameters passed to mocks (brittle!)
|
|
868
|
+
- ❌ **Implementation**: Internal function call order
|
|
869
|
+
- ❌ **Implementation**: Mock call counts unless absolutely necessary
|
|
870
|
+
|
|
871
|
+
**When to Mock:**
|
|
872
|
+
- ✅ External APIs (AWS, Azure, third-party services) - provide test data
|
|
873
|
+
- ✅ Database connections - avoid real connections
|
|
874
|
+
- ✅ Network calls - avoid real network requests
|
|
875
|
+
|
|
876
|
+
**When NOT to Mock:**
|
|
877
|
+
- ❌ Internal Cartography functions
|
|
878
|
+
- ❌ Data transformation logic
|
|
879
|
+
- ❌ The function that is being tested
|
|
880
|
+
|
|
848
881
|
## 📚 Common Patterns and Examples {#common-patterns}
|
|
849
882
|
|
|
850
883
|
### Pattern 1: Simple Service with Users (LastPass Style)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cartography
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.108.0rc1
|
|
4
4
|
Summary: Explore assets and their relationships across your technical infrastructure.
|
|
5
5
|
Maintainer: Cartography Contributors
|
|
6
6
|
License: apache2
|
|
@@ -82,14 +82,14 @@ You can learn more about the story behind Cartography in our [presentation at BS
|
|
|
82
82
|
|
|
83
83
|
## Supported platforms
|
|
84
84
|
- [Airbyte](https://cartography-cncf.github.io/cartography/modules/airbyte/index.html) - Organization, Workspace, User, Source, Destination, Connection, Tag, Stream
|
|
85
|
-
- [Amazon Web Services](https://cartography-cncf.github.io/cartography/modules/aws/index.html) - ACM, API Gateway, CloudWatch, CodeBuild, Config, EC2, ECS, ECR, Elasticsearch, Elastic Kubernetes Service (EKS), DynamoDB, IAM, Inspector, KMS, Lambda, RDS, Redshift, Route53, S3, Secrets Manager(Secret Versions), Security Hub, SQS, SSM, STS, Tags
|
|
85
|
+
- [Amazon Web Services](https://cartography-cncf.github.io/cartography/modules/aws/index.html) - ACM, API Gateway, CloudWatch, CodeBuild, Config, EC2, ECS, ECR, Elasticsearch, Elastic Kubernetes Service (EKS), DynamoDB, GuardDuty, IAM, Inspector, KMS, Lambda, RDS, Redshift, Route53, S3, Secrets Manager(Secret Versions), Security Hub, SQS, SSM, STS, Tags
|
|
86
86
|
- [Anthropic](https://cartography-cncf.github.io/cartography/modules/anthropic/index.html) - Organization, ApiKey, User, Workspace
|
|
87
87
|
- [BigFix](https://cartography-cncf.github.io/cartography/modules/bigfix/index.html) - Computers
|
|
88
88
|
- [Cloudflare](https://cartography-cncf.github.io/cartography/modules/cloudflare/index.html) - Account, Role, Member, Zone, DNSRecord
|
|
89
89
|
- [Crowdstrike Falcon](https://cartography-cncf.github.io/cartography/modules/crowdstrike/index.html) - Hosts, Spotlight vulnerabilities, CVEs
|
|
90
90
|
- [DigitalOcean](https://cartography-cncf.github.io/cartography/modules/digitalocean/index.html)
|
|
91
91
|
- [Duo](https://cartography-cncf.github.io/cartography/modules/duo/index.html) - Users, Groups, Endpoints
|
|
92
|
-
- [GitHub](https://cartography-cncf.github.io/cartography/modules/github/index.html) - repos, branches, users, teams
|
|
92
|
+
- [GitHub](https://cartography-cncf.github.io/cartography/modules/github/index.html) - repos, branches, users, teams, dependency graph manifests, dependencies
|
|
93
93
|
- [Google Cloud Platform](https://cartography-cncf.github.io/cartography/modules/gcp/index.html) - Cloud Resource Manager, Compute, DNS, Storage, Google Kubernetes Engine
|
|
94
94
|
- [Google GSuite](https://cartography-cncf.github.io/cartography/modules/gsuite/index.html) - users, groups
|
|
95
95
|
- [Kandji](https://cartography-cncf.github.io/cartography/modules/kandji/index.html) - Devices
|
|
@@ -22,14 +22,14 @@ You can learn more about the story behind Cartography in our [presentation at BS
|
|
|
22
22
|
|
|
23
23
|
## Supported platforms
|
|
24
24
|
- [Airbyte](https://cartography-cncf.github.io/cartography/modules/airbyte/index.html) - Organization, Workspace, User, Source, Destination, Connection, Tag, Stream
|
|
25
|
-
- [Amazon Web Services](https://cartography-cncf.github.io/cartography/modules/aws/index.html) - ACM, API Gateway, CloudWatch, CodeBuild, Config, EC2, ECS, ECR, Elasticsearch, Elastic Kubernetes Service (EKS), DynamoDB, IAM, Inspector, KMS, Lambda, RDS, Redshift, Route53, S3, Secrets Manager(Secret Versions), Security Hub, SQS, SSM, STS, Tags
|
|
25
|
+
- [Amazon Web Services](https://cartography-cncf.github.io/cartography/modules/aws/index.html) - ACM, API Gateway, CloudWatch, CodeBuild, Config, EC2, ECS, ECR, Elasticsearch, Elastic Kubernetes Service (EKS), DynamoDB, GuardDuty, IAM, Inspector, KMS, Lambda, RDS, Redshift, Route53, S3, Secrets Manager(Secret Versions), Security Hub, SQS, SSM, STS, Tags
|
|
26
26
|
- [Anthropic](https://cartography-cncf.github.io/cartography/modules/anthropic/index.html) - Organization, ApiKey, User, Workspace
|
|
27
27
|
- [BigFix](https://cartography-cncf.github.io/cartography/modules/bigfix/index.html) - Computers
|
|
28
28
|
- [Cloudflare](https://cartography-cncf.github.io/cartography/modules/cloudflare/index.html) - Account, Role, Member, Zone, DNSRecord
|
|
29
29
|
- [Crowdstrike Falcon](https://cartography-cncf.github.io/cartography/modules/crowdstrike/index.html) - Hosts, Spotlight vulnerabilities, CVEs
|
|
30
30
|
- [DigitalOcean](https://cartography-cncf.github.io/cartography/modules/digitalocean/index.html)
|
|
31
31
|
- [Duo](https://cartography-cncf.github.io/cartography/modules/duo/index.html) - Users, Groups, Endpoints
|
|
32
|
-
- [GitHub](https://cartography-cncf.github.io/cartography/modules/github/index.html) - repos, branches, users, teams
|
|
32
|
+
- [GitHub](https://cartography-cncf.github.io/cartography/modules/github/index.html) - repos, branches, users, teams, dependency graph manifests, dependencies
|
|
33
33
|
- [Google Cloud Platform](https://cartography-cncf.github.io/cartography/modules/gcp/index.html) - Cloud Resource Manager, Compute, DNS, Storage, Google Kubernetes Engine
|
|
34
34
|
- [Google GSuite](https://cartography-cncf.github.io/cartography/modules/gsuite/index.html) - users, groups
|
|
35
35
|
- [Kandji](https://cartography-cncf.github.io/cartography/modules/kandji/index.html) - Devices
|
|
@@ -17,5 +17,5 @@ __version__: str
|
|
|
17
17
|
__version_tuple__: VERSION_TUPLE
|
|
18
18
|
version_tuple: VERSION_TUPLE
|
|
19
19
|
|
|
20
|
-
__version__ = version = '0.
|
|
21
|
-
__version_tuple__ = version_tuple = (0,
|
|
20
|
+
__version__ = version = '0.108.0rc1'
|
|
21
|
+
__version_tuple__ = version_tuple = (0, 108, 0, 'rc1')
|
|
@@ -264,6 +264,16 @@ class CLI:
|
|
|
264
264
|
" If not specified, cartography by default will run all AWS sync modules available."
|
|
265
265
|
),
|
|
266
266
|
)
|
|
267
|
+
parser.add_argument(
|
|
268
|
+
"--aws-guardduty-severity-threshold",
|
|
269
|
+
type=str,
|
|
270
|
+
default=None,
|
|
271
|
+
help=(
|
|
272
|
+
"GuardDuty severity threshold filter. Only findings at or above this severity level will be synced. "
|
|
273
|
+
"Valid values: LOW, MEDIUM, HIGH, CRITICAL. If not specified, all findings (except archived) will be synced. "
|
|
274
|
+
"Example: 'HIGH' will sync only HIGH and CRITICAL findings, filtering out LOW and MEDIUM severity findings."
|
|
275
|
+
),
|
|
276
|
+
)
|
|
267
277
|
parser.add_argument(
|
|
268
278
|
"--analysis-job-directory",
|
|
269
279
|
type=str,
|
|
@@ -53,6 +53,9 @@ class Config:
|
|
|
53
53
|
:param entra_client_secret: Client Secret for connecting in a Service Principal Authentication approach. Optional.
|
|
54
54
|
:type aws_requested_syncs: str
|
|
55
55
|
:param aws_requested_syncs: Comma-separated list of AWS resources to sync. Optional.
|
|
56
|
+
:type aws_guardduty_severity_threshold: str
|
|
57
|
+
:param aws_guardduty_severity_threshold: GuardDuty severity threshold filter. Only findings at or above this
|
|
58
|
+
severity level will be synced. Valid values: LOW, MEDIUM, HIGH, CRITICAL. Optional.
|
|
56
59
|
:type analysis_job_directory: str
|
|
57
60
|
:param analysis_job_directory: Path to a directory tree containing analysis jobs to run. Optional.
|
|
58
61
|
:type oci_sync_all_profiles: bool
|
|
@@ -185,6 +188,7 @@ class Config:
|
|
|
185
188
|
entra_client_id=None,
|
|
186
189
|
entra_client_secret=None,
|
|
187
190
|
aws_requested_syncs=None,
|
|
191
|
+
aws_guardduty_severity_threshold=None,
|
|
188
192
|
analysis_job_directory=None,
|
|
189
193
|
oci_sync_all_profiles=None,
|
|
190
194
|
okta_org_id=None,
|
|
@@ -268,6 +272,7 @@ class Config:
|
|
|
268
272
|
self.entra_client_id = entra_client_id
|
|
269
273
|
self.entra_client_secret = entra_client_secret
|
|
270
274
|
self.aws_requested_syncs = aws_requested_syncs
|
|
275
|
+
self.aws_guardduty_severity_threshold = aws_guardduty_severity_threshold
|
|
271
276
|
self.analysis_job_directory = analysis_job_directory
|
|
272
277
|
self.oci_sync_all_profiles = oci_sync_all_profiles
|
|
273
278
|
self.okta_org_id = okta_org_id
|
|
@@ -81,8 +81,6 @@ CREATE INDEX IF NOT EXISTS FOR (n:DODroplet) ON (n.id);
|
|
|
81
81
|
CREATE INDEX IF NOT EXISTS FOR (n:DODroplet) ON (n.lastupdated);
|
|
82
82
|
CREATE INDEX IF NOT EXISTS FOR (n:DOProject) ON (n.id);
|
|
83
83
|
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
84
|
CREATE INDEX IF NOT EXISTS FOR (n:EC2KeyPair) ON (n.keyfingerprint);
|
|
87
85
|
CREATE INDEX IF NOT EXISTS FOR (n:EC2ReservedInstance) ON (n.id);
|
|
88
86
|
CREATE INDEX IF NOT EXISTS FOR (n:EC2ReservedInstance) ON (n.lastupdated);
|
|
@@ -156,14 +154,8 @@ CREATE INDEX IF NOT EXISTS FOR (n:GSuiteUser) ON (n.lastupdated);
|
|
|
156
154
|
CREATE INDEX IF NOT EXISTS FOR (n:Ip) ON (n.id);
|
|
157
155
|
CREATE INDEX IF NOT EXISTS FOR (n:Ip) ON (n.ip);
|
|
158
156
|
CREATE INDEX IF NOT EXISTS FOR (n:Ip) ON (n.lastupdated);
|
|
159
|
-
CREATE INDEX IF NOT EXISTS FOR (n:IpPermissionInbound) ON (n.ruleid);
|
|
160
|
-
CREATE INDEX IF NOT EXISTS FOR (n:IpPermissionInbound) ON (n.lastupdated);
|
|
161
|
-
CREATE INDEX IF NOT EXISTS FOR (n:IpPermissionsEgress) ON (n.ruleid);
|
|
162
|
-
CREATE INDEX IF NOT EXISTS FOR (n:IpPermissionsEgress) ON (n.lastupdated);
|
|
163
157
|
CREATE INDEX IF NOT EXISTS FOR (n:IpRange) ON (n.id);
|
|
164
158
|
CREATE INDEX IF NOT EXISTS FOR (n:IpRange) ON (n.lastupdated);
|
|
165
|
-
CREATE INDEX IF NOT EXISTS FOR (n:IpRule) ON (n.ruleid);
|
|
166
|
-
CREATE INDEX IF NOT EXISTS FOR (n:IpRule) ON (n.lastupdated);
|
|
167
159
|
CREATE INDEX IF NOT EXISTS FOR (n:JamfComputerGroup) ON (n.id);
|
|
168
160
|
CREATE INDEX IF NOT EXISTS FOR (n:JamfComputerGroup) ON (n.lastupdated);
|
|
169
161
|
CREATE INDEX IF NOT EXISTS FOR (n:KMSKey) ON (n.id);
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
"iterative": true,
|
|
20
20
|
"iterationsize": 100
|
|
21
21
|
},
|
|
22
|
+
|
|
22
23
|
{
|
|
23
24
|
"query": "MATCH (:GitHubBranch)-[r:BRANCH]->(:GitHubRepository) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r)",
|
|
24
25
|
"iterative": true,
|
|
@@ -39,6 +40,7 @@
|
|
|
39
40
|
"iterative": true,
|
|
40
41
|
"iterationsize": 100
|
|
41
42
|
},
|
|
43
|
+
|
|
42
44
|
{
|
|
43
45
|
"query": "MATCH (:GitHubUser)-[r:OUTSIDE_COLLAB_ADMIN]->(:GitHubRepository) WHERE r.lastupdated <> $UPDATE_TAG WITH r LIMIT $LIMIT_SIZE DELETE (r)",
|
|
44
46
|
"iterative": true,
|
|
@@ -310,6 +310,7 @@ def start_aws_ingestion(neo4j_session: neo4j.Session, config: Config) -> None:
|
|
|
310
310
|
common_job_parameters = {
|
|
311
311
|
"UPDATE_TAG": config.update_tag,
|
|
312
312
|
"permission_relationships_file": config.permission_relationships_file,
|
|
313
|
+
"aws_guardduty_severity_threshold": config.aws_guardduty_severity_threshold,
|
|
313
314
|
"aws_cloudtrail_management_events_lookback_hours": config.aws_cloudtrail_management_events_lookback_hours,
|
|
314
315
|
}
|
|
315
316
|
try:
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from typing import Any
|
|
3
|
+
from typing import Dict
|
|
4
|
+
from typing import List
|
|
5
|
+
|
|
6
|
+
import boto3
|
|
7
|
+
import neo4j
|
|
8
|
+
|
|
9
|
+
from cartography.client.core.tx import load
|
|
10
|
+
from cartography.graph.job import GraphJob
|
|
11
|
+
from cartography.intel.aws.ec2.util import get_botocore_config
|
|
12
|
+
from cartography.models.aws.cloudwatch.log_metric_filter import (
|
|
13
|
+
CloudWatchLogMetricFilterSchema,
|
|
14
|
+
)
|
|
15
|
+
from cartography.models.aws.cloudwatch.loggroup import CloudWatchLogGroupSchema
|
|
16
|
+
from cartography.util import aws_handle_regions
|
|
17
|
+
from cartography.util import timeit
|
|
18
|
+
|
|
19
|
+
logger = logging.getLogger(__name__)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@timeit
|
|
23
|
+
@aws_handle_regions
|
|
24
|
+
def get_cloudwatch_log_groups(
|
|
25
|
+
boto3_session: boto3.Session, region: str
|
|
26
|
+
) -> List[Dict[str, Any]]:
|
|
27
|
+
client = boto3_session.client(
|
|
28
|
+
"logs", region_name=region, config=get_botocore_config()
|
|
29
|
+
)
|
|
30
|
+
paginator = client.get_paginator("describe_log_groups")
|
|
31
|
+
logGroups = []
|
|
32
|
+
for page in paginator.paginate():
|
|
33
|
+
logGroups.extend(page["logGroups"])
|
|
34
|
+
return logGroups
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
@timeit
|
|
38
|
+
@aws_handle_regions
|
|
39
|
+
def get_cloudwatch_log_metric_filters(
|
|
40
|
+
boto3_session: boto3.Session, region: str
|
|
41
|
+
) -> List[Dict[str, Any]]:
|
|
42
|
+
logs_client = boto3_session.client(
|
|
43
|
+
"logs", region_name=region, config=get_botocore_config()
|
|
44
|
+
)
|
|
45
|
+
paginator = logs_client.get_paginator("describe_metric_filters")
|
|
46
|
+
metric_filters = []
|
|
47
|
+
|
|
48
|
+
for page in paginator.paginate():
|
|
49
|
+
metric_filters.extend(page.get("metricFilters", []))
|
|
50
|
+
|
|
51
|
+
return metric_filters
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def transform_metric_filters(
|
|
55
|
+
metric_filters: List[Dict[str, Any]], region: str
|
|
56
|
+
) -> List[Dict[str, Any]]:
|
|
57
|
+
"""
|
|
58
|
+
Transform CloudWatch log metric filter data for ingestion into Neo4j.
|
|
59
|
+
Ensures that the 'id' field is a unique combination of logGroupName and filterName.
|
|
60
|
+
"""
|
|
61
|
+
transformed_filters = []
|
|
62
|
+
for filter in metric_filters:
|
|
63
|
+
transformed_filter = {
|
|
64
|
+
"id": f"{filter['logGroupName']}:{filter['filterName']}",
|
|
65
|
+
"arn": f"{filter['logGroupName']}:{filter['filterName']}",
|
|
66
|
+
"filterName": filter["filterName"],
|
|
67
|
+
"filterPattern": filter.get("filterPattern"),
|
|
68
|
+
"logGroupName": filter["logGroupName"],
|
|
69
|
+
"metricName": filter["metricTransformations"][0]["metricName"],
|
|
70
|
+
"metricNamespace": filter["metricTransformations"][0]["metricNamespace"],
|
|
71
|
+
"metricValue": filter["metricTransformations"][0]["metricValue"],
|
|
72
|
+
"Region": region,
|
|
73
|
+
}
|
|
74
|
+
transformed_filters.append(transformed_filter)
|
|
75
|
+
return transformed_filters
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
@timeit
|
|
79
|
+
def load_cloudwatch_log_groups(
|
|
80
|
+
neo4j_session: neo4j.Session,
|
|
81
|
+
data: List[Dict[str, Any]],
|
|
82
|
+
region: str,
|
|
83
|
+
current_aws_account_id: str,
|
|
84
|
+
aws_update_tag: int,
|
|
85
|
+
) -> None:
|
|
86
|
+
logger.info(
|
|
87
|
+
f"Loading CloudWatch {len(data)} log groups for region '{region}' into graph.",
|
|
88
|
+
)
|
|
89
|
+
load(
|
|
90
|
+
neo4j_session,
|
|
91
|
+
CloudWatchLogGroupSchema(),
|
|
92
|
+
data,
|
|
93
|
+
lastupdated=aws_update_tag,
|
|
94
|
+
Region=region,
|
|
95
|
+
AWS_ID=current_aws_account_id,
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
@timeit
|
|
100
|
+
def load_cloudwatch_log_metric_filters(
|
|
101
|
+
neo4j_session: neo4j.Session,
|
|
102
|
+
data: List[Dict[str, Any]],
|
|
103
|
+
region: str,
|
|
104
|
+
current_aws_account_id: str,
|
|
105
|
+
aws_update_tag: int,
|
|
106
|
+
) -> None:
|
|
107
|
+
logger.info(
|
|
108
|
+
f"Loading CloudWatch {len(data)} log metric filters for region '{region}' into graph.",
|
|
109
|
+
)
|
|
110
|
+
load(
|
|
111
|
+
neo4j_session,
|
|
112
|
+
CloudWatchLogMetricFilterSchema(),
|
|
113
|
+
data,
|
|
114
|
+
lastupdated=aws_update_tag,
|
|
115
|
+
Region=region,
|
|
116
|
+
AWS_ID=current_aws_account_id,
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
@timeit
|
|
121
|
+
def cleanup(
|
|
122
|
+
neo4j_session: neo4j.Session,
|
|
123
|
+
common_job_parameters: Dict[str, Any],
|
|
124
|
+
) -> None:
|
|
125
|
+
logger.debug("Running CloudWatch cleanup job.")
|
|
126
|
+
cleanup_job = GraphJob.from_node_schema(
|
|
127
|
+
CloudWatchLogGroupSchema(), common_job_parameters
|
|
128
|
+
)
|
|
129
|
+
cleanup_job.run(neo4j_session)
|
|
130
|
+
GraphJob.from_node_schema(
|
|
131
|
+
CloudWatchLogMetricFilterSchema(), common_job_parameters
|
|
132
|
+
).run(neo4j_session)
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
@timeit
|
|
136
|
+
def sync(
|
|
137
|
+
neo4j_session: neo4j.Session,
|
|
138
|
+
boto3_session: boto3.session.Session,
|
|
139
|
+
regions: List[str],
|
|
140
|
+
current_aws_account_id: str,
|
|
141
|
+
update_tag: int,
|
|
142
|
+
common_job_parameters: Dict[str, Any],
|
|
143
|
+
) -> None:
|
|
144
|
+
for region in regions:
|
|
145
|
+
logger.info(
|
|
146
|
+
f"Syncing CloudWatch for region '{region}' in account '{current_aws_account_id}'.",
|
|
147
|
+
)
|
|
148
|
+
logGroups = get_cloudwatch_log_groups(boto3_session, region)
|
|
149
|
+
group_data: List[Dict[str, Any]] = []
|
|
150
|
+
for logGroup in logGroups:
|
|
151
|
+
group_data.append(logGroup)
|
|
152
|
+
|
|
153
|
+
load_cloudwatch_log_groups(
|
|
154
|
+
neo4j_session,
|
|
155
|
+
group_data,
|
|
156
|
+
region,
|
|
157
|
+
current_aws_account_id,
|
|
158
|
+
update_tag,
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
metric_filters = get_cloudwatch_log_metric_filters(boto3_session, region)
|
|
162
|
+
transformed_filters = transform_metric_filters(metric_filters, region)
|
|
163
|
+
load_cloudwatch_log_metric_filters(
|
|
164
|
+
neo4j_session,
|
|
165
|
+
transformed_filters,
|
|
166
|
+
region,
|
|
167
|
+
current_aws_account_id,
|
|
168
|
+
update_tag,
|
|
169
|
+
)
|
|
170
|
+
cleanup(neo4j_session, common_job_parameters)
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from collections import namedtuple
|
|
3
|
+
from typing import Any
|
|
4
|
+
from typing import Dict
|
|
5
|
+
from typing import List
|
|
6
|
+
|
|
7
|
+
import boto3
|
|
8
|
+
import neo4j
|
|
9
|
+
|
|
10
|
+
from cartography.client.core.tx import load
|
|
11
|
+
from cartography.graph.job import GraphJob
|
|
12
|
+
from cartography.models.aws.ec2.security_group_rules import IpPermissionInboundSchema
|
|
13
|
+
from cartography.models.aws.ec2.security_group_rules import IpRangeSchema
|
|
14
|
+
from cartography.models.aws.ec2.security_group_rules import IpRuleSchema
|
|
15
|
+
from cartography.models.aws.ec2.security_groups import EC2SecurityGroupSchema
|
|
16
|
+
from cartography.models.aws.ec2.securitygroup_instance import (
|
|
17
|
+
EC2SecurityGroupInstanceSchema,
|
|
18
|
+
)
|
|
19
|
+
from cartography.util import aws_handle_regions
|
|
20
|
+
from cartography.util import timeit
|
|
21
|
+
|
|
22
|
+
from .util import get_botocore_config
|
|
23
|
+
|
|
24
|
+
logger = logging.getLogger(__name__)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@timeit
|
|
28
|
+
@aws_handle_regions
|
|
29
|
+
def get_ec2_security_group_data(
|
|
30
|
+
boto3_session: boto3.session.Session,
|
|
31
|
+
region: str,
|
|
32
|
+
) -> List[Dict]:
|
|
33
|
+
client = boto3_session.client(
|
|
34
|
+
"ec2",
|
|
35
|
+
region_name=region,
|
|
36
|
+
config=get_botocore_config(),
|
|
37
|
+
)
|
|
38
|
+
paginator = client.get_paginator("describe_security_groups")
|
|
39
|
+
security_groups: List[Dict] = []
|
|
40
|
+
for page in paginator.paginate():
|
|
41
|
+
security_groups.extend(page["SecurityGroups"])
|
|
42
|
+
return security_groups
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
Ec2SecurityGroupData = namedtuple(
|
|
46
|
+
"Ec2SecurityGroupData",
|
|
47
|
+
["groups", "inbound_rules", "egress_rules", "ranges"],
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def transform_ec2_security_group_data(
|
|
52
|
+
data: List[Dict[str, Any]],
|
|
53
|
+
) -> Ec2SecurityGroupData:
|
|
54
|
+
groups: List[Dict[str, Any]] = []
|
|
55
|
+
inbound_rules: List[Dict[str, Any]] = []
|
|
56
|
+
egress_rules: List[Dict[str, Any]] = []
|
|
57
|
+
ranges: List[Dict[str, Any]] = []
|
|
58
|
+
|
|
59
|
+
for group in data:
|
|
60
|
+
group_record = {
|
|
61
|
+
"GroupId": group["GroupId"],
|
|
62
|
+
"GroupName": group.get("GroupName"),
|
|
63
|
+
"Description": group.get("Description"),
|
|
64
|
+
"VpcId": group.get("VpcId"),
|
|
65
|
+
}
|
|
66
|
+
# Collect referenced security groups for relationship loading
|
|
67
|
+
source_group_ids: set[str] = set()
|
|
68
|
+
|
|
69
|
+
for rule_type, target in (
|
|
70
|
+
("IpPermissions", inbound_rules),
|
|
71
|
+
("IpPermissionsEgress", egress_rules),
|
|
72
|
+
):
|
|
73
|
+
for rule in group.get(rule_type, []):
|
|
74
|
+
protocol = rule.get("IpProtocol", "all")
|
|
75
|
+
from_port = rule.get("FromPort")
|
|
76
|
+
to_port = rule.get("ToPort")
|
|
77
|
+
rule_id = (
|
|
78
|
+
f"{group['GroupId']}/{rule_type}/{from_port}{to_port}{protocol}"
|
|
79
|
+
)
|
|
80
|
+
target.append(
|
|
81
|
+
{
|
|
82
|
+
"RuleId": rule_id,
|
|
83
|
+
"GroupId": group["GroupId"],
|
|
84
|
+
"Protocol": protocol,
|
|
85
|
+
"FromPort": from_port,
|
|
86
|
+
"ToPort": to_port,
|
|
87
|
+
},
|
|
88
|
+
)
|
|
89
|
+
for ip_range in rule.get("IpRanges", []):
|
|
90
|
+
ranges.append({"RangeId": ip_range["CidrIp"], "RuleId": rule_id})
|
|
91
|
+
for pair in rule.get("UserIdGroupPairs", []):
|
|
92
|
+
sg_id = pair.get("GroupId")
|
|
93
|
+
if sg_id:
|
|
94
|
+
source_group_ids.add(sg_id)
|
|
95
|
+
|
|
96
|
+
group_record["SOURCE_GROUP_IDS"] = list(source_group_ids)
|
|
97
|
+
groups.append(group_record)
|
|
98
|
+
|
|
99
|
+
return Ec2SecurityGroupData(
|
|
100
|
+
groups=groups,
|
|
101
|
+
inbound_rules=inbound_rules,
|
|
102
|
+
egress_rules=egress_rules,
|
|
103
|
+
ranges=ranges,
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
@timeit
|
|
108
|
+
def load_ip_rules(
|
|
109
|
+
neo4j_session: neo4j.Session,
|
|
110
|
+
data: List[Dict[str, Any]],
|
|
111
|
+
inbound: bool,
|
|
112
|
+
region: str,
|
|
113
|
+
aws_account_id: str,
|
|
114
|
+
update_tag: int,
|
|
115
|
+
) -> None:
|
|
116
|
+
schema = IpPermissionInboundSchema() if inbound else IpRuleSchema()
|
|
117
|
+
load(
|
|
118
|
+
neo4j_session,
|
|
119
|
+
schema,
|
|
120
|
+
data,
|
|
121
|
+
Region=region,
|
|
122
|
+
AWS_ID=aws_account_id,
|
|
123
|
+
lastupdated=update_tag,
|
|
124
|
+
)
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
@timeit
|
|
128
|
+
def load_ip_ranges(
|
|
129
|
+
neo4j_session: neo4j.Session,
|
|
130
|
+
data: List[Dict[str, Any]],
|
|
131
|
+
region: str,
|
|
132
|
+
aws_account_id: str,
|
|
133
|
+
update_tag: int,
|
|
134
|
+
) -> None:
|
|
135
|
+
load(
|
|
136
|
+
neo4j_session,
|
|
137
|
+
IpRangeSchema(),
|
|
138
|
+
data,
|
|
139
|
+
Region=region,
|
|
140
|
+
AWS_ID=aws_account_id,
|
|
141
|
+
lastupdated=update_tag,
|
|
142
|
+
)
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
@timeit
|
|
146
|
+
def load_ec2_security_groupinfo(
|
|
147
|
+
neo4j_session: neo4j.Session,
|
|
148
|
+
data: Ec2SecurityGroupData,
|
|
149
|
+
region: str,
|
|
150
|
+
current_aws_account_id: str,
|
|
151
|
+
update_tag: int,
|
|
152
|
+
) -> None:
|
|
153
|
+
load(
|
|
154
|
+
neo4j_session,
|
|
155
|
+
EC2SecurityGroupSchema(),
|
|
156
|
+
data.groups,
|
|
157
|
+
Region=region,
|
|
158
|
+
AWS_ID=current_aws_account_id,
|
|
159
|
+
lastupdated=update_tag,
|
|
160
|
+
)
|
|
161
|
+
|
|
162
|
+
load_ip_rules(
|
|
163
|
+
neo4j_session,
|
|
164
|
+
data.inbound_rules,
|
|
165
|
+
inbound=True,
|
|
166
|
+
region=region,
|
|
167
|
+
aws_account_id=current_aws_account_id,
|
|
168
|
+
update_tag=update_tag,
|
|
169
|
+
)
|
|
170
|
+
load_ip_rules(
|
|
171
|
+
neo4j_session,
|
|
172
|
+
data.egress_rules,
|
|
173
|
+
inbound=False,
|
|
174
|
+
region=region,
|
|
175
|
+
aws_account_id=current_aws_account_id,
|
|
176
|
+
update_tag=update_tag,
|
|
177
|
+
)
|
|
178
|
+
load_ip_ranges(
|
|
179
|
+
neo4j_session,
|
|
180
|
+
data.ranges,
|
|
181
|
+
region,
|
|
182
|
+
current_aws_account_id,
|
|
183
|
+
update_tag,
|
|
184
|
+
)
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
@timeit
|
|
188
|
+
def cleanup_ec2_security_groupinfo(
|
|
189
|
+
neo4j_session: neo4j.Session,
|
|
190
|
+
common_job_parameters: Dict,
|
|
191
|
+
) -> None:
|
|
192
|
+
GraphJob.from_node_schema(
|
|
193
|
+
EC2SecurityGroupSchema(),
|
|
194
|
+
common_job_parameters,
|
|
195
|
+
).run(neo4j_session)
|
|
196
|
+
GraphJob.from_node_schema(IpPermissionInboundSchema(), common_job_parameters).run(
|
|
197
|
+
neo4j_session,
|
|
198
|
+
)
|
|
199
|
+
GraphJob.from_node_schema(IpRuleSchema(), common_job_parameters).run(neo4j_session)
|
|
200
|
+
GraphJob.from_node_schema(IpRangeSchema(), common_job_parameters).run(neo4j_session)
|
|
201
|
+
GraphJob.from_node_schema(
|
|
202
|
+
EC2SecurityGroupInstanceSchema(),
|
|
203
|
+
common_job_parameters,
|
|
204
|
+
).run(neo4j_session)
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
@timeit
|
|
208
|
+
def sync_ec2_security_groupinfo(
|
|
209
|
+
neo4j_session: neo4j.Session,
|
|
210
|
+
boto3_session: boto3.session.Session,
|
|
211
|
+
regions: List[str],
|
|
212
|
+
current_aws_account_id: str,
|
|
213
|
+
update_tag: int,
|
|
214
|
+
common_job_parameters: Dict,
|
|
215
|
+
) -> None:
|
|
216
|
+
for region in regions:
|
|
217
|
+
logger.info(
|
|
218
|
+
"Syncing EC2 security groups for region '%s' in account '%s'.",
|
|
219
|
+
region,
|
|
220
|
+
current_aws_account_id,
|
|
221
|
+
)
|
|
222
|
+
data = get_ec2_security_group_data(boto3_session, region)
|
|
223
|
+
transformed = transform_ec2_security_group_data(data)
|
|
224
|
+
load_ec2_security_groupinfo(
|
|
225
|
+
neo4j_session,
|
|
226
|
+
transformed,
|
|
227
|
+
region,
|
|
228
|
+
current_aws_account_id,
|
|
229
|
+
update_tag,
|
|
230
|
+
)
|
|
231
|
+
cleanup_ec2_security_groupinfo(neo4j_session, common_job_parameters)
|